Index: third_party/WebKit/LayoutTests/imported/wpt/pointerevents/pointerevent_support.js |
diff --git a/third_party/WebKit/LayoutTests/imported/wpt/pointerevents/pointerevent_support.js b/third_party/WebKit/LayoutTests/imported/wpt/pointerevents/pointerevent_support.js |
index 2f43118f783b3bd4e8412617236919a6e25f63dc..a7233fe90843831434fc5c792572414cbf609640 100644 |
--- a/third_party/WebKit/LayoutTests/imported/wpt/pointerevents/pointerevent_support.js |
+++ b/third_party/WebKit/LayoutTests/imported/wpt/pointerevents/pointerevent_support.js |
@@ -15,7 +15,16 @@ var All_Pointer_Events = [ |
function check_PointerEvent(event, testNamePrefix) { |
if (testNamePrefix === undefined) |
testNamePrefix = ""; |
- var pointerTestName = testNamePrefix + ' ' + event.pointerType + ' ' + event.type; |
+ |
+ // Use expectedPointerType if set otherwise just use the incoming event pointerType in the test name. |
+ var pointerTestName = testNamePrefix + ' ' + (expectedPointerType == null ? event.pointerType : expectedPointerType) + ' ' + event.type; |
+ |
+ if (expectedPointerType != null) { |
+ test(function () { |
+ assert_equals(event.pointerType, expectedPointerType, "pointerType should be the same as the requested device."); |
+ }, pointerTestName + " event pointerType is correct."); |
+ } |
+ |
test(function () { |
assert_true(event instanceof event.target.ownerDocument.defaultView.PointerEvent, "event is a PointerEvent event"); |
}, pointerTestName + " event is a PointerEvent event"); |
@@ -92,11 +101,12 @@ function check_PointerEvent(event, testNamePrefix) { |
} |
}, pointerTestName + ".pressure value is valid"); |
- |
// Check mouse-specific properties |
if (event.pointerType === "mouse") { |
// TA: 1.9, 1.10, 1.13 |
test(function () { |
+ assert_equals(event.width, 1, "width of mouse should be 1"); |
+ assert_equals(event.height, 1, "height of mouse should be 1"); |
assert_equals(event.tiltX, 0, event.type + ".tiltX is 0 for mouse"); |
assert_equals(event.tiltY, 0, event.type + ".tiltY is 0 for mouse"); |
assert_true(event.isPrimary, event.type + ".isPrimary is true for mouse"); |
@@ -185,3 +195,46 @@ function rPointerCapture(e) { |
catch(e) { |
} |
} |
+ |
+var globalPointerEventTest = null; |
+var expectedPointerType = null; |
+var HOVERABLE_POINTERS = ['mouse', 'pen']; |
+ |
+function MultiPointerTypeTest(testName, types) { |
+ this.testName = testName; |
+ this.types = types; |
+ this.currentTypeIndex = 0; |
+ this.currentTest = null; |
+ this.createNextTest(); |
+} |
+ |
+MultiPointerTypeTest.prototype.skip = function() { |
+ var prevTest = this.currentTest; |
+ this.createNextTest(); |
+ prevTest.timeout(); |
+} |
+ |
+MultiPointerTypeTest.prototype.done = function() { |
+ var prevTest = this.currentTest; |
+ this.createNextTest(); |
+ if (prevTest != null) |
+ prevTest.done(); |
+} |
+ |
+MultiPointerTypeTest.prototype.createNextTest = function() { |
+ if (this.currentTypeIndex < this.types.length) { |
+ var pointerTypeDescription = document.getElementById('pointerTypeDescription'); |
+ document.getElementById('pointerTypeDescription').innerHTML = "Follow the test instructions with <span style='color: red'>" + this.types[this.currentTypeIndex] + "</span>. If you don't have the device <a href='javascript:;' onclick='globalPointerEventTest.skip()'>skip it</a>."; |
+ this.currentTest = async_test(this.types[this.currentTypeIndex] + ' ' + this.testName); |
+ expectedPointerType = this.types[this.currentTypeIndex]; |
+ this.currentTypeIndex++; |
+ } else { |
+ document.getElementById('pointerTypeDescription').innerHTML = ""; |
+ } |
+ resetTestState(); |
+} |
+ |
+ |
+function setup_pointerevent_test(testName, supportedPointerTypes) { |
+ return globalPointerEventTest = new MultiPointerTypeTest(testName, supportedPointerTypes); |
+} |