diff options
Diffstat (limited to 'devtools/client/webconsole/test/browser_bug1045902_console_csp_ignore_reflected_xss_message.js')
-rw-r--r-- | devtools/client/webconsole/test/browser_bug1045902_console_csp_ignore_reflected_xss_message.js | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/devtools/client/webconsole/test/browser_bug1045902_console_csp_ignore_reflected_xss_message.js b/devtools/client/webconsole/test/browser_bug1045902_console_csp_ignore_reflected_xss_message.js new file mode 100644 index 000000000..cfbf61795 --- /dev/null +++ b/devtools/client/webconsole/test/browser_bug1045902_console_csp_ignore_reflected_xss_message.js @@ -0,0 +1,52 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* vim: set ft=javascript ts=2 et sw=2 tw=80: */ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +// Tests that a file with an unsupported CSP directive ('reflected-xss filter') +// displays the appropriate message to the console. + +"use strict"; + +const EXPECTED_RESULT = "Not supporting directive \u2018reflected-xss\u2019. " + + "Directive and values will be ignored."; +const TEST_FILE = "http://example.com/browser/devtools/client/webconsole/" + + "test/test_bug1045902_console_csp_ignore_reflected_xss_" + + "message.html"; + +var hud = undefined; + +var TEST_URI = "data:text/html;charset=utf8,Web Console CSP ignoring " + + "reflected XSS (bug 1045902)"; + +add_task(function* () { + let { browser } = yield loadTab(TEST_URI); + + hud = yield openConsole(); + + yield loadDocument(browser); + yield testViolationMessage(); + + hud = null; +}); + +function loadDocument(browser) { + hud.jsterm.clearOutput(); + browser.loadURI(TEST_FILE); + return BrowserTestUtils.browserLoaded(browser); +} + +function testViolationMessage() { + let aOutputNode = hud.outputNode; + + return waitForSuccess({ + name: "Confirming that CSP logs messages to the console when " + + "\u2018reflected-xss\u2019 directive is used!", + validator: function () { + console.log(aOutputNode.textContent); + let success = false; + success = aOutputNode.textContent.indexOf(EXPECTED_RESULT) > -1; + return success; + } + }); +} |