diff options
Diffstat (limited to '')
-rw-r--r-- | remote/cdp/test/browser/network/browser_setCookies.js | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/remote/cdp/test/browser/network/browser_setCookies.js b/remote/cdp/test/browser/network/browser_setCookies.js new file mode 100644 index 0000000000..53c6021e1c --- /dev/null +++ b/remote/cdp/test/browser/network/browser_setCookies.js @@ -0,0 +1,64 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +const ALT_HOST = "foo.example.org"; +const DEFAULT_HOST = "example.org"; + +add_task(async function failureWithoutArguments({ client }) { + const { Network } = client; + + await Assert.rejects( + Network.setCookies(), + err => err.message.includes("Invalid parameters (cookies: array expected)"), + "Fails without any arguments" + ); +}); + +add_task(async function setCookies({ client }) { + const { Network } = client; + + const expected_cookies = [ + { + name: "foo", + value: "bar", + domain: DEFAULT_HOST, + }, + { + name: "user", + value: "password", + domain: ALT_HOST, + }, + ]; + + try { + await Network.setCookies({ cookies: expected_cookies }); + + const cookies = getCookies(); + cookies.sort((a, b) => a.name.localeCompare(b.name)); + is(cookies.length, expected_cookies.length, "Correct number of cookies"); + assertCookie(cookies[0], expected_cookies[0]); + assertCookie(cookies[1], expected_cookies[1]); + } finally { + Services.cookies.removeAll(); + } +}); + +add_task(async function setCookiesWithInvalidField({ client }) { + const { Network } = client; + + const cookies = [ + { + name: "foo", + value: "bar", + domain: "", + }, + ]; + + await Assert.rejects( + Network.setCookies({ cookies }), + err => err.message.includes("Invalid cookie fields"), + "Fails with an invalid field" + ); +}); |