Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* 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/. */
// Tests that search terms don't persist with navigating to non-SERP URIs.
// Normally, when setURI is called, dependent properties for persisted search
// like originalURI are set to a different value and the userTypedValue is
// nullified. But, we should ensure that if setURI receives a URI with a
// different origin from the originalURI, search terms will not persist.
const SEARCH_STRING = "chocolate cake";
add_setup(async function () {
await SpecialPowers.pushPrefEnv({
set: [["browser.urlbar.showSearchTerms.featureGate", true]],
});
let cleanup = await installPersistTestEngines();
registerCleanupFunction(async function () {
await PlacesUtils.history.clear();
cleanup();
});
});
add_task(async function test_search_terms_cleared_on_non_serp_host() {
let { tab } = await searchWithTab(SEARCH_STRING);
let nonSerpUri = Services.io.newURI("https://www.foo.com/");
let originalURI = tab.linkedBrowser.originalURI;
Assert.equal(
originalURI.scheme,
nonSerpUri.scheme,
"Test URIs should have the same scheme."
);
Assert.notEqual(
originalURI.host,
nonSerpUri.host,
"Test URIs should have a different host."
);
gURLBar.setURI({ uri: nonSerpUri });
Assert.ok(
!gURLBar.hasAttribute("persistsearchterms"),
"Should not persist when setURI is called with a different host."
);
BrowserTestUtils.removeTab(tab);
});
add_task(async function test_search_terms_cleared_on_non_serp_scheme() {
let { tab } = await searchWithTab(SEARCH_STRING);
let nonSerpUri = Services.io.newURI("foo://www.example.com/");
let originalURI = tab.linkedBrowser.originalURI;
Assert.notEqual(
originalURI.scheme,
nonSerpUri.scheme,
"Test URIs should have a different scheme."
);
Assert.equal(
originalURI.host,
nonSerpUri.host,
"Test URIs should have the same host."
);
gURLBar.setURI({ uri: nonSerpUri });
Assert.ok(
!gURLBar.hasAttribute("persistsearchterms"),
"Should not persist when setURI is called with a different scheme."
);
BrowserTestUtils.removeTab(tab);
});