@@ -56,6 +56,110 @@ module Ferrum
56
56
expect ( browser . body ) . to_not include ( "test_cookie" )
57
57
end
58
58
59
+ it "can set a retrieved cookie" do
60
+ browser . cookies . set ( name : "stealth" , value : "omg" )
61
+
62
+ browser . go_to ( "/get_cookie" )
63
+
64
+ expect ( browser . body ) . to include ( "omg" )
65
+
66
+ cookie = browser . cookies . all . values . first
67
+
68
+ browser . cookies . clear
69
+
70
+ browser . go_to ( "/get_cookie" )
71
+
72
+ expect ( browser . body ) . to_not include ( "omg" )
73
+
74
+ browser . cookies . set ( cookie )
75
+
76
+ browser . go_to ( "/get_cookie" )
77
+
78
+ expect ( browser . body ) . to include ( "omg" )
79
+ end
80
+
81
+ it "can set a retrieved browser cookie" do
82
+ browser . go_to ( "/set_cookie" )
83
+
84
+ cookie = browser . cookies [ "stealth" ]
85
+
86
+ expect ( cookie . name ) . to eq ( "stealth" )
87
+ expect ( cookie . value ) . to eq ( "test_cookie" )
88
+
89
+ browser . go_to ( "/get_cookie" )
90
+
91
+ expect ( browser . body ) . to include ( "test_cookie" )
92
+
93
+ browser . cookies . clear
94
+
95
+ browser . go_to ( "/get_cookie" )
96
+
97
+ expect ( browser . body ) . not_to include ( "test_cookie" )
98
+
99
+ browser . cookies . set ( cookie )
100
+
101
+ browser . go_to ( "/get_cookie" )
102
+
103
+ expect ( browser . body ) . to include ( "test_cookie" )
104
+ end
105
+
106
+ it "it retains the characteristics of the reference cookie" do
107
+ browser . cookies . set ( name : "stealth" , value : "omg" , domain : "site.com" )
108
+
109
+ expect ( browser . cookies [ "stealth" ] . name ) . to eq ( "stealth" )
110
+ expect ( browser . cookies [ "stealth" ] . value ) . to eq ( "omg" )
111
+ expect ( browser . cookies [ "stealth" ] . domain ) . to eq ( "site.com" )
112
+
113
+ cookie = browser . cookies [ "stealth" ]
114
+
115
+ browser . cookies . clear
116
+
117
+ expect ( browser . cookies [ "stealth" ] ) . to eq ( nil )
118
+
119
+ browser . cookies . set ( cookie )
120
+
121
+ expect ( browser . cookies [ "stealth" ] . name ) . to eq ( "stealth" )
122
+ expect ( browser . cookies [ "stealth" ] . value ) . to eq ( "omg" )
123
+ expect ( browser . cookies [ "stealth" ] . domain ) . to eq ( "site.com" )
124
+
125
+ browser . cookies . clear
126
+
127
+ expect ( browser . cookies [ "stealth" ] ) . to eq ( nil )
128
+
129
+ browser . cookies . set ( cookie . attributes )
130
+
131
+ expect ( browser . cookies [ "stealth" ] . name ) . to eq ( "stealth" )
132
+ expect ( browser . cookies [ "stealth" ] . value ) . to eq ( "omg" )
133
+ expect ( browser . cookies [ "stealth" ] . domain ) . to eq ( "site.com" )
134
+ end
135
+
136
+ it "it prevents side effects for params" do
137
+ cookie_params = { name : "stealth" , value : "test_cookie" }
138
+
139
+ original_cookie_params = cookie_params . dup
140
+
141
+ browser . cookies . set ( cookie_params )
142
+
143
+ expect ( cookie_params ) . to eq ( original_cookie_params )
144
+ end
145
+
146
+ it "it prevents side effects for cookie object" do
147
+ browser . cookies . set ( name : "stealth" , value : "omg" )
148
+
149
+ cookie = browser . cookies [ "stealth" ]
150
+
151
+ cookie . instance_variable_set (
152
+ :@attributes ,
153
+ { "name" => "stealth" , "value" => "test_cookie" , "domain" => "site.com" }
154
+ )
155
+
156
+ original_attributes = cookie . attributes . dup
157
+
158
+ browser . cookies . set ( cookie )
159
+
160
+ expect ( cookie . attributes ) . to eq ( original_attributes )
161
+ end
162
+
59
163
it "can clear cookies" do
60
164
browser . go_to ( "/set_cookie" )
61
165
0 commit comments