tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

pointerevent_constructor.html (5378B)


      1 <!doctype html>
      2 <html>
      3    <head>
      4        <title>PointerEvent: Constructor test</title>
      5        <meta name="viewport" content="width=device-width">
      6        <link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
      7        <script src="/resources/testharness.js"></script>
      8        <script src="/resources/testharnessreport.js"></script>
      9        <!-- Additional helper script for common checks across event types -->
     10    </head>
     11    <body>
     12    <h1>PointerEvent: Dispatch custom event</h1>
     13    <h4>Test Description: This test checks if PointerEvent constructor works properly.</h4>
     14    <div id="target0"></div>
     15    <script>
     16        async_test(function() {
     17            var target0 = document.getElementById("target0");
     18            // set values for non-default constructor
     19            on_event(target0, "pointermove", this.step_func(function(event) {
     20                generate_tests(assert_equals, [
     21                    ["getCoalescedEvents in event", "getCoalescedEvents" in event, false],
     22                    ["getPredictedEvents().length", event.getPredictedEvents().length, 2],
     23                    ["event.target", event.target, target0],
     24                    ["event.currentTarget", event.currentTarget, target0],
     25                    ["event.eventPhase", event.eventPhase, Event.AT_TARGET],
     26                    ["event.clientX", event.clientX, 310],
     27                    ["event.pointerType", event.pointerType, "pen"],
     28                    ["getPredictedEvents()[0].clientX", event.getPredictedEvents()[0].clientX, 320],
     29                    ["getPredictedEvents()[1].clientX", event.getPredictedEvents()[1].clientX, 330],
     30                ]);
     31                for (var i=0; i<event.getPredictedEvents().length; i++) {
     32                    var predictedEvent = event.getPredictedEvents()[i];
     33                    generate_tests(assert_equals, [
     34                        ["getPredictedEvents()[" + i + "].pointerId", predictedEvent.pointerId, event.pointerId],
     35                        ["getPredictedEvents()[" + i + "].pointerType", predictedEvent.pointerType, event.pointerType],
     36                        ["getPredictedEvents()[" + i + "].isPrimary", predictedEvent.isPrimary, event.isPrimary],
     37                        ["getPredictedEvents()[" + i + "].getPredictedEvents().length", predictedEvent.getPredictedEvents().length, 0],
     38                        ["getPredictedEvents()[" + i + "].target", predictedEvent.target, null],
     39                        ["getPredictedEvents()[" + i + "].currentTarget", predictedEvent.currentTarget, null],
     40                        ["getPredictedEvents()[" + i + "].eventPhase", predictedEvent.eventPhase, Event.NONE],
     41                        ["getPredictedEvents()[" + i + "].cancelable", predictedEvent.cancelable, false],
     42                        ["getPredictedEvents()[" + i + "].bubbles", predictedEvent.bubbles, false],
     43                        ["getPredictedEvents()[" + i + "].offsetX", predictedEvent.offsetX, 310 + (i==0?10:20)],
     44                        ["getPredictedEvents()[" + i + "].offsetY", predictedEvent.offsetY, 0],
     45                    ]);
     46                }
     47            }));
     48            on_event(target0, "pointerout", this.step_func(function(event) {
     49                generate_tests(assert_equals, [
     50                    ["default event.pointerType", event.pointerType, ""],
     51                    ["default getPredictedEvents().length", event.getPredictedEvents().length, 0],
     52                ]);
     53            }));
     54            on_event(target0, "pointerup", this.step_func(function(event) {
     55                generate_tests(assert_equals, [
     56                    ["type event.pointerType", event.pointerType, "foo"],
     57                ]);
     58            }));
     59 
     60            on_event(window, "load", this.step_func_done(function() {
     61                assert_not_equals(window.PointerEvent, undefined);
     62 
     63                var pointerEventInitDict =
     64                {
     65                  pointerId: 42,
     66                  pointerType: "pen",
     67                  isPrimary: true,
     68                  clientX: 300,
     69                };
     70 
     71                var p1 = new PointerEvent("pointermove", pointerEventInitDict);
     72                pointerEventInitDict.clientX += 10;
     73                var p2 = new PointerEvent("pointermove", pointerEventInitDict);
     74                pointerEventInitDict.clientX += 10;
     75                var p3 = new PointerEvent("pointermove", pointerEventInitDict);
     76                pointerEventInitDict.clientX += 10;
     77                var p4 = new PointerEvent("pointermove", pointerEventInitDict);
     78                pointerEventInitDict.coalescedEvents = [p1, p2];
     79                pointerEventInitDict.predictedEvents = [p3, p4];
     80                pointerEventInitDict.clientX = 310;
     81                var event = new PointerEvent("pointermove", pointerEventInitDict);
     82                target0.dispatchEvent(event);
     83 
     84                var pointerEventDefault = new PointerEvent("pointerout");
     85                target0.dispatchEvent(pointerEventDefault);
     86 
     87                var pointerEventType = new PointerEvent("pointerup", { pointerType: "foo" } );
     88                target0.dispatchEvent(pointerEventType);
     89            }, "PointerEvent constructor"));
     90        })
     91    </script>
     92    <div id="complete-notice">
     93    <p>The following pointer types were detected: <span id="pointertype-log"></span>.</p>
     94    </div>
     95    <div id="log"></div>
     96    </body>
     97 </html>