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>