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])