Module: Helper::Cookie

Defined in:
lib/cucumber_salad/helper/cookie.rb

Class Method Summary collapse

Class Method Details

.add(key, value, options = {}) ⇒ Object



12
13
14
15
16
17
18
# File 'lib/cucumber_salad/helper/cookie.rb', line 12

def self.add(key, value, options = {})
  self.init_cookies
  @cookies[key] = {
    :value => value,
    :options => options
  }
end


20
21
22
23
24
# File 'lib/cucumber_salad/helper/cookie.rb', line 20

def self.add_test_cookie(key, value)
  key = 'test-' + self.base64_encode(key)
  value = base64_encode value
  self.add(key, value)
end

.allObject



8
9
10
# File 'lib/cucumber_salad/helper/cookie.rb', line 8

def self.all
  @cookies
end

.base64_encode(key) ⇒ Object



53
54
55
# File 'lib/cucumber_salad/helper/cookie.rb', line 53

def self.base64_encode(key)
  CGI.escape(Base64.encode64(key).gsub("\n", ""))
end


47
48
49
50
51
# File 'lib/cucumber_salad/helper/cookie.rb', line 47

def self.domain_for_cookie(cookie)
  if cookie[:options][:domain]
    cookie[:options][:domain]
  end
end

.init_cookiesObject



4
5
6
# File 'lib/cucumber_salad/helper/cookie.rb', line 4

def self.init_cookies
  @cookies ||= {}
end

.resetObject



57
58
59
# File 'lib/cucumber_salad/helper/cookie.rb', line 57

def self.reset
  @cookies = nil
end

.send_to_driver(driver) ⇒ Object



26
27
28
29
30
31
# File 'lib/cucumber_salad/helper/cookie.rb', line 26

def self.send_to_driver(driver)
  driver = Helper::Driver.get(driver)
  if driver
    self.set_cookies(driver)
  end
end

.set_cookies(driver) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/cucumber_salad/helper/cookie.rb', line 33

def self.set_cookies(driver)
  self.init_cookies
  if driver[:driver] == :poltergeist
    @cookies.keys.each do |key|
      cookie = @cookies[key]
      Capybara.current_session.driver.set_cookie(
        key,
        cookie[:value],
        :domain => self.domain_for_cookie(cookie)
      )
    end
  end
end