summaryrefslogtreecommitdiffstats
path: root/browser/components/urlbar/tests/browser/browser_UrlbarInput_overflow_resize.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/urlbar/tests/browser/browser_UrlbarInput_overflow_resize.js')
-rw-r--r--browser/components/urlbar/tests/browser/browser_UrlbarInput_overflow_resize.js58
1 files changed, 58 insertions, 0 deletions
diff --git a/browser/components/urlbar/tests/browser/browser_UrlbarInput_overflow_resize.js b/browser/components/urlbar/tests/browser/browser_UrlbarInput_overflow_resize.js
new file mode 100644
index 0000000000..879911d703
--- /dev/null
+++ b/browser/components/urlbar/tests/browser/browser_UrlbarInput_overflow_resize.js
@@ -0,0 +1,58 @@
+/* Any copyright is dedicated to the Public Domain.
+ * https://creativecommons.org/publicdomain/zero/1.0/ */
+
+async function testVal(win, url) {
+ info(`Testing ${url}`);
+ win.gURLBar.setURI(makeURI(url));
+
+ let urlbar = win.gURLBar;
+ urlbar.blur();
+
+ for (let width of [1000, 800]) {
+ win.resizeTo(width, 500);
+ await win.promiseDocumentFlushed(() => {});
+ Assert.greater(
+ urlbar.inputField.scrollWidth,
+ urlbar.inputField.clientWidth,
+ "Check The input field overflows"
+ );
+ // Resize is handled on a timer, so we must wait for it.
+ await TestUtils.waitForCondition(
+ () => urlbar.inputField.scrollLeft == urlbar.inputField.scrollLeftMax,
+ "The urlbar input field is completely scrolled to the end"
+ );
+ await TestUtils.waitForCondition(
+ () => urlbar.getAttribute("textoverflow") == "left",
+ "Wait for the textoverflow attribute"
+ );
+ }
+}
+
+add_task(async function () {
+ // We use a new tab for the test to be sure all the tab switching and loading
+ // is complete before starting, otherwise onLocationChange for this tab could
+ // override the value we set with an empty value.
+ let win = await BrowserTestUtils.openNewBrowserWindow();
+ registerCleanupFunction(() => BrowserTestUtils.closeWindow(win));
+
+ let lotsOfSpaces = "%20".repeat(200);
+
+ // اسماء.شبكة
+ let rtlDomain =
+ "\u0627\u0633\u0645\u0627\u0621\u002e\u0634\u0628\u0643\u0629";
+
+ // Mix the direction of the tests to cover more cases, and to ensure the
+ // textoverflow attribute changes every time, because tewtVal waits for that.
+ await testVal(win, `https://${rtlDomain}/${lotsOfSpaces}/test/`);
+
+ info("Test with formatting and trimurl disabled");
+ await SpecialPowers.pushPrefEnv({
+ set: [
+ ["browser.urlbar.formatting.enabled", false],
+ ["browser.urlbar.trimURLs", false],
+ ],
+ });
+
+ await testVal(win, `https://${rtlDomain}/${lotsOfSpaces}/test/`);
+ await testVal(win, `http://${rtlDomain}/${lotsOfSpaces}/test/`);
+});