gecko-dev/toolkit/components/passwordmgr/test/unit/test_displayOrigin.js
Sean Feng 4b0b0f1f42 Bug 1783497 - Update LoginInfo related tests in passwordmgr for recent chrome url changes r=smaug,sfoster,credential-management-reviewers,sgalich
These tests expect `Service.io.newURI` raises exception when the given
urls are chrome urls. Since we no longer raise exception for
chrome url canonicalization failures, the tests need to be updated.
Plus, this should be fine because even without the canonicalization changes,
using a chrome url like "chrome://path/path/path" would raise exception too.

Differential Revision: https://phabricator.services.mozilla.com/D159591
2022-10-24 15:21:29 +00:00

43 lines
1.3 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
/**
* Test nsILoginInfo.displayOrigin
*/
"use strict";
add_task(function test_displayOrigin() {
// Trying to access `displayOrigin` for each login shouldn't throw.
for (let loginInfo of TestData.loginList()) {
let { displayOrigin } = loginInfo;
info(loginInfo.origin);
info(displayOrigin);
Assert.equal(typeof displayOrigin, "string", "Check type");
Assert.greater(displayOrigin.length, 0, "Check length");
if (loginInfo.origin.startsWith("file://")) {
// Fails to create the URL
Assert.ok(displayOrigin.startsWith(loginInfo.origin), "Contains origin");
} else {
Assert.ok(
displayOrigin.startsWith(loginInfo.origin.replace(/.+:\/\//, "")),
"Contains domain"
);
}
let matches;
if ((matches = loginInfo.origin.match(/:([0-9]+)$/))) {
Assert.ok(displayOrigin.includes(matches[1]), "Check port is included");
}
Assert.ok(!displayOrigin.includes("null"), "Doesn't contain `null`");
Assert.ok(
!displayOrigin.includes("undefined"),
"Doesn't contain `undefined`"
);
if (loginInfo.httpRealm !== null) {
Assert.ok(
displayOrigin.includes(loginInfo.httpRealm),
"Contains httpRealm"
);
}
}
});