1
1
// META: title=Cookie Store API: cookieStore.set() arguments
2
+ // META: script=resources/cookie-test-helpers.js
2
3
// META: global=window,serviceworker
3
4
4
5
'use strict' ;
@@ -8,7 +9,7 @@ promise_test(async testCase => {
8
9
9
10
await cookieStore . set ( 'cookie-name' , 'cookie-value' ) ;
10
11
testCase . add_cleanup ( async ( ) => {
11
- await cookieStore . delete ( ' cookie-name' ) ;
12
+ await setCookieStringHttp ( ` cookie-name=deleted; Max-Age=0` ) ;
12
13
} ) ;
13
14
14
15
const cookie = await cookieStore . get ( 'cookie-name' ) ;
@@ -21,7 +22,7 @@ promise_test(async testCase => {
21
22
22
23
await cookieStore . set ( { name : 'cookie-name' , value : 'cookie-value' } ) ;
23
24
testCase . add_cleanup ( async ( ) => {
24
- await cookieStore . delete ( ' cookie-name' ) ;
25
+ await setCookieStringHttp ( ` cookie-name=deleted; Max-Age=0` ) ;
25
26
} ) ;
26
27
const cookie = await cookieStore . get ( 'cookie-name' ) ;
27
28
assert_equals ( cookie . name , 'cookie-name' ) ;
@@ -42,7 +43,7 @@ promise_test(async testCase => {
42
43
await cookieStore . delete ( 'cookie-name' ) ;
43
44
cookieStore . set ( 'cookie-name' , 'suspicious-value=resembles-name-and-value' ) ;
44
45
testCase . add_cleanup ( async ( ) => {
45
- await cookieStore . delete ( ' cookie-name' ) ;
46
+ await setCookieStringHttp ( ` cookie-name=deleted; Max-Age=0` ) ;
46
47
} ) ;
47
48
const cookie = await cookieStore . get ( 'cookie-name' ) ;
48
49
assert_equals ( cookie . name , 'cookie-name' ) ;
@@ -81,7 +82,7 @@ promise_test(async testCase => {
81
82
value : 'cookie-value' ,
82
83
expires : new Date ( tenYearsFromNow ) } ) ;
83
84
testCase . add_cleanup ( async ( ) => {
84
- await cookieStore . delete ( ' cookie-name' ) ;
85
+ await setCookieStringHttp ( ` cookie-name=deleted; Max-Age=0` ) ;
85
86
} ) ;
86
87
const cookie = await cookieStore . get ( 'cookie-name' ) ;
87
88
assert_equals ( cookie . name , 'cookie-name' ) ;
@@ -98,7 +99,7 @@ promise_test(async testCase => {
98
99
value : 'cookie-value' ,
99
100
expires : new Date ( tenYearsAgo ) } ) ;
100
101
testCase . add_cleanup ( async ( ) => {
101
- await cookieStore . delete ( ' cookie-name' ) ;
102
+ await setCookieStringHttp ( ` cookie-name=deleted; Max-Age=0` ) ;
102
103
} ) ;
103
104
const cookie = await cookieStore . get ( 'cookie-name' ) ;
104
105
assert_equals ( cookie , null ) ;
@@ -112,7 +113,7 @@ promise_test(async testCase => {
112
113
await cookieStore . set (
113
114
{ name : 'cookie-name' , value : 'cookie-value' , expires : tenYearsFromNow } ) ;
114
115
testCase . add_cleanup ( async ( ) => {
115
- await cookieStore . delete ( ' cookie-name' ) ;
116
+ await setCookieStringHttp ( ` cookie-name=deleted; Max-Age=0` ) ;
116
117
} ) ;
117
118
const cookie = await cookieStore . get ( 'cookie-name' ) ;
118
119
assert_equals ( cookie . name , 'cookie-name' ) ;
@@ -127,7 +128,7 @@ promise_test(async testCase => {
127
128
await cookieStore . set (
128
129
{ name : 'cookie-name' , value : 'cookie-value' , expires : tenYearsAgo } ) ;
129
130
testCase . add_cleanup ( async ( ) => {
130
- await cookieStore . delete ( ' cookie-name' ) ;
131
+ await setCookieStringHttp ( ` cookie-name=deleted; Max-Age=0` ) ;
131
132
} ) ;
132
133
const cookie = await cookieStore . get ( 'cookie-name' ) ;
133
134
assert_equals ( cookie , null ) ;
@@ -156,7 +157,7 @@ promise_test(async testCase => {
156
157
await cookieStore . set (
157
158
{ name : 'cookie-name' , value : 'cookie-value' , domain : currentDomain } ) ;
158
159
testCase . add_cleanup ( async ( ) => {
159
- await cookieStore . delete ( { name : ' cookie-name' , domain : currentDomain } ) ;
160
+ await setCookieStringHttp ( ` cookie-name=deleted; Domain= ${ currentDomain } ; Path=/; Max-Age=0` ) ;
160
161
} ) ;
161
162
const cookie = await cookieStore . get ( 'cookie-name' ) ;
162
163
assert_equals ( cookie . name , 'cookie-name' ) ;
@@ -195,12 +196,12 @@ promise_test(async testCase => {
195
196
196
197
await cookieStore . set ( 'cookie-name' , 'cookie-value1' ) ;
197
198
testCase . add_cleanup ( async ( ) => {
198
- await cookieStore . delete ( ' cookie-name' ) ;
199
+ await setCookieStringHttp ( ` cookie-name=deleted; Path=/; Max-Age=0` ) ;
199
200
} ) ;
200
201
await cookieStore . set (
201
202
{ name : 'cookie-name' , value : 'cookie-value2' , domain : currentDomain } ) ;
202
203
testCase . add_cleanup ( async ( ) => {
203
- await cookieStore . delete ( { name : ' cookie-name' , domain : currentDomain } ) ;
204
+ await setCookieStringHttp ( ` cookie-name=deleted; Domain= ${ currentDomain } ; Path=/; Max-Age=0` ) ;
204
205
} ) ;
205
206
206
207
const cookies = await cookieStore . getAll ( 'cookie-name' ) ;
@@ -224,7 +225,7 @@ promise_test(async testCase => {
224
225
await cookieStore . set (
225
226
{ name : 'cookie-name' , value : 'cookie-value' , path : currentDirectory } ) ;
226
227
testCase . add_cleanup ( async ( ) => {
227
- await cookieStore . delete ( { name : ' cookie-name' , path : currentDirectory } ) ;
228
+ await setCookieStringHttp ( ` cookie-name=deleted; Path= ${ currentDirectory } ; Max-Age=0` ) ;
228
229
} ) ;
229
230
const cookie = await cookieStore . get ( 'cookie-name' ) ;
230
231
assert_equals ( cookie . name , 'cookie-name' ) ;
@@ -243,7 +244,7 @@ promise_test(async testCase => {
243
244
await cookieStore . set (
244
245
{ name : 'cookie-name' , value : 'cookie-value' , path : subDirectory } ) ;
245
246
testCase . add_cleanup ( async ( ) => {
246
- await cookieStore . delete ( { name : ' cookie-name' , path : subDirectory } ) ;
247
+ await setCookieStringHttp ( ` cookie-name=deleted; Path= ${ subDirectory } ; Max-Age=0` ) ;
247
248
} ) ;
248
249
const cookie = await cookieStore . get ( 'cookie-name' ) ;
249
250
assert_equals ( cookie , null ) ;
@@ -254,12 +255,13 @@ promise_test(async testCase => {
254
255
255
256
await cookieStore . set ( 'cookie-name' , 'cookie-old-value' ) ;
256
257
testCase . add_cleanup ( async ( ) => {
257
- await cookieStore . delete ( ' cookie-name' ) ;
258
+ await setCookieStringHttp ( ` cookie-name=deleted; Max-Age=0` ) ;
258
259
} ) ;
260
+
259
261
await cookieStore . set (
260
262
{ name : 'cookie-name' , value : 'cookie-new-value' , path : '/' } ) ;
261
263
testCase . add_cleanup ( async ( ) => {
262
- await cookieStore . delete ( { name : ' cookie-name' , path : '/' } ) ;
264
+ await setCookieStringHttp ( ` cookie-name=deleted; Path=/; Max-Age=0` ) ;
263
265
} ) ;
264
266
265
267
const cookies = await cookieStore . getAll ( 'cookie-name' ) ;
@@ -277,13 +279,34 @@ promise_test(async testCase => {
277
279
await cookieStore . set (
278
280
{ name : 'cookie-name' , value : 'cookie-value' , path : currentDirectory } ) ;
279
281
testCase . add_cleanup ( async ( ) => {
280
- await cookieStore . delete ( { name : ' cookie-name' , path : currentDirectory } ) ;
282
+ await setCookieStringHttp ( ` cookie-name=deleted; Path= ${ currentDirectory } /; Max-Age=0` ) ;
281
283
} ) ;
284
+ await setCookieStringHttp ( `cookie-name=deleted; Path=${ currentDirectory } ; Max-Age=0` ) ;
282
285
const cookie = await cookieStore . get ( 'cookie-name' ) ;
283
- assert_equals ( cookie . name , 'cookie-name' ) ;
284
- assert_equals ( cookie . value , 'cookie-value' ) ;
285
- assert_equals ( cookie . path , currentDirectory + '/' ) ;
286
- } , 'cookieStore.set adds / to path that does not end with /' ) ;
286
+ assert_equals ( cookie , null ) ;
287
+ } , 'cookieStore.set does not add / to path that does not end with /' ) ;
288
+
289
+ promise_test ( async testCase => {
290
+ if ( typeof self . document === 'undefined' ) {
291
+ // The test is being run from a service worker context where document is undefined
292
+ testCase . done ( ) ;
293
+ return ;
294
+ }
295
+ const currentUrl = new URL ( self . location . href ) ;
296
+ const currentPath = currentUrl . pathname ;
297
+ const currentDirectory = currentPath . substr ( 0 , currentPath . lastIndexOf ( '/' ) ) ;
298
+ await setCookieStringDocument ( 'cookie-name=cookie-value; path=' + currentDirectory ) ;
299
+ await cookieStore . set (
300
+ { name : 'cookie-name' , value : 'new-cookie-value' , path : currentDirectory } ) ;
301
+ testCase . add_cleanup ( async ( ) => {
302
+ await setCookieStringHttp ( `cookie-name=deleted; Path=${ currentDirectory } ; Max-Age=0` ) ;
303
+ await setCookieStringHttp ( `cookie-name=deleted; Path=${ currentDirectory } /; Max-Age=0` ) ;
304
+ } ) ;
305
+ const cookies = await cookieStore . getAll ( 'cookie-name' ) ;
306
+ assert_equals ( cookies . length , 1 ) ;
307
+ assert_equals ( cookies [ 0 ] . name , 'cookie-name' ) ;
308
+ assert_equals ( cookies [ 0 ] . value , 'cookie-new-value' ) ;
309
+ } , 'cookieStore.set can modify a cookie set by document.cookie if document is defined' ) ;
287
310
288
311
promise_test ( async testCase => {
289
312
const currentUrl = new URL ( self . location . href ) ;
@@ -299,7 +322,7 @@ promise_test(async testCase => {
299
322
promise_test ( async testCase => {
300
323
await cookieStore . set ( 'cookie-name' , 'old-cookie-value' ) ;
301
324
testCase . add_cleanup ( async ( ) => {
302
- await cookieStore . delete ( ' cookie-name' ) ;
325
+ await setCookieStringHttp ( ` cookie-name=deleted; Max-Age=0` ) ;
303
326
} ) ;
304
327
305
328
const cookie_attributes = await cookieStore . get ( 'cookie-name' ) ;
0 commit comments