Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / fast / scrolling / scrolling-apis-subpixel.html
1 <!DOCTYPE html>
2 <style>
3 .spacer {
4   height: 1000px;
5   width: 1000px;
6 }
7 #scroller, body {
8   height: 100px;
9   width: 100px;
10   overflow: scroll;
11 }
12
13 </style>
14 <body class=scroller>
15 <div id=console></div>
16
17 <div id=scroller>
18     <div class=spacer></div>
19 </div>
20 <div class=spacer></div>
21 </body>
22
23 <script src="../../resources/js-test.js"></script>
24 <script>
25
26 description("Verifies that scrolling APIs support fractional offsets.");
27 // Note we current support fractional scrolling only for the special case of
28 // browser zoom.  When http://crbug.com/414283 is fixed, we should test
29 // other cases like device scale.
30
31 // FIXME: Make this smaller. crbug.com/414283.
32 var floatPrecision = 0.01;
33
34 function testScroll(scrollOffset) {
35
36     debug('Scrolling DIV with scrollTop/scrollLeft');
37     scroller.scrollTop = scrollOffset;
38     shouldBeCloseTo('scroller.scrollTop', scrollOffset, floatPrecision);
39     scroller.scrollLeft = scrollOffset;
40     shouldBeCloseTo('scroller.scrollLeft', scrollOffset, floatPrecision);
41
42     // Note that the body element is a special case - we don't attempt to
43     // test it here as it's semantics are in flux (http://goo.gl/BFHtMR).
44
45     debug('Scrolling the document with window.scroll');
46     window.scroll(0,0);
47     scrollOffset++;
48     window.scroll(scrollOffset, scrollOffset);
49     shouldBeCloseTo('window.scrollY', scrollOffset, floatPrecision);
50     shouldBeCloseTo('window.scrollX', scrollOffset, floatPrecision);
51
52     debug('Scrolling the document with window.scrollTo');
53     window.scroll(0,0);
54     window.scrollTo(scrollOffset, scrollOffset);
55     shouldBeCloseTo('window.pageYOffset', scrollOffset, floatPrecision);
56     shouldBeCloseTo('window.pageXOffset', scrollOffset, floatPrecision);
57
58     debug('Scrolling the document with window.scrollBy');
59     window.scroll(1,1);
60     window.scrollBy(scrollOffset - 1, scrollOffset - 1);
61     shouldBeCloseTo('window.scrollY', scrollOffset, floatPrecision);
62     shouldBeCloseTo('window.scrollX', scrollOffset, floatPrecision);
63
64     debug('');
65 }
66
67 function testPageZoom(zoom) {
68     debug('---- Testing page zoom = ' + zoom + ' ----');
69     eventSender.setPageZoomFactor(zoom);
70     testScroll(4);
71     testScroll(4.5);
72 }
73
74 testScroll(4.2);
75 testPageZoom(2);
76 </script>