fune/browser/base/content/test/urlbar/browser_urlbarAutoFillTrimURLs.js
Mark Banner 21ce8768db Bug 1322747 - Show https in autofill heuristic results. r=mak
MozReview-Commit-ID: GlOoeQBOMIi

--HG--
extra : rebase_source : abd71c481c6246c75d6c1c09861a7619ee2ce834
2017-01-26 15:13:19 +00:00

116 lines
4.2 KiB
JavaScript

// This test ensures that autoFilled values are not trimmed, unless the user
// selects from the autocomplete popup.
add_task(function* setup() {
const PREF_TRIMURL = "browser.urlbar.trimURLs";
const PREF_AUTOFILL = "browser.urlbar.autoFill";
registerCleanupFunction(function* () {
Services.prefs.clearUserPref(PREF_TRIMURL);
Services.prefs.clearUserPref(PREF_AUTOFILL);
yield PlacesTestUtils.clearHistory();
gURLBar.handleRevert();
});
Services.prefs.setBoolPref(PREF_TRIMURL, true);
Services.prefs.setBoolPref(PREF_AUTOFILL, true);
// Adding a tab would hit switch-to-tab, so it's safer to just add a visit.
yield PlacesTestUtils.addVisits([{
uri: "http://www.autofilltrimurl.com/whatever",
transition: Ci.nsINavHistoryService.TRANSITION_TYPED,
}, {
uri: "https://www.secureautofillurl.com/whatever",
transition: Ci.nsINavHistoryService.TRANSITION_TYPED,
}]);
});
function* promiseSearch(searchtext) {
gURLBar.focus();
gURLBar.inputField.value = searchtext.substr(0, searchtext.length - 1);
EventUtils.synthesizeKey(searchtext.substr(-1, 1), {});
yield promiseSearchComplete();
}
function* promiseTestResult(test) {
info("Searching for '${test.search}'");
yield promiseSearch(test.search);
is(gURLBar.inputField.value, test.autofilledValue,
`Autofilled value is as expected for search '${test.search}'`);
let result = gURLBar.popup.richlistbox.getItemAtIndex(0);
is(result._titleText.textContent, test.resultListDisplayTitle,
`Autocomplete result should have displayed title as expected for search '${test.search}'`);
is(result._actionText.textContent, test.resultListActionText,
`Autocomplete action text should be as expected for search '${test.search}'`);
is(result.getAttribute("type"), test.resultListType,
`Autocomplete result should have searchengine for the type for search '${test.search}'`);
is(gURLBar.mController.getFinalCompleteValueAt(0), test.finalCompleteValue,
`Autocomplete item should go to the expected final value for search '${test.search}'`);
}
const tests = [{
search: "http://",
autofilledValue: "http://",
resultListDisplayTitle: "http://",
resultListActionText: "Search with Google",
resultListType: "searchengine",
finalCompleteValue: 'moz-action:searchengine,{"engineName":"Google","input":"http%3A%2F%2F","searchQuery":"http%3A%2F%2F"}'
}, {
search: "https://",
autofilledValue: "https://",
resultListDisplayTitle: "https://",
resultListActionText: "Search with Google",
resultListType: "searchengine",
finalCompleteValue: 'moz-action:searchengine,{"engineName":"Google","input":"https%3A%2F%2F","searchQuery":"https%3A%2F%2F"}'
}, {
search: "au",
autofilledValue: "autofilltrimurl.com/",
resultListDisplayTitle: "www.autofilltrimurl.com",
resultListActionText: "Visit",
resultListType: "",
finalCompleteValue: "www.autofilltrimurl.com/"
}, {
search: "http://au",
autofilledValue: "http://autofilltrimurl.com/",
resultListDisplayTitle: "autofilltrimurl.com",
resultListActionText: "Visit",
resultListType: "",
finalCompleteValue: "http://autofilltrimurl.com/"
}, {
search: "sec",
autofilledValue: "secureautofillurl.com/",
resultListDisplayTitle: "https://www.secureautofillurl.com",
resultListActionText: "Visit",
resultListType: "",
finalCompleteValue: "https://www.secureautofillurl.com/"
}, {
search: "https://sec",
autofilledValue: "https://secureautofillurl.com/",
resultListDisplayTitle: "https://secureautofillurl.com",
resultListActionText: "Visit",
resultListType: "",
finalCompleteValue: "https://secureautofillurl.com/"
},
];
add_task(function* autofill_tests() {
for (let test of tests) {
yield promiseTestResult(test);
}
});
add_task(function* autofill_complete_domain() {
yield promiseSearch("http://www.autofilltrimurl.com");
is(gURLBar.inputField.value, "http://www.autofilltrimurl.com/", "Autofilled value is as expected");
// Now ensure selecting from the popup correctly trims.
is(gURLBar.controller.matchCount, 2, "Found the expected number of matches");
EventUtils.synthesizeKey("VK_DOWN", {});
is(gURLBar.inputField.value, "www.autofilltrimurl.com/whatever", "trim was applied correctly");
});