summaryrefslogtreecommitdiffstats
path: root/third_party/WebKit/LayoutTests/fast/canvas/draw-focus-if-needed-scrolls-horiz.html
blob: 46a66d9702b9ee2b48972bfbb217b6fec97fa9bc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<!DOCTYPE HTML>
<head>
<title>Canvas test: drawFocusIfNeeded scrolls</title>
<script src="../../resources/js-test.js"></script>
</head>
<body style="padding: 0; margin: 0">
<div style="width: 6500px;">
  <div style="float: left; border: 1px solid #000; width: 1000px; height: 300px">
      1000-pixel box
  </div>
  <canvas id="canvas" width="5000" height="300" style="float: left;">
      <button id="left_button"></button>
      <button id="right_button"></button>
  </canvas>
</div>
<script>
if (window.testRunner)
    testRunner.dumpAsText();

var canvas = document.getElementById("canvas");
var context = canvas.getContext("2d");

var LEFT_BUTTON_X_POS = 50;
var RIGHT_BUTTON_X_POS = 4750;

function draw() {
    context.beginPath();
    context.rect(LEFT_BUTTON_X_POS, 50, 200, 100);
    context.fillStyle = "#ccf";
    context.fill();
    context.drawFocusIfNeeded(document.getElementById("left_button"));

    context.beginPath();
    context.rect(RIGHT_BUTTON_X_POS, 50, 200, 100);
    context.fillStyle = "#fcc";
    context.fill();
    context.drawFocusIfNeeded(document.getElementById("right_button"));
}

document.getElementById("right_button").focus();
window.scrollTo(0, 0);
shouldBe("window.pageXOffset", "0");
draw();

var minXOffset = RIGHT_BUTTON_X_POS + canvas.offsetLeft - window.innerWidth;
var maxXOffset = RIGHT_BUTTON_X_POS + canvas.offsetLeft;
shouldBeGreaterThanOrEqual("window.pageXOffset", "minXOffset");
shouldBeGreaterThanOrEqual("maxXOffset", "window.pageXOffset");

document.getElementById("left_button").focus();
shouldBeGreaterThanOrEqual("window.pageXOffset", "minXOffset");
shouldBeGreaterThanOrEqual("maxXOffset", "window.pageXOffset");

draw();
minXOffset = LEFT_BUTTON_X_POS + canvas.offsetLeft - window.innerWidth;
maxXOffset = LEFT_BUTTON_X_POS + canvas.offsetLeft;
shouldBeGreaterThanOrEqual("window.pageXOffset", "minXOffset");
shouldBeGreaterThanOrEqual("maxXOffset", "window.pageXOffset");

</script>
</body>