Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(50)

Unified Diff: third_party/WebKit/LayoutTests/fast/events/pointerevents/pointer-handler-count.html

Issue 2916893003: Bookkeep the pointer event listeners added to page (Closed)
Patch Set: fix rebase error Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/inspector/tracing/timeline-misc/timeline-event-dispatch-expected.txt » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/LayoutTests/fast/events/pointerevents/pointer-handler-count.html
diff --git a/third_party/WebKit/LayoutTests/fast/events/pointerevents/pointer-handler-count.html b/third_party/WebKit/LayoutTests/fast/events/pointerevents/pointer-handler-count.html
new file mode 100644
index 0000000000000000000000000000000000000000..c22df7aecc209d7277519ad8adb55553bada8812
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/events/pointerevents/pointer-handler-count.html
@@ -0,0 +1,120 @@
+<script src='../../../resources/testharness.js'></script>
+<script src='../../../resources/testharnessreport.js'></script><script>
+
+(function() {
+ var listener = function() { }
+
+ test(function() {
+
+ assert_equals(window.internals.pointerEventHandlerCount(document), 0);
+ document.addEventListener('pointerenter', listener, true);
+ assert_equals(window.internals.pointerEventHandlerCount(document), 1);
+ document.addEventListener('pointerout', listener, true);
+ assert_equals(window.internals.pointerEventHandlerCount(document), 2);
+ document.addEventListener('pointerenter', listener, false);
+ assert_equals(window.internals.pointerEventHandlerCount(document), 3);
+ document.addEventListener('pointerout', listener, false);
+ assert_equals(window.internals.pointerEventHandlerCount(document), 4);
+ document.removeEventListener('pointerenter', listener, true);
+ assert_equals(window.internals.pointerEventHandlerCount(document), 3);
+ document.removeEventListener('pointerout', listener, true);
+ assert_equals(window.internals.pointerEventHandlerCount(document), 2);
+
+ // Try removing the capturing listener again.
+ document.removeEventListener('pointerenter', listener, true);
+ assert_equals(window.internals.pointerEventHandlerCount(document), 2);
+ document.removeEventListener('pointerout', listener, true);
+ assert_equals(window.internals.pointerEventHandlerCount(document), 2);
+
+ document.removeEventListener('pointerenter', listener, false);
+ assert_equals(window.internals.pointerEventHandlerCount(document), 1);
+ document.removeEventListener('pointerout', listener, false);
+ assert_equals(window.internals.pointerEventHandlerCount(document), 0);
+
+ }, "Test 1: addEventListener/removeEventListener on the document");
+
+})();
+
+(function() {
+ test(function() {
+ assert_equals(window.internals.pointerEventHandlerCount(document), 0);
+ document.onpointerenter = function() { }
+ assert_equals(window.internals.pointerEventHandlerCount(document), 1);
+ document.onpointerenter = function() { }
+ assert_equals(window.internals.pointerEventHandlerCount(document), 1);
+ document.onpointerenter = null;
+ assert_equals(window.internals.pointerEventHandlerCount(document), 0);
+ }, "Test 2: setting onpointerenter on the document");
+})();
+
+(function() {
+ var listener = function() { }
+
+ test(function() {
+ assert_equals(window.internals.pointerEventHandlerCount(document), 0);
+ window.addEventListener('pointerenter', listener, true);
+ assert_equals(window.internals.pointerEventHandlerCount(document), 1);
+ window.addEventListener('pointerout', listener, true);
+ assert_equals(window.internals.pointerEventHandlerCount(document), 2);
+ window.addEventListener('pointerenter', listener, false);
+ assert_equals(window.internals.pointerEventHandlerCount(document), 3);
+ window.addEventListener('pointerout', listener, false);
+ assert_equals(window.internals.pointerEventHandlerCount(document), 4);
+ window.removeEventListener('pointerenter', listener, true);
+ assert_equals(window.internals.pointerEventHandlerCount(document), 3);
+ window.removeEventListener('pointerout', listener, true);
+ assert_equals(window.internals.pointerEventHandlerCount(document), 2);
+
+ // Try removing the capturing listener again.
+ window.removeEventListener('pointerenter', listener, true);
+ assert_equals(window.internals.pointerEventHandlerCount(document), 2);
+ window.removeEventListener('pointerout', listener, true);
+ assert_equals(window.internals.pointerEventHandlerCount(document), 2);
+
+ window.removeEventListener('pointerenter', listener, false);
+ assert_equals(window.internals.pointerEventHandlerCount(document), 1);
+ window.removeEventListener('pointerout', listener, false);
+ assert_equals(window.internals.pointerEventHandlerCount(document), 0);
+ }, "Test 3: addEventListener/removeEventListener on the window");
+})();
+
+(function() {
+ test(function() {
+ assert_equals(window.internals.pointerEventHandlerCount(document), 0);
+ window.onpointerenter = function() { }
+ assert_equals(window.internals.pointerEventHandlerCount(document), 1);
+ window.onpointerenter = function() { }
+ assert_equals(window.internals.pointerEventHandlerCount(document), 1);
+ window.onpointerenter = null;
+ assert_equals(window.internals.pointerEventHandlerCount(document), 0);
+ }, "Test 4: setting onpointerenter on the window");
+})();
+
+(function() {
+ var listener = function() { }
+ test(function() {
+ assert_equals(window.internals.pointerEventHandlerCount(document), 0);
+ document.addEventListener('pointerenter', listener, true);
+ assert_equals(window.internals.pointerEventHandlerCount(document), 1);
+ document.addEventListener('pointerover', listener, true);
+ assert_equals(window.internals.pointerEventHandlerCount(document), 2);
+ document.addEventListener('pointerleave', listener, false);
+ assert_equals(window.internals.pointerEventHandlerCount(document), 3);
+ document.addEventListener('pointerout', listener, false);
+ assert_equals(window.internals.pointerEventHandlerCount(document), 4);
+ document.addEventListener('pointermove', listener, true);
+ assert_equals(window.internals.pointerEventHandlerCount(document), 5);
+ document.addEventListener('pointerup', listener, true);
+ assert_equals(window.internals.pointerEventHandlerCount(document), 6);
+ document.addEventListener('pointerdown', listener, true);
+ assert_equals(window.internals.pointerEventHandlerCount(document), 7);
+ document.addEventListener('pointercancel', listener, true);
+ assert_equals(window.internals.pointerEventHandlerCount(document), 8);
+ document.addEventListener('gotpointercapture', listener, true);
+ assert_equals(window.internals.pointerEventHandlerCount(document), 9);
+ document.addEventListener('lostpointercapture', listener, true);
+ assert_equals(window.internals.pointerEventHandlerCount(document), 10);
+ }, "Test 5: test addEventListener for all possible pointer event");
+})();
+</script>
+</body>
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/inspector/tracing/timeline-misc/timeline-event-dispatch-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698