cookieStore_getAll_arguments.https.any.js (7454B)
1 // META: title=Cookie Store API: cookieStore.getAll() arguments 2 // META: global=window,serviceworker 3 4 'use strict'; 5 6 promise_test(async testCase => { 7 await cookieStore.set('cookie-name', 'cookie-value'); 8 testCase.add_cleanup(async () => { 9 await cookieStore.delete('cookie-name'); 10 }); 11 await cookieStore.set('cookie-name-2', 'cookie-value-2'); 12 testCase.add_cleanup(async () => { 13 await cookieStore.delete('cookie-name-2'); 14 }); 15 16 const cookies = await cookieStore.getAll(); 17 cookies.sort((a, b) => a.name.localeCompare(b.name)); 18 assert_equals(cookies.length, 2); 19 assert_equals(cookies[0].name, 'cookie-name'); 20 assert_equals(cookies[0].value, 'cookie-value'); 21 assert_equals(cookies[1].name, 'cookie-name-2'); 22 assert_equals(cookies[1].value, 'cookie-value-2'); 23 }, 'cookieStore.getAll with no arguments'); 24 25 promise_test(async testCase => { 26 await cookieStore.set('cookie-name', 'cookie-value'); 27 testCase.add_cleanup(async () => { 28 await cookieStore.delete('cookie-name'); 29 }); 30 await cookieStore.set('cookie-name-2', 'cookie-value-2'); 31 testCase.add_cleanup(async () => { 32 await cookieStore.delete('cookie-name-2'); 33 }); 34 35 const cookies = await cookieStore.getAll({}); 36 cookies.sort((a, b) => a.name.localeCompare(b.name)); 37 assert_equals(cookies.length, 2); 38 assert_equals(cookies[0].name, 'cookie-name'); 39 assert_equals(cookies[0].value, 'cookie-value'); 40 assert_equals(cookies[1].name, 'cookie-name-2'); 41 assert_equals(cookies[1].value, 'cookie-value-2'); 42 }, 'cookieStore.getAll with empty options'); 43 44 promise_test(async testCase => { 45 await cookieStore.set('cookie-name', 'cookie-value'); 46 testCase.add_cleanup(async () => { 47 await cookieStore.delete('cookie-name'); 48 }); 49 await cookieStore.set('cookie-name-2', 'cookie-value-2'); 50 testCase.add_cleanup(async () => { 51 await cookieStore.delete('cookie-name-2'); 52 }); 53 54 const cookies = await cookieStore.getAll('cookie-name'); 55 assert_equals(cookies.length, 1); 56 assert_equals(cookies[0].name, 'cookie-name'); 57 assert_equals(cookies[0].value, 'cookie-value'); 58 }, 'cookieStore.getAll with positional name'); 59 60 promise_test(async testCase => { 61 await cookieStore.set('cookie-name', 'cookie-value'); 62 testCase.add_cleanup(async () => { 63 await cookieStore.delete('cookie-name'); 64 }); 65 await cookieStore.set('cookie-name-2', 'cookie-value-2'); 66 testCase.add_cleanup(async () => { 67 await cookieStore.delete('cookie-name-2'); 68 }); 69 70 const cookies = await cookieStore.getAll({ name: 'cookie-name' }); 71 assert_equals(cookies.length, 1); 72 assert_equals(cookies[0].name, 'cookie-name'); 73 assert_equals(cookies[0].value, 'cookie-value'); 74 }, 'cookieStore.getAll with name in options'); 75 76 promise_test(async testCase => { 77 await cookieStore.set('cookie-name', 'cookie-value'); 78 testCase.add_cleanup(async () => { 79 await cookieStore.delete('cookie-name'); 80 }); 81 await cookieStore.set('cookie-name-2', 'cookie-value-2'); 82 testCase.add_cleanup(async () => { 83 await cookieStore.delete('cookie-name-2'); 84 }); 85 86 const cookies = await cookieStore.getAll('cookie-name', 87 { name: 'wrong-cookie-name' }); 88 assert_equals(cookies.length, 1); 89 assert_equals(cookies[0].name, 'cookie-name'); 90 assert_equals(cookies[0].value, 'cookie-value'); 91 }, 'cookieStore.getAll with name in both positional arguments and options'); 92 93 promise_test(async testCase => { 94 await cookieStore.set('cookie-name', 'cookie-value'); 95 testCase.add_cleanup(async () => { 96 await cookieStore.delete('cookie-name'); 97 }); 98 99 let target_url = self.location.href; 100 if (self.GLOBAL.isWorker()) { 101 target_url = target_url + '/path/within/scope'; 102 } 103 104 const cookies = await cookieStore.getAll({ url: target_url }); 105 assert_equals(cookies.length, 1); 106 assert_equals(cookies[0].name, 'cookie-name'); 107 assert_equals(cookies[0].value, 'cookie-value'); 108 }, 'cookieStore.getAll with absolute url in options'); 109 110 promise_test(async testCase => { 111 await cookieStore.set('cookie-name', 'cookie-value'); 112 testCase.add_cleanup(async () => { 113 await cookieStore.delete('cookie-name'); 114 }); 115 116 let target_path = self.location.pathname; 117 if (self.GLOBAL.isWorker()) { 118 target_path = target_path + '/path/within/scope'; 119 } 120 121 const cookies = await cookieStore.getAll({ url: target_path }); 122 assert_equals(cookies.length, 1); 123 assert_equals(cookies[0].name, 'cookie-name'); 124 assert_equals(cookies[0].value, 'cookie-value'); 125 }, 'cookieStore.getAll with relative url in options'); 126 127 if (!self.GLOBAL.isWorker()) { 128 promise_test(async testCase => { 129 const invalid_url = 130 `${self.location.protocol}//${self.location.host}/different/path`; 131 await promise_rejects_js(testCase, TypeError, cookieStore.getAll( 132 { url: invalid_url })); 133 }, 'cookieStore.getAll with invalid url path in options'); 134 } else { 135 promise_test(async testCase => { 136 await cookieStore.set('cookie-name', 'cookie-value'); 137 testCase.add_cleanup(async () => { 138 await cookieStore.delete('cookie-name'); 139 }); 140 141 const sameorigin_url = 142 `${self.location.protocol}//${self.location.host}/different/path`; 143 const cookies = await cookieStore.getAll({ url: sameorigin_url }); 144 assert_equals(cookies.length, 1); 145 assert_equals(cookies[0].name, 'cookie-name'); 146 assert_equals(cookies[0].value, 'cookie-value'); 147 }, 'cookieStore.getAll with same-origin url path in options'); 148 } 149 150 promise_test(async testCase => { 151 await cookieStore.set('cookie-name', 'cookie-value'); 152 testCase.add_cleanup(async () => { 153 await cookieStore.delete('cookie-name'); 154 }); 155 156 const invalid_url = 157 `${self.location.protocol}//www.example.com${self.location.pathname}`; 158 await promise_rejects_js(testCase, TypeError, cookieStore.getAll( 159 { url: invalid_url })); 160 }, 'cookieStore.getAll with invalid url host in options'); 161 162 promise_test(async testCase => { 163 await cookieStore.set('cookie-name', 'cookie-value'); 164 testCase.add_cleanup(async () => { 165 await cookieStore.delete('cookie-name'); 166 }); 167 168 let target_url = self.location.href; 169 if (self.GLOBAL.isWorker()) { 170 target_url = target_url + '/path/within/scope'; 171 } 172 173 target_url = target_url + "#foo"; 174 175 const cookies = await cookieStore.getAll({ url: target_url }); 176 assert_equals(cookies.length, 1); 177 assert_equals(cookies[0].name, 'cookie-name'); 178 assert_equals(cookies[0].value, 'cookie-value'); 179 }, 'cookieStore.getAll with absolute url with fragment in options'); 180 181 promise_test(async testCase => { 182 if (!self.GLOBAL.isWorker()) { 183 await cookieStore.set('cookie-name', 'cookie-value'); 184 testCase.add_cleanup(async () => { 185 await cookieStore.delete('cookie-name'); 186 }); 187 188 self.location = "#foo"; 189 let target_url = self.location.href; 190 191 const cookies = await cookieStore.getAll({ url: target_url }); 192 assert_equals(cookies.length, 1); 193 assert_equals(cookies[0].name, 'cookie-name'); 194 assert_equals(cookies[0].value, 'cookie-value'); 195 } 196 }, 'cookieStore.getAll with absolute different url in options'); 197 198 promise_test(async testCase => { 199 await cookieStore.set('cookie-name', 'cookie-value'); 200 testCase.add_cleanup(async () => { 201 await cookieStore.delete('cookie-name'); 202 }); 203 const cookies = await cookieStore.getAll(' cookie-name \t'); 204 assert_equals(cookies.length, 1); 205 assert_equals(cookies[0].name, 'cookie-name'); 206 assert_equals(cookies[0].value, 'cookie-value'); 207 }, 'cookieStore.getAll with whitespace');