OLD | NEW |
1 <!DOCTYPE HTML> | 1 <script src="../../resources/testharness.js"></script> |
2 <head> | 2 <script src="../../resources/testharnessreport.js"></script> |
3 <title>Canvas test: drawFocusIfNeeded scrolls</title> | 3 |
4 <script src="../../resources/js-test.js"></script> | |
5 </head> | |
6 <body style="padding: 0; margin: 0"> | |
7 <div style="width: 6500px;"> | 4 <div style="width: 6500px;"> |
8 <div style="float: left; border: 1px solid #000; width: 1000px; height: 300px"
> | 5 <div style="float: left; border: 1px solid #000; width: 1000px; height: 300px"
> |
9 1000-pixel box | 6 1000-pixel box |
10 </div> | 7 </div> |
11 <canvas id="canvas" width="5000" height="300" style="float: left;"> | 8 <canvas id="canvas" width="5000" height="300" style="float: left;"> |
12 <button id="left_button"></button> | 9 <button id="left_button"></button> |
13 <button id="right_button"></button> | 10 <button id="right_button"></button> |
14 </canvas> | 11 </canvas> |
15 </div> | 12 </div> |
| 13 |
16 <script> | 14 <script> |
17 if (window.testRunner) | 15 test(function(t) { |
18 testRunner.dumpAsText(); | |
19 | 16 |
20 var canvas = document.getElementById("canvas"); | 17 var canvas = document.getElementById("canvas"); |
21 var context = canvas.getContext("2d"); | 18 var context = canvas.getContext("2d"); |
| 19 |
| 20 var LEFT_BUTTON_X_POS = 50; |
| 21 var RIGHT_BUTTON_X_POS = 4750; |
22 | 22 |
23 var LEFT_BUTTON_X_POS = 50; | 23 function draw() { |
24 var RIGHT_BUTTON_X_POS = 4750; | 24 context.beginPath(); |
| 25 context.rect(LEFT_BUTTON_X_POS, 50, 200, 100); |
| 26 context.fillStyle = "#ccf"; |
| 27 context.fill(); |
| 28 context.drawFocusIfNeeded(document.getElementById("left_button")); |
| 29 |
| 30 context.beginPath(); |
| 31 context.rect(RIGHT_BUTTON_X_POS, 50, 200, 100); |
| 32 context.fillStyle = "#fcc"; |
| 33 context.fill(); |
| 34 context.drawFocusIfNeeded(document.getElementById("right_button")); |
| 35 } |
25 | 36 |
26 function draw() { | 37 document.getElementById("right_button").focus(); |
27 context.beginPath(); | 38 window.scrollTo(0, 0); |
28 context.rect(LEFT_BUTTON_X_POS, 50, 200, 100); | 39 assert_true(window.pageXOffset == 0); |
29 context.fillStyle = "#ccf"; | 40 draw(); |
30 context.fill(); | |
31 context.drawFocusIfNeeded(document.getElementById("left_button")); | |
32 | 41 |
33 context.beginPath(); | 42 var minXOffset = RIGHT_BUTTON_X_POS + canvas.offsetLeft - window.innerWidth; |
34 context.rect(RIGHT_BUTTON_X_POS, 50, 200, 100); | 43 var maxXOffset = RIGHT_BUTTON_X_POS + canvas.offsetLeft; |
35 context.fillStyle = "#fcc"; | 44 assert_true(window.pageXOffset >= minXOffset); |
36 context.fill(); | 45 assert_true(maxXOffset >= window.pageXOffset); |
37 context.drawFocusIfNeeded(document.getElementById("right_button")); | |
38 } | |
39 | 46 |
40 document.getElementById("right_button").focus(); | 47 document.getElementById("left_button").focus(); |
41 window.scrollTo(0, 0); | 48 assert_true(window.pageXOffset >= minXOffset); |
42 shouldBe("window.pageXOffset", "0"); | 49 assert_true(maxXOffset >= window.pageXOffset); |
43 draw(); | |
44 | 50 |
45 var minXOffset = RIGHT_BUTTON_X_POS + canvas.offsetLeft - window.innerWidth; | 51 draw(); |
46 var maxXOffset = RIGHT_BUTTON_X_POS + canvas.offsetLeft; | 52 minXOffset = LEFT_BUTTON_X_POS + canvas.offsetLeft - window.innerWidth; |
47 shouldBeGreaterThanOrEqual("window.pageXOffset", "minXOffset"); | 53 maxXOffset = LEFT_BUTTON_X_POS + canvas.offsetLeft; |
48 shouldBeGreaterThanOrEqual("maxXOffset", "window.pageXOffset"); | 54 assert_true(window.pageXOffset >= minXOffset); |
| 55 assert_true(maxXOffset >= window.pageXOffset); |
49 | 56 |
50 document.getElementById("left_button").focus(); | 57 }, 'Canvas test: drawFocusIfNeeded scrolls'); |
51 shouldBeGreaterThanOrEqual("window.pageXOffset", "minXOffset"); | |
52 shouldBeGreaterThanOrEqual("maxXOffset", "window.pageXOffset"); | |
53 | |
54 draw(); | |
55 minXOffset = LEFT_BUTTON_X_POS + canvas.offsetLeft - window.innerWidth; | |
56 maxXOffset = LEFT_BUTTON_X_POS + canvas.offsetLeft; | |
57 shouldBeGreaterThanOrEqual("window.pageXOffset", "minXOffset"); | |
58 shouldBeGreaterThanOrEqual("maxXOffset", "window.pageXOffset"); | |
59 | |
60 </script> | 58 </script> |
61 </body> | 59 </body> |
OLD | NEW |