Commit f8019d26 authored by Dave Tapuska's avatar Dave Tapuska Committed by Commit Bot

Amend pointerevent tests so they are stable while the test is executing

Some pointer event tests used a log method that would cause the layout
to change and this caused issues for using threaded compositing.

Switch to a method that already existed before to collect the log entries
and then show them at the end of the test.

BUG=831653

Change-Id: I3d1b16d01aa15c3c1660d36ce10aa702671c6786
Reviewed-on: https://chromium-review.googlesource.com/1226097Reviewed-by: default avatarNavid Zolghadr <nzolghadr@chromium.org>
Commit-Queue: Dave Tapuska <dtapuska@chromium.org>
Cr-Commit-Position: refs/heads/master@{#591349}
parent 47421c60
...@@ -36,9 +36,14 @@ ...@@ -36,9 +36,14 @@
var pointermoveNoCaptureGot1 = false; var pointermoveNoCaptureGot1 = false;
var ownEventForTheCapturedTargetGot = false; var ownEventForTheCapturedTargetGot = false;
var count=0; var count=0;
var event_log = [];
var detected_pointertypes = {}; var detected_pointertypes = {};
add_completion_callback(showPointerTypes); add_completion_callback(end_of_test);
function end_of_test() {
showLoggedEvents();
showPointerTypes();
}
var target0 = document.getElementById('target0'); var target0 = document.getElementById('target0');
var target1 = document.getElementById('target1'); var target1 = document.getElementById('target1');
...@@ -57,13 +62,13 @@ ...@@ -57,13 +62,13 @@
on_event(target0, 'gotpointercapture', function(e) { on_event(target0, 'gotpointercapture', function(e) {
test_gotpointercapture.done(); test_gotpointercapture.done();
log("gotpointercapture", target0); event_log.push('gotpointercapture@target0');
}); });
on_event(target0, 'lostpointercapture', function(e) { on_event(target0, 'lostpointercapture', function(e) {
test_lostpointercapture.done(); test_lostpointercapture.done();
isPointerCapture = false; isPointerCapture = false;
log("lostpointercapture", target0); event_log.push('lostpointercapture@target0');
}); });
run(); run();
...@@ -77,7 +82,7 @@ ...@@ -77,7 +82,7 @@
detected_pointertypes[ event.pointerType ] = true; detected_pointertypes[ event.pointerType ] = true;
if(!pointermoveNoCaptureGot0) { if(!pointermoveNoCaptureGot0) {
test_pointermove0.done(); test_pointermove0.done();
log("pointermove", document.getElementById('target0')); event_log.push('pointermove@target0');
pointermoveNoCaptureGot0 = true; pointermoveNoCaptureGot0 = true;
} }
if(isPointerCapture) { if(isPointerCapture) {
...@@ -92,7 +97,7 @@ ...@@ -92,7 +97,7 @@
(event.clientY > target0.getBoundingClientRect().bottom), (event.clientY > target0.getBoundingClientRect().bottom),
"pointermove received for captured element while out of it") "pointermove received for captured element while out of it")
}, "pointermove received for captured element while out of it"); }, "pointermove received for captured element while out of it");
log("pointermove", document.getElementById('target0')); event_log.push('pointermove@target0');
pointermoveCaptureGot0 = true; pointermoveCaptureGot0 = true;
} }
if((event.clientX > target0.getBoundingClientRect().left)&& if((event.clientX > target0.getBoundingClientRect().left)&&
...@@ -103,7 +108,7 @@ ...@@ -103,7 +108,7 @@
test(function() { test(function() {
assert_true(true, "pointermove received for captured element while inside of it"); assert_true(true, "pointermove received for captured element while inside of it");
}, "pointermove received for captured element while inside of it"); }, "pointermove received for captured element while inside of it");
log("pointermove", document.getElementById('target0')); event_log.push('pointermove@target0');
ownEventForTheCapturedTargetGot = true; ownEventForTheCapturedTargetGot = true;
} }
} }
...@@ -117,7 +122,7 @@ ...@@ -117,7 +122,7 @@
} }
if(!pointermoveNoCaptureGot1) { if(!pointermoveNoCaptureGot1) {
test_pointermove1.done(); test_pointermove1.done();
log("pointermove", document.getElementById('target1')); event_log.push('pointermove@target1');
pointermoveNoCaptureGot1 = true; pointermoveNoCaptureGot1 = true;
} }
}); });
...@@ -126,7 +131,8 @@ ...@@ -126,7 +131,8 @@
<h1>Pointer Events Capture Test</h1> <h1>Pointer Events Capture Test</h1>
<div id="complete-notice"> <div id="complete-notice">
<p>The following pointer types were detected: <span id="pointertype-log"></span>.</p> <p>The following pointer types were detected: <span id="pointertype-log"></span>.</p>
<p>The following events were logged: <span id="event-log"></span>.</p>
</div> </div>
<div id="log"></div> <div id="log"></div>
</body> </body>
</html> </html>
\ No newline at end of file
...@@ -36,9 +36,14 @@ ...@@ -36,9 +36,14 @@
var isTargetAuthenticityTested = false; var isTargetAuthenticityTested = false;
var lostPointerCaptureReceived = false; var lostPointerCaptureReceived = false;
var count = 0; var count = 0;
var event_log = [];
var detected_pointertypes = {}; var detected_pointertypes = {};
add_completion_callback(showPointerTypes); add_completion_callback(end_of_test);
function end_of_test() {
showLoggedEvents();
showPointerTypes();
}
var target0 = document.getElementById('target0'); var target0 = document.getElementById('target0');
var target1 = document.getElementById('target1'); var target1 = document.getElementById('target1');
...@@ -69,14 +74,14 @@ ...@@ -69,14 +74,14 @@
on_event(target0, 'gotpointercapture', function(e) { on_event(target0, 'gotpointercapture', function(e) {
test_gotpointercapture.done(); test_gotpointercapture.done();
log("gotpointercapture", target0); event_log.push('gotpointercapture@target0');
}); });
on_event(target0, 'lostpointercapture', function(e) { on_event(target0, 'lostpointercapture', function(e) {
isPointerCapture = false; isPointerCapture = false;
lostPointerCaptureReceived = true; lostPointerCaptureReceived = true;
test_lostpointercapture.done(); test_lostpointercapture.done();
log("lostpointercapture", target0); event_log.push('lostpointercapture@target0');
}); });
run(); run();
...@@ -85,7 +90,7 @@ ...@@ -85,7 +90,7 @@
function run() { function run() {
on_event(target0, "pointerover", function (event) { on_event(target0, "pointerover", function (event) {
detected_pointertypes[ event.pointerType ] = true; detected_pointertypes[ event.pointerType ] = true;
log("pointerover", target0); event_log.push('pointerover@target0');
if(isPointerCapture) { if(isPointerCapture) {
test_pointerover_capture.done(); test_pointerover_capture.done();
if (!isRelatedTargetValueTested) { if (!isRelatedTargetValueTested) {
...@@ -108,7 +113,7 @@ ...@@ -108,7 +113,7 @@
}); });
on_event(target0, "pointerout", function (event) { on_event(target0, "pointerout", function (event) {
log("pointerout", target0); event_log.push('pointerout@target0');
if(isPointerCapture) { if(isPointerCapture) {
test(function() { test(function() {
assert_unreached("pointerout shouldn't be sent to captured node as all the events are targeted at the capturing node"); assert_unreached("pointerout shouldn't be sent to captured node as all the events are targeted at the capturing node");
...@@ -124,7 +129,7 @@ ...@@ -124,7 +129,7 @@
}); });
on_event(target0, "pointerenter", function (event) { on_event(target0, "pointerenter", function (event) {
log("pointerenter", target0); event_log.push('pointerenter@target0');
if(isPointerCapture) { if(isPointerCapture) {
test_pointerenter_capture.done(); test_pointerenter_capture.done();
} }
...@@ -134,7 +139,7 @@ ...@@ -134,7 +139,7 @@
}); });
on_event(target0, "pointerleave", function (event) { on_event(target0, "pointerleave", function (event) {
log("pointerleave", target0); event_log.push('pointerleave@target0');
if(isPointerCapture) { if(isPointerCapture) {
test(function() { test(function() {
assert_unreached("pointerleave shouldn't be sent to captured node as all the events are targeted at the capturing node"); assert_unreached("pointerleave shouldn't be sent to captured node as all the events are targeted at the capturing node");
...@@ -151,7 +156,7 @@ ...@@ -151,7 +156,7 @@
// fail if capture is set but event is received for the non-captured target // fail if capture is set but event is received for the non-captured target
on_event(target1, "pointerover", function (event) { on_event(target1, "pointerover", function (event) {
log("pointerover", target1); event_log.push('pointerover@target1');
if(isPointerCapture == true) { if(isPointerCapture == true) {
test(function() { test(function() {
assert_unreached("pointerover shouldn't trigger for this target when capture is enabled"); assert_unreached("pointerover shouldn't trigger for this target when capture is enabled");
...@@ -160,7 +165,7 @@ ...@@ -160,7 +165,7 @@
}); });
on_event(target1, "pointerout", function (event) { on_event(target1, "pointerout", function (event) {
log("pointerout", target1); event_log.push('pointerout@target1');
if(isPointerCapture == true) { if(isPointerCapture == true) {
test(function() { test(function() {
assert_unreached("pointerout shouldn't trigger for this target when capture is enabled"); assert_unreached("pointerout shouldn't trigger for this target when capture is enabled");
...@@ -169,7 +174,7 @@ ...@@ -169,7 +174,7 @@
}); });
on_event(target1, "pointerenter", function (event) { on_event(target1, "pointerenter", function (event) {
log("pointerenter", target1); event_log.push('pointerenter@target1');
if(isPointerCapture == true) { if(isPointerCapture == true) {
test(function() { test(function() {
assert_unreached("pointerenter shouldn't trigger for this target when capture is enabled"); assert_unreached("pointerenter shouldn't trigger for this target when capture is enabled");
...@@ -178,7 +183,7 @@ ...@@ -178,7 +183,7 @@
}); });
on_event(target1, "pointerleave", function (event) { on_event(target1, "pointerleave", function (event) {
log("pointerleave", target1); event_log.push('pointerleave@target1');
if(isPointerCapture == true) { if(isPointerCapture == true) {
test(function() { test(function() {
assert_unreached("pointerleave shouldn't trigger for this target when capture is enabled"); assert_unreached("pointerleave shouldn't trigger for this target when capture is enabled");
...@@ -190,6 +195,7 @@ ...@@ -190,6 +195,7 @@
<h1>Pointer Events Capture Test</h1> <h1>Pointer Events Capture Test</h1>
<div id="complete-notice"> <div id="complete-notice">
<p>The following pointer types were detected: <span id="pointertype-log"></span>.</p> <p>The following pointer types were detected: <span id="pointertype-log"></span>.</p>
<p>The following events were logged: <span id="event-log"></span>.</p>
</div> </div>
<div id="log"></div> <div id="log"></div>
</body> </body>
......
...@@ -26,9 +26,14 @@ ...@@ -26,9 +26,14 @@
<script type='text/javascript'> <script type='text/javascript'>
var isDisconnected = false; var isDisconnected = false;
var count = 0; var count = 0;
var event_log = [];
var detected_pointertypes = {}; var detected_pointertypes = {};
add_completion_callback(showPointerTypes); add_completion_callback(end_of_test);
function end_of_test() {
showLoggedEvents();
showPointerTypes();
}
var target0 = document.getElementById('target0'); var target0 = document.getElementById('target0');
var target1 = document.getElementById('target1'); var target1 = document.getElementById('target1');
...@@ -43,13 +48,13 @@ ...@@ -43,13 +48,13 @@
}); });
on_event(target0, 'gotpointercapture', function(e) { on_event(target0, 'gotpointercapture', function(e) {
log("gotpointercapture", target1); event_log.push('gotpointercapture@target1');
isDisconnected = true; isDisconnected = true;
target0.parentNode.removeChild(target0); target0.parentNode.removeChild(target0);
}); });
on_event(target0, 'lostpointercapture', function(e) { on_event(target0, 'lostpointercapture', function(e) {
log("lostpointercapture on element", target1); event_log.push('lostpointercapture@target0');
test(function() { test(function() {
// TA: 11.3 // TA: 11.3
assert_unreached("lostpointercapture must be fired on the document, not the capturing element"); assert_unreached("lostpointercapture must be fired on the document, not the capturing element");
...@@ -57,7 +62,7 @@ ...@@ -57,7 +62,7 @@
}); });
on_event(document, 'lostpointercapture', function(e) { on_event(document, 'lostpointercapture', function(e) {
log("lostpointercapture on document", target1); event_log.push('lostpointercapture@document');
test(function() { test(function() {
// TA: 11.3 // TA: 11.3
assert_true(isDisconnected, "lostpointercapture must be fired on the document"); assert_true(isDisconnected, "lostpointercapture must be fired on the document");
...@@ -69,6 +74,7 @@ ...@@ -69,6 +74,7 @@
<h1>Pointer Events Capture Test</h1> <h1>Pointer Events Capture Test</h1>
<div id="complete-notice"> <div id="complete-notice">
<p>The following pointer types were detected: <span id="pointertype-log"></span>.</p> <p>The following pointer types were detected: <span id="pointertype-log"></span>.</p>
<p>The following events were logged: <span id="event-log"></span>.</p>
</div> </div>
<div id="log"></div> <div id="log"></div>
</body> </body>
......
...@@ -40,8 +40,13 @@ ...@@ -40,8 +40,13 @@
var testStarted = false; var testStarted = false;
var eventRcvd = false; var eventRcvd = false;
var isAsync = false; var isAsync = false;
var event_log = [];
add_completion_callback(showPointerTypes); add_completion_callback(end_of_test);
function end_of_test() {
showLoggedEvents();
showPointerTypes();
}
var target0 = document.getElementById('target0'); var target0 = document.getElementById('target0');
var captureButton = document.getElementById('btnCapture'); var captureButton = document.getElementById('btnCapture');
...@@ -72,11 +77,11 @@ ...@@ -72,11 +77,11 @@
testStarted = true; testStarted = true;
rPointerCapture(event); rPointerCapture(event);
isAsync = true; isAsync = true;
log("gotpointercapture", target0); event_log.push('gotpointercapture@target0');
return; return;
} }
else if (event.type == "lostpointercapture") { else if (event.type == "lostpointercapture") {
log("lostpointercapture", target0); event_log.push('lostpointercapture@target0');
captureButton.value = 'Set Capture'; captureButton.value = 'Set Capture';
isPointerCapture = false; isPointerCapture = false;
...@@ -123,6 +128,7 @@ ...@@ -123,6 +128,7 @@
<h1>Pointer Events Capture Test</h1> <h1>Pointer Events Capture Test</h1>
<div id="complete-notice"> <div id="complete-notice">
<p>The following pointer types were detected: <span id="pointertype-log"></span>.</p> <p>The following pointer types were detected: <span id="pointertype-log"></span>.</p>
<p>The following events were logged: <span id="event-log"></span>.</p>
</div> </div>
<div id="log"></div> <div id="log"></div>
</body> </body>
......
...@@ -23,12 +23,17 @@ ...@@ -23,12 +23,17 @@
<script type='text/javascript'> <script type='text/javascript'>
var pointercancelGot = false; var pointercancelGot = false;
var count=0; var count=0;
var event_log = [];
var detected_pointertypes = {}; var detected_pointertypes = {};
var test_pointerEvent = async_test("pointer capture is released on pointercancel"); var test_pointerEvent = async_test("pointer capture is released on pointercancel");
var target0 = document.getElementById('target0'); var target0 = document.getElementById('target0');
add_completion_callback(showPointerTypes); add_completion_callback(end_of_test);
function end_of_test() {
showLoggedEvents();
showPointerTypes();
}
window.onload = function() { window.onload = function() {
on_event(target0, 'pointerdown', function(e) { on_event(target0, 'pointerdown', function(e) {
...@@ -42,13 +47,13 @@ ...@@ -42,13 +47,13 @@
}); });
on_event(target0, 'gotpointercapture', function(e) { on_event(target0, 'gotpointercapture', function(e) {
log("gotpointercapture", document.getElementById('target0')); event_log.push('gotpointercapture@target0');
}); });
// If the setPointerCapture method has been invoked on the pointer specified by pointerId, and the releasePointerCapture method has not been invoked, a lostpointercapture event must be dispatched to the element on which the setPointerCapture method was invoked. Furthermore, subsequent events for the specified pointer must follow normal hit testing mechanisms for determining the event target. // If the setPointerCapture method has been invoked on the pointer specified by pointerId, and the releasePointerCapture method has not been invoked, a lostpointercapture event must be dispatched to the element on which the setPointerCapture method was invoked. Furthermore, subsequent events for the specified pointer must follow normal hit testing mechanisms for determining the event target.
// TA: 4.4 // TA: 4.4
on_event(target0, 'lostpointercapture', function(e) { on_event(target0, 'lostpointercapture', function(e) {
log("lostpointercapture", document.getElementById('target0')); event_log.push('lostpointercapture@target0');
test_pointerEvent.step(function () { test_pointerEvent.step(function () {
assert_true(pointercancelGot, "pointercancel was received before lostpointercapture"); assert_true(pointercancelGot, "pointercancel was received before lostpointercapture");
}); });
...@@ -56,7 +61,7 @@ ...@@ -56,7 +61,7 @@
}); });
on_event(target0, 'pointercancel', function(e) { on_event(target0, 'pointercancel', function(e) {
log("pointercancel", target0); event_log.push('pointercancel@target0');
pointercancelGot = true; pointercancelGot = true;
}); });
} }
...@@ -65,6 +70,7 @@ ...@@ -65,6 +70,7 @@
<div id="complete-notice"> <div id="complete-notice">
<p>Test complete: Scroll to Summary to view Pass/Fail Results.</p> <p>Test complete: Scroll to Summary to view Pass/Fail Results.</p>
<p>The following pointer types were detected: <span id="pointertype-log"></span>.</p> <p>The following pointer types were detected: <span id="pointertype-log"></span>.</p>
<p>The following events were logged: <span id="event-log"></span>.</p>
</div> </div>
<div id="log"></div> <div id="log"></div>
</body> </body>
......
...@@ -25,9 +25,14 @@ ...@@ -25,9 +25,14 @@
var isPointerCapture = false; var isPointerCapture = false;
var pointerupGot = false; var pointerupGot = false;
var count=0; var count=0;
var event_log = [];
var detected_pointertypes = {}; var detected_pointertypes = {};
add_completion_callback(showPointerTypes); add_completion_callback(end_of_test);
function end_of_test() {
showLoggedEvents();
showPointerTypes();
}
var target0 = document.getElementById('target0'); var target0 = document.getElementById('target0');
var captureButton = document.getElementById('btnCapture'); var captureButton = document.getElementById('btnCapture');
...@@ -45,7 +50,7 @@ ...@@ -45,7 +50,7 @@
}); });
on_event(target0, 'gotpointercapture', function(e) { on_event(target0, 'gotpointercapture', function(e) {
log("gotpointercapture", document.getElementById('target0')); event_log.push('gotpointercapture@target0');
}); });
// If the setPointerCapture method has been invoked on the pointer specified by pointerId, // If the setPointerCapture method has been invoked on the pointer specified by pointerId,
...@@ -58,13 +63,13 @@ ...@@ -58,13 +63,13 @@
test(function() { test(function() {
assert_true(pointerupGot, "pointerup was received before lostpointercapture") assert_true(pointerupGot, "pointerup was received before lostpointercapture")
}, "pointerup was received before lostpointercapture"); }, "pointerup was received before lostpointercapture");
log("lostpointercapture", document.getElementById('target0')); event_log.push('lostpointercapture@target0');
isPointerCapture = false; isPointerCapture = false;
done(); done();
}); });
on_event(target0, 'pointerup', function(e) { on_event(target0, 'pointerup', function(e) {
log("pointerup", target0); event_log.push('pointerup@target0');
pointerupGot = true; pointerupGot = true;
}); });
} }
...@@ -73,7 +78,8 @@ ...@@ -73,7 +78,8 @@
<div id="complete-notice"> <div id="complete-notice">
<p>Test complete: Scroll to Summary to view Pass/Fail Results.</p> <p>Test complete: Scroll to Summary to view Pass/Fail Results.</p>
<p>The following pointer types were detected: <span id="pointertype-log"></span>.</p> <p>The following pointer types were detected: <span id="pointertype-log"></span>.</p>
<p>The following events were logged: <span id="event-log"></span>.</p>
</div> </div>
<div id="log"></div> <div id="log"></div>
</body> </body>
</html> </html>
\ No newline at end of file
...@@ -30,9 +30,14 @@ ...@@ -30,9 +30,14 @@
var isPointerCapture = false; var isPointerCapture = false;
var isPointeroverGot = false; var isPointeroverGot = false;
var count=0; var count=0;
var event_log = [];
var detected_pointertypes = {}; var detected_pointertypes = {};
add_completion_callback(showPointerTypes); add_completion_callback(end_of_test);
function end_of_test() {
showLoggedEvents();
showPointerTypes();
}
var target0 = document.getElementById('target0'); var target0 = document.getElementById('target0');
var target1 = document.getElementById('target1'); var target1 = document.getElementById('target1');
...@@ -53,11 +58,11 @@ ...@@ -53,11 +58,11 @@
}); });
on_event(target0, 'gotpointercapture', function(e) { on_event(target0, 'gotpointercapture', function(e) {
log("gotpointercapture", document.getElementById('target0')); event_log.push('gotpointercapture@target0');
}); });
on_event(target0, 'lostpointercapture', function(e) { on_event(target0, 'lostpointercapture', function(e) {
log("lostpointercapture", document.getElementById('target0')); event_log.push('lostpointercapture@target0');
isPointerCapture = false; isPointerCapture = false;
}); });
...@@ -68,7 +73,7 @@ ...@@ -68,7 +73,7 @@
// After invoking the setPointerCapture method on an element, subsequent pointer events for the specified pointer must be targeted at that element // After invoking the setPointerCapture method on an element, subsequent pointer events for the specified pointer must be targeted at that element
// and boundary events should be sent accordingly and relatedTarget should behave normally. // and boundary events should be sent accordingly and relatedTarget should behave normally.
on_event(target0, "pointerover", function (event) { on_event(target0, "pointerover", function (event) {
log("pointerover", document.getElementById('target0')); event_log.push('pointerover@target0');
if(isPointerCapture && isPointeroverGot) { if(isPointerCapture && isPointeroverGot) {
test(function() { test(function() {
assert_not_equals(event.relatedTarget, null, "relatedTarget should not be null even when the capture is set") assert_not_equals(event.relatedTarget, null, "relatedTarget should not be null even when the capture is set")
...@@ -84,7 +89,7 @@ ...@@ -84,7 +89,7 @@
assert_true(isPointerCapture==false, "pointerover shouldn't trigger for this target when capture is enabled"); assert_true(isPointerCapture==false, "pointerover shouldn't trigger for this target when capture is enabled");
}, "pointerover shouldn't trigger for the purple rectangle while the black rectangle has capture"); }, "pointerover shouldn't trigger for the purple rectangle while the black rectangle has capture");
isPointeroverGot = true; isPointeroverGot = true;
log("pointerover", document.getElementById('target1')); event_log.push('pointerover@target1');
} }
}); });
} }
...@@ -93,6 +98,7 @@ ...@@ -93,6 +98,7 @@
<div id="complete-notice"> <div id="complete-notice">
<p>Test complete: Scroll to Summary to view Pass/Fail Results.</p> <p>Test complete: Scroll to Summary to view Pass/Fail Results.</p>
<p>The following pointer types were detected: <span id="pointertype-log"></span>.</p> <p>The following pointer types were detected: <span id="pointertype-log"></span>.</p>
<p>The following events were logged: <span id="event-log"></span>.</p>
<p>Refresh the page to run the tests again with a different pointer type.</p> <p>Refresh the page to run the tests again with a different pointer type.</p>
</div> </div>
<div id="log"></div> <div id="log"></div>
......
...@@ -136,15 +136,7 @@ function showLoggedEvents() { ...@@ -136,15 +136,7 @@ function showLoggedEvents() {
complete_notice.style.display = "block"; complete_notice.style.display = "block";
} }
function log(msg, el) { function failOnScroll() {
if (++count > 10){
count = 0;
el.innerHTML = ' ';
}
el.innerHTML = msg + '; ' + el.innerHTML;
}
function failOnScroll() {
assert_true(false, assert_true(false,
"scroll received while shouldn't"); "scroll received while shouldn't");
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment