<!DOCTYPE html><!-- webkit-test-runner [ MouseEventsSimulationEnabled=true ] -->
<html>
<head>
<meta charset=utf-8>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<script src="../../../../resources/testharness.js"></script>
<script src="../../../../resources/testharnessreport.js"></script>
<script src="../../../../pointerevents/utils.js"></script>
<script>

'use strict';

target_test((target, test) => {
    const eventTracker = new EventTracker(target, ["mousedown", "mousemove", "mouseup"]);

    const one = ui.finger();
    const two = ui.finger();
    const three = ui.finger();
    ui.sequence([
        // Touch "one" will yield a "mousedown" event since it's the first touch to begin.
        one.begin({ x: 10, y: 10 }),
        // Touch "two" will not yield mouse events since there was already a touch
        // yielding mouse events when it began.
        two.begin({ x: 50, y: 50 }),
        two.move({ x: 70, y: 70 }),
        // Touch "one" will not yield a "mousemove" since there are currently more than one single active touch.
        one.move({ x: 30, y: 30 }),
        // Touch "one" will yield a "mouseup" since there is now just one active touch.
        one.end(),
        two.move({ x: 50, y: 50 }),
        two.end(),
        // Touch "three" will yield mouse events since it's the first touch to begin
        // since the last touch to yield mouse events ("one") ended.
        three.begin({ x: 20, y: 20 }),
        three.move({ x: 40, y: 40 }),
        three.end()
    ]).then(() => {
        eventTracker.assertMatchesEvents([
            // Events dispatched for touch "one".
            { type: "mousedown", x: 10, y: 10 },
            { type: "mouseup", x: 30, y: 30 },
            // Events dispatched for touch "three".
            { type: "mousedown", x: 20, y: 20 },
            { type: "mousemove", x: 40, y: 40 },
            { type: "mouseup", x: 40, y: 40 }
        ]);
        test.done();
    });
}, "Mouse events are dispatched as touches start, move and end on the digitizer, with at most one touch at a time dispatching mouse events.");

</script>
</body>
</html>