Parent

Capybara::Webkit::CookieJar

A simple cookie jar implementation. Does not take special cookie attributes into account like expire, max-age, httponly, secure

Attributes

browser[R]

Public Class Methods

new(browser) click to toggle source
# File lib/capybara/webkit/cookie_jar.rb, line 9
def initialize(browser)
  @browser = browser
end

Public Instance Methods

[](*args) click to toggle source
# File lib/capybara/webkit/cookie_jar.rb, line 13
def [](*args)
  cookie = find(*args)
  cookie && cookie.value
end
find(name, domain = nil, path = "/") click to toggle source
# File lib/capybara/webkit/cookie_jar.rb, line 18
def find(name, domain = nil, path = "/")
  # we are sorting by path size because more specific paths take
  # precendence
  cookies.sort_by { |c| -c.path.size }.find { |c|
    c.name.downcase == name.downcase &&
    (!domain || valid_domain?(c, domain)) &&
    (!path   || valid_path?(c, path))
  }
end

Protected Instance Methods

cookies() click to toggle source
# File lib/capybara/webkit/cookie_jar.rb, line 52
def cookies
  browser.get_cookies.map { |c| WEBrick::Cookie.parse_set_cookie(c) }
end
ends_with?(str, suffix) click to toggle source
# File lib/capybara/webkit/cookie_jar.rb, line 44
def ends_with?(str, suffix)
  str[-suffix.size..-1] == suffix
end
normalize_domain(domain) click to toggle source
# File lib/capybara/webkit/cookie_jar.rb, line 35
def normalize_domain(domain)
  domain = "." + domain unless domain[0,1] == "."
  domain
end
starts_with?(str, prefix) click to toggle source
# File lib/capybara/webkit/cookie_jar.rb, line 48
def starts_with?(str, prefix)
  str[0, prefix.size] == prefix
end
valid_domain?(cookie, domain) click to toggle source
# File lib/capybara/webkit/cookie_jar.rb, line 30
def valid_domain?(cookie, domain)
  ends_with?(("." + domain).downcase,
             normalize_domain(cookie.domain).downcase)
end
valid_path?(cookie, path) click to toggle source
# File lib/capybara/webkit/cookie_jar.rb, line 40
def valid_path?(cookie, path)
  starts_with?(path, cookie.path)
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.