tor-browser

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

movementX_Y_basic.html (6031B)


      1 <!DOCTYPE html>
      2 <html>
      3 <body>
      4 <meta name="timeout" content="long">
      5 <script src="/resources/testharness.js"></script>
      6 <script src="/resources/testharnessreport.js"></script>
      7 <script src="/resources/testdriver.js"></script>
      8 <script src="/resources/testdriver-actions.js"></script>
      9 <script src="/resources/testdriver-vendor.js"></script>
     10 <style type="text/css">
     11    #status-log {
     12        margin: 10px 0;
     13        color: green;
     14        color: green;
     15    }
     16 </style>
     17 </head>
     18 <body onload="run_test()">
     19    <h2>Description</h2>
     20    <p>This test if movementX/Y can provide the change in position of the pointer, as if movementX/Y = eNow.screenX/Y-ePrevious.screenX/Y</p>
     21    <hr/>
     22 
     23    <h2>Manual Test Steps:</h2>
     24    <p>
     25        <ol>
     26            <li>Click to start Test1.</li>
     27            <li>Move the mouse within the window, slow and fast, like a scribble.</li>
     28            <li>Click again to end test.</li>
     29        </ol>
     30    </p>
     31    <hr/>
     32 
     33    <div id="status-log">Waiting... Click to start loging.</div>
     34    <div class="data-log">
     35        <table>
     36            <tr><td></td><td>X</td><td>Y</td></tr>
     37            <tr><td>screen_init:</td><td id="screenX_init-log">X</td><td id="screenY_init-log">Y</td></tr>
     38            <tr><td>screen_last:</td><td id="screenX_last-log">X</td><td id="screenY_last-log">Y</td></tr>
     39            <tr><td>screen_delta:</td><td id="screenX_delta-log">X</td><td id="screenY_delta-log">Y</td></tr>
     40            <tr><td>movement_sum:</td><td id="movementX_sum-log">X</td><td id="movementY_sum-log">Y</td></tr>
     41            <tr><td>movement:</td><td id="movementX-log">X</td><td id="movementY-log">Y</td></tr>
     42        </table>
     43    </div>
     44    <hr/>
     45 
     46    <div id="log"></div>
     47 
     48    <script type="text/javascript" >
     49        var status_log = document.querySelector('#status-log'),
     50            movementX_log = document.querySelector('#movementX-log'),
     51            movementY_log = document.querySelector('#movementY-log'),
     52            movementX_sum_log = document.querySelector('#movementX_sum-log'),
     53            movementY_sum_log = document.querySelector('#movementY_sum-log'),
     54            screenX_init_log = document.querySelector('#screenX_init-log'),
     55            screenY_init_log = document.querySelector('#screenY_init-log'),
     56            screenX_last_log = document.querySelector('#screenX_last-log'),
     57            screenY_last_log = document.querySelector('#screenY_last-log');
     58            screenX_delta_log = document.querySelector('#screenX_delta-log'),
     59            screenY_delta_log = document.querySelector('#screenY_delta-log');
     60 
     61        var click_counter = 0;
     62 
     63        var screenX_init, screenY_init, movementX, movementY, movementX_sum, movementY_sum, screenX_last, screenY_last;
     64 
     65        var movementX_Y_inside_window_Test = async_test("Test that movementX/Y = eNow.screenX/Y-ePrevious.screenX/Y.");
     66 
     67        document.addEventListener("click", function (e) {
     68            click_counter++;
     69 
     70            switch(click_counter) {
     71                case 1:
     72                    status_log.innerHTML = "inside window: logging...";
     73                break;
     74                case 2:
     75                    status_log.innerHTML = "inside window: done";
     76 
     77                    movementX_Y_inside_window_Test.step(function() {
     78                        assert_equals(movementX_sum, screenX_last - screenX_init, "sum of movementX = screenX_last - screenX_init");
     79                        assert_equals(movementY_sum, screenY_last - screenY_init, "sum of movementY = screenY_last - screenY_init");
     80                    });
     81                    movementX_Y_inside_window_Test.done();
     82                break;
     83            }
     84        });
     85 
     86        document.addEventListener("mousemove", function (e) {
     87            movementX = e.movementX;
     88            movementY = e.movementY;
     89 
     90            if(click_counter === 1) {
     91                if(!screenX_init) {
     92                    screenX_init = screenX_last = e.screenX;
     93                    screenY_init = screenY_last = e.screenY;
     94                    movementX_sum = 0;
     95                    movementY_sum = 0;
     96                }
     97                else {
     98                    movementX_sum += movementX;
     99                    movementY_sum += movementY;
    100 
    101                    screenX_delta = e.screenX - screenX_last;
    102                    screenY_delta = e.screenY - screenY_last;
    103 
    104                    movementX_Y_inside_window_Test.step(function() {
    105                        assert_equals(movementX, screenX_delta, "movementX = screen_delta");
    106                        assert_equals(movementY, screenY_delta, "movementY = screen_delta");
    107                    });
    108 
    109                    screenX_last = e.screenX;
    110                    screenY_last = e.screenY;
    111 
    112                    updateData();
    113                }
    114            }
    115        });
    116 
    117        function updateData() {
    118            screenX_init_log.innerHTML = screenX_init;
    119            screenY_init_log.innerHTML = screenY_init;
    120            screenX_last_log.innerHTML = screenX_last;
    121            screenY_last_log.innerHTML = screenY_last;
    122            screenX_delta_log.innerHTML = screenX_delta;
    123            screenY_delta_log.innerHTML = screenY_delta;
    124            movementX_log.innerHTML = movementX;
    125            movementY_log.innerHTML = movementY;
    126            movementX_sum_log.innerHTML = movementX_sum;
    127            movementY_sum_log.innerHTML = movementY_sum;
    128        }
    129 
    130        function run_test() {
    131            x = Math.round(window.innerWidth / 2);
    132            y = Math.round(window.innerHeight / 2);
    133            var actions = new test_driver.Actions();
    134            actions.pointerMove(x, y)
    135              .pointerDown()
    136              .pointerUp();
    137            for (var i = 0; i < 10; i++) {
    138                // Alternatively move left/right and up/down.
    139                x += ((-1)**i) * i * 10;
    140                y -= ((-1)**i) * i * 10;
    141                actions.pointerMove(x, y);
    142            }
    143            actions.pointerMove(x, y)
    144              .pointerDown()
    145              .pointerUp()
    146              .send();
    147        }
    148        </script>
    149    </body>
    150 </html>