| <!doctype html> |
| <meta charset="utf-8"> |
| <title>Cookie Store: cookieStore handles special cookie names correctly (secure context)</title> |
| <link rel="help" href="https://github.com/WICG/cookie-store"> |
| <link rel="author" href="pwnall@chromium.org" title="Victor Costan"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script> |
| 'use strict'; |
| |
| ['__Secure-', '__Host-'].forEach(prefix => { |
| promise_test(async testCase => { |
| await cookieStore.set(`${prefix}cookie-name`, `secure-cookie-value`); |
| assert_equals( |
| (await cookieStore.get(`${prefix}cookie-name`)).value, |
| 'secure-cookie-value', |
| `Setting ${prefix} cookies should not fail in secure context`); |
| |
| try { await cookieStore.delete(`${prefix}cookie-name`); } catch (e) {} |
| }, `cookieStore.set with ${prefix} name on secure origin`); |
| |
| promise_test(async testCase => { |
| await cookieStore.set( |
| `${prefix}cookie-name`, `secure-cookie-value`, { |
| expires: Date.now() |
| }); |
| assert_equals(await cookieStore.get(`${prefix}cookie-name`), null); |
| try { await cookieStore.delete(`${prefix}cookie-name`); } catch (e) {} |
| }, `cookieStore.set of expired ${prefix} cookie name on secure origin`); |
| |
| promise_test(async testCase => { |
| assert_equals( |
| await cookieStore.delete(`${prefix}cookie-name`), undefined, |
| `Deleting ${prefix} cookies should not fail in secure context`); |
| }, `cookieStore.delete with ${prefix} name on secure origin`); |
| }); |
| |
| </script> |