mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-08 20:28:42 +02:00
116 lines
3.4 KiB
JavaScript
116 lines
3.4 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
// Testing that we dedupe results that have the same URL and title as another
|
|
// except for their prefix (e.g. http://www.).
|
|
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([
|
|
{
|
|
uri: "http://example.com/foo/",
|
|
title: "Example Page",
|
|
},
|
|
{
|
|
uri: "http://www.example.com/foo/",
|
|
title: "Example Page",
|
|
},
|
|
{
|
|
uri: "https://example.com/foo/",
|
|
title: "Example Page",
|
|
},
|
|
{
|
|
uri: "https://www.example.com/foo/",
|
|
title: "Example Page",
|
|
},
|
|
{
|
|
uri: "https://www.example.com/foo/",
|
|
title: "Example Page",
|
|
},
|
|
]);
|
|
|
|
// We should get https://www. as the heuristic result but https:// in the
|
|
// results since the latter's prefix is a higher priority.
|
|
let context = createContext("example.com/foo/", { isPrivate: false });
|
|
await check_results({
|
|
context,
|
|
autofilled: "example.com/foo/",
|
|
completed: "https://www.example.com/foo/",
|
|
matches: [
|
|
makeVisitResult(context, {
|
|
uri: "https://www.example.com/foo/",
|
|
title: "https://www.example.com/foo/",
|
|
heuristic: true,
|
|
}),
|
|
makeVisitResult(context, {
|
|
uri: "https://example.com/foo/",
|
|
title: "Example Page",
|
|
}),
|
|
],
|
|
});
|
|
|
|
// Add more visits to the lowest-priority prefix. It should be the heuristic
|
|
// result but we should still show our highest-priority result. https://www.
|
|
// should not appear at all.
|
|
for (let i = 0; i < 3; i++) {
|
|
await PlacesTestUtils.addVisits([
|
|
{
|
|
uri: "http://www.example.com/foo/",
|
|
title: "Example Page",
|
|
},
|
|
]);
|
|
}
|
|
|
|
context = createContext("example.com/foo/", { isPrivate: false });
|
|
await check_results({
|
|
context,
|
|
autofilled: "example.com/foo/",
|
|
completed: "http://www.example.com/foo/",
|
|
matches: [
|
|
makeVisitResult(context, {
|
|
uri: "http://www.example.com/foo/",
|
|
title: "www.example.com/foo/",
|
|
heuristic: true,
|
|
}),
|
|
makeVisitResult(context, {
|
|
uri: "https://example.com/foo/",
|
|
title: "Example Page",
|
|
}),
|
|
],
|
|
});
|
|
|
|
// Add enough https:// vists for it to have the highest frecency. It should
|
|
// be the heuristic result. We should still get the https://www. result
|
|
// 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([
|
|
{
|
|
uri: "https://example.com/foo/",
|
|
title: "Example Page",
|
|
},
|
|
]);
|
|
}
|
|
|
|
context = createContext("example.com/foo/", { isPrivate: false });
|
|
await check_results({
|
|
context,
|
|
autofilled: "example.com/foo/",
|
|
completed: "https://example.com/foo/",
|
|
matches: [
|
|
makeVisitResult(context, {
|
|
uri: "https://example.com/foo/",
|
|
title: "https://example.com/foo/",
|
|
heuristic: true,
|
|
}),
|
|
makeVisitResult(context, {
|
|
uri: "https://www.example.com/foo/",
|
|
title: "Example Page",
|
|
}),
|
|
],
|
|
});
|
|
|
|
await cleanupPlaces();
|
|
});
|