OLD | NEW |
(Empty) | |
| 1 <!doctype html> |
| 2 <style type="text/css">@media screen { }</style> |
| 3 <script src="../../resources/testharness.js"></script> |
| 4 <script src="../../resources/testharnessreport.js"></script> |
| 5 <div id=log></div> |
| 6 <script> |
| 7 var rules = document.styleSheets[0].cssRules; |
| 8 var mediaList = rules.item(0).media; |
| 9 |
| 10 // - appendMedium() |
| 11 |
| 12 test(function () { |
| 13 mediaList.mediaText = "screen"; |
| 14 mediaList.appendMedium("tv, screen"); |
| 15 assert_equals(mediaList.mediaText, "screen"); |
| 16 // CSSOM 4.1: Parsing media query returns none as |
| 17 // there are more than one; terminate steps. |
| 18 }, "Add 'tv, screen' to 'screen'"); |
| 19 |
| 20 test(function () { |
| 21 mediaList.mediaText = "screen"; |
| 22 mediaList.appendMedium("tv"); |
| 23 assert_equals(mediaList.mediaText, "screen, tv"); |
| 24 // The valid media query is appended. |
| 25 }, "Add 'tv' to 'screen'"); |
| 26 |
| 27 test(function () { |
| 28 mediaList.mediaText = "screen, tv"; |
| 29 mediaList.appendMedium("tv"); |
| 30 assert_equals(mediaList.mediaText, "screen, tv"); |
| 31 // CSSOM says to ignore if it exists, terminate steps. |
| 32 }, "Add 'tv' to 'screen, tv'"); |
| 33 |
| 34 test(function () { |
| 35 mediaList.mediaText = "screen, tv"; |
| 36 mediaList.appendMedium("screen"); |
| 37 assert_equals(mediaList.mediaText, "screen, tv"); |
| 38 // CSSOM says to ignore if it exists, where as |
| 39 // CSS 2.1 says to remove existing and then add |
| 40 // it to the end. |
| 41 // http://dev.w3.org/csswg/cssom/#dom-medialist-appendmedium |
| 42 // http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113/stylesheets.html |
| 43 }, "Add 'screen' to 'screen, tv'"); |
| 44 |
| 45 test(function () { |
| 46 mediaList.mediaText = "screen, tv"; |
| 47 mediaList.appendMedium(" "); |
| 48 // Ignored; terminate steps. |
| 49 assert_equals(mediaList.mediaText, "screen, tv"); |
| 50 }, "Add ' ' to 'screen, tv'"); |
| 51 |
| 52 test(function () { |
| 53 mediaList.mediaText = "screen, tv"; |
| 54 mediaList.appendMedium(""); |
| 55 // Ignored; terminate steps. |
| 56 assert_equals(mediaList.mediaText, "screen, tv"); |
| 57 }, "Add '' to 'screen, tv'"); |
| 58 |
| 59 test(function () { |
| 60 mediaList.mediaText = "screen, tv"; |
| 61 mediaList.appendMedium(","); |
| 62 assert_equals(mediaList.mediaText, "screen, tv"); |
| 63 // CSSOM 4.1: Parsing media query returns none as |
| 64 // there are more than one; terminate steps. |
| 65 }, "Add ',' to 'screen, tv'"); |
| 66 |
| 67 test(function () { |
| 68 mediaList.mediaText = "screen, tv"; |
| 69 mediaList.appendMedium("&invalid"); |
| 70 assert_equals(mediaList.mediaText, "screen, tv"); |
| 71 // Ignored; terminate steps. |
| 72 }, "Add '&invalid' to 'screen, tv'"); |
| 73 |
| 74 test(function () { |
| 75 mediaList.mediaText = "screen, tv"; |
| 76 mediaList.appendMedium("not all"); |
| 77 assert_equals(mediaList.mediaText, "screen, tv, not all"); |
| 78 }, "Add 'not all' to 'screen, tv'"); |
| 79 |
| 80 // - deleteMedium() |
| 81 |
| 82 test(function () { |
| 83 mediaList.mediaText = "screen, tv, not all"; |
| 84 mediaList.deleteMedium("&invalid"); |
| 85 // Ignored; terminate steps. |
| 86 assert_equals(mediaList.mediaText, "screen, tv, not all"); |
| 87 }, "Remove '&invalid' from 'screen, tv, not all'"); |
| 88 |
| 89 test(function () { |
| 90 mediaList.mediaText = "screen, tv"; |
| 91 assert_throws("NOT_FOUND_ERR", |
| 92 function () { mediaList.deleteMedium("not all"); } |
| 93 ); |
| 94 // Not found; throw NotFoundError. |
| 95 }, "Remove 'not all' from 'screen, tv'"); |
| 96 |
| 97 test(function () { |
| 98 mediaList.mediaText = "screen, tv"; |
| 99 assert_throws("NOT_FOUND_ERR", |
| 100 function () { mediaList.deleteMedium("cow"); } |
| 101 ); |
| 102 // Not found; throw NotFoundError. |
| 103 }, "Remove 'cow' from 'screen, tv'"); |
| 104 |
| 105 test(function () { |
| 106 mediaList.mediaText = "screen, tv, not all"; |
| 107 mediaList.deleteMedium("not all"); |
| 108 assert_equals(mediaList.mediaText, "screen, tv"); |
| 109 // Remove any media query from the collection of media queries |
| 110 // for which comparing the media query returns true. |
| 111 }, "Remove 'not all' from 'screen, tv, not all'"); |
| 112 |
| 113 test(function () { |
| 114 mediaList.mediaText = "screen, tv"; |
| 115 mediaList.deleteMedium("tv"); |
| 116 assert_equals(mediaList.mediaText, "screen"); |
| 117 // Remove any media query from the collection of media queries |
| 118 // for which comparing the media query returns true. |
| 119 }, "Remove 'tv' from 'screen, tv'"); |
| 120 |
| 121 test(function () { |
| 122 mediaList.mediaText = "not all, not all, tv, not all"; |
| 123 mediaList.deleteMedium("not all"); |
| 124 assert_equals(mediaList.mediaText, "tv"); |
| 125 // Remove any media query from the collection of media queries |
| 126 // for which comparing the media query returns true. |
| 127 }, "Remove 'not all' from 'not all, not all, tv, not all'"); |
| 128 |
| 129 test(function () { |
| 130 mediaList.mediaText = "not all, not all, tv, not all"; |
| 131 mediaList.deleteMedium("tv"); |
| 132 assert_equals(mediaList.mediaText, "not all, not all, not all"); |
| 133 // Remove any media query from the collection of media queries |
| 134 // for which comparing the media query returns true. |
| 135 }, "Remove 'tv' from 'not all, not all, tv, not all'"); |
| 136 |
| 137 test(function () { |
| 138 mediaList.mediaText = "tv, print, screen"; |
| 139 mediaList.deleteMedium("tv, print"); |
| 140 assert_equals(mediaList.mediaText, "tv, print, screen"); |
| 141 // CSSOM 4.1: Parsing media query returns none as |
| 142 // there are more than one; terminate steps. |
| 143 }, "Remove 'tv, print' from 'screen, tv, screen'"); |
| 144 </script> |
OLD | NEW |