tst_wheelEventHandling.qml   [plain text]


import QtQuick 2.0
import QtTest 1.0
import QtWebKit 3.0
import QtWebKit.experimental 1.0
import Test 1.0
import "../common"

Item {
    TestWebView {
        id: webView
        width: 800
        height: 600
        url: Qt.resolvedUrl("../common/test4.html")
    }

    SignalSpy {
        id: scrollSpy
        target: webView
        signalName: "contentYChanged"
    }

    TestCase {
        name: "WheelEventHandling"
        when: windowShown

        property variant test: webView.experimental.test

        function init() {
            webView.url = Qt.resolvedUrl("../common/test4.html")
            verify(webView.waitForViewportReady())
            webView.contentY = 0
        }

        function test_wheelScrollEvent() {
            scrollSpy.clear()
            var centerPoint = Qt.point(webView.width / 2, webView.height / 2)
            test.wheelEvent(webView, centerPoint.x, centerPoint.y, -500);
            // The signal spy below will time out if the wheel event did not scroll the content.
            scrollSpy.wait()
            var position = webView.contentY
            webView.reload()
            verify(webView.waitForViewportReady())
            // The check below will fail if the previous position was not restored after reload.
            verify(position == webView.contentY)
        }

        function test_wheelScrollEventAfterReload() {
            scrollSpy.clear()
            webView.reload()
            verify(webView.waitForViewportReady())
            var centerPoint = Qt.point(webView.width / 2, webView.height / 2)
            test.wheelEvent(webView, centerPoint.x, centerPoint.y, -500);
            // The signal spy below will time out if the wheel event did not scroll the content.
            scrollSpy.wait()
        }
    }

}