diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /devtools/client/scratchpad/test/browser_scratchpad_reload_and_run.js | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'devtools/client/scratchpad/test/browser_scratchpad_reload_and_run.js')
-rw-r--r-- | devtools/client/scratchpad/test/browser_scratchpad_reload_and_run.js | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/devtools/client/scratchpad/test/browser_scratchpad_reload_and_run.js b/devtools/client/scratchpad/test/browser_scratchpad_reload_and_run.js new file mode 100644 index 000000000..19e360b20 --- /dev/null +++ b/devtools/client/scratchpad/test/browser_scratchpad_reload_and_run.js @@ -0,0 +1,76 @@ +/* vim: set ts=2 et sw=2 tw=80: */ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ +/* Bug 740948 */ + +var DEVTOOLS_CHROME_ENABLED = "devtools.chrome.enabled"; +var EDITOR_TEXT = [ + "var evt = new CustomEvent('foo', { bubbles: true });", + "document.body.innerHTML = 'Modified text';", + "window.dispatchEvent(evt);" +].join("\n"); + +function test() +{ + requestLongerTimeout(2); + waitForExplicitFinish(); + Services.prefs.setBoolPref(DEVTOOLS_CHROME_ENABLED, true); + + gBrowser.selectedTab = gBrowser.addTab(); + gBrowser.selectedBrowser.addEventListener("load", function onLoad() { + gBrowser.selectedBrowser.removeEventListener("load", onLoad, true); + openScratchpad(runTests); + }, true); + + content.location = "data:text/html,Scratchpad test for bug 740948"; +} + +function runTests() +{ + let sp = gScratchpadWindow.Scratchpad; + ok(sp, "Scratchpad object exists in new window"); + + // Test that Reload And Run command is enabled in the content + // context and disabled in the browser context. + + let reloadAndRun = gScratchpadWindow.document. + getElementById("sp-cmd-reloadAndRun"); + ok(reloadAndRun, "Reload And Run command exists"); + ok(!reloadAndRun.hasAttribute("disabled"), + "Reload And Run command is enabled"); + + sp.setBrowserContext(); + ok(reloadAndRun.hasAttribute("disabled"), + "Reload And Run command is disabled in the browser context."); + + // Switch back to the content context and run our predefined + // code. This code modifies the body of our document and dispatches + // a custom event 'foo'. We listen to that event and check the + // body to make sure that the page has been reloaded and Scratchpad + // code has been executed. + + sp.setContentContext(); + sp.setText(EDITOR_TEXT); + + let browser = gBrowser.selectedBrowser; + + let deferred = promise.defer(); + browser.addEventListener("DOMWindowCreated", function onWindowCreated() { + browser.removeEventListener("DOMWindowCreated", onWindowCreated, true); + + browser.contentWindow.addEventListener("foo", function onFoo() { + browser.contentWindow.removeEventListener("foo", onFoo, true); + + is(browser.contentWindow.document.body.innerHTML, "Modified text", + "After reloading, HTML is different."); + + Services.prefs.clearUserPref(DEVTOOLS_CHROME_ENABLED); + deferred.resolve(); + }, true); + }, true); + + ok(browser.contentWindow.document.body.innerHTML !== "Modified text", + "Before reloading, HTML is intact."); + sp.reloadAndRun().then(deferred.promise).then(finish); +} + |