Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

/* Any copyright is dedicated to the Public Domain.
"use strict";
const SERVER_URL_PREF = "browser.contentsharing.server.url";
const TIMEOUT_PREF = "browser.contentsharing.automation.detectLoginTimeoutMS";
add_setup(function () {
let serverURL = Services.prefs.getStringPref(SERVER_URL_PREF, "");
Services.prefs.setStringPref(SERVER_URL_PREF, "https://localhost");
registerCleanupFunction(() => {
Services.prefs.setStringPref(SERVER_URL_PREF, serverURL);
Services.prefs.clearUserPref(TIMEOUT_PREF);
});
});
add_task(async function test_detectLogin_resolves_when_auth_cookie_set() {
clearCookies();
Assert.ok(
!ContentSharingUtils.observingCookieChange,
"We should not be observing yet."
);
Services.prefs.setIntPref(TIMEOUT_PREF, 2000);
let promise = ContentSharingUtils.detectLogin();
setCookie("auth", 1);
try {
await promise;
Assert.ok(true, "detectLogin resolved after the auth cookie was set");
} catch (ex) {
Assert.ok(
false,
"detectLogin did not resolve after the auth cookie was set"
);
} finally {
clearCookies();
}
});
add_task(async function test_detectLogin_rejects_on_timeout() {
clearCookies();
Assert.ok(
!ContentSharingUtils.observingCookieChange,
"We should not be observing yet."
);
Services.prefs.setIntPref(TIMEOUT_PREF, 50);
let promise = ContentSharingUtils.detectLogin();
try {
await promise;
Assert.ok(
false,
"detectLogin did not reject when the auth cookie was not set"
);
} catch (ex) {
Assert.ok(
true,
"detectLogin should reject if the auth cookie is not set before timeout"
);
} finally {
clearCookies();
}
});
// If the wrong cookie is set, we should still reject.
add_task(
async function test_detectLogin_not_resolves_when_session_cookie_set() {
clearCookies();
Assert.ok(
!ContentSharingUtils.observingCookieChange,
"We should not be observing yet."
);
Services.prefs.setIntPref(TIMEOUT_PREF, 50);
let promise = ContentSharingUtils.detectLogin();
setCookie("sessionid", "1234567890");
try {
await promise;
Assert.ok(
false,
"detectLogin did not reject when the auth cookie was not set"
);
} catch (ex) {
Assert.ok(
true,
"detectLogin should reject if the auth cookie is not set before timeout"
);
} finally {
clearCookies();
}
}
);