| <!DOCTYPE html> |
| <html> |
| <head> |
| <title>CSS Test: CSSOM MediaList Interfaces</title> |
| <link rel="author" title="Chapman Shoop" href="mailto:chapman.shoop@gmail.com"> |
| <link rel="reviewer" title="Ms2ger" href="mailto:ms2ger@gmail.com"> <!-- 2012-06-17 --> |
| <link rel="help" href="https://drafts.csswg.org/cssom/#the-medialist-interface"> |
| <meta name="flags" content="dom"> |
| <meta name="assert" content="MediaList object has deleteMedium method and it functions properly."> |
| <script src="/resources/testharness.js" type="text/javascript"></script> |
| <script src="/resources/testharnessreport.js" type="text/javascript"></script> |
| </head> |
| |
| <body> |
| <noscript>Test not run - javascript required.</noscript> |
| <div id="log"></div> |
| |
| <script type="text/javascript"> |
| function setup() { |
| // Clean out any old style element |
| var old_style_el = document.getElementById('test_style'); |
| if (old_style_el) { |
| document.head.removeChild(old_style_el); |
| } |
| |
| // Create a fresh style element and return its media attribute |
| var style_el = document.createElement('style'); |
| style_el.setAttribute('id', 'test_style'); |
| document.head.appendChild(style_el); |
| return style_el.sheet.media; |
| } |
| </script> |
| |
| <script type="text/javascript"> |
| |
| // MediaList.deleteMedium called without argument throws error. |
| test(function() { |
| media_list = setup(); |
| assert_throws_js(TypeError, function() { media_list.deleteMedium(); }); |
| }, "deleteMedium_called_without_argument"); |
| |
| // MediaList.deleteMedium removes correct medium and updates corresponding properties. |
| test(function() { |
| media_list = setup(); |
| |
| media_list.appendMedium("screen"); |
| media_list.appendMedium("all"); |
| |
| media_list.deleteMedium("screen"); |
| |
| assert_equals(media_list.length, 1); |
| assert_equals(media_list.item(0), "all"); |
| assert_equals(media_list.mediaText, "all"); |
| }, "deleteMedium_removes_correct_medium"); |
| |
| // MediaList.deleteMedium doesn't modify MediaList when medium is not found. |
| test(function() { |
| media_list = setup(); |
| |
| media_list.appendMedium("all"); |
| |
| assert_throws_dom("NotFoundError", () => media_list.deleteMedium("screen")); |
| |
| assert_equals(media_list.length, 1); |
| assert_equals(media_list.item(0), "all"); |
| assert_equals(media_list.mediaText, "all"); |
| }, "deleteMedium_no_matching_medium_to_remove"); |
| |
| </script> |
| </body> |
| </html> |