| <!DOCTYPE html> |
| <meta charset="utf-8"> |
| <script src=/resources/testharness.js></script> |
| <script src=/resources/testharnessreport.js></script> |
| |
| <link rel=stylesheet href=stylesheet.py> |
| <link rel=stylesheet media="screen and (max-width:10px)" href=stylesheet.py?stylesNotMatchingEnvironment&delay=2> |
| <h1>Dominic Farolino</h1> |
| <script> |
| function styleExists(styleText) { |
| for (let styleRule of document.styleSheets) { |
| let currentStyleText = styleRule.cssRules["0"].cssText; |
| if (currentStyleText == styleText) { |
| return true; |
| } |
| } |
| |
| return false; |
| } |
| |
| test(() => { |
| const h1 = document.querySelector('h1'); |
| const computedColor = getComputedStyle(h1).color; |
| const expectedColor = "rgb(128, 0, 128)"; |
| |
| assert_equals(computedColor, expectedColor); |
| assert_true(styleExists("h1 { color: purple; }")); // first style sheet |
| assert_false(styleExists("h1 { color: brown; }")); // second style sheet (should not be loaded yet) |
| }, "Only the style sheet loaded via a link element whose media attribute matches the environment should block following script execution"); |
| |
| const secondStylesheetTest = async_test("Both style sheets loaded via the link elements should be registered as style sheets for the document after 2 seconds"); |
| secondStylesheetTest.step_timeout(() => { |
| assert_true(styleExists("h1 { color: purple; }")); // first style sheet |
| assert_true(styleExists("h1 { color: brown; }")); // second style sheet (loaded now!) |
| secondStylesheetTest.done(); |
| }, 3000); |
| </script> |