Source code
Revision control
Copy as Markdown
Other Tools
Test Info: Warnings
- This test gets skipped with pattern: os == 'android'
- Manifest: browser/components/urlbar/tests/unit/xpcshell.toml
/* Any copyright is dedicated to the Public Domain.
"use strict";
add_setup(() => {
UrlbarPrefs.set("suggest.quickactions", false);
});
// Testing that we dedupe results that have the same URL and title as another
add_task(async function dedupe_prefix() {
// We need to set the title or else we won't dedupe. We only dedupe when
// titles match up to mitigate deduping when the www. version of a site is
// completely different from it's www-less counterpart and thus presumably
// has a different title.
await PlacesTestUtils.addVisits([
{
title: "Example Page",
},
{
title: "Example Page",
},
{
title: "Example Page",
},
{
title: "Example Page",
},
{
title: "Example Page",
},
]);
// Expected results:
//
// Autofill result:
// URLs.
// Other results:
// does not dupe the autofill result, so only it should be included.
let context = createContext("example.com/foo/", { isPrivate: false });
await check_results({
context,
autofilled: "example.com/foo/",
matches: [
makeVisitResult(context, {
title: "Example Page",
heuristic: true,
}),
makeVisitResult(context, {
title: "Example Page",
}),
],
});
// Add more visits to the lowest-priority prefix. It should be the heuristic
// should not appear at all.
for (let i = 0; i < 3; i++) {
await PlacesTestUtils.addVisits([
{
title: "Example Page",
},
]);
}
// Expected results:
//
// Autofill result:
// Other results:
// Same as before
context = createContext("example.com/foo/", { isPrivate: false });
await check_results({
context,
autofilled: "example.com/foo/",
matches: [
makeVisitResult(context, {
title: "Example Page",
heuristic: true,
}),
makeVisitResult(context, {
title: "Example Page",
}),
],
});
// Add enough https:// vists for it to have the highest frecency. It should
// because we still show results with the same key and protocol if they differ
// from the heuristic result in having www.
for (let i = 0; i < 5; i++) {
await PlacesTestUtils.addVisits([
{
title: "Example Page",
},
]);
}
// Expected results:
//
// Autofill result:
// Other results:
// dupes the heuristic so it should not be included.
// does not dupe the heuristic, so only it should be included.
context = createContext("example.com/foo/", { isPrivate: false });
await check_results({
context,
autofilled: "example.com/foo/",
matches: [
makeVisitResult(context, {
title: "Example Page",
heuristic: true,
}),
],
});
await cleanupPlaces();
});
// This is the same as the previous task but with `experimental.hideHeuristic`
// enabled.
add_task(async function hideHeuristic() {
UrlbarPrefs.set("experimental.hideHeuristic", true);
// We need to set the title or else we won't dedupe. We only dedupe when
// titles match up to mitigate deduping when the www. version of a site is
// completely different from it's www-less counterpart and thus presumably
// has a different title.
await PlacesTestUtils.addVisits([
{
title: "Example Page",
},
{
title: "Example Page",
},
{
title: "Example Page",
},
{
title: "Example Page",
},
{
title: "Example Page",
},
]);
// Expected results:
//
// Autofill result:
// URLs.
// Other results:
// does not dupe the autofill result, so only it should be included.
let context = createContext("example.com/foo/", { isPrivate: false });
await check_results({
context,
autofilled: "example.com/foo/",
matches: [
makeVisitResult(context, {
title: "Example Page",
heuristic: true,
}),
makeVisitResult(context, {
title: "Example Page",
}),
],
});
// Add more visits to the lowest-priority prefix. It should be the heuristic
// should not appear at all.
for (let i = 0; i < 3; i++) {
await PlacesTestUtils.addVisits([
{
title: "Example Page",
},
]);
}
// Expected results:
//
// Autofill result:
// Other results:
// Same as before
context = createContext("example.com/foo/", { isPrivate: false });
await check_results({
context,
autofilled: "example.com/foo/",
matches: [
makeVisitResult(context, {
title: "Example Page",
heuristic: true,
}),
makeVisitResult(context, {
title: "Example Page",
}),
],
});
// Add enough https:// vists for it to have the highest frecency.
for (let i = 0; i < 5; i++) {
await PlacesTestUtils.addVisits([
{
title: "Example Page",
},
]);
}
// Expected results:
//
// Autofill result:
// Other results:
// the heuristic so ordinarily it should not be included, but because the
// heuristic is hidden, only it should appear.
context = createContext("example.com/foo/", { isPrivate: false });
await check_results({
context,
autofilled: "example.com/foo/",
matches: [
makeVisitResult(context, {
title: "Example Page",
heuristic: true,
}),
makeVisitResult(context, {
title: "Example Page",
}),
],
});
await cleanupPlaces();
UrlbarPrefs.clear("experimental.hideHeuristic");
});