diff --git a/CHANGELOG.md b/CHANGELOG.md index 2aeaaa9d..3db7763e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 diff --git a/README.md b/README.md index 99fa0349..6f4b9bb8 100644 --- a/README.md +++ b/README.md @@ -717,11 +717,11 @@ Returns cookie browser.cookies["NID"] # => "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` @@ -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"] # => - browser.cookies.set(nid_cookie) # => true ``` diff --git a/spec/cookies_spec.rb b/spec/cookies_spec.rb index 49244d9f..2ec4aa7f 100644 --- a/spec/cookies_spec.rb +++ b/spec/cookies_spec.rb @@ -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"] @@ -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", @@ -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") @@ -56,66 +56,47 @@ 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") @@ -123,9 +104,7 @@ module Ferrum 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") @@ -133,9 +112,8 @@ module Ferrum 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) @@ -143,16 +121,13 @@ module Ferrum 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) @@ -160,7 +135,7 @@ module Ferrum 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") @@ -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")