summaryrefslogtreecommitdiffstats
path: root/devtools/client/webconsole/test/browser_bug1045902_console_csp_ignore_reflected_xss_message.js
diff options
context:
space:
mode:
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.js52
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;
+ }
+ });
+}