Skip to content

Commit b56ce2f

Browse files
added cookie ruby
1 parent 8e23555 commit b56ce2f

File tree

5 files changed

+167
-325
lines changed

5 files changed

+167
-325
lines changed

examples/ruby/spec/interactions/cookies_spec.rb

Lines changed: 77 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,81 @@
33
require 'spec_helper'
44

55
RSpec.describe 'Cookies' do
6-
let(:driver) { start_session }
6+
before(:each) do
7+
@driver = Selenium::WebDriver.for :chrome
8+
end
9+
10+
after(:each) do
11+
@driver.quit
12+
end
13+
14+
it 'adds a cookie' do
15+
@driver.navigate.to 'https://www.selenium.dev/selenium/web/blank.html'
16+
@driver.manage.add_cookie(name: 'key', value: 'value')
17+
end
18+
19+
it 'gets a named cookie' do
20+
@driver.navigate.to 'https://www.selenium.dev/selenium/web/blank.html'
21+
@driver.manage.add_cookie(name: 'foo', value: 'bar')
22+
cookie = @driver.manage.cookie_named('foo')
23+
expect(cookie[:value]).to eq('bar')
24+
end
25+
26+
it 'gets all cookies' do
27+
@driver.navigate.to 'https://www.selenium.dev/selenium/web/blank.html'
28+
@driver.manage.add_cookie(name: 'test1', value: 'cookie1')
29+
@driver.manage.add_cookie(name: 'test2', value: 'cookie2')
30+
31+
cookies = @driver.manage.all_cookies
32+
test1 = cookies.find { |c| c[:name] == 'test1' }
33+
test2 = cookies.find { |c| c[:name] == 'test2' }
34+
35+
expect(test1[:value]).to eq('cookie1')
36+
expect(test2[:value]).to eq('cookie2')
37+
end
38+
39+
it 'deletes a cookie by name' do
40+
@driver.navigate.to 'https://www.selenium.dev/selenium/web/blank.html'
41+
@driver.manage.add_cookie(name: 'test1', value: 'cookie1')
42+
@driver.manage.delete_cookie('test1')
43+
expect(@driver.manage.cookie_named('test1')).to be_nil
44+
end
45+
46+
it 'deletes a cookie using cookie object' do
47+
@driver.navigate.to 'https://www.selenium.dev/selenium/web/blank.html'
48+
cookie = { name: 'test2', value: 'cookie2' }
49+
@driver.manage.add_cookie(cookie)
50+
@driver.manage.delete_cookie('test2')
51+
expect(@driver.manage.cookie_named('test2')).to be_nil
52+
end
53+
54+
it 'deletes all cookies' do
55+
@driver.navigate.to 'https://www.selenium.dev/selenium/web/blank.html'
56+
@driver.manage.add_cookie(name: 'test1', value: 'cookie1')
57+
@driver.manage.add_cookie(name: 'test2', value: 'cookie2')
58+
@driver.manage.delete_all_cookies
59+
expect(@driver.manage.all_cookies).to be_empty
60+
end
61+
62+
it 'creates SameSite cookies' do
63+
@driver.navigate.to 'http://www.example.com'
64+
65+
cookie_strict = {
66+
name: 'key',
67+
value: 'value',
68+
same_site: 'Strict'
69+
}
70+
71+
cookie_lax = {
72+
name: 'key',
73+
value: 'value',
74+
same_site: 'Lax'
75+
}
76+
77+
@driver.manage.add_cookie(cookie_strict)
78+
@driver.manage.add_cookie(cookie_lax)
79+
80+
puts cookie_strict[:same_site]
81+
puts cookie_lax[:same_site]
82+
end
783
end

website_and_docs/content/documentation/webdriver/interactions/cookies.en.md

Lines changed: 24 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -36,19 +36,11 @@ e.g. http://example.com/some404page)
3636
{{< tab header="CSharp" text=true >}}
3737
{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Interactions/CookiesTest.cs#L32-L34" >}}
3838
{{< /tab >}}
39-
{{< tab header="Ruby" >}}
40-
require 'selenium-webdriver'
41-
driver = Selenium::WebDriver.for :chrome
42-
43-
begin
44-
driver.get 'https://www.example.com'
4539

46-
# Adds the cookie into current browser context
47-
driver.manage.add_cookie(name: "key", value: "value")
48-
ensure
49-
driver.quit
50-
end
40+
{{< tab header="Ruby" text=true >}}
41+
{{< gh-codeblock path="examples\ruby\spec\interactions\cookies_spec.rb#L14-L17" >}}
5142
{{< /tab >}}
43+
5244
{{< tab header="JavaScript" text=true >}}
5345
{{< gh-codeblock path="/examples/javascript/test/interactions/cookies.spec.js#L18">}}
5446
{{< /tab >}}
@@ -85,20 +77,11 @@ It returns the serialized cookie data matching with the cookie name among all as
8577
{{< tab header="CSharp" text=true >}}
8678
{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Interactions/CookiesTest.cs#L40-L44" >}}
8779
{{< /tab >}}
88-
{{< tab header="Ruby" >}}
89-
require 'selenium-webdriver'
90-
driver = Selenium::WebDriver.for :chrome
91-
92-
begin
93-
driver.get 'https://www.example.com'
94-
driver.manage.add_cookie(name: "foo", value: "bar")
95-
96-
# Get cookie details with named cookie 'foo'
97-
puts driver.manage.cookie_named('foo')
98-
ensure
99-
driver.quit
100-
end
80+
81+
{{< tab header="Ruby" text=true >}}
82+
{{< gh-codeblock path="examples\ruby\spec\interactions\cookies_spec.rb#L19-L24" >}}
10183
{{< /tab >}}
84+
10285
{{< tab header="JavaScript" text=true >}}
10386
{{< gh-codeblock path="/examples/javascript/test/interactions/cookies.spec.js#L35-L38">}}
10487
{{< /tab >}}
@@ -138,21 +121,11 @@ If browser is no longer available it returns error.
138121
{{< tab header="CSharp" text=true >}}
139122
{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Interactions/CookiesTest.cs#L51-L64" >}}
140123
{{< /tab >}}
141-
{{< tab header="Ruby" >}}
142-
require 'selenium-webdriver'
143-
driver = Selenium::WebDriver.for :chrome
144-
145-
begin
146-
driver.get 'https://www.example.com'
147-
driver.manage.add_cookie(name: "test1", value: "cookie1")
148-
driver.manage.add_cookie(name: "test2", value: "cookie2")
149-
150-
# Get all available cookies
151-
puts driver.manage.all_cookies
152-
ensure
153-
driver.quit
154-
end
124+
125+
{{< tab header="Ruby" text=true >}}
126+
{{< gh-codeblock path="examples\ruby\spec\interactions\cookies_spec.rb#L26-L37" >}}
155127
{{< /tab >}}
128+
156129
{{< tab header="JavaScript" text=true >}}
157130
{{< gh-codeblock path="/examples/javascript/test/interactions/cookies.spec.js#L49-L51">}}
158131
{{< /tab >}}
@@ -193,21 +166,11 @@ It deletes the cookie data matching with the provided cookie name.
193166
{{< tab header="CSharp" text=true >}}
194167
{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Interactions/CookiesTest.cs#L70-L73" >}}
195168
{{< /tab >}}
196-
{{< tab header="Ruby" >}}
197-
require 'selenium-webdriver'
198-
driver = Selenium::WebDriver.for :chrome
199-
200-
begin
201-
driver.get 'https://www.example.com'
202-
driver.manage.add_cookie(name: "test1", value: "cookie1")
203-
driver.manage.add_cookie(name: "test2", value: "cookie2")
204-
205-
# delete a cookie with name 'test1'
206-
driver.manage.delete_cookie('test1')
207-
ensure
208-
driver.quit
209-
end
169+
170+
{{< tab header="Ruby" text=true >}}
171+
{{< gh-codeblock path="examples\ruby\spec\interactions\cookies_spec.rb#L39-L44" >}}
210172
{{< /tab >}}
173+
211174
{{< tab header="JavaScript" text=true >}}
212175
{{< gh-codeblock path="/examples/javascript/test/interactions/cookies.spec.js#L61-L62">}}
213176
{{< /tab >}}
@@ -251,21 +214,11 @@ It deletes all the cookies of the current browsing context.
251214
{{< tab header="CSharp" text=true >}}
252215
{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Interactions/CookiesTest.cs#L92-L97" >}}
253216
{{< /tab >}}
254-
{{< tab header="Ruby" >}}
255-
require 'selenium-webdriver'
256-
driver = Selenium::WebDriver.for :chrome
257-
258-
begin
259-
driver.get 'https://www.example.com'
260-
driver.manage.add_cookie(name: "test1", value: "cookie1")
261-
driver.manage.add_cookie(name: "test2", value: "cookie2")
262-
263-
# deletes all cookies
264-
driver.manage.delete_all_cookies
265-
ensure
266-
driver.quit
267-
end
217+
218+
{{< tab header="Ruby" text=true >}}
219+
{{< gh-codeblock path="examples\ruby\spec\interactions\cookies_spec.rb#L54-L60" >}}
268220
{{< /tab >}}
221+
269222
{{< tab header="JavaScript" text=true >}}
270223
{{< gh-codeblock path="/examples/javascript/test/interactions/cookies.spec.js#L77-L78">}}
271224
{{< /tab >}}
@@ -349,21 +302,11 @@ namespace SameSiteCookie {
349302
}
350303
}
351304
{{< /tab >}}
352-
{{< tab header="Ruby" >}}
353-
require 'selenium-webdriver'
354-
driver = Selenium::WebDriver.for :chrome
355-
356-
begin
357-
driver.get 'https://www.example.com'
358-
# Adds the cookie into current browser context with sameSite 'Strict' (or) 'Lax'
359-
driver.manage.add_cookie(name: "foo", value: "bar", same_site: "Strict")
360-
driver.manage.add_cookie(name: "foo1", value: "bar", same_site: "Lax")
361-
puts driver.manage.cookie_named('foo')
362-
puts driver.manage.cookie_named('foo1')
363-
ensure
364-
driver.quit
365-
end
366-
{{< /tab >}}
305+
306+
{{< tab header="Ruby" text=true >}}
307+
{{< gh-codeblock path="examples\ruby\spec\interactions\cookies_spec.rb#L62-L81" >}}
308+
{{< /tab >}}
309+
367310
{{< tab header="JavaScript" text=true >}}
368311
{{< gh-codeblock path="/examples/javascript/test/interactions/cookies.spec.js#L24-L26">}}
369312
{{< /tab >}}

website_and_docs/content/documentation/webdriver/interactions/cookies.ja.md

Lines changed: 20 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -33,19 +33,11 @@ Cookieの追加では、一連の定義済みのシリアル化可能なJSONオ
3333
{{< tab header="CSharp" text=true >}}
3434
{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Interactions/CookiesTest.cs#L32-L34" >}}
3535
{{< /tab >}}
36-
{{< tab header="Ruby" >}}
37-
require 'selenium-webdriver'
38-
driver = Selenium::WebDriver.for :chrome
3936

40-
begin
41-
driver.get 'https://www.example.com'
42-
43-
# Adds the cookie into current browser context
44-
driver.manage.add_cookie(name: "key", value: "value")
45-
ensure
46-
driver.quit
47-
end
37+
{{< tab header="Ruby" text=true >}}
38+
{{< gh-codeblock path="examples\ruby\spec\interactions\cookies_spec.rb#L14-L17" >}}
4839
{{< /tab >}}
40+
4941
{{< tab header="JavaScript" text=true >}}
5042
{{< gh-codeblock path="/examples/javascript/test/interactions/cookies.spec.js#L18">}}
5143
{{< /tab >}}
@@ -81,20 +73,11 @@ fun main() {
8173
{{< tab header="CSharp" text=true >}}
8274
{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Interactions/CookiesTest.cs#L40-L44" >}}
8375
{{< /tab >}}
84-
{{< tab header="Ruby" >}}
85-
require 'selenium-webdriver'
86-
driver = Selenium::WebDriver.for :chrome
87-
88-
begin
89-
driver.get 'https://www.example.com'
90-
driver.manage.add_cookie(name: "foo", value: "bar")
91-
92-
# Get cookie details with named cookie 'foo'
93-
puts driver.manage.cookie_named('foo')
94-
ensure
95-
driver.quit
96-
end
76+
77+
{{< tab header="Ruby" text=true >}}
78+
{{< gh-codeblock path="examples\ruby\spec\interactions\cookies_spec.rb#L19-L24" >}}
9779
{{< /tab >}}
80+
9881
{{< tab header="JavaScript" text=true >}}
9982
{{< gh-codeblock path="/examples/javascript/test/interactions/cookies.spec.js#L35-L38">}}
10083
{{< /tab >}}
@@ -133,21 +116,11 @@ fun main() {
133116
{{< tab header="CSharp" text=true >}}
134117
{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Interactions/CookiesTest.cs#L51-L64" >}}
135118
{{< /tab >}}
136-
{{< tab header="Ruby" >}}
137-
require 'selenium-webdriver'
138-
driver = Selenium::WebDriver.for :chrome
139-
140-
begin
141-
driver.get 'https://www.example.com'
142-
driver.manage.add_cookie(name: "test1", value: "cookie1")
143-
driver.manage.add_cookie(name: "test2", value: "cookie2")
144-
145-
# Get all available cookies
146-
puts driver.manage.all_cookies
147-
ensure
148-
driver.quit
149-
end
119+
120+
{{< tab header="Ruby" text=true >}}
121+
{{< gh-codeblock path="examples\ruby\spec\interactions\cookies_spec.rb#L26-L37" >}}
150122
{{< /tab >}}
123+
151124
{{< tab header="JavaScript" text=true >}}
152125
{{< gh-codeblock path="/examples/javascript/test/interactions/cookies.spec.js#L49-L51">}}
153126
{{< /tab >}}
@@ -187,20 +160,8 @@ fun main() {
187160
{{< tab header="CSharp" text=true >}}
188161
{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Interactions/CookiesTest.cs#L70-L73" >}}
189162
{{< /tab >}}
190-
{{< tab header="Ruby" >}}
191-
require 'selenium-webdriver'
192-
driver = Selenium::WebDriver.for :chrome
193-
194-
begin
195-
driver.get 'https://www.example.com'
196-
driver.manage.add_cookie(name: "test1", value: "cookie1")
197-
driver.manage.add_cookie(name: "test2", value: "cookie2")
198-
199-
# delete a cookie with name 'test1'
200-
driver.manage.delete_cookie('test1')
201-
ensure
202-
driver.quit
203-
end
163+
{{< tab header="Ruby" text=true >}}
164+
{{< gh-codeblock path="examples\ruby\spec\interactions\cookies_spec.rb#L39-L44" >}}
204165
{{< /tab >}}
205166
{{< tab header="JavaScript" text=true >}}
206167
{{< gh-codeblock path="/examples/javascript/test/interactions/cookies.spec.js#L61-L62">}}
@@ -244,20 +205,8 @@ fun main() {
244205
{{< tab header="CSharp" text=true >}}
245206
{{< gh-codeblock path="examples/dotnet/SeleniumDocs/Interactions/CookiesTest.cs#L92-L97" >}}
246207
{{< /tab >}}
247-
{{< tab header="Ruby" >}}
248-
require 'selenium-webdriver'
249-
driver = Selenium::WebDriver.for :chrome
250-
251-
begin
252-
driver.get 'https://www.example.com'
253-
driver.manage.add_cookie(name: "test1", value: "cookie1")
254-
driver.manage.add_cookie(name: "test2", value: "cookie2")
255-
256-
# deletes all cookies
257-
driver.manage.delete_all_cookies
258-
ensure
259-
driver.quit
260-
end
208+
{{< tab header="Ruby" text=true >}}
209+
{{< gh-codeblock path="examples\ruby\spec\interactions\cookies_spec.rb#L54-L60" >}}
261210
{{< /tab >}}
262211
{{< tab header="JavaScript" text=true >}}
263212
{{< gh-codeblock path="/examples/javascript/test/interactions/cookies.spec.js#L77-L78">}}
@@ -339,21 +288,11 @@ namespace SameSiteCookie {
339288
}
340289
}
341290
{{< /tab >}}
342-
{{< tab header="Ruby" >}}
343-
require 'selenium-webdriver'
344-
driver = Selenium::WebDriver.for :chrome
345-
346-
begin
347-
driver.get 'https://www.example.com'
348-
# Adds the cookie into current browser context with sameSite 'Strict' (or) 'Lax'
349-
driver.manage.add_cookie(name: "foo", value: "bar", same_site: "Strict")
350-
driver.manage.add_cookie(name: "foo1", value: "bar", same_site: "Lax")
351-
puts driver.manage.cookie_named('foo')
352-
puts driver.manage.cookie_named('foo1')
353-
ensure
354-
driver.quit
355-
end
356-
{{< /tab >}}
291+
292+
{{< tab header="Ruby" text=true >}}
293+
{{< gh-codeblock path="examples\ruby\spec\interactions\cookies_spec.rb#L62-L81" >}}
294+
{{< /tab >}}
295+
357296
{{< tab header="JavaScript" text=true >}}
358297
{{< gh-codeblock path="/examples/javascript/test/interactions/cookies.spec.js#L24-L26">}}
359298
{{< /tab >}}

0 commit comments

Comments
 (0)