spec/watirspec/cookies_spec.rb in watir-7.2.0 vs spec/watirspec/cookies_spec.rb in watir-7.2.1
- old
+ new
@@ -1,167 +1,169 @@
# frozen_string_literal: true
require 'watirspec_helper'
-describe 'Browser#cookies' do
- after { browser.cookies.clear }
+module Watir
+ describe Cookies do
+ after { browser.cookies.clear }
- it 'gets an empty list of cookies' do
- browser.goto WatirSpec.url_for 'index.html'
- expect(browser.cookies.to_a).to eq []
- end
+ it 'gets an empty list of cookies' do
+ browser.goto WatirSpec.url_for 'index.html'
+ expect(browser.cookies.to_a).to eq []
+ end
- it 'gets any cookies set' do
- browser.goto set_cookie_url
-
- verify_cookies_count 1
-
- cookie = browser.cookies.to_a.first
- expect(cookie[:name]).to eq 'monster'
- expect(cookie[:value]).to eq '1'
- end
-
- describe '#[]' do
- before do
+ it 'gets any cookies set' do
browser.goto set_cookie_url
+
verify_cookies_count 1
- end
- it 'returns cookie by symbol name' do
- cookie = browser.cookies[:monster]
- expect(cookie[:name]).to eq('monster')
- expect(cookie[:value]).to eq('1')
+ cookie = browser.cookies.to_a.first
+ expect(cookie[:name]).to eq 'monster'
+ expect(cookie[:value]).to eq '1'
end
- it 'returns cookie by string name' do
- cookie = browser.cookies['monster']
- expect(cookie[:name]).to eq('monster')
- expect(cookie[:value]).to eq('1')
- end
+ describe '#[]' do
+ before do
+ browser.goto set_cookie_url
+ verify_cookies_count 1
+ end
- it 'returns nil if there is no cookie with such name' do
- expect(browser.cookies[:non_monster]).to eq(nil)
- end
- end
+ it 'returns cookie by symbol name' do
+ cookie = browser.cookies[:monster]
+ expect(cookie[:name]).to eq('monster')
+ expect(cookie[:value]).to eq('1')
+ end
- it 'adds a cookie without options' do
- browser.goto WatirSpec.url_for 'index.html'
- verify_cookies_count 0
+ it 'returns cookie by string name' do
+ cookie = browser.cookies['monster']
+ expect(cookie[:name]).to eq('monster')
+ expect(cookie[:value]).to eq('1')
+ end
- browser.cookies.add 'foo', 'bar'
- verify_cookies_count 1
- end
+ it 'returns nil if there is no cookie with such name' do
+ expect(browser.cookies[:non_monster]).to be_nil
+ end
+ end
- it 'adds a cookie with a string expires value' do
- browser.goto WatirSpec.url_for 'index.html'
+ it 'adds a cookie without options' do
+ browser.goto WatirSpec.url_for 'index.html'
+ verify_cookies_count 0
- expire_time = Time.now + 10_000
+ browser.cookies.add 'foo', 'bar'
+ verify_cookies_count 1
+ end
- browser.cookies.add 'foo', 'bar', expires: expire_time.to_s
+ it 'adds a cookie with a string expires value' do
+ browser.goto WatirSpec.url_for 'index.html'
- cookie = browser.cookies[:foo]
- expect(cookie[:expires]).to be_kind_of(Time)
- end
+ expire_time = ::Time.now + 10_000
- it 'adds a cookie with path',
- except: {browser: :ie, reason: 'path contains two slashes'} do
- browser.goto WatirSpec.url_for 'index.html'
+ browser.cookies.add 'foo', 'bar', expires: expire_time.to_s
- options = {path: '/set_cookie'}
- browser.cookies.add 'path', 'b', options
+ cookie = browser.cookies[:foo]
+ expect(cookie[:expires]).to be_a(::Time)
+ end
- expect(browser.cookies.to_a).to be_empty
+ it 'adds a cookie with path',
+ except: {browser: :ie, reason: 'path contains two slashes'} do
+ browser.goto WatirSpec.url_for 'index.html'
- browser.goto set_cookie_url
- cookie = browser.cookies.to_a.find { |e| e[:name] == 'path' }
+ options = {path: '/set_cookie'}
+ browser.cookies.add 'path', 'b', options
- expect(cookie[:name]).to eq 'path'
- expect(cookie[:value]).to eq 'b'
- expect(cookie[:path]).to eq '/set_cookie'
- end
+ expect(browser.cookies.to_a).to be_empty
- it 'adds a cookie with expiration' do
- browser.goto WatirSpec.url_for 'index.html'
+ browser.goto set_cookie_url
+ cookie = browser.cookies.to_a.find { |e| e[:name] == 'path' }
- expires = Time.now + 10_000
- options = {expires: expires}
+ expect(cookie[:name]).to eq 'path'
+ expect(cookie[:value]).to eq 'b'
+ expect(cookie[:path]).to eq '/set_cookie'
+ end
- browser.cookies.add 'expiration', 'b', options
- cookie = browser.cookies.to_a.first
+ it 'adds a cookie with expiration' do
+ browser.goto WatirSpec.url_for 'index.html'
- expect(cookie[:name]).to eq 'expiration'
- expect(cookie[:value]).to eq 'b'
+ expires = ::Time.now + 10_000
+ options = {expires: expires}
- expect((cookie[:expires]).to_i).to be_within(2).of(expires.to_i)
- end
+ browser.cookies.add 'expiration', 'b', options
+ cookie = browser.cookies.to_a.first
- # Pending resolution of https://github.com/w3c/webdriver/issues/1571
- it 'adding cookie with security does not raise exception but can not be retrieved',
- except: [{browser: :firefox,
- reason: 'https://github.com/mozilla/geckodriver/issues/1840'},
- {browser: %i[chrome edge], platform: :windows}] do
- browser.goto WatirSpec.url_for 'index.html'
+ expect(cookie[:name]).to eq 'expiration'
+ expect(cookie[:value]).to eq 'b'
- options = {secure: true}
+ expect((cookie[:expires]).to_i).to be_within(2).of(expires.to_i)
+ end
- browser.cookies.add 'secure', 'b', options
- cookie = browser.cookies.to_a.find { |e| e[:name] == 'secure' }
- expect(cookie).to be_nil
- end
+ # Pending resolution of https://github.com/w3c/webdriver/issues/1571
+ it 'adding cookie with security does not raise exception but can not be retrieved',
+ except: [{browser: :firefox,
+ reason: 'https://github.com/mozilla/geckodriver/issues/1840'},
+ {browser: %i[chrome edge], platform: :windows}] do
+ browser.goto WatirSpec.url_for 'index.html'
- it 'removes a cookie' do
- browser.goto set_cookie_url
- verify_cookies_count 1
+ options = {secure: true}
- browser.cookies.delete 'monster'
- verify_cookies_count 0
- end
+ browser.cookies.add 'secure', 'b', options
+ cookie = browser.cookies.to_a.find { |e| e[:name] == 'secure' }
+ expect(cookie).to be_nil
+ end
- it 'clears all cookies' do
- browser.goto set_cookie_url
- browser.cookies.add 'foo', 'bar'
- verify_cookies_count 2
+ it 'removes a cookie' do
+ browser.goto set_cookie_url
+ verify_cookies_count 1
- browser.cookies.clear
- verify_cookies_count 0
- end
+ browser.cookies.delete 'monster'
+ verify_cookies_count 0
+ end
- context 'cookie file' do
- let(:file) { "#{Dir.tmpdir}/cookies" }
-
- before do
+ it 'clears all cookies' do
browser.goto set_cookie_url
- browser.cookies.save file
+ browser.cookies.add 'foo', 'bar'
+ verify_cookies_count 2
+
+ browser.cookies.clear
+ verify_cookies_count 0
end
- describe '#save' do
- it 'saves cookies to file' do
- expect(File.read(file)).to eq(browser.cookies.to_a.to_yaml)
+ context 'when using file' do
+ let(:file) { "#{Dir.tmpdir}/cookies" }
+
+ before do
+ browser.goto set_cookie_url
+ browser.cookies.save file
end
- end
- describe '#load', except: {browser: :ie} do
- it 'loads cookies from file' do
- browser.cookies.clear
- browser.cookies.load file
- expected = browser.cookies.to_a
- actual = YAML.safe_load(File.read(file), permitted_classes: [Symbol])
+ describe '#save' do
+ it 'saves cookies to file' do
+ expect(File.read(file)).to eq(browser.cookies.to_a.to_yaml)
+ end
+ end
- expected.each { |cookie| cookie.delete(:expires) }
- actual.each { |cookie| cookie.delete(:expires) }
+ describe '#load', except: {browser: :ie} do
+ it 'loads cookies from file' do
+ browser.cookies.clear
+ browser.cookies.load file
+ expected = browser.cookies.to_a
+ actual = YAML.safe_load(File.read(file), permitted_classes: [::Symbol])
- expect(actual).to eq(expected)
+ expected.each { |cookie| cookie.delete(:expires) }
+ actual.each { |cookie| cookie.delete(:expires) }
+
+ expect(actual).to eq(expected)
+ end
end
end
- end
- def set_cookie_url
- # add timestamp to url to avoid caching in IE8
- WatirSpec.url_for('set_cookie/index.html') + "?t=#{Time.now.to_i + Time.now.usec}"
- end
+ def set_cookie_url
+ # add timestamp to url to avoid caching in IE8
+ WatirSpec.url_for('set_cookie/index.html') + "?t=#{::Time.now.to_i + ::Time.now.usec}"
+ end
- def verify_cookies_count(expected_size)
- cookies = browser.cookies.to_a
- msg = "expected #{expected_size} cookies, got #{cookies.size}: #{cookies.inspect}"
- expect(cookies.size).to eq(expected_size), msg
+ def verify_cookies_count(expected_size)
+ cookies = browser.cookies.to_a
+ msg = "expected #{expected_size} cookies, got #{cookies.size}: #{cookies.inspect}"
+ expect(cookies.size).to eq(expected_size), msg
+ end
end
end