spec/watirspec/cookies_spec.rb in watir-7.0.0.beta1 vs spec/watirspec/cookies_spec.rb in watir-7.0.0.beta2
- old
+ new
@@ -2,11 +2,11 @@
describe 'Browser#cookies' do
after { browser.cookies.clear }
it 'gets an empty list of cookies' do
- browser.goto WatirSpec.url_for 'collections.html' # no cookie set.
+ 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
@@ -39,98 +39,93 @@
it 'returns nil if there is no cookie with such name' do
expect(browser.cookies[:non_monster]).to eq(nil)
end
end
- not_compliant_on :internet_explorer do
- it 'adds a cookie without options' do
- browser.goto set_cookie_url
- verify_cookies_count 1
+ it 'adds a cookie without options' do
+ browser.goto WatirSpec.url_for 'index.html'
+ verify_cookies_count 0
- browser.cookies.add 'foo', 'bar'
- verify_cookies_count 2
- end
+ browser.cookies.add 'foo', 'bar'
+ verify_cookies_count 1
+ end
- it 'adds a cookie with a string expires value' do
- browser.goto set_cookie_url
- verify_cookies_count 1
+ it 'adds a cookie with a string expires value' do
+ browser.goto WatirSpec.url_for 'index.html'
- expire_time = Time.now + 10_000
+ expire_time = Time.now + 10_000
- browser.cookies.add 'foo', 'bar', expires: expire_time.to_s
+ browser.cookies.add 'foo', 'bar', expires: expire_time.to_s
- cookie = browser.cookies[:foo]
- expect(cookie[:expires]).to be_kind_of(Time)
- end
+ cookie = browser.cookies[:foo]
+ expect(cookie[:expires]).to be_kind_of(Time)
end
- it 'adds a cookie with path' do
- browser.goto set_cookie_url
+ it 'adds a cookie with path',
+ except: {browser: :ie, reason: 'path contains two slashes'} do
+ browser.goto WatirSpec.url_for 'index.html'
options = {path: '/set_cookie'}
-
browser.cookies.add 'path', 'b', options
+
+ expect(browser.cookies.to_a).to be_empty
+
+ browser.goto set_cookie_url
cookie = browser.cookies.to_a.find { |e| e[:name] == 'path' }
- expect(cookie).to_not be_nil
expect(cookie[:name]).to eq 'path'
expect(cookie[:value]).to eq 'b'
expect(cookie[:path]).to eq '/set_cookie'
end
it 'adds a cookie with expiration' do
- browser.goto set_cookie_url
+ browser.goto WatirSpec.url_for 'index.html'
expires = Time.now + 10_000
options = {expires: expires}
browser.cookies.add 'expiration', 'b', options
- cookie = browser.cookies.to_a.find { |e| e[:name] == 'expiration' }
+ cookie = browser.cookies.to_a.first
- expect(cookie).to_not be_nil
expect(cookie[:name]).to eq 'expiration'
expect(cookie[:value]).to eq 'b'
- # a few ms slack
+
expect((cookie[:expires]).to_i).to be_within(2).of(expires.to_i)
end
- bug 'https://bugs.chromium.org/p/chromedriver/issues/detail?id=2727', :chrome, :safari, :edge do
- it 'adds a cookie with security' do
- browser.goto set_cookie_url
+ # 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'
- options = {secure: true}
+ options = {secure: true}
- browser.cookies.add 'secure', 'b', options
- cookie = browser.cookies.to_a.find { |e| e[:name] == 'secure' }
- expect(cookie).to_not be_nil
-
- expect(cookie[:name]).to eq 'secure'
- expect(cookie[:value]).to eq 'b'
- expect(cookie[:secure]).to be true
- end
+ browser.cookies.add 'secure', 'b', options
+ cookie = browser.cookies.to_a.find { |e| e[:name] == 'secure' }
+ expect(cookie).to be_nil
end
- not_compliant_on :internet_explorer do
- it 'removes a cookie' do
- browser.goto set_cookie_url
- verify_cookies_count 1
+ it 'removes a cookie' do
+ browser.goto set_cookie_url
+ verify_cookies_count 1
- browser.cookies.delete 'monster'
- verify_cookies_count 0
- end
+ browser.cookies.delete 'monster'
+ verify_cookies_count 0
+ end
- it 'clears all cookies' do
- browser.goto set_cookie_url
- browser.cookies.add 'foo', 'bar'
- verify_cookies_count 2
+ it 'clears all cookies' do
+ browser.goto set_cookie_url
+ browser.cookies.add 'foo', 'bar'
+ verify_cookies_count 2
- browser.cookies.clear
- verify_cookies_count 0
- end
+ browser.cookies.clear
+ verify_cookies_count 0
end
- not_compliant_on :internet_explorer do
+ context 'cookie file' do
let(:file) { "#{Dir.tmpdir}/cookies" }
before do
browser.goto set_cookie_url
browser.cookies.save file
@@ -140,10 +135,10 @@
it 'saves cookies to file' do
expect(IO.read(file)).to eq(browser.cookies.to_a.to_yaml)
end
end
- describe '#load' do
+ 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(IO.read(file), [::Symbol])