tor-browser

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

test_DominatorTreeNode_insert_01.js (2742B)


      1 /* Any copyright is dedicated to the Public Domain.
      2   http://creativecommons.org/publicdomain/zero/1.0/ */
      3 "use strict";
      4 
      5 // Test that we can insert new children into an existing DominatorTreeNode tree.
      6 
      7 const tree = makeTestDominatorTreeNode({ nodeId: 1000 }, [
      8  makeTestDominatorTreeNode({}),
      9  makeTestDominatorTreeNode({ nodeId: 2000 }, [
     10    makeTestDominatorTreeNode({}),
     11    makeTestDominatorTreeNode({ nodeId: 3000 }),
     12    makeTestDominatorTreeNode({}),
     13  ]),
     14  makeTestDominatorTreeNode({}),
     15 ]);
     16 
     17 const path = [1000, 2000, 3000];
     18 
     19 const newChildren = [
     20  makeTestDominatorTreeNode({ parentId: 3000 }),
     21  makeTestDominatorTreeNode({ parentId: 3000 }),
     22 ];
     23 
     24 const moreChildrenAvailable = false;
     25 
     26 const expected = {
     27  nodeId: 1000,
     28  parentId: undefined,
     29  label: undefined,
     30  shallowSize: 1,
     31  retainedSize: 7,
     32  children: [
     33    {
     34      nodeId: 0,
     35      label: undefined,
     36      shallowSize: 1,
     37      retainedSize: 1,
     38      parentId: 1000,
     39      moreChildrenAvailable: true,
     40      children: undefined,
     41    },
     42    {
     43      nodeId: 2000,
     44      label: undefined,
     45      shallowSize: 1,
     46      retainedSize: 4,
     47      parentId: 1000,
     48      children: [
     49        {
     50          nodeId: 1,
     51          label: undefined,
     52          shallowSize: 1,
     53          retainedSize: 1,
     54          parentId: 2000,
     55          moreChildrenAvailable: true,
     56          children: undefined,
     57        },
     58        {
     59          nodeId: 3000,
     60          label: undefined,
     61          shallowSize: 1,
     62          retainedSize: 1,
     63          parentId: 2000,
     64          children: [
     65            {
     66              nodeId: 7,
     67              parentId: 3000,
     68              label: undefined,
     69              shallowSize: 1,
     70              retainedSize: 1,
     71              moreChildrenAvailable: true,
     72              children: undefined,
     73            },
     74            {
     75              nodeId: 8,
     76              parentId: 3000,
     77              label: undefined,
     78              shallowSize: 1,
     79              retainedSize: 1,
     80              moreChildrenAvailable: true,
     81              children: undefined,
     82            },
     83          ],
     84          moreChildrenAvailable: false,
     85        },
     86        {
     87          nodeId: 3,
     88          label: undefined,
     89          shallowSize: 1,
     90          retainedSize: 1,
     91          parentId: 2000,
     92          moreChildrenAvailable: true,
     93          children: undefined,
     94        },
     95      ],
     96      moreChildrenAvailable: true,
     97    },
     98    {
     99      nodeId: 5,
    100      label: undefined,
    101      shallowSize: 1,
    102      retainedSize: 1,
    103      parentId: 1000,
    104      moreChildrenAvailable: true,
    105      children: undefined,
    106    },
    107  ],
    108  moreChildrenAvailable: true,
    109 };
    110 
    111 function run_test() {
    112  assertDominatorTreeNodeInsertion(
    113    tree,
    114    path,
    115    newChildren,
    116    moreChildrenAvailable,
    117    expected
    118  );
    119 }