Skip to content

Commit

Permalink
Add changelog entry, cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
route committed Apr 15, 2022
1 parent d497e57 commit 6594c82
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 48 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ a block with this page, after which the page is closed.
- `Ferrum::JavaScriptError#stack_trace` attr_reader
- Windows support
- Show warning and accept dialog if no handler given
- `Ferrum::Cookies#set` ability to set cookie using `Ferrum::Cookies::Cookie` object

### Changed

Expand Down
13 changes: 4 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -717,11 +717,11 @@ Returns cookie
browser.cookies["NID"] # => <Ferrum::Cookies::Cookie:0x0000558624b67a88 @attributes={"name"=>"NID", "value"=>"...", "domain"=>".google.com", "path"=>"/", "expires"=>1583211046.575681, "size"=>178, "httpOnly"=>true, "secure"=>false, "session"=>false}>
```

#### set(\*\*options) : `Boolean`
#### set(value) : `Boolean`

Sets given values as cookie
Sets a cookie

* options `Hash`
* value `Hash`
* :name `String`
* :value `String`
* :domain `String`
Expand All @@ -733,15 +733,10 @@ Sets given values as cookie
browser.cookies.set(name: "stealth", value: "omg", domain: "google.com") # => true
```

#### set(cookie) : `Boolean`

Sets given cookie

* cookie `Cookie`
* value `Cookie`

```ruby
nid_cookie = browser.cookies["NID"] # => <Ferrum::Cookies::Cookie:0x0000558624b67a88>

browser.cookies.set(nid_cookie) # => true
```

Expand Down
53 changes: 14 additions & 39 deletions spec/cookies_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
module Ferrum
describe Browser do
context "cookies support" do
it "returns set cookies" do
it "returns cookies" do
browser.go_to("/set_cookie")

cookie = browser.cookies["stealth"]
Expand All @@ -18,13 +18,13 @@ module Ferrum
expect(cookie.expires).to be_nil
end

it "can set cookies" do
it "sets cookies" do
browser.cookies.set(name: "stealth", value: "omg")
browser.go_to("/get_cookie")
expect(browser.body).to include("omg")
end

it "can set cookies with custom settings" do
it "sets cookies with custom settings" do
browser.cookies.set(
name: "stealth",
value: "omg",
Expand All @@ -44,7 +44,7 @@ module Ferrum
expect(browser.cookies["stealth"].samesite).to eq("Strict")
end

it "can remove a cookie" do
it "removes a cookie" do
browser.go_to("/set_cookie")

browser.go_to("/get_cookie")
Expand All @@ -56,111 +56,86 @@ module Ferrum
expect(browser.body).to_not include("test_cookie")
end

it "can set a retrieved cookie" do
it "sets a retrieved cookie" do
browser.cookies.set(name: "stealth", value: "omg")

browser.go_to("/get_cookie")

expect(browser.body).to include("omg")

cookie = browser.cookies.all.values.first

cookie = browser.cookies["stealth"]
browser.cookies.clear

browser.go_to("/get_cookie")

expect(browser.body).to_not include("omg")

browser.cookies.set(cookie)

browser.go_to("/get_cookie")

expect(browser.body).to include("omg")
end

it "can set a retrieved browser cookie" do
it "sets a retrieved browser cookie" do
browser.go_to("/set_cookie")

cookie = browser.cookies["stealth"]

browser.go_to("/get_cookie")
expect(cookie.name).to eq("stealth")
expect(cookie.value).to eq("test_cookie")

browser.go_to("/get_cookie")

expect(browser.body).to include("test_cookie")

browser.cookies.clear

browser.go_to("/get_cookie")

expect(browser.body).not_to include("test_cookie")

browser.cookies.set(cookie)

browser.go_to("/get_cookie")

expect(browser.body).to include("test_cookie")
end

it "it retains the characteristics of the reference cookie" do
it "retains the characteristics of the reference cookie" do
browser.cookies.set(name: "stealth", value: "omg", domain: "site.com")

expect(browser.cookies["stealth"].name).to eq("stealth")
expect(browser.cookies["stealth"].value).to eq("omg")
expect(browser.cookies["stealth"].domain).to eq("site.com")

cookie = browser.cookies["stealth"]

browser.cookies.clear

expect(browser.cookies["stealth"]).to eq(nil)

browser.cookies.set(cookie)

expect(browser.cookies["stealth"].name).to eq("stealth")
expect(browser.cookies["stealth"].value).to eq("omg")
expect(browser.cookies["stealth"].domain).to eq("site.com")

browser.cookies.clear

expect(browser.cookies["stealth"]).to eq(nil)

browser.cookies.set(cookie.attributes)

expect(browser.cookies["stealth"].name).to eq("stealth")
expect(browser.cookies["stealth"].value).to eq("omg")
expect(browser.cookies["stealth"].domain).to eq("site.com")
end

it "it prevents side effects for params" do
it "prevents side effects for params" do
cookie_params = { name: "stealth", value: "test_cookie" }

original_cookie_params = cookie_params.dup

browser.cookies.set(cookie_params)

expect(cookie_params).to eq(original_cookie_params)
end

it "it prevents side effects for cookie object" do
it "prevents side effects for cookie object" do
browser.cookies.set(name: "stealth", value: "omg")

cookie = browser.cookies["stealth"]

cookie.instance_variable_set(
:@attributes,
{ "name" => "stealth", "value" => "test_cookie", "domain" => "site.com" }
)

original_attributes = cookie.attributes.dup

browser.cookies.set(cookie)

expect(cookie.attributes).to eq(original_attributes)
end

it "can clear cookies" do
it "clears cookies" do
browser.go_to("/set_cookie")

browser.go_to("/get_cookie")
Expand All @@ -172,14 +147,14 @@ module Ferrum
expect(browser.body).to_not include("test_cookie")
end

it "can set cookies with an expires time" do
it "sets cookies with an expires time" do
time = Time.at(Time.now.to_i + 10_000)
browser.go_to
browser.cookies.set(name: "foo", value: "bar", expires: time)
expect(browser.cookies["foo"].expires).to eq(time)
end

it "can set cookies for given domain" do
it "sets cookies for given domain" do
port = server.port
browser.cookies.set(name: "stealth", value: "127.0.0.1")
browser.cookies.set(name: "stealth", value: "localhost", domain: "localhost")
Expand Down

0 comments on commit 6594c82

Please sign in to comment.