blob: 53c2393af83f1e8fc22bc25565a9720963b5e40c [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
(async function() {
TestRunner.addResult(`Tests that stylesheets with sourceURL comment are shown in the Sources panel.\n`);
await TestRunner.loadModule('sources_test_runner');
await TestRunner.showPanel('sources');
await TestRunner.showPanel('elements');
await TestRunner.navigatePromise('resources/stylesheet-source-url-comment.html');
function forEachHeaderMatchingURL(url, handler) {
var headers = TestRunner.cssModel.styleSheetHeaders();
for (var i = 0; i < headers.length; ++i) {
if (headers[i].sourceURL.indexOf(url) !== -1)
handler(headers[i]);
}
}
function checkHeaderHasSourceURL(header) {
TestRunner.assertTrue(header.hasSourceURL);
}
TestRunner.runTestSuite([
function testSourceURLCommentInInlineScript(next) {
SourcesTestRunner.showScriptSource('stylesheet-source-url-comment.html', didShowSource);
function didShowSource(sourceFrame) {
function checkHeaderDoesNotHaveSourceURL(header) {
TestRunner.assertTrue(!header.hasSourceURL, 'hasSourceURL flag is set for inline stylesheet');
}
forEachHeaderMatchingURL('source-url-comment.html', checkHeaderDoesNotHaveSourceURL);
next();
}
},
function testSourceURLComment(next) {
SourcesTestRunner.showScriptSource('css/addedInlineStylesheet.css', didShowSource);
TestRunner.evaluateInPage('setTimeout(addInlineStyleSheet, 0)');
function didShowSource(sourceFrame) {
TestRunner.addResult(sourceFrame.textEditor.text());
forEachHeaderMatchingURL('addedInlineStylesheet', checkHeaderHasSourceURL);
next();
}
},
function testDeprecatedSourceURLComment(next) {
SourcesTestRunner.showScriptSource('css/addedInlineStylesheetDeprecated.css', didShowSource);
TestRunner.evaluateInPage('setTimeout(addInlineStyleSheetDeprecated, 0)');
function didShowSource(sourceFrame) {
TestRunner.addResult(sourceFrame.textEditor.text());
forEachHeaderMatchingURL('addedInlineStylesheetDeprecated', checkHeaderHasSourceURL);
next();
}
},
function testNonRelativeURL(next) {
SourcesTestRunner.showScriptSource('css/nonRelativeInlineStylesheet.css', didShowSource);
TestRunner.evaluateInPage('setTimeout(addInlineStyleSheetNonRelative, 0)');
function didShowSource(sourceFrame) {
TestRunner.addResult(sourceFrame.textEditor.text());
forEachHeaderMatchingURL('nonRelativeInlineStyleSheet.css', checkHeaderHasSourceURL);
next();
}
},
function testMultiple(next) {
SourcesTestRunner.showScriptSource('css/addedInlineStylesheetMultiple.css', didShowSource);
TestRunner.evaluateInPage('setTimeout(addInlineStyleSheetMultiple, 0)');
function didShowSource(sourceFrame) {
TestRunner.addResult(sourceFrame.textEditor.text());
forEachHeaderMatchingURL('addInlineStyleSheetMultiple.css', checkHeaderHasSourceURL);
next();
}
}
]);
})();