diff options
Diffstat (limited to 'testing/web-platform/tests/pointerevents/deviceproperties/unique-id-is-unique-manual.tentative.html')
-rw-r--r-- | testing/web-platform/tests/pointerevents/deviceproperties/unique-id-is-unique-manual.tentative.html | 142 |
1 files changed, 142 insertions, 0 deletions
diff --git a/testing/web-platform/tests/pointerevents/deviceproperties/unique-id-is-unique-manual.tentative.html b/testing/web-platform/tests/pointerevents/deviceproperties/unique-id-is-unique-manual.tentative.html new file mode 100644 index 0000000000..55db05353f --- /dev/null +++ b/testing/web-platform/tests/pointerevents/deviceproperties/unique-id-is-unique-manual.tentative.html @@ -0,0 +1,142 @@ +<!DOCTYPE html> +<!-- + Tentative; contingent on merge of: + https://github.com/w3c/pointerevents/pull/495 + + This manual test validates the behavior of PointerEvent.deviceProperties.uniqueId. + Specifically, this test ensures that pointing devices get their own unique id, and + that the unique id is persistent over the session. + + In order to run this test, it is necessary to have multiple pointing devices; such as a + pen and a mouse. Please follow the instructions exactly as written in order to ensure + the correct results are obtained. +--> +<title>DeviceProperties.uniqueId is unique for pointer events from different devices</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> + #instructions { + display: inline-block; + border-right: 1px solid black; + padding-right: 10px; + width: 600px; + } + #testcontainer { + display: inline-block; + width: 300px; + touch-action: none; + } + + #currentuniqueid { + display: inline-block; + } + + .point1 { + height: 50px; + width: 50px; + background-color: #00eeee; + display: inline-block; + } + .point2 { + height: 50px; + width: 50px; + background-color: #aa33aa; + display: inline-block; + float: right; + } + + .testarea { + border: 1px solid #000000; + margin-bottom: 50px; + width: 100%; + } + + p { + padding-bottom: 10px; + } + + html { + font-family: Arial, Helvetica, sans-serif; + } +</style> +<html> +<div id="instructions"> +<h2>Instructions</h2> +<p>1. With one pointing device (pointing device #1), drag the pointer from A to B</p> +<p>2. With another pointing device (pointing device #2), drag the pointer from C to D</p> +<p>3. Repeat step 1.</p> +<p>4. Repeat step 2.</p> +<p>5. Click finish and verify the test passes. There should be 4 passing test cases. </p> +</div> +<div id="testcontainer"> + <div> + Current pointer's unique id: <p id="currentuniqueid"></p> + </div> + <div class="testarea" id="device1"> + <div class="point1">A</div> + <div class="point2">B</div> + </div> + <div class="testarea" id="device2"> + <div class="point1">C</div> + <div class="point2">D</div> + </div> + + <p>Click on the button below after completing. If a "PASS" result appears the test + passes, otherwise it fails</p> + <button onclick="Finish()">Finish Test</button> +</div> +</html> + +<script> + let device1Ids = []; + let device2Ids = []; + + setup({explicit_timeout: true, explicit_done: true}); + + function LogDeviceId(event, list) { + if (event.deviceProperties) { + const uniqueId = event.deviceProperties.uniqueId; + currentuniqueid.innerText = uniqueId ? uniqueId : "Unknown"; + if (!uniqueId) { + return; + } + list.push(uniqueId); + } + } + + function LogDeviceId1(event) { + LogDeviceId(event, device1Ids); + } + + function LogDeviceId2(event) { + LogDeviceId(event, device2Ids); + } + + function Finish() { + let device1UniqueIds = new Set(device1Ids); + let device2UniqueIds = new Set(device2Ids); + + test(function () { + assert_greater_than(device1Ids.length, 1, "Events from Device 1 have uniqueIds."); + assert_equals(device1UniqueIds.size, 1, "Device 1 has a consistent uniqueId."); + }, "uniqueId is consistent for device 1"); + test(function () { + assert_greater_than(device2Ids.length, 1, "Events from Device 2 have uniqueIds."); + assert_equals(device2UniqueIds.size, 1, "Device 2 has a consistent uniqueId."); + }, "uniqueId is consistent for device 2"); + test(function () { + // Ensure the two sets are different. + assert_equals(device1UniqueIds.intersection(device2UniqueIds).size, 0, "Device 1 and 2 have different uniqueIds."); + }, "uniqueId is unique to device 1 and device 2"); + done(); + } + + device1.addEventListener("pointerdown", LogDeviceId1, false); + device1.addEventListener("pointermove", LogDeviceId1, false); + device1.addEventListener("pointerup", LogDeviceId1, false); + + device2.addEventListener("pointerdown", LogDeviceId2, false); + device2.addEventListener("pointermove", LogDeviceId2, false); + device2.addEventListener("pointerup", LogDeviceId2, false); + +</script> |