tor-browser

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

test_bug1832110.html (2903B)


      1 <!DOCTYPE HTML>
      2 <title>Test for Bug 1832110</title>
      3 <style>
      4 :root {
      5  --bw: 1px;
      6 }
      7 
      8 div {
      9  display: inline-block;
     10 }
     11 
     12 table {
     13  border-collapse: collapse;
     14 }
     15 
     16 td {
     17  border: var(--bw) solid black;
     18  line-height: 0;
     19  padding: 0;
     20 }
     21 
     22 span {
     23  display: inline-block;
     24  width: 10px;
     25  height: 10px;
     26  background: grey;
     27 }
     28 
     29 .hide {
     30  display: none;
     31 }
     32 </style>
     33 <script src="/tests/SimpleTest/SimpleTest.js"></script>
     34 <script src="/tests/SimpleTest/WindowSnapshot.js"></script>
     35 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
     36 <script class="testbody" type="text/javascript">
     37 function set_td_border(width) {
     38  document.documentElement.style.setProperty("--bw", width + "px");
     39 }
     40 
     41 function raf() {
     42  return new Promise(resolve => {
     43    requestAnimationFrame(resolve);
     44  });
     45 }
     46 
     47 async function show_table(table, other) {
     48  // Don't tempt subpixel snapping - try to position each table exactly the same.
     49  table.classList.remove("hide");
     50  other.classList.add("hide");
     51  getComputedStyle(table).getPropertyValue("display");
     52  await raf();
     53 }
     54 
     55 async function run_test(relativeZoom, width) {
     56  SpecialPowers.setFullZoom(window, relativeZoom);
     57  set_td_border(width);
     58  show_table(emptyrows, normal);
     59  const s1 = await snapshotRect(window, emptyrows.getBoundingClientRect());
     60  show_table(normal, emptyrows);
     61  const s2 = await snapshotRect(window, normal.getBoundingClientRect());
     62  assertSnapshots(s1, s2, true, null, "emptyrows", "normal " + relativeZoom + " " + width);
     63 }
     64 
     65 SimpleTest.waitForExplicitFinish();
     66 const zoomsToTest = [
     67  100,
     68  110,
     69  120,
     70  130,
     71  140,
     72  150,
     73  200,
     74  250,
     75  300,
     76 ];
     77 const originalZoom = SpecialPowers.getFullZoom(window);
     78 
     79 const widthsToTest = [
     80  1,
     81  3,
     82  7,
     83  11,
     84  23,
     85 ];
     86 for (let i = 0; i < zoomsToTest.length; ++i) {
     87  let relativeZoom = originalZoom * zoomsToTest[i] / 100;
     88  for (let j = 0; j < widthsToTest.length; ++j) {
     89    add_task(async () => { await run_test(relativeZoom, widthsToTest[j]); });
     90  }
     91 }
     92 add_task(async () => { SpecialPowers.setFullZoom(window, originalZoom); });
     93 </script>
     94 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1832110">Mozilla Bug 1832110</a><br>
     95 <div id="emptyrows" class="hide">
     96 <table>
     97 <tr><td><span></span></td><td><span></span></td><td><span></span></td></tr>
     98 <tr></tr>
     99 <tr><td><span></span></td><td><span></span></td><td><span></span></td></tr>
    100 <tr></tr>
    101 <tr><td><span></span></td><td><span></span></td><td><span></span></td></tr>
    102 <tr></tr>
    103 <tr><td><span></span></td><td><span></span></td><td><span></span></td></tr>
    104 </table>
    105 </div><div id="normal" class="hide">
    106 <table>
    107 <tr><td><span></span></td><td><span></span></td><td><span></span></td></tr>
    108 <tr><td><span></span></td><td><span></span></td><td><span></span></td></tr>
    109 <tr><td><span></span></td><td><span></span></td><td><span></span></td></tr>
    110 <tr><td><span></span></td><td><span></span></td><td><span></span></td></tr>
    111 </table>
    112 </div>