1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
/* 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();
});
|