Class: Capybara::Mechanize::Driver

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

Defined Under Namespace

Classes: FakeURI

Instance Method Summary collapse

Instance Method Details



84
85
86
87
88
89
90
91
92
# File 'lib/monkey-patches/capybara-mechanize-patches.rb', line 84

def add_cookie(attribs)
  c = Mechanize::Cookie.new(attribs[:name],attribs[:value])
  # remember: mechanize always removes leading '.' from domains
  c.domain = attribs[:domain]
  c.path = '/'
  c.expires = attribs[:expires]
  c.secure = attribs[:secure]
  browser.agent.cookie_jar.add(FakeURI.new(c.domain),c)
end


57
58
59
# File 'lib/monkey-patches/capybara-mechanize-patches.rb', line 57

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

#cookiesObject

Patch for friendly cookie handling api



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/monkey-patches/capybara-mechanize-patches.rb', line 37

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,
          :path => cookie[1].path
        })
      end
    end
  end
  cookies
end

#delete_all_cookiesObject



73
74
75
# File 'lib/monkey-patches/capybara-mechanize-patches.rb', line 73

def delete_all_cookies
  browser.agent.cookie_jar.clear!
end


61
62
63
64
65
66
67
68
69
70
71
# File 'lib/monkey-patches/capybara-mechanize-patches.rb', line 61

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



77
78
79
80
81
# File 'lib/monkey-patches/capybara-mechanize-patches.rb', line 77

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