mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-10 05:08:36 +02:00
MozReview-Commit-ID: 67eb9v4blas --HG-- rename : browser/base/content/test/general/authenticate.sjs => browser/base/content/test/urlbar/authenticate.sjs rename : browser/base/content/test/general/browser_URLBarSetURI.js => browser/base/content/test/urlbar/browser_URLBarSetURI.js rename : browser/base/content/test/general/browser_action_keyword.js => browser/base/content/test/urlbar/browser_action_keyword.js rename : browser/base/content/test/general/browser_action_keyword_override.js => browser/base/content/test/urlbar/browser_action_keyword_override.js rename : browser/base/content/test/general/browser_action_searchengine.js => browser/base/content/test/urlbar/browser_action_searchengine.js rename : browser/base/content/test/general/browser_action_searchengine_alias.js => browser/base/content/test/urlbar/browser_action_searchengine_alias.js rename : browser/base/content/test/general/browser_autocomplete_a11y_label.js => browser/base/content/test/urlbar/browser_autocomplete_a11y_label.js rename : browser/base/content/test/general/browser_autocomplete_autoselect.js => browser/base/content/test/urlbar/browser_autocomplete_autoselect.js rename : browser/base/content/test/general/browser_autocomplete_cursor.js => browser/base/content/test/urlbar/browser_autocomplete_cursor.js rename : browser/base/content/test/general/browser_autocomplete_edit_completed.js => browser/base/content/test/urlbar/browser_autocomplete_edit_completed.js rename : browser/base/content/test/general/browser_autocomplete_enter_race.js => browser/base/content/test/urlbar/browser_autocomplete_enter_race.js rename : browser/base/content/test/general/browser_autocomplete_no_title.js => browser/base/content/test/urlbar/browser_autocomplete_no_title.js rename : browser/base/content/test/general/browser_autocomplete_oldschool_wrap.js => browser/base/content/test/urlbar/browser_autocomplete_oldschool_wrap.js rename : browser/base/content/test/general/browser_autocomplete_tag_star_visibility.js => browser/base/content/test/urlbar/browser_autocomplete_tag_star_visibility.js rename : browser/base/content/test/general/browser_bug1003461-switchtab-override.js => browser/base/content/test/urlbar/browser_bug1003461-switchtab-override.js rename : browser/base/content/test/general/browser_bug1024133-switchtab-override-keynav.js => browser/base/content/test/urlbar/browser_bug1024133-switchtab-override-keynav.js rename : browser/base/content/test/general/browser_bug1025195_switchToTabHavingURI_aOpenParams.js => browser/base/content/test/urlbar/browser_bug1025195_switchToTabHavingURI_aOpenParams.js rename : browser/base/content/test/general/browser_bug1070778.js => browser/base/content/test/urlbar/browser_bug1070778.js rename : browser/base/content/test/general/browser_bug1104165-switchtab-decodeuri.js => browser/base/content/test/urlbar/browser_bug1104165-switchtab-decodeuri.js rename : browser/base/content/test/general/browser_bug1225194-remotetab.js => browser/base/content/test/urlbar/browser_bug1225194-remotetab.js rename : browser/base/content/test/general/browser_bug304198.js => browser/base/content/test/urlbar/browser_bug304198.js rename : browser/base/content/test/general/browser_bug556061.js => browser/base/content/test/urlbar/browser_bug556061.js rename : browser/base/content/test/general/browser_bug562649.js => browser/base/content/test/urlbar/browser_bug562649.js rename : browser/base/content/test/general/browser_bug623155.js => browser/base/content/test/urlbar/browser_bug623155.js rename : browser/base/content/test/general/browser_bug783614.js => browser/base/content/test/urlbar/browser_bug783614.js rename : browser/base/content/test/general/browser_canonizeURL.js => browser/base/content/test/urlbar/browser_canonizeURL.js rename : browser/base/content/test/general/browser_locationBarCommand.js => browser/base/content/test/urlbar/browser_locationBarCommand.js rename : browser/base/content/test/general/browser_locationBarExternalLoad.js => browser/base/content/test/urlbar/browser_locationBarExternalLoad.js rename : browser/base/content/test/general/browser_removeUnsafeProtocolsFromURLBarPaste.js => browser/base/content/test/urlbar/browser_removeUnsafeProtocolsFromURLBarPaste.js rename : browser/base/content/test/general/browser_search_favicon.js => browser/base/content/test/urlbar/browser_search_favicon.js rename : browser/base/content/test/general/browser_tabMatchesInAwesomebar.js => browser/base/content/test/urlbar/browser_tabMatchesInAwesomebar.js rename : browser/base/content/test/general/browser_tabMatchesInAwesomebar_perwindowpb.js => browser/base/content/test/urlbar/browser_tabMatchesInAwesomebar_perwindowpb.js rename : browser/base/content/test/general/browser_urlHighlight.js => browser/base/content/test/urlbar/browser_urlHighlight.js rename : browser/base/content/test/general/browser_urlbarAutoFillTrimURLs.js => browser/base/content/test/urlbar/browser_urlbarAutoFillTrimURLs.js rename : browser/base/content/test/general/browser_urlbarCopying.js => browser/base/content/test/urlbar/browser_urlbarCopying.js rename : browser/base/content/test/general/browser_urlbarDecode.js => browser/base/content/test/urlbar/browser_urlbarDecode.js rename : browser/base/content/test/general/browser_urlbarDelete.js => browser/base/content/test/urlbar/browser_urlbarDelete.js rename : browser/base/content/test/general/browser_urlbarEnter.js => browser/base/content/test/urlbar/browser_urlbarEnter.js rename : browser/base/content/test/general/browser_urlbarEnterAfterMouseOver.js => browser/base/content/test/urlbar/browser_urlbarEnterAfterMouseOver.js rename : browser/base/content/test/general/browser_urlbarRevert.js => browser/base/content/test/urlbar/browser_urlbarRevert.js rename : browser/base/content/test/general/browser_urlbarSearchSingleWordNotification.js => browser/base/content/test/urlbar/browser_urlbarSearchSingleWordNotification.js rename : browser/base/content/test/general/browser_urlbarSearchSuggestions.js => browser/base/content/test/urlbar/browser_urlbarSearchSuggestions.js rename : browser/base/content/test/general/browser_urlbarSearchSuggestionsNotification.js => browser/base/content/test/urlbar/browser_urlbarSearchSuggestionsNotification.js rename : browser/base/content/test/general/browser_urlbarSearchTelemetry.js => browser/base/content/test/urlbar/browser_urlbarSearchTelemetry.js rename : browser/base/content/test/general/browser_urlbarStop.js => browser/base/content/test/urlbar/browser_urlbarStop.js rename : browser/base/content/test/general/browser_urlbarTrimURLs.js => browser/base/content/test/urlbar/browser_urlbarTrimURLs.js rename : browser/base/content/test/general/browser_urlbar_autoFill_backspaced.js => browser/base/content/test/urlbar/browser_urlbar_autoFill_backspaced.js rename : browser/base/content/test/general/browser_urlbar_searchsettings.js => browser/base/content/test/urlbar/browser_urlbar_searchsettings.js rename : browser/base/content/test/general/browser_wyciwyg_urlbarCopying.js => browser/base/content/test/urlbar/browser_wyciwyg_urlbarCopying.js rename : browser/base/content/test/general/dummy_page.html => browser/base/content/test/urlbar/dummy_page.html rename : browser/base/content/test/general/head.js => browser/base/content/test/urlbar/head.js rename : browser/base/content/test/general/moz.png => browser/base/content/test/urlbar/moz.png rename : browser/base/content/test/general/redirect_bug623155.sjs => browser/base/content/test/urlbar/redirect_bug623155.sjs rename : browser/base/content/test/general/searchSuggestionEngine.sjs => browser/base/content/test/urlbar/searchSuggestionEngine.sjs rename : browser/base/content/test/general/searchSuggestionEngine.xml => browser/base/content/test/urlbar/searchSuggestionEngine.xml rename : browser/base/content/test/general/test_wyciwyg_copying.html => browser/base/content/test/urlbar/test_wyciwyg_copying.html rename : browser/base/content/test/general/authenticate.sjs => toolkit/components/thumbnails/test/authenticate.sjs extra : rebase_source : 3c83a311373930cb962816cf61d84a8ee7c44c07 extra : amend_source : 9ed9e18817c591afb9b4d10fda724bb71dd80b26
95 lines
3.2 KiB
JavaScript
95 lines
3.2 KiB
JavaScript
"use strict";
|
|
|
|
// This test makes sure (1) you can't break the urlbar by typing particular JSON
|
|
// or JS fragments into it, (2) urlbar.textValue shows URLs unescaped, and (3)
|
|
// the urlbar also shows the URLs embedded in action URIs unescaped. See bug
|
|
// 1233672.
|
|
|
|
add_task(function* injectJSON() {
|
|
let inputStrs = [
|
|
'http://example.com/ ", "url": "bar' ,
|
|
'http://example.com/\\' ,
|
|
'http://example.com/"' ,
|
|
'http://example.com/","url":"evil.com' ,
|
|
'http://mozilla.org/\\u0020' ,
|
|
'http://www.mozilla.org/","url":1e6,"some-key":"foo' ,
|
|
'http://www.mozilla.org/","url":null,"some-key":"foo' ,
|
|
'http://www.mozilla.org/","url":["foo","bar"],"some-key":"foo' ,
|
|
];
|
|
for (let inputStr of inputStrs) {
|
|
yield checkInput(inputStr);
|
|
}
|
|
gURLBar.value = "";
|
|
gURLBar.handleRevert();
|
|
gURLBar.blur();
|
|
});
|
|
|
|
add_task(function losslessDecode() {
|
|
let url = "http://example.com/\u30a2\u30a4\u30a6\u30a8\u30aa";
|
|
gURLBar.textValue = url;
|
|
Assert.equal(gURLBar.inputField.value, url,
|
|
"The string displayed in the textbox should not be escaped");
|
|
gURLBar.value = "";
|
|
gURLBar.handleRevert();
|
|
gURLBar.blur();
|
|
});
|
|
|
|
add_task(function* actionURILosslessDecode() {
|
|
let urlNoScheme = "example.com/\u30a2\u30a4\u30a6\u30a8\u30aa";
|
|
let url = "http://" + urlNoScheme;
|
|
yield promiseAutocompleteResultPopup(url);
|
|
|
|
// At this point the heuristic result is selected but the urlbar's value is
|
|
// simply `url`. Key down and back around until the heuristic result is
|
|
// selected again, and at that point the urlbar's value should be a visiturl
|
|
// moz-action.
|
|
|
|
do {
|
|
gURLBar.controller.handleKeyNavigation(KeyEvent.DOM_VK_DOWN);
|
|
} while (gURLBar.popup.selectedIndex != 0);
|
|
|
|
let [, type, params] = gURLBar.value.match(/^moz-action:([^,]+),(.*)$/);
|
|
Assert.equal(type, "visiturl",
|
|
"visiturl action URI should be in the urlbar");
|
|
|
|
Assert.equal(gURLBar.inputField.value, urlNoScheme,
|
|
"The string displayed in the textbox should not be escaped");
|
|
|
|
gURLBar.value = "";
|
|
gURLBar.handleRevert();
|
|
gURLBar.blur();
|
|
});
|
|
|
|
function* checkInput(inputStr) {
|
|
yield promiseAutocompleteResultPopup(inputStr);
|
|
|
|
let item = gURLBar.popup.richlistbox.firstChild;
|
|
Assert.ok(item, "Should have a result");
|
|
|
|
// visiturl matches have their param.urls fixed up.
|
|
let fixupInfo = Services.uriFixup.getFixupURIInfo(inputStr,
|
|
Ci.nsIURIFixup.FIXUP_FLAG_FIX_SCHEME_TYPOS |
|
|
Ci.nsIURIFixup.FIXUP_FLAG_ALLOW_KEYWORD_LOOKUP
|
|
);
|
|
let expectedVisitURL = fixupInfo.fixedURI.spec;
|
|
|
|
let type = "visiturl";
|
|
let params = {
|
|
url: expectedVisitURL,
|
|
input: inputStr,
|
|
};
|
|
for (let key in params) {
|
|
params[key] = encodeURIComponent(params[key]);
|
|
}
|
|
let expectedURL = "moz-action:" + type + "," + JSON.stringify(params);
|
|
Assert.equal(item.getAttribute("url"), expectedURL, "url");
|
|
|
|
Assert.equal(item.getAttribute("title"), inputStr.replace("\\","/"), "title");
|
|
Assert.equal(item.getAttribute("text"), inputStr, "text");
|
|
|
|
let itemType = item.getAttribute("type");
|
|
Assert.equal(itemType, "visiturl");
|
|
|
|
Assert.equal(item._titleText.textContent, inputStr.replace("\\","/"), "Visible title");
|
|
Assert.equal(item._actionText.textContent, "Visit", "Visible action");
|
|
}
|