tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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 });