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

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: Created 3 years, 7 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
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..6be853216600399e8d0862adf6cbbd0f65e76fcd
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/events/pointerevents/pointer-handler-count.html
@@ -0,0 +1,94 @@
+<script src='../../../resources/testharness.js'></script>
+<script src='../../../resources/testharnessreport.js'></script><script>
+
+(function() {
+ var listener = function() { }
Navid Zolghadr 2017/06/01 16:26:13 Can you also add another scenario for testing all
eirage 2017/06/01 19:59:24 Done.
+
+ 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");
+})();
+
+</script>
+</body>

Powered by Google App Engine
This is Rietveld 408576698