browser_markup_scrollable_badge.js (1777B)
1 /* Any copyright is dedicated to the Public Domain. 2 http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 "use strict"; 5 6 // Tests that the scrollable badge is shown next to scrollable elements, and is updated 7 // dynamically when necessary. 8 9 const TEST_URI = ` 10 <style type="text/css"> 11 #wrapper { 12 width: 300px; 13 height: 300px; 14 overflow: scroll; 15 } 16 #wrapper.no-scroll { 17 overflow: hidden; 18 } 19 #content { 20 height: 1000px; 21 } 22 </style> 23 <div id="wrapper"> 24 <div id="content"></div> 25 </div> 26 `; 27 28 add_task(async function () { 29 const { inspector } = await openInspectorForURL( 30 "data:text/html;charset=utf-8," + encodeURIComponent(TEST_URI) 31 ); 32 33 let badge = await getBadgeEl(inspector); 34 ok(badge, "The scrollable badge exists on the test node"); 35 36 info("Make the test node non-scrollable"); 37 let onStateChanged = inspector.walker.once("scrollable-change"); 38 await toggleScrollableClass(); 39 await onStateChanged; 40 41 badge = await getBadgeEl(inspector); 42 ok(!badge, "The scrollable badge doesn't exist anymore"); 43 44 info("Make the test node scrollable again"); 45 onStateChanged = inspector.walker.once("scrollable-change"); 46 await toggleScrollableClass(); 47 await onStateChanged; 48 49 badge = await getBadgeEl(inspector); 50 ok(badge, "The scrollable badge exists again"); 51 }); 52 53 async function getBadgeEl(inspector) { 54 const wrapperMarkupContainer = await getContainerForSelector( 55 "#wrapper", 56 inspector 57 ); 58 return wrapperMarkupContainer.elt.querySelector( 59 ".inspector-badge.scrollable-badge" 60 ); 61 } 62 63 async function toggleScrollableClass() { 64 await SpecialPowers.spawn(gBrowser.selectedBrowser, [], async function () { 65 content.document.querySelector("#wrapper").classList.toggle("no-scroll"); 66 }); 67 }