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

Side by Side Diff: LayoutTests/accessibility/scroll-to-make-visible-nested-2.html

Issue 661183002: Fix case where accessible scrollToMakeVisible didn't work. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Fix test expectation Created 6 years, 2 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
OLDNEW
1 <html> 1 <html>
2 <head> 2 <head>
3 <script src="../resources/js-test.js"></script> 3 <script src="../resources/js-test.js"></script>
4 </head> 4 </head>
5 <body> 5 <body>
6 6
7 <p id="description"></p> 7 <p id="description"></p>
8 8
9 <div style="border: 1px solid #000; height: 5000px;">5000-pixel box</div> 9 <div id="container" style="width: 100px; overflow: scroll">
10 10 <div style="border: 1px solid #000; width: 1000px; height: 5000px;">5000-pixel box</div>
11 <div id="outer_container" style="height: 100px; overflow: scroll"> 11 <button id="target">Target</button>
12 <div style="border: 1px solid #000; height: 5000px;">5000-pixel box</div> 12 <div style="border: 1px solid #000; width: 1000px; height: 5000px;">5000-pixel box</div>
13 <div id="inner_container" style="height: 100px; overflow: scroll">
14 <div style="border: 1px solid #000; height: 5000px;">5000-pixel box</div>
15 <button id="target">Target</button>
16 </div>
17 </div> 13 </div>
18 14
19 <div id="console"></div> 15 <div id="console"></div>
20 16
21 <script> 17 <script>
22 description("Tests that scrolling to make an element visible successfully scroll s multiple nested scrolling views'."); 18 description("Tests that scrolling to make an element visible works when the inne r scroll container doesn't need to be scrolled, but the other one does.");
23 19
24 function runTest() { 20 function runTest() {
25 window.outerContainer = document.getElementById("outer_container"); 21 window.container = document.getElementById("container");
26 window.innerContainer = document.getElementById("inner_container");
27 window.target = document.getElementById("target"); 22 window.target = document.getElementById("target");
28 23
29 if (window.accessibilityController) { 24 if (window.accessibilityController) {
30 target.focus(); 25 target.focus();
31 var targetAccessibleObject = accessibilityController.focusedElement; 26 var targetAccessibleObject = accessibilityController.focusedElement;
32 } 27 }
33 28
34 // Reset the initial scroll positions (since calling focus() can scroll the page too). 29 // Reset the initial scroll positions (since calling focus() can scroll the page too).
35 window.scrollTo(0, 0); 30 window.scrollTo(0, 0);
36 outerContainer.scrollTop = 0; 31 container.scrollTop = 0;
37 innerContainer.scrollTop = 0;
38 shouldBe("window.pageYOffset", "0"); 32 shouldBe("window.pageYOffset", "0");
39 shouldBe("outerContainer.scrollTop", "0"); 33 shouldBe("container.scrollTop", "0");
40 shouldBe("innerContainer.scrollTop", "0"); 34 shouldBeGreaterThanOrEqual("target.getBoundingClientRect().top", "5000");
41 shouldBeGreaterThanOrEqual("target.getBoundingClientRect().top", "15000");
42 35
43 // Scroll to make target visible. 36 // Scroll to make target visible.
44 if (window.accessibilityController) 37 if (window.accessibilityController)
45 targetAccessibleObject.scrollToMakeVisible(); 38 targetAccessibleObject.scrollToMakeVisible();
46 39
47 // Instead of testing the exact scroll offsets of the two containers, just t est that 40 // Instead of testing the exact scroll offsets of the two containers, just t est that
48 // the new absolute position of the target is on-screen. 41 // the new absolute position of the target is on-screen.
49 shouldBeGreaterThanOrEqual("window.innerHeight", "target.getBoundingClientRe ct().bottom"); 42 shouldBeGreaterThanOrEqual("window.innerHeight", "target.getBoundingClientRe ct().bottom");
50 43
51 finishJSTest(); 44 finishJSTest();
52 } 45 }
53 46
54 runTest(); 47 runTest();
55 48
56 </script> 49 </script>
57 50
58 </body> 51 </body>
59 </html> 52 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698