browser_memory_clear_snapshots.js (2566B)
1 /* Any copyright is dedicated to the Public Domain. 2 http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 "use strict"; 5 6 /** 7 * Tests taking and then clearing snapshots. 8 */ 9 10 const { 11 treeMapState, 12 } = require("resource://devtools/client/memory/constants.js"); 13 const TEST_URL = 14 "http://example.com/browser/devtools/client/memory/test/browser/doc_steady_allocation.html"; 15 16 this.test = makeMemoryTest(TEST_URL, async function ({ panel }) { 17 const { gStore, document } = panel.panelWin; 18 const { getState } = gStore; 19 20 let snapshotEls = document.querySelectorAll( 21 "#memory-tool-container .list li" 22 ); 23 is(getState().snapshots.length, 0, "Starts with no snapshots in store"); 24 is(snapshotEls.length, 0, "No snapshots visible"); 25 26 info("Take two snapshots"); 27 takeSnapshot(panel.panelWin); 28 takeSnapshot(panel.panelWin); 29 takeSnapshot(panel.panelWin); 30 await waitUntilState( 31 gStore, 32 state => 33 state.snapshots.length === 3 && 34 state.snapshots[0].treeMap && 35 state.snapshots[1].treeMap && 36 state.snapshots[2].treeMap && 37 state.snapshots[0].treeMap.state === treeMapState.SAVED && 38 state.snapshots[1].treeMap.state === treeMapState.SAVED && 39 state.snapshots[2].treeMap.state === treeMapState.SAVED 40 ); 41 42 snapshotEls = document.querySelectorAll("#memory-tool-container .list li"); 43 is(snapshotEls.length, 3, "Three snapshots visible"); 44 is( 45 document.querySelectorAll(".selected").length, 46 1, 47 "One selected snapshot visible" 48 ); 49 ok(snapshotEls[2].classList.contains("selected"), "Third snapshot selected"); 50 51 info("Clicking on first snapshot delete button"); 52 document.querySelectorAll(".delete")[0].click(); 53 54 await waitUntilState( 55 gStore, 56 state => 57 state.snapshots.length === 2 && 58 state.snapshots[0].treeMap && 59 state.snapshots[1].treeMap && 60 state.snapshots[0].treeMap.state === treeMapState.SAVED && 61 state.snapshots[1].treeMap.state === treeMapState.SAVED 62 ); 63 64 snapshotEls = document.querySelectorAll(".snapshot-list-item"); 65 is(snapshotEls.length, 2, "Two snapshots visible"); 66 // Bug 1476289 67 ok( 68 !snapshotEls[0].classList.contains("selected"), 69 "First snapshot not selected" 70 ); 71 ok(snapshotEls[1].classList.contains("selected"), "Second snapshot selected"); 72 73 info("Click on Clear Snapshots"); 74 await clearSnapshots(panel.panelWin); 75 is(getState().snapshots.length, 0, "No snapshots in store"); 76 snapshotEls = document.querySelectorAll("#memory-tool-container .list li"); 77 is(snapshotEls.length, 0, "No snapshot visible"); 78 });