tor-browser

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

test_tree_16.html (3898B)


      1 <!-- This Source Code Form is subject to the terms of the Mozilla Public
      2   - License, v. 2.0. If a copy of the MPL was not distributed with this
      3   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
      4 <!DOCTYPE HTML>
      5 <html>
      6 <!--
      7 Test scroll position when showing items both in traversal and/or rendered.
      8 -->
      9 <head>
     10  <meta charset="utf-8">
     11  <title>Tree component test</title>
     12  <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
     13  <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css">
     14  <link rel="stylesheet" href="chrome://devtools/skin/light-theme.css" type="text/css">
     15  <style>
     16    .tree {
     17      height: 30px;
     18      overflow: auto;
     19      display: block;
     20    }
     21 
     22    .tree-node {
     23      font-size: 10px;
     24      height: 10px;
     25    }
     26  </style>
     27 </head>
     28 <body>
     29 <pre id="test">
     30 <script src="head.js" type="application/javascript"></script>
     31 <script type="application/javascript">
     32 
     33 "use strict";
     34 
     35 window.onload = async function () {
     36  try {
     37    const ReactDOM = browserRequire("devtools/client/shared/vendor/react-dom");
     38    const { createFactory } = browserRequire("devtools/client/shared/vendor/react");
     39    const Tree =
     40      createFactory(browserRequire("devtools/client/shared/components/VirtualizedTree"));
     41 
     42    TEST_TREE.expanded = new Set("ABCDEFGHIJKLMNO".split(""));
     43 
     44    function renderTree(props) {
     45      const treeProps = Object.assign({},
     46        TEST_TREE_INTERFACE,
     47        {
     48          itemHeight: 10,
     49          onFocus: item => renderTree({ shown: item })
     50        },
     51        props
     52      );
     53      return ReactDOM.render(Tree(treeProps), window.document.body);
     54    }
     55 
     56    info("Test first shown.");
     57    const tree = renderTree({ shown: "A" });
     58    await forceRender(tree);
     59 
     60    isRenderedTree(document.body.textContent, [
     61      "A:false",
     62      "-B:false",
     63      "--E:false",
     64      "---K:false",
     65    ], "Should render initial correctly");
     66 
     67    info("Test last as shown when it was not yet rendered.");
     68    renderTree({ shown: "O" });
     69    await forceRender(tree);
     70 
     71    isRenderedTree(document.body.textContent, [
     72    "--J:false",
     73      "M:false",
     74      "-N:false",
     75      "--O:false",
     76    ], "Should render shown item correctly");
     77 
     78    info("Test first item shown when it's not first rendered.");
     79    renderTree({ shown: "A" });
     80    await forceRender(tree);
     81 
     82    isRenderedTree(document.body.textContent, [
     83      "A:false",
     84      "-B:false",
     85      "--E:false",
     86      "---K:false",
     87    ], "Should render shown item correctly");
     88 
     89    info("Test mid item shown when it's not first rendered.");
     90    renderTree({ shown: "G" });
     91    await forceRender(tree);
     92 
     93    isRenderedTree(document.body.textContent, [
     94      "--F:false",
     95      "--G:false",
     96      "-C:false",
     97      "--H:false",
     98      "--I:false",
     99    ], "Should render shown item correctly");
    100 
    101    info("Test mid item shown when it's already rendered.");
    102    renderTree({ shown: "C" });
    103    await forceRender(tree);
    104 
    105    isRenderedTree(document.body.textContent, [
    106      "--F:false",
    107      "--G:false",
    108      "-C:false",
    109      "--H:false",
    110      "--I:false",
    111    ], "Should render shown item correctly");
    112 
    113    info("Test item that is not in traversal.");
    114    renderTree({ shown: "Z" });
    115    await forceRender(tree);
    116 
    117    isRenderedTree(document.body.textContent, [
    118      "--F:false",
    119      "--G:false",
    120      "-C:false",
    121      "--H:false",
    122      "--I:false",
    123    ], "Should render without changes");
    124 
    125    info("Test item that is already shown.");
    126    renderTree({ shown: "F" });
    127    await forceRender(tree);
    128 
    129    isRenderedTree(document.body.textContent, [
    130      "---L:false",
    131      "--F:false",
    132      "--G:false",
    133      "-C:false",
    134      "--H:false",
    135    ], "Should render without changes");
    136  } catch (e) {
    137    ok(false, "Got an error: " + DevToolsUtils.safeErrorString(e));
    138  } finally {
    139    SimpleTest.finish();
    140  }
    141 };
    142 </script>
    143 </pre>
    144 </body>
    145 </html>