cssom.html (2182B)
1 <!doctype html> 2 <title>Selectors: CSSOM of case-sensitivity attribute selector</title> 3 <link rel="help" href="https://drafts.csswg.org/selectors/#attribute-case"> 4 <script src="/resources/testharness.js"></script> 5 <script src="/resources/testharnessreport.js"></script> 6 <div id=log></div> 7 <script> 8 function new_sheet(use_media) { 9 var style = document.getElementsByTagName('style')[0]; 10 if (style) 11 style.parentNode.removeChild(style); 12 style = document.createElement('style'); 13 document.head.appendChild(style); 14 if (use_media) { 15 style.textContent = '@media all {}'; 16 return style.sheet.cssRules[0]; 17 } 18 return style.sheet; 19 } 20 21 var tests = [ 22 // test input, expected serialization 23 ['[foo="bar"] /* sanity check */', '[foo="bar"]'], 24 ['[foo="bar" i]', '[foo="bar" i]'], 25 ['[foo="bar" /**/ i]', '[foo="bar" i]'], 26 ['[foo="bar"/**/i]', '[foo="bar" i]'], 27 ['[*|foo="bar" i]', '[*|foo="bar" i]'], 28 ['[foo="bar" s]', '[foo="bar" s]'], 29 ['[foo="bar" /**/ s]', '[foo="bar" s]'], 30 ['[foo="bar"/**/s]', '[foo="bar" s]'], 31 ['[*|foo="bar" s]', '[*|foo="bar" s]'], 32 ] 33 34 tests.forEach(function(arr) { 35 var input = arr[0]; 36 var expected = arr[1]; 37 ["", " in @media"].forEach(function(use_media) { 38 test(function() { 39 var sheet = new_sheet(use_media); 40 sheet.insertRule(input + ' {}', 0); 41 assert_equals(sheet.cssRules.length, 1); 42 }, input + ' insertRule' + use_media); 43 44 test(function() { 45 var sheet = new_sheet(use_media); 46 sheet.insertRule(input + ' {}', 0); 47 assert_equals(sheet.cssRules[0].cssText.substr(0, expected.length), expected); 48 }, input + ' getting CSSRule#cssText' + use_media); 49 50 test(function() { 51 var sheet = new_sheet(use_media); 52 sheet.insertRule(input + ' {}', 0); 53 assert_equals(sheet.cssRules[0].selectorText, expected); 54 }, input + ' getting CSSStyleRule#selectorText' + use_media); 55 56 test(function() { 57 var sheet = new_sheet(use_media); 58 sheet.insertRule('foobar {}', 0); 59 sheet.cssRules[0].selectorText = input; 60 assert_equals(sheet.cssRules[0].selectorText, expected); 61 }, input + ' setting CSSStyleRule#selectorText' + use_media); 62 }); 63 }); 64 </script>