browser_rules_authored.js (1735B)
1 /* Any copyright is dedicated to the Public Domain. 2 http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 "use strict"; 5 6 // Test for as-authored styles. 7 8 add_task(async function () { 9 const html = ` 10 <style type="text/css"> 11 #testid { 12 /* Invalid property */ 13 something: random; 14 /* Invalid value */ 15 color: orang; 16 /* Override */ 17 background-color: blue; 18 background-color: #f06; 19 } 20 </style> 21 <div id="testid" class="testclass">Styled Node</div>`; 22 await addTab("data:text/html;charset=utf-8," + encodeURIComponent(html)); 23 24 const { inspector, view } = await openRuleView(); 25 await selectNode("#testid", inspector); 26 27 const elementStyle = view._elementStyle; 28 29 const expected = [ 30 { 31 name: "something", 32 overridden: false, 33 isNameValid: false, 34 isValid: false, 35 }, 36 { name: "color", overridden: false, isNameValid: true, isValid: false }, 37 { 38 name: "background-color", 39 overridden: true, 40 isNameValid: true, 41 isValid: true, 42 }, 43 { 44 name: "background-color", 45 overridden: false, 46 isNameValid: true, 47 isValid: true, 48 }, 49 ]; 50 51 const rule = elementStyle.rules[1]; 52 53 for (let i = 0; i < expected.length; ++i) { 54 const prop = rule.textProps[i]; 55 is(prop.name, expected[i].name, "Check name for prop " + i); 56 is( 57 prop.overridden, 58 expected[i].overridden, 59 "Check overridden for prop " + i 60 ); 61 is( 62 prop.isNameValid(), 63 expected[i].isNameValid, 64 "Check if property name is valid for prop " + i 65 ); 66 is( 67 prop.isValid(), 68 expected[i].isValid, 69 "Check if whole declaration is valid for prop " + i 70 ); 71 } 72 });