browser_rules_flexbox-toggle_02.js (3568B)
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 flexbox highlighter in the rule view from an overridden 7 // 'display: flex' declaration. 8 9 const TEST_URI = ` 10 <style type='text/css'> 11 #flex { 12 display: flex; 13 } 14 div, ul { 15 display: flex; 16 } 17 </style> 18 <ul id="flex"> 19 <li>1</li> 20 <li>2</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 HIGHLIGHTER_TYPE = inspector.highlighters.TYPES.FLEXBOX; 28 const { 29 getActiveHighlighter, 30 getNodeForActiveHighlighter, 31 waitForHighlighterTypeShown, 32 waitForHighlighterTypeHidden, 33 } = getHighlighterTestHelpers(inspector); 34 35 await selectNode("#flex", inspector); 36 const container = getRuleViewProperty(view, "#flex", "display").valueSpan; 37 const flexboxToggle = container.querySelector( 38 ".js-toggle-flexbox-highlighter" 39 ); 40 const overriddenContainer = getRuleViewProperty( 41 view, 42 "div, ul", 43 "display" 44 ).valueSpan; 45 const overriddenFlexboxToggle = overriddenContainer.querySelector( 46 ".js-toggle-flexbox-highlighter" 47 ); 48 49 info("Checking the initial state of the flexbox toggle in the rule-view."); 50 ok( 51 flexboxToggle && overriddenFlexboxToggle, 52 "Flexbox highlighter toggles are visible." 53 ); 54 is( 55 flexboxToggle.getAttribute("aria-pressed"), 56 "false", 57 "Flexbox highlighter toggle buttons is not active…" 58 ); 59 is( 60 overriddenFlexboxToggle.getAttribute("aria-pressed"), 61 "false", 62 "… and overriden Flexbox highlighter toggle buttons isn't active either" 63 ); 64 65 ok( 66 !getActiveHighlighter(HIGHLIGHTER_TYPE), 67 "No flexbox highlighter exists in the rule-view." 68 ); 69 ok( 70 !getNodeForActiveHighlighter(HIGHLIGHTER_TYPE), 71 "No flexbox highlighter is shown." 72 ); 73 74 info( 75 "Toggling ON the flexbox highlighter from the overridden rule in the rule-view." 76 ); 77 const onHighlighterShown = waitForHighlighterTypeShown(HIGHLIGHTER_TYPE); 78 overriddenFlexboxToggle.click(); 79 await onHighlighterShown; 80 81 info( 82 "Checking the flexbox highlighter is created and toggle buttons are active in " + 83 "the rule-view." 84 ); 85 is( 86 flexboxToggle.getAttribute("aria-pressed"), 87 "true", 88 "Flexbox highlighter toggle is active…" 89 ); 90 is( 91 overriddenFlexboxToggle.getAttribute("aria-pressed"), 92 "true", 93 "… and overriden Flexbox highlighter toggle buttons is active as well" 94 ); 95 96 ok( 97 getActiveHighlighter(HIGHLIGHTER_TYPE), 98 "Flexbox highlighter created in the rule-view." 99 ); 100 ok( 101 getNodeForActiveHighlighter(HIGHLIGHTER_TYPE), 102 "Flexbox highlighter is shown." 103 ); 104 105 info( 106 "Toggling off the flexbox highlighter from the normal flexbox declaration in " + 107 "the rule-view." 108 ); 109 const onHighlighterHidden = waitForHighlighterTypeHidden(HIGHLIGHTER_TYPE); 110 flexboxToggle.click(); 111 await onHighlighterHidden; 112 113 info( 114 "Checking the flexbox highlighter is not shown and toggle buttons are not " + 115 "active in the rule-view." 116 ); 117 is( 118 flexboxToggle.getAttribute("aria-pressed"), 119 "false", 120 "Flexbox highlighter toggle buttons is not active…" 121 ); 122 is( 123 overriddenFlexboxToggle.getAttribute("aria-pressed"), 124 "false", 125 "… and overriden Flexbox highlighter toggle buttons isn't active either" 126 ); 127 ok( 128 !getNodeForActiveHighlighter(HIGHLIGHTER_TYPE), 129 "No flexbox highlighter is shown." 130 ); 131 });