summaryrefslogtreecommitdiffstats
path: root/browser/components/urlbar/tests/unit/test_match_javascript.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/urlbar/tests/unit/test_match_javascript.js')
-rw-r--r--browser/components/urlbar/tests/unit/test_match_javascript.js155
1 files changed, 155 insertions, 0 deletions
diff --git a/browser/components/urlbar/tests/unit/test_match_javascript.js b/browser/components/urlbar/tests/unit/test_match_javascript.js
new file mode 100644
index 0000000000..6cf7126d41
--- /dev/null
+++ b/browser/components/urlbar/tests/unit/test_match_javascript.js
@@ -0,0 +1,155 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+/**
+ * Test for bug 417798 to make sure javascript: URIs don't show up unless the
+ * user searches for javascript: explicitly.
+ */
+
+testEngine_setup();
+
+add_task(async function test_javascript_match() {
+ Services.prefs.setBoolPref("browser.urlbar.autoFill.searchEngines", false);
+ Services.prefs.setBoolPref("browser.urlbar.suggest.searches", false);
+ Services.prefs.setBoolPref("browser.urlbar.suggest.engines", false);
+ Services.prefs.setBoolPref("browser.urlbar.suggest.quickactions", false);
+ registerCleanupFunction(() => {
+ Services.prefs.clearUserPref("browser.urlbar.autoFill.searchEngines");
+ Services.prefs.clearUserPref("browser.urlbar.suggest.searches");
+ Services.prefs.clearUserPref("browser.urlbar.suggest.engines");
+ Services.prefs.clearUserPref("browser.urlbar.suggest.quickactions");
+ });
+
+ let uri1 = Services.io.newURI("http://abc/def");
+ let uri2 = Services.io.newURI("javascript:5");
+ await PlacesTestUtils.addBookmarkWithDetails({
+ uri: uri2,
+ title: "Title with javascript:",
+ });
+ await PlacesTestUtils.addVisits([
+ { uri: uri1, title: "Title with javascript:" },
+ ]);
+
+ await PlacesFrecencyRecalculator.recalculateAnyOutdatedFrecencies();
+
+ info("Match non-javascript: with plain search");
+ let context = createContext("a", { isPrivate: false });
+ await check_results({
+ context,
+ matches: [
+ makeSearchResult(context, {
+ engineName: SUGGESTIONS_ENGINE_NAME,
+ heuristic: true,
+ }),
+ makeVisitResult(context, {
+ uri: uri1.spec,
+ title: "Title with javascript:",
+ }),
+ ],
+ });
+
+ info("Match non-javascript: with 'javascript'");
+ context = createContext("javascript", { isPrivate: false });
+ await check_results({
+ context,
+ matches: [
+ makeSearchResult(context, {
+ engineName: SUGGESTIONS_ENGINE_NAME,
+ heuristic: true,
+ }),
+ makeVisitResult(context, {
+ uri: uri1.spec,
+ title: "Title with javascript:",
+ }),
+ ],
+ });
+
+ info("Match non-javascript with 'javascript:'");
+ context = createContext("javascript:", { isPrivate: false });
+ await check_results({
+ context,
+ matches: [
+ makeSearchResult(context, {
+ engineName: SUGGESTIONS_ENGINE_NAME,
+ heuristic: true,
+ }),
+ makeVisitResult(context, {
+ uri: uri1.spec,
+ title: "Title with javascript:",
+ }),
+ ],
+ });
+
+ info("Match nothing with '5 javascript:'");
+ context = createContext("5 javascript:", { isPrivate: false });
+ await check_results({
+ context,
+ matches: [
+ makeSearchResult(context, {
+ engineName: SUGGESTIONS_ENGINE_NAME,
+ heuristic: true,
+ }),
+ ],
+ });
+
+ info("Match non-javascript: with 'a javascript:'");
+ context = createContext("a javascript:", { isPrivate: false });
+ await check_results({
+ context,
+ matches: [
+ makeSearchResult(context, {
+ engineName: SUGGESTIONS_ENGINE_NAME,
+ heuristic: true,
+ }),
+ makeVisitResult(context, {
+ uri: uri1.spec,
+ title: "Title with javascript:",
+ }),
+ ],
+ });
+
+ info("Match non-javascript: and javascript: with 'javascript: a'");
+ context = createContext("javascript: a", { isPrivate: false });
+ await check_results({
+ context,
+ matches: [
+ makeVisitResult(context, {
+ uri: "javascript: a",
+ fallbackTitle: "javascript: a",
+ source: UrlbarUtils.RESULT_SOURCE.OTHER_LOCAL,
+ heuristic: true,
+ }),
+ makeVisitResult(context, {
+ uri: uri1.spec,
+ title: "Title with javascript:",
+ }),
+ makeBookmarkResult(context, {
+ uri: uri2.spec,
+ iconUri: "chrome://global/skin/icons/defaultFavicon.svg",
+ title: "Title with javascript:",
+ }),
+ ],
+ });
+
+ info("Match javascript: with 'javascript: 5'");
+ context = createContext("javascript: 5", { isPrivate: false });
+ await check_results({
+ context,
+ matches: [
+ makeVisitResult(context, {
+ uri: "javascript: 5",
+ fallbackTitle: "javascript: 5",
+ source: UrlbarUtils.RESULT_SOURCE.OTHER_LOCAL,
+ heuristic: true,
+ }),
+ makeBookmarkResult(context, {
+ uri: uri2.spec,
+ iconUri: "chrome://global/skin/icons/defaultFavicon.svg",
+ title: "Title with javascript:",
+ }),
+ ],
+ });
+
+ await cleanupPlaces();
+});