| Index: third_party/WebKit/LayoutTests/fast/scrolling/set-root-scroller.html
|
| diff --git a/third_party/WebKit/LayoutTests/fast/scrolling/set-root-scroller.html b/third_party/WebKit/LayoutTests/fast/scrolling/set-root-scroller.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..857f4fe7734ced6887e2501794dae28489eecaf5
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/fast/scrolling/set-root-scroller.html
|
| @@ -0,0 +1,113 @@
|
| +<!DOCTYPE html>
|
| +<style>
|
| + ::-webkit-scrollbar {
|
| + width: 0px;
|
| + height: 0px;
|
| + }
|
| +
|
| + body, html {
|
| + width: 100%;
|
| + height: 100%;
|
| + }
|
| +
|
| + body {
|
| + margin: 0px;
|
| + }
|
| +
|
| + #container {
|
| + width: 1000px;
|
| + height: 1000px;
|
| + overflow: auto;
|
| + }
|
| +
|
| + #spacer {
|
| + width: 2000px;
|
| + height: 1900px;
|
| + }
|
| +</style>
|
| +
|
| +<div id="container">
|
| + <div id="spacer">
|
| + <span id="spanner">TEST</span>
|
| + </div>
|
| +</div>
|
| +
|
| +<script src="../../resources/testharness.js"></script>
|
| +<script src="../../resources/testharnessreport.js"></script>
|
| +
|
| +<script>
|
| + test(function() {
|
| + assert_false(typeof document.setRootScroller === 'undefined');
|
| + }, 'setRootScroller API enabled');
|
| + test(function() {
|
| + // Setting the container object should succeed.
|
| + assert_equals(document.rootScroller, document.documentElement);
|
| + var container = document.querySelector('#container');
|
| + document.setRootScroller(container);
|
| + assert_equals(document.rootScroller, container);
|
| +
|
| + // Trying to set the <span> should fail with an exception thrown since a
|
| + // span is not a valid scroller.
|
| + assert_throws(
|
| + 'InvalidStateError',
|
| + function() {
|
| + document.setRootScroller(document.querySelector('#spanner'));
|
| + },
|
| + 'Trying to set a non-block flow element should throw');
|
| + assert_equals(document.rootScroller, container);
|
| +
|
| + // Scroll the container <div> past the end. The scrolls should not chain
|
| + // past the rootScroller to the scrollingElement.
|
| + if (typeof eventSender !== 'undefined') {
|
| + eventSender.gestureScrollBegin(500, 500);
|
| + eventSender.gestureScrollUpdate(-300, -300);
|
| + eventSender.gestureScrollEnd(0, 0);
|
| + eventSender.gestureScrollBegin(500, 500);
|
| + eventSender.gestureScrollUpdate(-300, -300);
|
| + eventSender.gestureScrollEnd(0, 0);
|
| + eventSender.gestureScrollBegin(500, 500);
|
| + eventSender.gestureScrollUpdate(-300, -300);
|
| + eventSender.gestureScrollEnd(0, 0);
|
| + eventSender.gestureScrollBegin(500, 500);
|
| + eventSender.gestureScrollUpdate(-300, -300);
|
| + eventSender.gestureScrollEnd(0, 0);
|
| +
|
| + assert_equals(container.scrollTop, 900);
|
| + assert_equals(container.scrollLeft, 1000);
|
| + assert_equals(document.scrollingElement.scrollTop, 0);
|
| + assert_equals(document.scrollingElement.scrollLeft, 0);
|
| + }
|
| +
|
| + // Making the current rootScroller an invalid scroller should reset the
|
| + // rootScroller to the default, the documentElement.
|
| + container.style.display = "none";
|
| + newRootScroller = document.rootScroller;
|
| + assert_equals(newRootScroller, document.documentElement);
|
| +
|
| + container.style.display = "block";
|
| + assert_equals(newRootScroller, document.documentElement);
|
| +
|
| + // Now scrolling over the <div> should scroll the scrollingElement.
|
| + if (typeof eventSender !== 'undefined') {
|
| + eventSender.gestureScrollBegin(500, 500);
|
| + eventSender.gestureScrollUpdate(-300, -300);
|
| + eventSender.gestureScrollEnd(0, 0);
|
| + eventSender.gestureScrollBegin(500, 500);
|
| + eventSender.gestureScrollUpdate(-300, -300);
|
| + eventSender.gestureScrollEnd(0, 0);
|
| + eventSender.gestureScrollBegin(500, 500);
|
| + eventSender.gestureScrollUpdate(-300, -300);
|
| + eventSender.gestureScrollEnd(0, 0);
|
| + eventSender.gestureScrollBegin(500, 500);
|
| + eventSender.gestureScrollUpdate(-300, -300);
|
| + eventSender.gestureScrollEnd(0, 0);
|
| +
|
| + assert_equals(document.scrollingElement.scrollTop, 400);
|
| + assert_equals(document.scrollingElement.scrollLeft, 200);
|
| + }
|
| +
|
| + // Don't output the text in spanner.
|
| + document.querySelector('#spanner').style.display = 'none';
|
| +
|
| + }, 'Test the setRootScroller API basic functionality');
|
| +</script>
|
|
|