diff options
author | wolfbeast <mcwerewolf@wolfbeast.com> | 2020-04-14 21:49:04 +0200 |
---|---|---|
committer | wolfbeast <mcwerewolf@wolfbeast.com> | 2020-04-14 21:49:04 +0200 |
commit | 39dac57259cff8b61db0b22cb2ad0a8adb02692e (patch) | |
tree | 52a026cc8c22793eb17fd0f5e22adce1ae08a1dd /toolkit/components/tooltiptext/tests/browser_input_file_tooltips.js | |
parent | a1cce3b2b00bbd9f4983013ddd8934a7bccb9e99 (diff) | |
parent | c2d9ab62f3d097c9e0e00184cab1f546554f5eaa (diff) | |
download | UXP-39dac57259cff8b61db0b22cb2ad0a8adb02692e.tar UXP-39dac57259cff8b61db0b22cb2ad0a8adb02692e.tar.gz UXP-39dac57259cff8b61db0b22cb2ad0a8adb02692e.tar.lz UXP-39dac57259cff8b61db0b22cb2ad0a8adb02692e.tar.xz UXP-39dac57259cff8b61db0b22cb2ad0a8adb02692e.zip |
Merge branch 'redwood' into 28.9-platform
Diffstat (limited to 'toolkit/components/tooltiptext/tests/browser_input_file_tooltips.js')
-rw-r--r-- | toolkit/components/tooltiptext/tests/browser_input_file_tooltips.js | 122 |
1 files changed, 0 insertions, 122 deletions
diff --git a/toolkit/components/tooltiptext/tests/browser_input_file_tooltips.js b/toolkit/components/tooltiptext/tests/browser_input_file_tooltips.js deleted file mode 100644 index a1323095d..000000000 --- a/toolkit/components/tooltiptext/tests/browser_input_file_tooltips.js +++ /dev/null @@ -1,122 +0,0 @@ - -let tempFile; -add_task(function* setup() { - yield new Promise(resolve => { - SpecialPowers.pushPrefEnv({"set": [["ui.tooltipDelay", 0]]}, resolve); - }); - tempFile = createTempFile(); - registerCleanupFunction(function() { - tempFile.remove(true); - }); -}); - -add_task(function* test_singlefile_selected() { - yield do_test({value: true, result: "testfile_bug1251809"}); -}); - -add_task(function* test_title_set() { - yield do_test({title: "foo", result: "foo"}); -}); - -add_task(function* test_nofile_selected() { - yield do_test({result: "No file selected."}); -}); - -add_task(function* test_multipleset_nofile_selected() { - yield do_test({multiple: true, result: "No files selected."}); -}); - -add_task(function* test_requiredset() { - yield do_test({required: true, result: "Please select a file."}); -}); - -function* do_test(test) { - info(`starting test ${JSON.stringify(test)}`); - - let tab = yield BrowserTestUtils.openNewForegroundTab(gBrowser); - - info("Moving mouse out of the way."); - yield new Promise(resolve => { - EventUtils.synthesizeNativeMouseMove(tab.linkedBrowser, 300, 300, resolve); - }); - - info("creating input field"); - yield ContentTask.spawn(tab.linkedBrowser, test, function*(test) { - let doc = content.document; - let input = doc.createElement("input"); - doc.body.appendChild(input); - input.id = "test_input"; - input.setAttribute("style", "position: absolute; top: 0; left: 0;"); - input.type = "file"; - if (test.title) { - input.setAttribute("title", test.title); - } - if (test.multiple) { - input.multiple = true; - } - if (test.required) { - input.required = true; - } - }); - - if (test.value) { - info("Creating mock filepicker to select files"); - let MockFilePicker = SpecialPowers.MockFilePicker; - MockFilePicker.init(window); - MockFilePicker.returnValue = MockFilePicker.returnOK; - MockFilePicker.displayDirectory = FileUtils.getDir("TmpD", [], false); - MockFilePicker.returnFiles = [tempFile]; - - try { - // Open the File Picker dialog (MockFilePicker) to select - // the files for the test. - yield BrowserTestUtils.synthesizeMouseAtCenter("#test_input", {}, tab.linkedBrowser); - info("Waiting for the input to have the requisite files"); - yield ContentTask.spawn(tab.linkedBrowser, {}, function*() { - let input = content.document.querySelector("#test_input"); - yield ContentTaskUtils.waitForCondition(() => input.files.length, - "The input should have at least one file selected"); - info(`The input has ${input.files.length} file(s) selected.`); - }); - } finally { - MockFilePicker.cleanup(); - } - } else { - info("No real file selection required."); - } - - let awaitTooltipOpen = new Promise(resolve => { - let tooltipId = Services.appinfo.browserTabsRemoteAutostart ? - "remoteBrowserTooltip" : - "aHTMLTooltip"; - let tooltip = document.getElementById(tooltipId); - tooltip.addEventListener("popupshown", function onpopupshown(event) { - tooltip.removeEventListener("popupshown", onpopupshown); - resolve(event.target); - }); - }); - info("Initial mouse move"); - yield new Promise(resolve => { - EventUtils.synthesizeNativeMouseMove(tab.linkedBrowser, 50, 5, resolve); - }); - info("Waiting"); - yield new Promise(resolve => setTimeout(resolve, 400)); - info("Second mouse move"); - yield new Promise(resolve => { - EventUtils.synthesizeNativeMouseMove(tab.linkedBrowser, 70, 5, resolve); - }); - info("Waiting for tooltip to open"); - let tooltip = yield awaitTooltipOpen; - - is(tooltip.getAttribute("label"), test.result, "tooltip label should match expectation"); - - info("Closing tab"); - yield BrowserTestUtils.removeTab(tab); -} - -function createTempFile() { - let file = FileUtils.getDir("TmpD", [], false); - file.append("testfile_bug1251809"); - file.create(Ci.nsIFile.NORMAL_FILE_TYPE, 0o644); - return file; -} |