This repository has been archived by the owner on Nov 9, 2017. It is now read-only.
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Build out Cookie record and accompanying handling, make sure is worki…
…ng in Taxi API, fixes #44
- Loading branch information
Showing
5 changed files
with
94 additions
and
47 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,42 @@ | |||
(ns clj-webdriver.cookie) | |||
|
|||
(defrecord Cookie [cookie name value path expiry domain secure?]) | |||
|
|||
(defn new-cookie* | |||
([name value] (org.openqa.selenium.Cookie. name value)) | |||
([name value path] (org.openqa.selenium.Cookie. name value path)) | |||
([name value path expiry] (org.openqa.selenium.Cookie. name value path expiry)) | |||
([name value domain path expiry] (org.openqa.selenium.Cookie. name value domain path expiry)) | |||
([name value domain path expiry secure?] (org.openqa.selenium.Cookie. name value domain path expiry secure?))) | |||
|
|||
(defn- nn | |||
[& sexprs] | |||
(not (some nil? sexprs))) | |||
|
|||
(defn init-cookie | |||
"Instantiate a Cookie record. Keys can be: `:name`, `:value`, `:domain`, `:path`, `:expiry`, or `:secure?`. The keys `:name` and `:value` are not optional." | |||
[{:keys [cookie name value domain path expiry secure?] :or {cookie nil domain nil path nil expiry nil secure? nil} :as cookie-spec}] | |||
{:pre [(or cookie | |||
(nn (:name cookie-spec) (:value cookie-spec)))]} | |||
(let [cookie-obj (cond | |||
(nn cookie) cookie | |||
(nn domain path expiry secure?) (new-cookie* name value domain path expiry secure?) | |||
(nn domain path expiry) (new-cookie* name value domain path expiry) | |||
(nn path expiry) (new-cookie* name value path expiry) | |||
(nn path) (new-cookie* name value path) | |||
:else (new-cookie* name value)) | |||
{:keys [name value path domain expiry secure?]} (if cookie | |||
{:name (.getName cookie) | |||
:value (.getValue cookie) | |||
:path (.getPath cookie) | |||
:domain (.getDomain cookie) | |||
:expiry (.getExpiry cookie) | |||
:secure? (.isSecure cookie)} | |||
{:name name | |||
:value value | |||
:path path | |||
:domain domain | |||
:expiry expiry | |||
:secure? secure?})] | |||
(Cookie. cookie-obj name value path expiry domain secure?))) | |||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -1,27 +1,11 @@ | |||
(ns clj-webdriver.options | (ns clj-webdriver.options) | ||
(:import org.openqa.selenium.Cookie)) | |||
|
|
||
(defprotocol IOptions | (defprotocol IOptions | ||
"Options interface, including cookie and timeout handling" | "Options interface, including cookie and timeout handling" | ||
(add-cookie [driver cookie] "Add a new cookie to the browser session") | (add-cookie [driver cookie-spec] "Add a new cookie to the browser session") | ||
(delete-cookie-named [driver cookie] "Delete a cookie given its name") | (delete-cookie-named [driver cookie-name] "Delete a cookie given its name") | ||
(delete-cookie [driver cookie] "Delete a cookie given a cookie instance") | (delete-cookie [driver cookie-spec] "Delete a cookie given a cookie instance") | ||
(delete-all-cookies [driver] "Delete all cookies defined in the current session") | (delete-all-cookies [driver] "Delete all cookies defined in the current session") | ||
(cookies [driver] "Retrieve a set of cookies defined in the current session") | (cookies [driver] "Retrieve a set of cookies defined in the current session") | ||
(cookie-named [driver name] "Retrieve a cookie object given its name")) | (cookie-named [driver cookie-name] "Retrieve a cookie object given its name")) | ||
|
|
||
(defn new-cookie | |||
"Create a new cookie instance" | |||
([name value] (new-cookie name value "/" nil)) | |||
([name value path] (new-cookie name value path nil)) | |||
([name value path date] (new Cookie name value path date))) | |||
|
|||
(defn cookie-name | |||
"Retrieve the name of a particular cookie" | |||
[cookie] | |||
(.getName cookie)) | |||
|
|||
(defn cookie-value | |||
"Retrieve the value of a particular cookie" | |||
[cookie] | |||
(.getValue cookie)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters