fune/testing/marionette/test/unit/test_modal.js
Victor Porof 2b036e45c5 Bug 1561435 - Format testing/, a=automatic-formatting
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D35962

--HG--
extra : source : c0948f31e520ca087279cf429ca5f1db5a8341b8
2019-07-05 11:01:24 +02:00

151 lines
3.9 KiB
JavaScript

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
const { InvalidArgumentError } = ChromeUtils.import(
"chrome://marionette/content/error.js"
);
const { modal } = ChromeUtils.import("chrome://marionette/content/modal.js");
const mockModalDialog = {
opener: {
ownerGlobal: "foo",
},
};
const mockTabModalDialog = {
ownerGlobal: "foo",
};
add_test(function test_addCallback() {
let observer = new modal.DialogObserver();
let cb1 = () => true;
let cb2 = () => false;
equal(observer.callbacks.size, 0);
observer.add(cb1);
equal(observer.callbacks.size, 1);
observer.add(cb1);
equal(observer.callbacks.size, 1);
observer.add(cb2);
equal(observer.callbacks.size, 2);
run_next_test();
});
add_test(function test_removeCallback() {
let observer = new modal.DialogObserver();
let cb1 = () => true;
let cb2 = () => false;
equal(observer.callbacks.size, 0);
observer.add(cb1);
observer.add(cb2);
equal(observer.callbacks.size, 2);
observer.remove(cb1);
equal(observer.callbacks.size, 1);
observer.remove(cb1);
equal(observer.callbacks.size, 1);
observer.remove(cb2);
equal(observer.callbacks.size, 0);
run_next_test();
});
add_test(function test_registerDialogClosedEventHandler() {
let observer = new modal.DialogObserver();
let mockChromeWindow = {
addEventListener(event, cb) {
equal(
event,
"DOMModalDialogClosed",
"registered event for closing modal"
);
equal(cb, observer, "set itself as handler");
run_next_test();
},
};
observer.observe(mockChromeWindow, "toplevel-window-ready");
});
add_test(function test_handleCallbackOpenModalDialog() {
let observer = new modal.DialogObserver();
observer.add((action, target, win) => {
equal(action, modal.ACTION_OPENED, "'opened' action has been passed");
equal(
target.get(),
mockModalDialog,
"weak reference has been created for target"
);
equal(
win,
mockModalDialog.opener.ownerGlobal,
"chrome window has been passed"
);
run_next_test();
});
observer.observe(mockModalDialog, "common-dialog-loaded");
});
add_test(function test_handleCallbackCloseModalDialog() {
let observer = new modal.DialogObserver();
observer.add((action, target, win) => {
equal(action, modal.ACTION_CLOSED, "'closed' action has been passed");
equal(
target.get(),
mockModalDialog,
"weak reference has been created for target"
);
equal(
win,
mockModalDialog.opener.ownerGlobal,
"chrome window has been passed"
);
run_next_test();
});
observer.handleEvent({
type: "DOMModalDialogClosed",
target: mockModalDialog,
});
});
add_test(function test_handleCallbackOpenTabModalDialog() {
let observer = new modal.DialogObserver();
observer.add((action, target, win) => {
equal(action, modal.ACTION_OPENED, "'opened' action has been passed");
equal(
target.get(),
mockTabModalDialog,
"weak reference has been created for target"
);
equal(win, mockTabModalDialog.ownerGlobal, "chrome window has been passed");
run_next_test();
});
observer.observe(mockTabModalDialog, "tabmodal-dialog-loaded");
});
add_test(function test_handleCallbackCloseTabModalDialog() {
let observer = new modal.DialogObserver();
observer.add((action, target, win) => {
equal(action, modal.ACTION_CLOSED, "'closed' action has been passed");
equal(
target.get(),
mockTabModalDialog,
"weak reference has been created for target"
);
equal(win, mockTabModalDialog.ownerGlobal, "chrome window has been passed");
run_next_test();
});
observer.handleEvent({
type: "DOMModalDialogClosed",
target: mockTabModalDialog,
});
});