mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-18 21:27:30 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
|
|
@ -0,0 +1,184 @@
|
|||
/*
|
||||
* Test Services.logins.searchLogins with the `schemeUpgrades` property.
|
||||
*/
|
||||
|
||||
const HTTP3_ORIGIN = "http://www3.example.com";
|
||||
const HTTPS_ORIGIN = "https://www.example.com";
|
||||
const HTTP_ORIGIN = "http://www.example.com";
|
||||
|
||||
/**
|
||||
* Returns a list of new nsILoginInfo objects that are a subset of the test
|
||||
* data, built to match the specified query.
|
||||
*
|
||||
* @param {Object} aQuery
|
||||
* Each property and value of this object restricts the search to those
|
||||
* entries from the test data that match the property exactly.
|
||||
*/
|
||||
function buildExpectedLogins(aQuery) {
|
||||
return TestData.loginList().filter(
|
||||
entry => Object.keys(aQuery).every(name => {
|
||||
if (name == "schemeUpgrades") {
|
||||
return true;
|
||||
}
|
||||
if (["hostname", "formSubmitURL"].includes(name)) {
|
||||
return LoginHelper.isOriginMatching(entry[name], aQuery[name], {
|
||||
schemeUpgrades: aQuery.schemeUpgrades,
|
||||
});
|
||||
}
|
||||
return entry[name] === aQuery[name];
|
||||
}));
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests the searchLogins function.
|
||||
*
|
||||
* @param {Object} aQuery
|
||||
* Each property and value of this object is translated to an entry in
|
||||
* the nsIPropertyBag parameter of searchLogins.
|
||||
* @param {Number} aExpectedCount
|
||||
* Number of logins from the test data that should be found. The actual
|
||||
* list of logins is obtained using the buildExpectedLogins helper, and
|
||||
* this value is just used to verify that modifications to the test data
|
||||
* don't make the current test meaningless.
|
||||
*/
|
||||
function checkSearch(aQuery, aExpectedCount) {
|
||||
do_print("Testing searchLogins for " + JSON.stringify(aQuery));
|
||||
|
||||
let expectedLogins = buildExpectedLogins(aQuery);
|
||||
do_check_eq(expectedLogins.length, aExpectedCount);
|
||||
|
||||
let outCount = {};
|
||||
let logins = Services.logins.searchLogins(outCount, newPropertyBag(aQuery));
|
||||
do_check_eq(outCount.value, expectedLogins.length);
|
||||
LoginTestUtils.assertLoginListsEqual(logins, expectedLogins);
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepare data for the following tests.
|
||||
*/
|
||||
add_task(function test_initialize() {
|
||||
for (let login of TestData.loginList()) {
|
||||
Services.logins.addLogin(login);
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Tests searchLogins with the `schemeUpgrades` property
|
||||
*/
|
||||
add_task(function test_search_schemeUpgrades_hostname() {
|
||||
// Hostname-only
|
||||
checkSearch({
|
||||
hostname: HTTPS_ORIGIN,
|
||||
}, 1);
|
||||
checkSearch({
|
||||
hostname: HTTPS_ORIGIN,
|
||||
schemeUpgrades: false,
|
||||
}, 1);
|
||||
checkSearch({
|
||||
hostname: HTTPS_ORIGIN,
|
||||
schemeUpgrades: undefined,
|
||||
}, 1);
|
||||
checkSearch({
|
||||
hostname: HTTPS_ORIGIN,
|
||||
schemeUpgrades: true,
|
||||
}, 2);
|
||||
});
|
||||
|
||||
/**
|
||||
* Same as above but replacing hostname with formSubmitURL.
|
||||
*/
|
||||
add_task(function test_search_schemeUpgrades_formSubmitURL() {
|
||||
checkSearch({
|
||||
formSubmitURL: HTTPS_ORIGIN,
|
||||
}, 2);
|
||||
checkSearch({
|
||||
formSubmitURL: HTTPS_ORIGIN,
|
||||
schemeUpgrades: false,
|
||||
}, 2);
|
||||
checkSearch({
|
||||
formSubmitURL: HTTPS_ORIGIN,
|
||||
schemeUpgrades: undefined,
|
||||
}, 2);
|
||||
checkSearch({
|
||||
formSubmitURL: HTTPS_ORIGIN,
|
||||
schemeUpgrades: true,
|
||||
}, 4);
|
||||
});
|
||||
|
||||
|
||||
add_task(function test_search_schemeUpgrades_hostname_formSubmitURL() {
|
||||
checkSearch({
|
||||
formSubmitURL: HTTPS_ORIGIN,
|
||||
hostname: HTTPS_ORIGIN,
|
||||
}, 1);
|
||||
checkSearch({
|
||||
formSubmitURL: HTTPS_ORIGIN,
|
||||
hostname: HTTPS_ORIGIN,
|
||||
schemeUpgrades: false,
|
||||
}, 1);
|
||||
checkSearch({
|
||||
formSubmitURL: HTTPS_ORIGIN,
|
||||
hostname: HTTPS_ORIGIN,
|
||||
schemeUpgrades: undefined,
|
||||
}, 1);
|
||||
checkSearch({
|
||||
formSubmitURL: HTTPS_ORIGIN,
|
||||
hostname: HTTPS_ORIGIN,
|
||||
schemeUpgrades: true,
|
||||
}, 2);
|
||||
checkSearch({
|
||||
formSubmitURL: HTTPS_ORIGIN,
|
||||
hostname: HTTPS_ORIGIN,
|
||||
schemeUpgrades: true,
|
||||
usernameField: "form_field_username",
|
||||
}, 2);
|
||||
checkSearch({
|
||||
formSubmitURL: HTTPS_ORIGIN,
|
||||
hostname: HTTPS_ORIGIN,
|
||||
passwordField: "form_field_password",
|
||||
schemeUpgrades: true,
|
||||
usernameField: "form_field_username",
|
||||
}, 2);
|
||||
checkSearch({
|
||||
formSubmitURL: HTTPS_ORIGIN,
|
||||
hostname: HTTPS_ORIGIN,
|
||||
httpRealm: null,
|
||||
passwordField: "form_field_password",
|
||||
schemeUpgrades: true,
|
||||
usernameField: "form_field_username",
|
||||
}, 2);
|
||||
});
|
||||
|
||||
/**
|
||||
* HTTP submitting to HTTPS
|
||||
*/
|
||||
add_task(function test_http_to_https() {
|
||||
checkSearch({
|
||||
formSubmitURL: HTTPS_ORIGIN,
|
||||
hostname: HTTP3_ORIGIN,
|
||||
httpRealm: null,
|
||||
schemeUpgrades: false,
|
||||
}, 1);
|
||||
checkSearch({
|
||||
formSubmitURL: HTTPS_ORIGIN,
|
||||
hostname: HTTP3_ORIGIN,
|
||||
httpRealm: null,
|
||||
schemeUpgrades: true,
|
||||
}, 2);
|
||||
});
|
||||
|
||||
/**
|
||||
* schemeUpgrades shouldn't cause downgrades
|
||||
*/
|
||||
add_task(function test_search_schemeUpgrades_downgrade() {
|
||||
checkSearch({
|
||||
formSubmitURL: HTTP_ORIGIN,
|
||||
hostname: HTTP_ORIGIN,
|
||||
}, 1);
|
||||
do_print("The same number should be found with schemeUpgrades since we're searching for HTTP");
|
||||
checkSearch({
|
||||
formSubmitURL: HTTP_ORIGIN,
|
||||
hostname: HTTP_ORIGIN,
|
||||
schemeUpgrades: true,
|
||||
}, 1);
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue