Index: LayoutTests/http/tests/security/subresourceIntegrity/subresource-integrity-style-blocked.html |
diff --git a/LayoutTests/http/tests/security/subresourceIntegrity/subresource-integrity-style-blocked.html b/LayoutTests/http/tests/security/subresourceIntegrity/subresource-integrity-style-blocked.html |
index 749cd821b10e58e9a85d3c8cfc02b4761c3f09b7..b5d4411060da27b37c2830544d67aa9b9d270af7 100644 |
--- a/LayoutTests/http/tests/security/subresourceIntegrity/subresource-integrity-style-blocked.html |
+++ b/LayoutTests/http/tests/security/subresourceIntegrity/subresource-integrity-style-blocked.html |
@@ -4,26 +4,79 @@ |
<title>Subresource integrity blocked style resources</title> |
<script src="../../resources/testharness.js"></script> |
- <link rel="stylesheet" href="style-1-of-3.css" integrity="ni:///sha256;BpfBw7ivV8q2jLiT13fxDYAe2tJllusRSZ273h2nFSE="></link> |
- <link rel="stylesheet" href="style-2-of-3.css" integrity="ni:///sha384;XVVXBGoYw6AJOh9J/Z8pBDMVVPfkBpngexkA7JqZu8d5GENND6TEIup/tA1v5GPr"></link> |
- <link rel="stylesheet" href="style-3-of-3.css" integrity="ni:///sha512;tbUPioKbVBplr0b1ucnWB57SJWt4x9dOE0Vy2mzCXvH3FepqDZ+07yMK81ytlg0MPaIrPAjcHqba5csorDWtKg=="></link> |
- </head> |
- <body> |
<script> |
- if (window.testRunner) |
- testRunner.dumpAsText(); |
+ var steps = 0; |
+ var loaded = 0; |
+ var failed = 0; |
+ |
+ function markLoaded() { |
+ ++loaded; |
+ runNextStep(); |
+ } |
+ |
+ function markFailed() { |
+ ++failed; |
+ runNextStep(); |
+ } |
+ |
+ function insertStylesheetAsLink(cssHref, hash) |
+ { |
+ var link = document.createElement("link"); |
+ link.rel = "stylesheet"; |
+ link.href = cssHref; |
+ link.integrity = hash; |
+ link.addEventListener('load', markLoaded); |
+ link.addEventListener('error', markFailed); |
+ document.head.appendChild(link); |
+ } |
+ |
+ function runTest() |
+ { |
+ if (window.testRunner) { |
+ testRunner.dumpAsText(); |
+ testRunner.waitUntilDone(); |
+ } |
+ |
+ runNextStep(); |
+ } |
+ |
+ function runNextStep() |
+ { |
+ switch (++steps) { |
+ case 1: |
+ insertStylesheetAsLink("style-1-of-3.css", "ni:///sha256;BpfBw7ivV8q2jLiT13fxDYAe2tJllusRSZ273h2nFSE="); |
+ break; |
+ case 2: |
+ insertStylesheetAsLink("style-2-of-3.css", "ni:///sha384;XVVXBGoYw6AJOh9J/Z8pBDMVVPfkBpngexkA7JqZu8d5GENND6TEIup/tA1v5GPr"); |
+ break; |
+ case 3: |
+ insertStylesheetAsLink("style-3-of-3.css", "ni:///sha512;tbUPioKbVBplr0b1ucnWB57SJWt4x9dOE0Vy2mzCXvH3FepqDZ+07yMK81ytlg0MPaIrPAjcHqba5csorDWtKg=="); |
+ break; |
+ case 4: |
+ finishTest(); |
+ break; |
+ } |
+ } |
+ |
+ function finishTest() |
+ { |
+ var color = window.getComputedStyle(document.querySelector('#p1')).color; |
+ assert_not_equals(color, "rgb(0, 128, 0)", "The p#1 element's text should not be green."); |
+ color = window.getComputedStyle(document.querySelector('#p2')).color; |
+ assert_not_equals(color, "rgb(0, 128, 0)", "The p#2 element's text should not be green."); |
+ color = window.getComputedStyle(document.querySelector('#p3')).color; |
+ assert_not_equals(color, "rgb(0, 128, 0)", "The p#3 element's text should not be green."); |
+ assert_equals(failed, 3, "All stylesheet loads should have failed."); |
+ assert_equals(loaded, 0, "All stylesheet loads should have failed."); |
+ done(); |
+ if (window.testRunner) |
+ testRunner.notifyDone(); |
+ } |
</script> |
+ </head> |
+ <body onload="runTest()"> |
<p id="p1">Test 1</p> |
<p id="p2">Test 2</p> |
<p id="p3">Test 3</p> |
- |
- <script> |
- var color = window.getComputedStyle(document.querySelector('#p1')).color; |
- assert_not_equals(color, "rgb(0, 128, 0)", "The p#1 element's text should not be green."); |
- color = window.getComputedStyle(document.querySelector('#p2')).color; |
- assert_not_equals(color, "rgb(0, 128, 0)", "The p#2 element's text should not be green."); |
- color = window.getComputedStyle(document.querySelector('#p3')).color; |
- assert_not_equals(color, "rgb(0, 128, 0)", "The p#3 element's text should not be green."); |
- </script> |
</body> |
</html> |