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 @@
var pointermoveNoCaptureGot1 = false;
var ownEventForTheCapturedTargetGot = false;
var count=0;
var event_log = [];
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 target1 = document.getElementById('target1');
......@@ -57,13 +62,13 @@
on_event(target0, 'gotpointercapture', function(e) {
test_gotpointercapture.done();
log("gotpointercapture", target0);
event_log.push('gotpointercapture@target0');
});
on_event(target0, 'lostpointercapture', function(e) {
test_lostpointercapture.done();
isPointerCapture = false;
log("lostpointercapture", target0);
event_log.push('lostpointercapture@target0');
});
run();
......@@ -77,7 +82,7 @@
detected_pointertypes[ event.pointerType ] = true;
if(!pointermoveNoCaptureGot0) {
test_pointermove0.done();
log("pointermove", document.getElementById('target0'));
event_log.push('pointermove@target0');
pointermoveNoCaptureGot0 = true;
}
if(isPointerCapture) {
......@@ -92,7 +97,7 @@
(event.clientY > target0.getBoundingClientRect().bottom),
"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;
}
if((event.clientX > target0.getBoundingClientRect().left)&&
......@@ -103,7 +108,7 @@
test(function() {
assert_true(true, "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;
}
}
......@@ -117,7 +122,7 @@
}
if(!pointermoveNoCaptureGot1) {
test_pointermove1.done();
log("pointermove", document.getElementById('target1'));
event_log.push('pointermove@target1');
pointermoveNoCaptureGot1 = true;
}
});
......@@ -126,6 +131,7 @@
<h1>Pointer Events Capture Test</h1>
<div id="complete-notice">
<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 id="log"></div>
</body>
......
......@@ -36,9 +36,14 @@
var isTargetAuthenticityTested = false;
var lostPointerCaptureReceived = false;
var count = 0;
var event_log = [];
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 target1 = document.getElementById('target1');
......@@ -69,14 +74,14 @@
on_event(target0, 'gotpointercapture', function(e) {
test_gotpointercapture.done();
log("gotpointercapture", target0);
event_log.push('gotpointercapture@target0');
});
on_event(target0, 'lostpointercapture', function(e) {
isPointerCapture = false;
lostPointerCaptureReceived = true;
test_lostpointercapture.done();
log("lostpointercapture", target0);
event_log.push('lostpointercapture@target0');
});
run();
......@@ -85,7 +90,7 @@
function run() {
on_event(target0, "pointerover", function (event) {
detected_pointertypes[ event.pointerType ] = true;
log("pointerover", target0);
event_log.push('pointerover@target0');
if(isPointerCapture) {
test_pointerover_capture.done();
if (!isRelatedTargetValueTested) {
......@@ -108,7 +113,7 @@
});
on_event(target0, "pointerout", function (event) {
log("pointerout", target0);
event_log.push('pointerout@target0');
if(isPointerCapture) {
test(function() {
assert_unreached("pointerout shouldn't be sent to captured node as all the events are targeted at the capturing node");
......@@ -124,7 +129,7 @@
});
on_event(target0, "pointerenter", function (event) {
log("pointerenter", target0);
event_log.push('pointerenter@target0');
if(isPointerCapture) {
test_pointerenter_capture.done();
}
......@@ -134,7 +139,7 @@
});
on_event(target0, "pointerleave", function (event) {
log("pointerleave", target0);
event_log.push('pointerleave@target0');
if(isPointerCapture) {
test(function() {
assert_unreached("pointerleave shouldn't be sent to captured node as all the events are targeted at the capturing node");
......@@ -151,7 +156,7 @@
// fail if capture is set but event is received for the non-captured target
on_event(target1, "pointerover", function (event) {
log("pointerover", target1);
event_log.push('pointerover@target1');
if(isPointerCapture == true) {
test(function() {
assert_unreached("pointerover shouldn't trigger for this target when capture is enabled");
......@@ -160,7 +165,7 @@
});
on_event(target1, "pointerout", function (event) {
log("pointerout", target1);
event_log.push('pointerout@target1');
if(isPointerCapture == true) {
test(function() {
assert_unreached("pointerout shouldn't trigger for this target when capture is enabled");
......@@ -169,7 +174,7 @@
});
on_event(target1, "pointerenter", function (event) {
log("pointerenter", target1);
event_log.push('pointerenter@target1');
if(isPointerCapture == true) {
test(function() {
assert_unreached("pointerenter shouldn't trigger for this target when capture is enabled");
......@@ -178,7 +183,7 @@
});
on_event(target1, "pointerleave", function (event) {
log("pointerleave", target1);
event_log.push('pointerleave@target1');
if(isPointerCapture == true) {
test(function() {
assert_unreached("pointerleave shouldn't trigger for this target when capture is enabled");
......@@ -190,6 +195,7 @@
<h1>Pointer Events Capture Test</h1>
<div id="complete-notice">
<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 id="log"></div>
</body>
......
......@@ -26,9 +26,14 @@
<script type='text/javascript'>
var isDisconnected = false;
var count = 0;
var event_log = [];
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 target1 = document.getElementById('target1');
......@@ -43,13 +48,13 @@
});
on_event(target0, 'gotpointercapture', function(e) {
log("gotpointercapture", target1);
event_log.push('gotpointercapture@target1');
isDisconnected = true;
target0.parentNode.removeChild(target0);
});
on_event(target0, 'lostpointercapture', function(e) {
log("lostpointercapture on element", target1);
event_log.push('lostpointercapture@target0');
test(function() {
// TA: 11.3
assert_unreached("lostpointercapture must be fired on the document, not the capturing element");
......@@ -57,7 +62,7 @@
});
on_event(document, 'lostpointercapture', function(e) {
log("lostpointercapture on document", target1);
event_log.push('lostpointercapture@document');
test(function() {
// TA: 11.3
assert_true(isDisconnected, "lostpointercapture must be fired on the document");
......@@ -69,6 +74,7 @@
<h1>Pointer Events Capture Test</h1>
<div id="complete-notice">
<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 id="log"></div>
</body>
......
......@@ -40,8 +40,13 @@
var testStarted = false;
var eventRcvd = 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 captureButton = document.getElementById('btnCapture');
......@@ -72,11 +77,11 @@
testStarted = true;
rPointerCapture(event);
isAsync = true;
log("gotpointercapture", target0);
event_log.push('gotpointercapture@target0');
return;
}
else if (event.type == "lostpointercapture") {
log("lostpointercapture", target0);
event_log.push('lostpointercapture@target0');
captureButton.value = 'Set Capture';
isPointerCapture = false;
......@@ -123,6 +128,7 @@
<h1>Pointer Events Capture Test</h1>
<div id="complete-notice">
<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 id="log"></div>
</body>
......
......@@ -23,12 +23,17 @@
<script type='text/javascript'>
var pointercancelGot = false;
var count=0;
var event_log = [];
var detected_pointertypes = {};
var test_pointerEvent = async_test("pointer capture is released on pointercancel");
var target0 = document.getElementById('target0');
add_completion_callback(showPointerTypes);
add_completion_callback(end_of_test);
function end_of_test() {
showLoggedEvents();
showPointerTypes();
}
window.onload = function() {
on_event(target0, 'pointerdown', function(e) {
......@@ -42,13 +47,13 @@
});
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.
// TA: 4.4
on_event(target0, 'lostpointercapture', function(e) {
log("lostpointercapture", document.getElementById('target0'));
event_log.push('lostpointercapture@target0');
test_pointerEvent.step(function () {
assert_true(pointercancelGot, "pointercancel was received before lostpointercapture");
});
......@@ -56,7 +61,7 @@
});
on_event(target0, 'pointercancel', function(e) {
log("pointercancel", target0);
event_log.push('pointercancel@target0');
pointercancelGot = true;
});
}
......@@ -65,6 +70,7 @@
<div id="complete-notice">
<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 events were logged: <span id="event-log"></span>.</p>
</div>
<div id="log"></div>
</body>
......
......@@ -25,9 +25,14 @@
var isPointerCapture = false;
var pointerupGot = false;
var count=0;
var event_log = [];
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 captureButton = document.getElementById('btnCapture');
......@@ -45,7 +50,7 @@
});
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,
......@@ -58,13 +63,13 @@
test(function() {
assert_true(pointerupGot, "pointerup was received before lostpointercapture")
}, "pointerup was received before lostpointercapture");
log("lostpointercapture", document.getElementById('target0'));
event_log.push('lostpointercapture@target0');
isPointerCapture = false;
done();
});
on_event(target0, 'pointerup', function(e) {
log("pointerup", target0);
event_log.push('pointerup@target0');
pointerupGot = true;
});
}
......@@ -73,6 +78,7 @@
<div id="complete-notice">
<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 events were logged: <span id="event-log"></span>.</p>
</div>
<div id="log"></div>
</body>
......
......@@ -30,9 +30,14 @@
var isPointerCapture = false;
var isPointeroverGot = false;
var count=0;
var event_log = [];
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 target1 = document.getElementById('target1');
......@@ -53,11 +58,11 @@
});
on_event(target0, 'gotpointercapture', function(e) {
log("gotpointercapture", document.getElementById('target0'));
event_log.push('gotpointercapture@target0');
});
on_event(target0, 'lostpointercapture', function(e) {
log("lostpointercapture", document.getElementById('target0'));
event_log.push('lostpointercapture@target0');
isPointerCapture = false;
});
......@@ -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
// and boundary events should be sent accordingly and relatedTarget should behave normally.
on_event(target0, "pointerover", function (event) {
log("pointerover", document.getElementById('target0'));
event_log.push('pointerover@target0');
if(isPointerCapture && isPointeroverGot) {
test(function() {
assert_not_equals(event.relatedTarget, null, "relatedTarget should not be null even when the capture is set")
......@@ -84,7 +89,7 @@
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");
isPointeroverGot = true;
log("pointerover", document.getElementById('target1'));
event_log.push('pointerover@target1');
}
});
}
......@@ -93,6 +98,7 @@
<div id="complete-notice">
<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 events were logged: <span id="event-log"></span>.</p>
<p>Refresh the page to run the tests again with a different pointer type.</p>
</div>
<div id="log"></div>
......
......@@ -136,15 +136,7 @@ function showLoggedEvents() {
complete_notice.style.display = "block";
}
function log(msg, el) {
if (++count > 10){
count = 0;
el.innerHTML = ' ';
}
el.innerHTML = msg + '; ' + el.innerHTML;
}
function failOnScroll() {
function failOnScroll() {
assert_true(false,
"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