medialist-interfaces-002.html (2457B)
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>CSS Test: CSSOM MediaList Interfaces</title> 5 <link rel="author" title="Chapman Shoop" href="mailto:chapman.shoop@gmail.com"> 6 <link rel="reviewer" title="Ms2ger" href="mailto:ms2ger@gmail.com"> <!-- 2012-06-17 --> 7 <link rel="help" href="https://drafts.csswg.org/cssom/#the-medialist-interface"> 8 <meta name="flags" content="dom"> 9 <meta name="assert" content="MediaList object has deleteMedium method and it functions properly."> 10 <script src="/resources/testharness.js" type="text/javascript"></script> 11 <script src="/resources/testharnessreport.js" type="text/javascript"></script> 12 </head> 13 14 <body> 15 <noscript>Test not run - javascript required.</noscript> 16 <div id="log"></div> 17 18 <script type="text/javascript"> 19 function setup() { 20 // Clean out any old style element 21 var old_style_el = document.getElementById('test_style'); 22 if (old_style_el) { 23 document.head.removeChild(old_style_el); 24 } 25 26 // Create a fresh style element and return its media attribute 27 var style_el = document.createElement('style'); 28 style_el.setAttribute('id', 'test_style'); 29 document.head.appendChild(style_el); 30 return style_el.sheet.media; 31 } 32 </script> 33 34 <script type="text/javascript"> 35 36 // MediaList.deleteMedium called without argument throws error. 37 test(function() { 38 media_list = setup(); 39 assert_throws_js(TypeError, function() { media_list.deleteMedium(); }); 40 }, "deleteMedium_called_without_argument"); 41 42 // MediaList.deleteMedium removes correct medium and updates corresponding properties. 43 test(function() { 44 media_list = setup(); 45 46 media_list.appendMedium("screen"); 47 media_list.appendMedium("all"); 48 49 media_list.deleteMedium("screen"); 50 51 assert_equals(media_list.length, 1); 52 assert_equals(media_list.item(0), "all"); 53 assert_equals(media_list.mediaText, "all"); 54 }, "deleteMedium_removes_correct_medium"); 55 56 // MediaList.deleteMedium doesn't modify MediaList when medium is not found. 57 test(function() { 58 media_list = setup(); 59 60 media_list.appendMedium("all"); 61 62 assert_throws_dom("NotFoundError", () => media_list.deleteMedium("screen")); 63 64 assert_equals(media_list.length, 1); 65 assert_equals(media_list.item(0), "all"); 66 assert_equals(media_list.mediaText, "all"); 67 }, "deleteMedium_no_matching_medium_to_remove"); 68 69 </script> 70 </body> 71 </html>