Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
/* Any copyright is dedicated to the Public Domain.
"use strict";
/**
* Tests that focusing the urlbar with mousedown doesn't shift the text until
* mouseup, as that may cause unexpected text selections.
*/
var gDefaultEngine;
add_setup(async function () {
let cleanup = await installPersistTestEngines();
gDefaultEngine = SearchService.getEngineByName("Example");
registerCleanupFunction(async function () {
await PlacesUtils.history.clear();
cleanup();
});
});
add_task(async function test_loaded_page() {
let originalX = gURLBar.inputField.getBoundingClientRect().x;
let finalX = getElementXBetweenMouseDownAndUp(gURLBar.inputField);
Assert.equal(originalX, finalX, "The input field didn't move");
});
});
add_task(async function test_invalid_proxystate() {
gURLBar.value = "modifiedText";
let originalX = gURLBar.inputField.getBoundingClientRect().x;
let finalX = getElementXBetweenMouseDownAndUp(gURLBar.inputField);
Assert.equal(originalX, finalX, "The input field didn't move");
});
});
add_task(async function test_persistedSearchTerms() {
await SpecialPowers.pushPrefEnv({
set: [["browser.urlbar.showSearchTerms.featureGate", true]],
});
const searchTerms = "pizza";
let [expectedSearchUrl] = UrlbarUtils.getSearchQueryUrl(
gDefaultEngine,
searchTerms
);
let browserLoadedPromise = BrowserTestUtils.browserLoaded(
browser,
false,
expectedSearchUrl
);
gURLBar.focus();
gURLBar.value = searchTerms;
EventUtils.synthesizeKey("KEY_Enter");
await browserLoadedPromise;
Assert.equal(gURLBar.value, searchTerms, "Search was persisted");
Assert.ok(!gURLBar.focused, "Urlbar is not focused");
let originalX = gURLBar.inputField.getBoundingClientRect().x;
let finalX = getElementXBetweenMouseDownAndUp(gURLBar.inputField);
Assert.equal(originalX, finalX, "The input field didn't move");
});
});
add_task(async function test_dedicatedSearchButton() {
await SpecialPowers.pushPrefEnv({
set: [["browser.urlbar.scotchBonnet.enableOverride", true]],
});
let originalX = gURLBar.inputField.getBoundingClientRect().x;
let finalX = getElementXBetweenMouseDownAndUp(gURLBar.inputField);
Assert.equal(originalX, finalX, "The input field didn't move");
});
});
function getElementXBetweenMouseDownAndUp(element) {
EventUtils.synthesizeMouse(
gURLBar.inputField,
10,
10,
{ type: "mousedown" },
element.getOwnerGlobal
);
try {
return element.getBoundingClientRect().x;
} finally {
EventUtils.synthesizeMouse(
gURLBar.inputField,
10,
10,
{ type: "mouseup" },
element.getOwnerGlobal
);
}
}