/* 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/. */
const PLACES_PROVIDERNAME =
"UrlbarProviderPlaces";
testEngine_setup();
add_task(async
function test_no_slash() {
info(
"Searching for host match without slash should match host");
await PlacesTestUtils.addVisits([
{
uri:
"http://file.org/test/",
transition: PlacesUtils.history.TRANSITION_TYPED,
},
{
uri:
"file:///c:/test.html",
transition: PlacesUtils.history.TRANSITION_TYPED,
},
]);
let context = createContext(
"file", { isPrivate:
false });
await check_results({
context,
autofilled:
"file.org/",
completed:
"http://file.org/",
matches: [
makeVisitResult(context, {
uri:
"http://file.org/",
title: UrlbarTestUtils.trimURL(
"http://file.org/"),
heuristic:
true,
}),
makeVisitResult(context, {
uri:
"file:///c:/test.html",
title:
"test visit for file:///c:/test.html",
providerName: PLACES_PROVIDERNAME,
}),
makeVisitResult(context, {
uri:
"http://file.org/test/",
title:
"test visit for http://file.org/test/",
providerName: PLACES_PROVIDERNAME,
}),
],
});
await cleanupPlaces();
});
add_task(async
function test_w_slash() {
info(
"Searching match with slash at the end should match url");
await PlacesTestUtils.addVisits(
{
uri: Services.io.newURI(
"http://file.org/test/"),
transition: PlacesUtils.history.TRANSITION_TYPED,
},
{
uri: Services.io.newURI(
"file:///c:/test.html"),
transition: PlacesUtils.history.TRANSITION_TYPED,
}
);
let context = createContext(
"file.org/", { isPrivate:
false });
await check_results({
context,
autofilled:
"file.org/",
completed:
"http://file.org/",
matches: [
makeVisitResult(context, {
uri:
"http://file.org/",
title: UrlbarTestUtils.trimURL(
"http://file.org/", {
removeSingleTrailingSlash:
false,
}),
heuristic:
true,
}),
makeVisitResult(context, {
uri:
"http://file.org/test/",
title:
"test visit for http://file.org/test/",
providerName: PLACES_PROVIDERNAME,
}),
],
});
await cleanupPlaces();
});
add_task(async
function test_middle() {
info(
"Searching match with slash in the middle should match url");
await PlacesTestUtils.addVisits(
{
uri: Services.io.newURI(
"http://file.org/test/"),
transition: PlacesUtils.history.TRANSITION_TYPED,
},
{
uri: Services.io.newURI(
"file:///c:/test.html"),
transition: PlacesUtils.history.TRANSITION_TYPED,
}
);
let context = createContext(
"file.org/t", { isPrivate:
false });
await check_results({
context,
autofilled:
"file.org/test/",
completed:
"http://file.org/test/",
matches: [
makeVisitResult(context, {
uri:
"http://file.org/test/",
title:
"test visit for http://file.org/test/",
heuristic:
true,
}),
],
});
await cleanupPlaces();
});
add_task(async
function test_nonhost() {
info(
"Searching for non-host match without slash should not match url");
await PlacesTestUtils.addVisits({
uri: Services.io.newURI(
"file:///c:/test.html"),
});
let context = createContext(
"file", { isPrivate:
false });
await check_results({
context,
matches: [
makeSearchResult(context, {
engineName: SUGGESTIONS_ENGINE_NAME,
heuristic:
true,
}),
makeVisitResult(context, {
uri:
"file:///c:/test.html",
title:
"test visit for file:///c:/test.html",
providerName: PLACES_PROVIDERNAME,
}),
],
});
await cleanupPlaces();
});