browser_rules_grid-toggle_02.js (3322B)
1 /* Any copyright is dedicated to the Public Domain. 2 http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 "use strict"; 5 6 // Test toggling the grid highlighter in the rule view from an overridden 'display: grid' 7 // declaration. 8 9 const TEST_URI = ` 10 <style type='text/css'> 11 #grid { 12 display: grid; 13 } 14 div, ul { 15 display: grid; 16 } 17 </style> 18 <ul id="grid"> 19 <li id="cell1">cell1</li> 20 <li id="cell2">cell2</li> 21 </ul> 22 `; 23 24 add_task(async function () { 25 await addTab("data:text/html;charset=utf-8," + encodeURIComponent(TEST_URI)); 26 const { inspector, view } = await openRuleView(); 27 const highlighters = view.highlighters; 28 const HIGHLIGHTER_TYPE = inspector.highlighters.TYPES.GRID; 29 const { waitForHighlighterTypeShown, waitForHighlighterTypeHidden } = 30 getHighlighterTestHelpers(inspector); 31 32 await selectNode("#grid", inspector); 33 const container = getRuleViewProperty(view, "#grid", "display").valueSpan; 34 const gridToggle = container.querySelector(".js-toggle-grid-highlighter"); 35 const overriddenContainer = getRuleViewProperty( 36 view, 37 "div, ul", 38 "display" 39 ).valueSpan; 40 const overriddenGridToggle = 41 overriddenContainer.querySelector(".inspector-grid"); 42 43 info("Checking the initial state of the CSS grid toggle in the rule-view."); 44 ok( 45 !gridToggle.hasAttribute("disabled"), 46 "Grid highlighter toggle is not disabled." 47 ); 48 ok( 49 !overriddenGridToggle.hasAttribute("disabled"), 50 "Grid highlighter toggle is not disabled." 51 ); 52 is( 53 gridToggle.getAttribute("aria-pressed"), 54 "false", 55 "Grid highlighter toggle buttons is not active…" 56 ); 57 is( 58 overriddenGridToggle.getAttribute("aria-pressed"), 59 "false", 60 "…and overridden Grid highlighter toggle buttons is not active either" 61 ); 62 ok(!highlighters.gridHighlighters.size, "No CSS grid highlighter is shown."); 63 64 info( 65 "Toggling ON the CSS grid highlighter from the overridden rule in the rule-view." 66 ); 67 const onHighlighterShown = waitForHighlighterTypeShown(HIGHLIGHTER_TYPE); 68 overriddenGridToggle.click(); 69 await onHighlighterShown; 70 71 info( 72 "Checking the CSS grid highlighter is created and toggle buttons are active in " + 73 "the rule-view." 74 ); 75 is( 76 gridToggle.getAttribute("aria-pressed"), 77 "true", 78 "Grid highlighter toggle buttons is active…" 79 ); 80 is( 81 overriddenGridToggle.getAttribute("aria-pressed"), 82 "true", 83 "…and overridden Grid highlighter toggle buttons is also active" 84 ); 85 is(highlighters.gridHighlighters.size, 1, "CSS grid highlighter is shown."); 86 87 info( 88 "Toggling off the CSS grid highlighter from the normal grid declaration in the " + 89 "rule-view." 90 ); 91 const onHighlighterHidden = waitForHighlighterTypeHidden(HIGHLIGHTER_TYPE); 92 gridToggle.click(); 93 await onHighlighterHidden; 94 95 info( 96 "Checking the CSS grid highlighter is not shown and toggle buttons are not " + 97 "active in the rule-view." 98 ); 99 is( 100 gridToggle.getAttribute("aria-pressed"), 101 "false", 102 "Grid highlighter toggle buttons is not active…" 103 ); 104 is( 105 overriddenGridToggle.getAttribute("aria-pressed"), 106 "false", 107 "…and overridden Grid highlighter toggle buttons is not active either" 108 ); 109 ok(!highlighters.gridHighlighters.size, "No CSS grid highlighter is shown."); 110 });