Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1024)

Side by Side Diff: LayoutTests/fast/scroll-behavior/listbox-scrollTop.html

Issue 134443003: Implement CSSOM Smooth Scroll API (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebased Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <script src="../../resources/testharness.js"></script>
5 <script src="../../resources/testharnessreport.js"></script>
6 <script src="resources/scroll-behavior-test.js"></script>
7 <script type="text/javascript">
8 const numItems = 500;
9 var instantScrolls = [
Ian Vollick 2014/02/06 16:02:31 If you make an object for the behavior test case,
10 {js: "instant", css: "instant", index: 2},
11 {js: "instant", css: "smooth", index: 3},
12 {js: "auto", css: "instant", index: 4},
13 {js: "", css: "instant", index: 5}
14 ];
15
16 var smoothScrolls = [
17 {js: "smooth", css: "instant", waitForEnd: true, index: 15},
18 {js: "smooth", css: "smooth", waitForEnd: true, index: 20},
19 {js: "auto", css: "smooth", waitForEnd: true, index: 30},
20 {js: "", css: "smooth", waitForEnd: true, index: 35},
21 {js: "smooth", css: "instant", waitForEnd: false, index: 410},
22 {js: "smooth", css: "smooth", waitForEnd: false, index: 20},
23 {js: "auto", css: "smooth", waitForEnd: false, index: 400},
24 {js: "", css: "smooth", waitForEnd: false, index: 5},
25 ];
26
27 function runTestCase(testCase)
28 {
29 var element = document.getElementById("listbox");
30 if (testCase.js)
31 element.scrollTop = {y: testCase.y, behavior: testCase.js};
32 else
33 element.scrollTop = testCase.y;
34 }
35
36 function endX(testCase, startX)
37 {
38 return startX;
39 }
40
41 function endY(testCase)
42 {
43 return testCase.y;
44 }
45
46 function initializeContents(listbox)
47 {
48 for (var i = 0; i < numItems; i++) {
49 var option = document.createElement("option");
50 option.appendChild(document.createTextNode(i));
51 listbox.appendChild(option);
52 }
53 }
54
55 function initializeTestCases(listbox)
56 {
57 var itemHeight = (listbox.scrollHeight - listbox.clientHeight) / (numItems - listbox.size);
58 for (var i = 0; i < instantScrolls.length; i++) {
59 instantScrolls[i].y = instantScrolls[i].index * itemHeight;
60 }
61 for (var i = 0; i < smoothScrolls.length; i++) {
62 smoothScrolls[i].y = smoothScrolls[i].index * itemHeight;
63 }
64 }
65
66 function doTest()
67 {
68 var element = document.getElementById("listbox");
69 initializeContents(element);
70 initializeTestCases(element);
71 runScrollBehaviorTests(element,
72 element,
73 instantScrolls,
74 smoothScrolls,
75 runTestCase,
76 endX,
77 endY);
78 }
79
80 window.addEventListener('load', doTest, false);
81 </script>
82 </head>
83
84 <body>
85 <p>Test that setting scrollTop on a listbox works with both scroll behaviors</ p>
86 <select size="4" id="listbox"></select>
87 </body>
88 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698