chromium/third_party/blink/web_tests/fast/forms/calendar-picker/week-picker-touch-operations.html

<!DOCTYPE html>
<meta name=fuzzy content="maxDifference=0-3; totalPixels=0-1000">
<script src="../../../resources/js-test.js"></script>
<script src="../../../resources/testdriver.js"></script>
<script src="../../../resources/testdriver-vendor.js"></script>
<script src="../../forms/resources/common.js"></script>
<script src="../../forms/resources/picker-common.js"></script>
<script src="resources/calendar-picker-common.js"></script>

<p id="description"></p>
<div id="console"></div>
<input type=week id=week value="2000-W01">
<script>
description("Tests if calendar picker mouse operations work as expected.");

debug('Check that page popup doesn\'t exist at first.');
shouldBeNull('document.getElementById("mock-page-popup")');

openPickerDeprecatedJsTest(document.getElementById('week'), test);

var position;
eventSender.clearTouchPoints();

function test() {
    debug('Open the month popup.');
    shouldBeFalse('internals.pagePopupWindow.global.picker.monthPopupView.isVisible');
    clickMonthPopupButton();
    shouldBeTrue('internals.pagePopupWindow.global.picker.monthPopupView.isVisible');

    debug('Check that touch swiping scrolls the list in the month popup.');

    checkYearListViewScrollOffset();

    internals.pagePopupWindow.global.picker.monthPopupView.yearListView.element.addEventListener('touchend', testAfterSwipingDown, false);

    position = skipAnimationAndGetPositionOfMonthButton(2000, 0);
    eventSender.addTouchPoint(position.x, position.y);
    eventSender.touchStart();
    position = skipAnimationAndGetPositionOfMonthButton(2000, 11);
    eventSender.updateTouchPoint(0, position.x, position.y);
    eventSender.touchMove();
    eventSender.releaseTouchPoint(0);
    eventSender.touchEnd();
}

function testAfterSwipingDown() {
    shouldBeTrue('checkYearListViewScrollOffset() > 0');
    internals.pagePopupWindow.global.picker.monthPopupView.yearListView.element.removeEventListener('touchend', testAfterSwipingDown, false);
    setTimeout(testSwipingUp, 0);
}

function testSwipingUp() {
    checkYearListViewScrollOffset();
    internals.pagePopupWindow.global.picker.monthPopupView.yearListView.element.addEventListener('touchend', testAfterSwipingUp, false);

    eventSender.addTouchPoint(position.x, position.y);
    eventSender.touchStart();
    position = skipAnimationAndGetPositionOfMonthPopupButton();
    eventSender.updateTouchPoint(0, position.x, position.y);
    eventSender.touchMove();
    eventSender.releaseTouchPoint(0);
    eventSender.touchEnd();
}

function testAfterSwipingUp() {
    shouldBeTrue('checkYearListViewScrollOffset() < 0');
    internals.pagePopupWindow.global.picker.monthPopupView.yearListView.element.removeEventListener('touchend', testAfterSwipingUp, false);
    finishJSTest();
}
</script>