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