/* 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" ); });