Bug 1405245 - enable test-csp-violation.html for new webconsole;r=nchevobbe

MozReview-Commit-ID: IgONHkE3Pjk

--HG--
rename : devtools/client/webconsole/new-console-output/test/mochitest/browser_webconsole_violation.js => devtools/client/webconsole/new-console-output/test/mochitest/browser_webconsole_csp_violation.js
rename : devtools/client/webconsole/new-console-output/test/mochitest/test_bug_1247459_violation.html => devtools/client/webconsole/new-console-output/test/mochitest/test-csp-violation.html
extra : rebase_source : fdb0cd8892eabe1b030b54ffc662912c143f2820
This commit is contained in:
Julian Descottes 2018-02-05 11:49:37 +01:00
Родитель 3429eb9b3f
Коммит d089325c36
4 изменённых файлов: 37 добавлений и 26 удалений

Просмотреть файл

@ -11,7 +11,6 @@ support-files =
source-mapped.css
source-mapped.css.map
source-mapped.scss
test_bug_1247459_violation.html
test_bug_770099_violation.html
test_bug_770099_violation.html^headers^
test_console_csp_ignore_reflected_xss_message.html
@ -44,6 +43,7 @@ support-files =
test-cd-iframe-child.html
test-cd-iframe-parent.html
test-console-api-iframe.html
test-csp-violation.html
test-cspro.html
test-cspro.html^headers^
test-iframe-child.html
@ -265,6 +265,7 @@ subsuite = clipboard
[browser_webconsole_context_menu_store_as_global.js]
[browser_webconsole_csp_ignore_reflected_xss_message.js]
skip-if = (e10s && debug) || (e10s && os == 'win') # Bug 1221499 enabled these on windows
[browser_webconsole_csp_violation.js]
[browser_webconsole_cspro.js]
[browser_webconsole_document_focus.js]
[browser_webconsole_duplicate_errors.js]
@ -358,9 +359,6 @@ skip-if = true # Bug 1404877
[browser_webconsole_trackingprotection_errors.js]
tags = trackingprotection
[browser_webconsole_view_source.js]
[browser_webconsole_violation.js]
skip-if = true # Bug 1405245
# old console skip-if = e10s && (os == 'win') # Bug 1264955
[browser_webconsole_visibility_messages.js]
[browser_webconsole_warn_about_replaced_api.js]
[browser_webconsole_websocket.js]

Просмотреть файл

@ -9,32 +9,19 @@
"use strict";
const TEST_URI = "data:text/html;charset=utf8,Web Console CSP violation test";
const TEST_VIOLATION = "https://example.com/browser/devtools/client/" +
"webconsole/test/test_bug_1247459_violation.html";
const TEST_VIOLATION = "https://example.com/browser/devtools/client/webconsole/" +
"new-console-output/test/mochitest/test-csp-violation.html";
const CSP_VIOLATION_MSG = "Content Security Policy: The page\u2019s settings " +
"blocked the loading of a resource at " +
"http://some.example.com/test.png (\u201cimg-src " +
"https://example.com\u201d).";
add_task(function* () {
let { browser } = yield loadTab(TEST_URI);
let hud = yield openConsole();
"http://some.example.com/test.png (\u201cimg-src\u201d).";
add_task(async function () {
let hud = await openNewTabAndConsole(TEST_URI);
hud.jsterm.clearOutput();
let loaded = loadBrowser(browser);
BrowserTestUtils.loadURI(browser, TEST_VIOLATION);
yield loaded;
let onRepeatedMessage = waitForRepeatedMessage(hud, CSP_VIOLATION_MSG, 2);
await loadDocument(TEST_VIOLATION);
await onRepeatedMessage;
yield waitForMessages({
webconsole: hud,
messages: [
{
name: "CSP policy URI warning displayed successfully",
text: CSP_VIOLATION_MSG,
repeats: 2
}
]
});
ok(true, "Received expected messages");
});

Просмотреть файл

@ -138,6 +138,31 @@ function waitForMessages({ hud, messages }) {
});
}
/**
* Wait for a message with the provided text and showing the provided repeat count.
*
* @param {Object} hud : the webconsole
* @param {String} text : text included in .message-body
* @param {Number} repeat : expected repeat count in .message-repeats
*/
function waitForRepeatedMessage(hud, text, repeat) {
return waitFor(() => {
// Wait for a message matching the provided text.
let node = findMessage(hud, text);
if (!node) {
return false;
}
// Check if there is a repeat node with the expected count.
let repeatNode = node.querySelector(".message-repeats");
if (repeatNode && parseInt(repeatNode.textContent, 10) === repeat) {
return node;
}
return false;
});
}
/**
* Wait for a single message in the web console output, resolving once it is received.
*
@ -177,6 +202,7 @@ async function waitFor(condition, message = "waitFor", interval = 10, maxTries =
* A substring that can be found in the message.
* @param selector [optional]
* The selector to use in finding the message.
* @return {Node} the node corresponding the found message
*/
function findMessage(hud, text, selector = ".message") {
const elements = findMessages(hud, text, selector);