Revision 210e5bc8e07cb74096b2f8e4c0fa0d75d463d4f4 authored by Geoffrey Sneddon on 24 March 2018, 14:57:11 UTC, committed by Geoffrey Sneddon on 04 April 2018, 22:04:16 UTC
This is as much in lieu of documentation of the format as anything
1 parent bc209c3
Raw File
pointerevent_constructor.html
<!doctype html>
<html>
    <head>
        <title>PointerEvent: Constructor test</title>
        <meta name="viewport" content="width=device-width">
        <link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
        <script src="/resources/testharness.js"></script>
        <script src="/resources/testharnessreport.js"></script>
        <!-- Additional helper script for common checks across event types -->
        <script type="text/javascript" src="pointerevent_support.js"></script>
    </head>
    <body>
    <h1>PointerEvent: Dispatch custom event</h1>
    <h4>Test Description: This test checks if PointerEvent constructor works properly using synthetic pointerover and pointerout events. For valid results, this test must be run without generating real (trusted) pointerover or pointerout events on the black rectangle below.</h4>
    <div id="target0"></div>
    <script>
        var detected_pointertypes = {};
        add_completion_callback(showPointerTypes);

        async_test(function() {
            var target0 = document.getElementById("target0");
            // set values for non-default constructor
            var testBubbles = true;
            var testCancelable = true;
            var testPointerId = 42;
            var testPointerType = 'pen';
            var testClientX = 300;
            var testClientY = 500;
            var testWidth = 3;
            var testHeight = 5;
            var testTiltX = -45;
            var testTiltY = 30;
            var testButton = 0;
            var testButtons = 1;
            var testPressure = 0.4;
            var testTangentialPressure = 0.5;
            var testTwist = 286;
            var testIsPrimary = true;

            on_event(target0, "pointerover", this.step_func(function(event) {
                detected_pointertypes[ event.pointerType ] = true;
                generate_tests(assert_equals, [
                    ["custom bubbles", event.bubbles, testBubbles],
                    ["custom cancelable", event.cancelable, testCancelable],
                    ["custom pointerId", event.pointerId, testPointerId],
                    ["custom pointerType", event.pointerType, testPointerType],
                    ["custom button", event.button, testButton],
                    ["custom buttons", event.buttons, testButtons],
                    ["custom width", event.width, testWidth],
                    ["custom height", event.height, testHeight],
                    ["custom clientX", event.clientX, testClientX],
                    ["custom clientY", event.clientY, testClientY],
                    ["custom tiltX", event.tiltX, testTiltX],
                    ["custom tiltY", event.tiltY, testTiltY],
                    ["custom twist", event.twist, testTwist],
                    ["custom isPrimary", event.isPrimary, testIsPrimary]
                ]);
                test(function() {
                    assert_approx_equals(event.pressure, testPressure, 0.00000001, "custom pressure: ");
                    assert_approx_equals(event.tangentialPressure, testTangentialPressure, 0.00000001, "custom tangential pressure: ");
                }, "custom pressure: ");
            }));

            on_event(target0, "pointerout", this.step_func(function(event) {
                generate_tests(assert_equals, [
                    ["default pointerId", event.pointerId, 0],
                    ["default pointerType", event.pointerType, ""],
                    ["default width", event.width, 1],
                    ["default height", event.height, 1],
                    ["default tiltX", event.tiltX, 0],
                    ["default tiltY", event.tiltY, 0],
                    ["default pressure", event.pressure, 0],
                    ["default tangentialPressure", event.tangentialPressure, 0],
                    ["default twist", event.twist, 0],
                    ["default isPrimary", event.isPrimary, false]
                ]);
            }));

            on_event(window, "load", this.step_func_done(function() {
                assert_not_equals(window.PointerEvent, undefined);

                var pointerEventCustom = new PointerEvent("pointerover",
                {bubbles: testBubbles,
                cancelable: testCancelable,
                pointerId: testPointerId,
                pointerType: testPointerType,
                width: testWidth,
                height: testHeight,
                clientX: testClientX,
                clientY: testClientY,
                tiltX: testTiltX,
                tiltY: testTiltY,
                button: testButton,
                buttons: testButtons,
                pressure: testPressure,
                tangentialPressure: testTangentialPressure,
                twist: testTwist,
                isPrimary: testIsPrimary
                });
                // A PointerEvent created with a PointerEvent constructor must have all its attributes set to the corresponding values provided to the constructor.
                // For attributes where values are not provided to the constructor, the corresponding default values must be used.
                // TA: 12.1
                target0.dispatchEvent(pointerEventCustom);
                var pointerEventDefault = new PointerEvent("pointerout");
                target0.dispatchEvent(pointerEventDefault);
            }, "PointerEvent constructor"));
        })
    </script>
    <div id="complete-notice">
    <p>The following pointer types were detected: <span id="pointertype-log"></span>.</p>
    </div>
    <div id="log"></div>
    </body>
</html>
back to top