summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/screen-capture/capture-controller-event-target.https.window.js
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/screen-capture/capture-controller-event-target.https.window.js')
-rw-r--r--testing/web-platform/tests/screen-capture/capture-controller-event-target.https.window.js60
1 files changed, 60 insertions, 0 deletions
diff --git a/testing/web-platform/tests/screen-capture/capture-controller-event-target.https.window.js b/testing/web-platform/tests/screen-capture/capture-controller-event-target.https.window.js
new file mode 100644
index 0000000000..379f359568
--- /dev/null
+++ b/testing/web-platform/tests/screen-capture/capture-controller-event-target.https.window.js
@@ -0,0 +1,60 @@
+'use strict';
+
+const controller = new CaptureController();
+const type = 'my-event-type';
+const listeners = {};
+const listener_count = 10;
+for (let i = 0; i < listener_count; i++) {
+ listeners[i] = {
+ callback: (event) => {
+ assert_equals(event.type, type, `Event type sent to listener ${i}`);
+ listeners[i].execution_count++;
+ }
+ };
+}
+
+test(() => {
+ for (const i in listeners) {
+ listeners[i].execution_count = 0;
+ controller.addEventListener(type, listeners[i].callback);
+ }
+ controller.dispatchEvent(new Event(type));
+ for (const i in listeners) {
+ assert_equals(
+ listeners[i].execution_count, 1,
+ `Callback execution count for listener ${i}`);
+ }
+}, 'Registering listeners on CaptureController and dispatching an event.');
+
+test(() => {
+ for (const i in listeners) {
+ listeners[i].execution_count = 0;
+ }
+ controller.dispatchEvent(new Event(type));
+ controller.dispatchEvent(new Event(type));
+ controller.dispatchEvent(new Event(type));
+ for (const i in listeners) {
+ assert_equals(
+ listeners[i].execution_count, 3,
+ `Callback execution count for listener ${i}`);
+ }
+}, 'Dispatching an multiple events to CaptureController.');
+
+test(() => {
+ for (const i in listeners) {
+ listeners[i].execution_count = 0;
+ if (i % 3) {
+ listeners[i].removed = false;
+ } else {
+ listeners[i].removed = true;
+ controller.removeEventListener(type, listeners[i].callback);
+ };
+ }
+ controller.dispatchEvent(new Event(type));
+ controller.dispatchEvent(new Event(type));
+ for (const i in listeners) {
+ assert_equals(
+ listeners[i].execution_count, listeners[i].removed ? 0 : 2,
+ `Callback execution count for listener ${i}`);
+ }
+}, 'Unregistering listeners from CaptureController and dispatching an event.');