Sha256: 176bfaccaf48804b0bd58aac77c157da3d519712bff771d2c7a25537014551a9

Contents?: true

Size: 1.56 KB

Versions: 6

Compression:

Stored size: 1.56 KB

Contents

require 'capybara/mechanize/cucumber' 

# Cookie handling extensions
class Capybara::Mechanize::Driver

  def cookies
    cookies = []

    browser.agent.cookie_jar.jar.each do |domain|
      domain[1].each do |path|
        path[1].each do |cookie|
          
          cookies.push({
            :name => cookie[1].name,
            :value => cookie[1].value,
            :domain => cookie[1].domain,
            :secure => cookie[1].secure,
            :expires => cookie[1].expires,
            :httponly => cookie[1].httponly,
            :path => cookie[1].path
          })
        end
      end
    end
    cookies
  end

  def cookie_named(name)
    cookies.find { |c| c[:name] == name }
  end

  def delete_cookie(cookie_name)
    browser.agent.cookie_jar.jar.each do |domain|
      domain[1].each do |path|
        path[1].each do |cookie|
          if cookie[0] == cookie_name
            browser.agent.cookie_jar.jar[domain[0]][path[0]].delete(cookie[0])
          end
        end
      end
    end
  end

  def delete_all_cookies
    browser.agent.cookie_jar.clear!
  end

  def delete_cookies_in_domain(domain)
    cookies.each do |cookie|
      delete_cookie(cookie[:name]) if cookie[:domain].include?(domain)
    end
  end

  def add_cookie(attribs)
    
    cookie = HTTP::Cookie.new(
      attribs[:name],
      attribs[:value],
      :domain => attribs[:domain],
      :for_domain => true,
      :path => '/',
      :expires => attribs[:expires],
      :secure => attribs[:secure],
      :httponly => attribs[:httponly]
    )

    browser.agent.cookie_jar.add(cookie)

  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
frameworks-capybara-2.3.1 lib/extensions/capybara-mechanize-extensions.rb
frameworks-capybara-2.3.0 lib/extensions/capybara-mechanize-extensions.rb
frameworks-capybara-2.2.0 lib/extensions/capybara-mechanize-extensions.rb
frameworks-capybara-2.1.0 lib/extensions/capybara-mechanize-extensions.rb
frameworks-capybara-2.0.1 lib/extensions/capybara-mechanize-extensions.rb
frameworks-capybara-2.0.0 lib/extensions/capybara-mechanize-extensions.rb