Class: Capybara::Mechanize::Driver

Inherits:
Object
  • Object
show all
Defined in:
lib/extensions/capybara-mechanize-extensions.rb

Overview

Cookie handling extensions

Instance Method Summary collapse

Instance Method Details



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/extensions/capybara-mechanize-extensions.rb', line 54

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


28
29
30
# File 'lib/extensions/capybara-mechanize-extensions.rb', line 28

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

#cookiesObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/extensions/capybara-mechanize-extensions.rb', line 6

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

#delete_all_cookiesObject



44
45
46
# File 'lib/extensions/capybara-mechanize-extensions.rb', line 44

def delete_all_cookies
  browser.agent.cookie_jar.clear!
end


32
33
34
35
36
37
38
39
40
41
42
# File 'lib/extensions/capybara-mechanize-extensions.rb', line 32

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

#delete_cookies_in_domain(domain) ⇒ Object



48
49
50
51
52
# File 'lib/extensions/capybara-mechanize-extensions.rb', line 48

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