зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1717507 - Convert protocol tests from unifiedcomplete to urlbar. r=adw
There are two substantive changes to test_protocol_swap worth pointing out: 1. Some subtests now search for <protocol>://sit instead of <protocol>://site. This is because the latter would make the heuristic result the same as the relevant history result and the history result would be deduped. We would thus lose test coverage for that history result. 2. Tests that expected allMatches no longer expect uri5. The muxer dedupes https://www. URLs in favour of https:// URLs. Depends on D118636 Differential Revision: https://phabricator.services.mozilla.com/D118637
This commit is contained in:
Родитель
75563866de
Коммит
ad20a8695b
|
@ -0,0 +1,42 @@
|
|||
/* 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 bug 424509 to make sure searching for "h" doesn't match "http" of urls.
|
||||
*/
|
||||
|
||||
testEngine_setup();
|
||||
|
||||
add_task(async function test_escape() {
|
||||
Services.prefs.setBoolPref("browser.urlbar.autoFill", false);
|
||||
Services.prefs.setBoolPref("browser.urlbar.suggest.searches", false);
|
||||
registerCleanupFunction(() => {
|
||||
Services.prefs.clearUserPref("browser.urlbar.suggest.searches");
|
||||
});
|
||||
|
||||
let uri1 = Services.io.newURI("http://site/");
|
||||
let uri2 = Services.io.newURI("http://happytimes/");
|
||||
await PlacesTestUtils.addVisits([
|
||||
{ uri: uri1, title: "title" },
|
||||
{ uri: uri2, title: "title" },
|
||||
]);
|
||||
|
||||
info("Searching for h matches site and not http://");
|
||||
let context = createContext("h", { isPrivate: false });
|
||||
await check_results({
|
||||
context,
|
||||
matches: [
|
||||
makeSearchResult(context, {
|
||||
engineName: SUGGESTIONS_ENGINE_NAME,
|
||||
heuristic: true,
|
||||
}),
|
||||
makeVisitResult(context, {
|
||||
uri: uri2.spec,
|
||||
title: "title",
|
||||
}),
|
||||
],
|
||||
});
|
||||
|
||||
await cleanupPlaces();
|
||||
});
|
|
@ -0,0 +1,307 @@
|
|||
/* 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 bug 424717 to make sure searching with an existing location like
|
||||
* http://site/ also matches https://site/ or ftp://site/. Same thing for
|
||||
* ftp://site/ and https://site/.
|
||||
*
|
||||
* Test bug 461483 to make sure a search for "w" doesn't match the "www." from
|
||||
* site subdomains.
|
||||
*/
|
||||
|
||||
testEngine_setup();
|
||||
|
||||
add_task(async function test_swap_protocol() {
|
||||
let uri1 = Services.io.newURI("http://www.site/");
|
||||
let uri2 = Services.io.newURI("http://site/");
|
||||
let uri3 = Services.io.newURI("ftp://ftp.site/");
|
||||
let uri4 = Services.io.newURI("ftp://site/");
|
||||
let uri5 = Services.io.newURI("https://www.site/");
|
||||
let uri6 = Services.io.newURI("https://site/");
|
||||
let uri7 = Services.io.newURI("http://woohoo/");
|
||||
let uri8 = Services.io.newURI("http://wwwwwwacko/");
|
||||
await PlacesTestUtils.addVisits([
|
||||
{ uri: uri8, title: "title" },
|
||||
{ uri: uri7, title: "title" },
|
||||
{ uri: uri6, title: "title" },
|
||||
{ uri: uri5, title: "title" },
|
||||
{ uri: uri4, title: "title" },
|
||||
{ uri: uri3, title: "title" },
|
||||
{ uri: uri2, title: "title" },
|
||||
{ uri: uri1, title: "title" },
|
||||
]);
|
||||
|
||||
// Disable autoFill to avoid handling the first result.
|
||||
Services.prefs.setBoolPref("browser.urlbar.autoFill", false);
|
||||
Services.prefs.setBoolPref("browser.urlbar.autoFill.searchEngines", false);
|
||||
Services.prefs.setBoolPref("browser.urlbar.suggest.searches", false);
|
||||
registerCleanupFunction(() => {
|
||||
Services.prefs.clearUserPref("browser.urlbar.suggest.searches");
|
||||
});
|
||||
|
||||
info("http://www.site matches 'www.site' pages");
|
||||
let searchString = "http://www.site";
|
||||
let context = createContext(searchString, { isPrivate: false });
|
||||
await check_results({
|
||||
context,
|
||||
matches: [
|
||||
makeVisitResult(context, {
|
||||
uri: `${searchString}/`,
|
||||
title: `${searchString}/`,
|
||||
source: UrlbarUtils.RESULT_SOURCE.OTHER_LOCAL,
|
||||
heuristic: true,
|
||||
}),
|
||||
makeVisitResult(context, { uri: uri5.spec, title: "title" }),
|
||||
],
|
||||
});
|
||||
|
||||
info("http://site matches all sites");
|
||||
searchString = "http://site";
|
||||
context = createContext(searchString, { isPrivate: false });
|
||||
await check_results({
|
||||
context,
|
||||
matches: [
|
||||
makeVisitResult(context, {
|
||||
uri: `${searchString}/`,
|
||||
title: `${searchString}/`,
|
||||
source: UrlbarUtils.RESULT_SOURCE.OTHER_LOCAL,
|
||||
heuristic: true,
|
||||
}),
|
||||
makeVisitResult(context, { uri: uri3.spec, title: "title" }),
|
||||
makeVisitResult(context, { uri: uri4.spec, title: "title" }),
|
||||
makeVisitResult(context, { uri: uri6.spec, title: "title" }),
|
||||
],
|
||||
});
|
||||
|
||||
info("ftp://ftp.site matches itself");
|
||||
searchString = "ftp://ftp.site";
|
||||
context = createContext(searchString, { isPrivate: false });
|
||||
await check_results({
|
||||
context,
|
||||
matches: [
|
||||
makeVisitResult(context, {
|
||||
uri: `${searchString}/`,
|
||||
title: `${searchString}/`,
|
||||
source: UrlbarUtils.RESULT_SOURCE.OTHER_LOCAL,
|
||||
heuristic: true,
|
||||
}),
|
||||
makeVisitResult(context, { uri: uri3.spec, title: "title" }),
|
||||
],
|
||||
});
|
||||
|
||||
info("ftp://site matches all sites");
|
||||
searchString = "ftp://site";
|
||||
context = createContext(searchString, { isPrivate: false });
|
||||
await check_results({
|
||||
context,
|
||||
matches: [
|
||||
makeVisitResult(context, {
|
||||
uri: `${searchString}/`,
|
||||
title: `${searchString}/`,
|
||||
source: UrlbarUtils.RESULT_SOURCE.OTHER_LOCAL,
|
||||
heuristic: true,
|
||||
}),
|
||||
makeVisitResult(context, { uri: uri3.spec, title: "title" }),
|
||||
makeVisitResult(context, { uri: uri4.spec, title: "title" }),
|
||||
makeVisitResult(context, { uri: uri6.spec, title: "title" }),
|
||||
],
|
||||
});
|
||||
|
||||
info("https://www.site matches all sites");
|
||||
searchString = "https://www.sit";
|
||||
context = createContext(searchString, { isPrivate: false });
|
||||
await check_results({
|
||||
context,
|
||||
matches: [
|
||||
makeVisitResult(context, {
|
||||
uri: `${searchString}/`,
|
||||
title: `${searchString}/`,
|
||||
source: UrlbarUtils.RESULT_SOURCE.OTHER_LOCAL,
|
||||
heuristic: true,
|
||||
}),
|
||||
makeVisitResult(context, { uri: uri5.spec, title: "title" }),
|
||||
],
|
||||
});
|
||||
|
||||
info("https://site matches all sites");
|
||||
searchString = "https://sit";
|
||||
context = createContext(searchString, { isPrivate: false });
|
||||
await check_results({
|
||||
context,
|
||||
matches: [
|
||||
makeVisitResult(context, {
|
||||
uri: `${searchString}/`,
|
||||
title: `${searchString}/`,
|
||||
source: UrlbarUtils.RESULT_SOURCE.OTHER_LOCAL,
|
||||
heuristic: true,
|
||||
}),
|
||||
makeVisitResult(context, { uri: uri3.spec, title: "title" }),
|
||||
makeVisitResult(context, { uri: uri4.spec, title: "title" }),
|
||||
makeVisitResult(context, { uri: uri6.spec, title: "title" }),
|
||||
],
|
||||
});
|
||||
|
||||
info("www.site matches 'www.site' pages");
|
||||
searchString = "www.site";
|
||||
context = createContext(searchString, { isPrivate: false });
|
||||
await check_results({
|
||||
context,
|
||||
matches: [
|
||||
makeVisitResult(context, {
|
||||
uri: `http://${searchString}/`,
|
||||
title: `http://${searchString}/`,
|
||||
source: UrlbarUtils.RESULT_SOURCE.OTHER_LOCAL,
|
||||
heuristic: true,
|
||||
}),
|
||||
makeSearchResult(context, {
|
||||
engineName: SUGGESTIONS_ENGINE_NAME,
|
||||
providerName: "HeuristicFallback",
|
||||
}),
|
||||
makeVisitResult(context, { uri: uri5.spec, title: "title" }),
|
||||
],
|
||||
});
|
||||
|
||||
info("w matches 'w' pages, including 'www'");
|
||||
context = createContext("w", { isPrivate: false });
|
||||
await check_results({
|
||||
context,
|
||||
matches: [
|
||||
makeSearchResult(context, {
|
||||
engineName: SUGGESTIONS_ENGINE_NAME,
|
||||
heuristic: true,
|
||||
}),
|
||||
makeVisitResult(context, { uri: uri5.spec, title: "title" }),
|
||||
makeVisitResult(context, { uri: uri7.spec, title: "title" }),
|
||||
makeVisitResult(context, { uri: uri8.spec, title: "title" }),
|
||||
],
|
||||
});
|
||||
|
||||
info("http://w matches 'w' pages, including 'www'");
|
||||
searchString = "http://w";
|
||||
context = createContext(searchString, { isPrivate: false });
|
||||
await check_results({
|
||||
context,
|
||||
matches: [
|
||||
makeVisitResult(context, {
|
||||
uri: `${searchString}/`,
|
||||
title: `${searchString}/`,
|
||||
source: UrlbarUtils.RESULT_SOURCE.OTHER_LOCAL,
|
||||
heuristic: true,
|
||||
}),
|
||||
makeVisitResult(context, { uri: uri5.spec, title: "title" }),
|
||||
makeVisitResult(context, { uri: uri7.spec, title: "title" }),
|
||||
makeVisitResult(context, { uri: uri8.spec, title: "title" }),
|
||||
],
|
||||
});
|
||||
|
||||
info("http://www.w matches nothing");
|
||||
searchString = "http://www.w";
|
||||
context = createContext(searchString, { isPrivate: false });
|
||||
await check_results({
|
||||
context,
|
||||
matches: [
|
||||
makeVisitResult(context, {
|
||||
uri: `${searchString}/`,
|
||||
title: `${searchString}/`,
|
||||
source: UrlbarUtils.RESULT_SOURCE.OTHER_LOCAL,
|
||||
heuristic: true,
|
||||
}),
|
||||
],
|
||||
});
|
||||
|
||||
info("ww matches no 'ww' pages, including 'www'");
|
||||
context = createContext("ww", { isPrivate: false });
|
||||
await check_results({
|
||||
context,
|
||||
matches: [
|
||||
makeSearchResult(context, {
|
||||
engineName: SUGGESTIONS_ENGINE_NAME,
|
||||
heuristic: true,
|
||||
}),
|
||||
makeVisitResult(context, { uri: uri5.spec, title: "title" }),
|
||||
makeVisitResult(context, { uri: uri8.spec, title: "title" }),
|
||||
],
|
||||
});
|
||||
|
||||
info("http://ww matches no 'ww' pages, including 'www'");
|
||||
searchString = "http://ww";
|
||||
context = createContext(searchString, { isPrivate: false });
|
||||
await check_results({
|
||||
context,
|
||||
matches: [
|
||||
makeVisitResult(context, {
|
||||
uri: `${searchString}/`,
|
||||
title: `${searchString}/`,
|
||||
source: UrlbarUtils.RESULT_SOURCE.OTHER_LOCAL,
|
||||
heuristic: true,
|
||||
}),
|
||||
makeVisitResult(context, { uri: uri5.spec, title: "title" }),
|
||||
makeVisitResult(context, { uri: uri8.spec, title: "title" }),
|
||||
],
|
||||
});
|
||||
|
||||
info("http://www.ww matches nothing");
|
||||
searchString = "http://www.ww";
|
||||
context = createContext(searchString, { isPrivate: false });
|
||||
await check_results({
|
||||
context,
|
||||
matches: [
|
||||
makeVisitResult(context, {
|
||||
uri: `${searchString}/`,
|
||||
title: `${searchString}/`,
|
||||
source: UrlbarUtils.RESULT_SOURCE.OTHER_LOCAL,
|
||||
heuristic: true,
|
||||
}),
|
||||
],
|
||||
});
|
||||
|
||||
info("www matches 'www' pages");
|
||||
context = createContext("www", { isPrivate: false });
|
||||
await check_results({
|
||||
context,
|
||||
matches: [
|
||||
makeSearchResult(context, {
|
||||
engineName: SUGGESTIONS_ENGINE_NAME,
|
||||
heuristic: true,
|
||||
}),
|
||||
makeVisitResult(context, { uri: uri5.spec, title: "title" }),
|
||||
makeVisitResult(context, { uri: uri8.spec, title: "title" }),
|
||||
],
|
||||
});
|
||||
|
||||
info("http://www matches 'www' pages");
|
||||
searchString = "http://www";
|
||||
context = createContext(searchString, { isPrivate: false });
|
||||
await check_results({
|
||||
context,
|
||||
matches: [
|
||||
makeVisitResult(context, {
|
||||
uri: `${searchString}/`,
|
||||
title: `${searchString}/`,
|
||||
source: UrlbarUtils.RESULT_SOURCE.OTHER_LOCAL,
|
||||
heuristic: true,
|
||||
}),
|
||||
makeVisitResult(context, { uri: uri5.spec, title: "title" }),
|
||||
makeVisitResult(context, { uri: uri8.spec, title: "title" }),
|
||||
],
|
||||
});
|
||||
|
||||
info("http://www.www matches nothing");
|
||||
searchString = "http://www.www";
|
||||
context = createContext(searchString, { isPrivate: false });
|
||||
await check_results({
|
||||
context,
|
||||
matches: [
|
||||
makeVisitResult(context, {
|
||||
uri: `${searchString}/`,
|
||||
title: `${searchString}/`,
|
||||
source: UrlbarUtils.RESULT_SOURCE.OTHER_LOCAL,
|
||||
heuristic: true,
|
||||
}),
|
||||
],
|
||||
});
|
||||
|
||||
await cleanupPlaces();
|
||||
});
|
|
@ -26,6 +26,8 @@ support-files =
|
|||
[test_keywords.js]
|
||||
skip-if = os == 'linux' # bug 1474616
|
||||
[test_muxer.js]
|
||||
[test_protocol_ignore.js]
|
||||
[test_protocol_swap.js]
|
||||
[test_providerAliasEngines.js]
|
||||
[test_providerHeuristicFallback.js]
|
||||
[test_providerKeywords.js]
|
||||
|
|
|
@ -1,26 +0,0 @@
|
|||
/* 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 bug 424509 to make sure searching for "h" doesn't match "http" of urls.
|
||||
*/
|
||||
|
||||
add_task(async function test_escape() {
|
||||
Services.prefs.setBoolPref("browser.urlbar.autoFill", false);
|
||||
|
||||
let uri1 = NetUtil.newURI("http://site/");
|
||||
let uri2 = NetUtil.newURI("http://happytimes/");
|
||||
await PlacesTestUtils.addVisits([
|
||||
{ uri: uri1, title: "title" },
|
||||
{ uri: uri2, title: "title" },
|
||||
]);
|
||||
|
||||
info("Searching for h matches site and not http://");
|
||||
await check_autocomplete({
|
||||
search: "h",
|
||||
matches: [{ uri: uri2, title: "title" }],
|
||||
});
|
||||
|
||||
await cleanup();
|
||||
});
|
|
@ -1,163 +0,0 @@
|
|||
/* 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 bug 424717 to make sure searching with an existing location like
|
||||
* http://site/ also matches https://site/ or ftp://site/. Same thing for
|
||||
* ftp://site/ and https://site/.
|
||||
*
|
||||
* Test bug 461483 to make sure a search for "w" doesn't match the "www." from
|
||||
* site subdomains.
|
||||
*/
|
||||
|
||||
add_task(async function test_swap_protocol() {
|
||||
let uri1 = NetUtil.newURI("http://www.site/");
|
||||
let uri2 = NetUtil.newURI("http://site/");
|
||||
let uri3 = NetUtil.newURI("ftp://ftp.site/");
|
||||
let uri4 = NetUtil.newURI("ftp://site/");
|
||||
let uri5 = NetUtil.newURI("https://www.site/");
|
||||
let uri6 = NetUtil.newURI("https://site/");
|
||||
let uri7 = NetUtil.newURI("http://woohoo/");
|
||||
let uri8 = NetUtil.newURI("http://wwwwwwacko/");
|
||||
await PlacesTestUtils.addVisits([
|
||||
{ uri: uri1, title: "title" },
|
||||
{ uri: uri2, title: "title" },
|
||||
{ uri: uri3, title: "title" },
|
||||
{ uri: uri4, title: "title" },
|
||||
{ uri: uri5, title: "title" },
|
||||
{ uri: uri6, title: "title" },
|
||||
{ uri: uri7, title: "title" },
|
||||
{ uri: uri8, title: "title" },
|
||||
]);
|
||||
|
||||
// uri1 and uri2 won't appear since they are lower-ranked duplicates of uri6.
|
||||
let allMatches = [
|
||||
{ uri: uri3, title: "title" },
|
||||
{ uri: uri4, title: "title" },
|
||||
{ uri: uri5, title: "title" },
|
||||
{ uri: uri6, title: "title" },
|
||||
];
|
||||
|
||||
// Disable autoFill to avoid handling the first result.
|
||||
Services.prefs.setBoolPref("browser.urlbar.autoFill", false);
|
||||
Services.prefs.setBoolPref("browser.urlbar.autoFill.searchEngines", false);
|
||||
|
||||
info("http://www.site matches 'www.site' pages");
|
||||
await check_autocomplete({
|
||||
search: "http://www.site",
|
||||
matches: [{ uri: uri5, title: "title" }],
|
||||
});
|
||||
|
||||
info("http://site matches all site");
|
||||
await check_autocomplete({
|
||||
search: "http://site",
|
||||
matches: allMatches,
|
||||
});
|
||||
|
||||
info("ftp://ftp.site matches itself");
|
||||
await check_autocomplete({
|
||||
search: "ftp://ftp.site",
|
||||
matches: [{ uri: uri3, title: "title" }],
|
||||
});
|
||||
|
||||
info("ftp://site matches all site");
|
||||
await check_autocomplete({
|
||||
search: "ftp://site",
|
||||
matches: allMatches,
|
||||
});
|
||||
|
||||
info("https://www.site matches all site");
|
||||
await check_autocomplete({
|
||||
search: "https://www.site",
|
||||
matches: [{ uri: uri5, title: "title" }],
|
||||
});
|
||||
|
||||
info("https://site matches all site");
|
||||
await check_autocomplete({
|
||||
search: "https://site",
|
||||
matches: allMatches,
|
||||
});
|
||||
|
||||
info("www.site matches 'www.site' pages");
|
||||
await check_autocomplete({
|
||||
search: "www.site",
|
||||
matches: [{ uri: uri5, title: "title" }],
|
||||
});
|
||||
|
||||
info("w matches 'w' pages, including 'www'");
|
||||
await check_autocomplete({
|
||||
search: "w",
|
||||
matches: [
|
||||
{ uri: uri5, title: "title" },
|
||||
{ uri: uri7, title: "title" },
|
||||
{ uri: uri8, title: "title" },
|
||||
],
|
||||
});
|
||||
|
||||
info("http://w matches 'w' pages, including 'www'");
|
||||
await check_autocomplete({
|
||||
search: "http://w",
|
||||
matches: [
|
||||
{ uri: uri5, title: "title" },
|
||||
{ uri: uri7, title: "title" },
|
||||
{ uri: uri8, title: "title" },
|
||||
],
|
||||
});
|
||||
|
||||
info("http://www.w matches nothing");
|
||||
await check_autocomplete({
|
||||
search: "http://www.w",
|
||||
matches: [],
|
||||
});
|
||||
|
||||
info("ww matches no 'ww' pages, including 'www'");
|
||||
await check_autocomplete({
|
||||
search: "ww",
|
||||
matches: [
|
||||
{ uri: uri5, title: "title" },
|
||||
{ uri: uri8, title: "title" },
|
||||
],
|
||||
});
|
||||
|
||||
info("http://ww matches no 'ww' pages, including 'www'");
|
||||
await check_autocomplete({
|
||||
search: "http://ww",
|
||||
matches: [
|
||||
{ uri: uri5, title: "title" },
|
||||
{ uri: uri8, title: "title" },
|
||||
],
|
||||
});
|
||||
|
||||
info("http://www.ww matches nothing");
|
||||
await check_autocomplete({
|
||||
search: "http://www.ww",
|
||||
matches: [],
|
||||
});
|
||||
|
||||
info("www matches 'www' pages");
|
||||
await check_autocomplete({
|
||||
search: "www",
|
||||
matches: [
|
||||
{ uri: uri5, title: "title" },
|
||||
{ uri: uri8, title: "title" },
|
||||
],
|
||||
});
|
||||
|
||||
info("http://www matches 'www' pages");
|
||||
await check_autocomplete({
|
||||
search: "http://www",
|
||||
matches: [
|
||||
{ uri: uri5, title: "title" },
|
||||
{ uri: uri8, title: "title" },
|
||||
],
|
||||
});
|
||||
|
||||
info("http://www.www matches nothing");
|
||||
await check_autocomplete({
|
||||
search: "http://www.www",
|
||||
matches: [],
|
||||
});
|
||||
|
||||
await cleanup();
|
||||
});
|
|
@ -12,10 +12,8 @@ support-files =
|
|||
[test_do_not_trim.js]
|
||||
[test_download_embed_bookmarks.js]
|
||||
[test_empty_search.js]
|
||||
[test_ignore_protocol.js]
|
||||
[test_multi_word_search.js]
|
||||
[test_search_engine_restyle.js]
|
||||
[test_special_search.js]
|
||||
[test_swap_protocol.js]
|
||||
[test_tab_matches.js]
|
||||
[test_word_boundary_search.js]
|
||||
|
|
Загрузка…
Ссылка в новой задаче