diff options
Diffstat (limited to 'toolkit/devtools/styleeditor/test/browser_styleeditor_enabled.js')
-rw-r--r-- | toolkit/devtools/styleeditor/test/browser_styleeditor_enabled.js | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/toolkit/devtools/styleeditor/test/browser_styleeditor_enabled.js b/toolkit/devtools/styleeditor/test/browser_styleeditor_enabled.js new file mode 100644 index 000000000..5edf27449 --- /dev/null +++ b/toolkit/devtools/styleeditor/test/browser_styleeditor_enabled.js @@ -0,0 +1,70 @@ +/* vim: set ts=2 et sw=2 tw=80: */ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +// https rather than chrome to improve coverage +const TESTCASE_URI = TEST_BASE_HTTPS + "simple.html"; + +function test() +{ + waitForExplicitFinish(); + + let count = 0; + addTabAndOpenStyleEditors(2, function(panel) { + // we test against first stylesheet after all are ready + let UI = panel.UI; + let editor = UI.editors[0]; + editor.getSourceEditor().then(runTests.bind(this, UI, editor)); + }); + + content.location = TESTCASE_URI; +} + +function runTests(UI, editor) +{ + testEnabledToggle(UI, editor); +} + +function testEnabledToggle(UI, editor) +{ + let summary = editor.summary; + let enabledToggle = summary.querySelector(".stylesheet-enabled"); + ok(enabledToggle, "enabled toggle button exists"); + + is(editor.styleSheet.disabled, false, + "first stylesheet is initially enabled"); + + is(summary.classList.contains("disabled"), false, + "first stylesheet is initially enabled, UI does not have DISABLED class"); + + let disabledToggleCount = 0; + editor.on("property-change", function(event, property) { + if (property != "disabled") { + return; + } + disabledToggleCount++; + + if (disabledToggleCount == 1) { + is(editor.styleSheet.disabled, true, "first stylesheet is now disabled"); + is(summary.classList.contains("disabled"), true, + "first stylesheet is now disabled, UI has DISABLED class"); + + // now toggle it back to enabled + waitForFocus(function () { + EventUtils.synthesizeMouseAtCenter(enabledToggle, {}, gPanelWindow); + }, gPanelWindow); + return; + } + + // disabledToggleCount == 2 + is(editor.styleSheet.disabled, false, "first stylesheet is now enabled again"); + is(summary.classList.contains("disabled"), false, + "first stylesheet is now enabled again, UI does not have DISABLED class"); + + finish(); + }); + + waitForFocus(function () { + EventUtils.synthesizeMouseAtCenter(enabledToggle, {}, gPanelWindow); + }, gPanelWindow); +} |