summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/popupNotifications/browser_popupNotification_checkbox.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/base/content/test/popupNotifications/browser_popupNotification_checkbox.js')
-rw-r--r--browser/base/content/test/popupNotifications/browser_popupNotification_checkbox.js211
1 files changed, 0 insertions, 211 deletions
diff --git a/browser/base/content/test/popupNotifications/browser_popupNotification_checkbox.js b/browser/base/content/test/popupNotifications/browser_popupNotification_checkbox.js
deleted file mode 100644
index bcc51fcd7..000000000
--- a/browser/base/content/test/popupNotifications/browser_popupNotification_checkbox.js
+++ /dev/null
@@ -1,211 +0,0 @@
-/* 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/. */
-
-function test() {
- waitForExplicitFinish();
-
- ok(PopupNotifications, "PopupNotifications object exists");
- ok(PopupNotifications.panel, "PopupNotifications panel exists");
-
- setup();
- goNext();
-}
-
-function checkCheckbox(checkbox, label, checked=false, hidden=false) {
- is(checkbox.label, label, "Checkbox should have the correct label");
- is(checkbox.hidden, hidden, "Checkbox should be shown");
- is(checkbox.checked, checked, "Checkbox should be checked by default");
-}
-
-function checkMainAction(notification, disabled=false) {
- let mainAction = notification.button;
- let warningLabel = document.getAnonymousElementByAttribute(notification, "class", "popup-notification-warning");
- is(warningLabel.hidden, !disabled, "Warning label should be shown");
- is(mainAction.disabled, disabled, "MainAction should be disabled");
-}
-
-function promiseElementVisible(element) {
- // HTMLElement.offsetParent is null when the element is not visisble
- // (or if the element has |position: fixed|). See:
- // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetParent
- return BrowserTestUtils.waitForCondition(() => element.offsetParent !== null,
- "Waiting for element to be visible");
-}
-
-var gNotification;
-
-var tests = [
- // Test that passing the checkbox field shows the checkbox.
- { id: "show_checkbox",
- run: function () {
- this.notifyObj = new BasicNotification(this.id);
- this.notifyObj.options.checkbox = {
- label: "This is a checkbox",
- };
- gNotification = showNotification(this.notifyObj);
- },
- onShown: function (popup) {
- checkPopup(popup, this.notifyObj);
- let notification = popup.childNodes[0];
- checkCheckbox(notification.checkbox, "This is a checkbox");
- triggerMainCommand(popup);
- },
- onHidden: function () { }
- },
-
- // Test checkbox being checked by default
- { id: "checkbox_checked",
- run: function () {
- this.notifyObj = new BasicNotification(this.id);
- this.notifyObj.options.checkbox = {
- label: "Check this",
- checked: true,
- };
- gNotification = showNotification(this.notifyObj);
- },
- onShown: function (popup) {
- checkPopup(popup, this.notifyObj);
- let notification = popup.childNodes[0];
- checkCheckbox(notification.checkbox, "Check this", true);
- triggerMainCommand(popup);
- },
- onHidden: function () { }
- },
-
- // Test checkbox passing the checkbox state on mainAction
- { id: "checkbox_passCheckboxChecked_mainAction",
- run: function () {
- this.notifyObj = new BasicNotification(this.id);
- this.notifyObj.mainAction.callback = ({checkboxChecked}) => this.mainActionChecked = checkboxChecked;
- this.notifyObj.options.checkbox = {
- label: "This is a checkbox",
- };
- gNotification = showNotification(this.notifyObj);
- },
- onShown: function* (popup) {
- checkPopup(popup, this.notifyObj);
- let notification = popup.childNodes[0];
- let checkbox = notification.checkbox;
- checkCheckbox(checkbox, "This is a checkbox");
- yield promiseElementVisible(checkbox);
- EventUtils.synthesizeMouseAtCenter(checkbox, {});
- checkCheckbox(checkbox, "This is a checkbox", true);
- triggerMainCommand(popup);
- },
- onHidden: function () {
- is(this.mainActionChecked, true, "mainAction callback is passed the correct checkbox value");
- }
- },
-
- // Test checkbox passing the checkbox state on secondaryAction
- { id: "checkbox_passCheckboxChecked_secondaryAction",
- run: function () {
- this.notifyObj = new BasicNotification(this.id);
- this.notifyObj.secondaryActions = [{
- label: "Test Secondary",
- accessKey: "T",
- callback: ({checkboxChecked}) => this.secondaryActionChecked = checkboxChecked,
- }];
- this.notifyObj.options.checkbox = {
- label: "This is a checkbox",
- };
- gNotification = showNotification(this.notifyObj);
- },
- onShown: function* (popup) {
- checkPopup(popup, this.notifyObj);
- let notification = popup.childNodes[0];
- let checkbox = notification.checkbox;
- checkCheckbox(checkbox, "This is a checkbox");
- yield promiseElementVisible(checkbox);
- EventUtils.synthesizeMouseAtCenter(checkbox, {});
- checkCheckbox(checkbox, "This is a checkbox", true);
- triggerSecondaryCommand(popup, 0);
- },
- onHidden: function () {
- is(this.secondaryActionChecked, true, "secondaryAction callback is passed the correct checkbox value");
- }
- },
-
- // Test checkbox preserving its state through re-opening the doorhanger
- { id: "checkbox_reopen",
- run: function () {
- this.notifyObj = new BasicNotification(this.id);
- this.notifyObj.options.checkbox = {
- label: "This is a checkbox",
- checkedState: {
- disableMainAction: true,
- warningLabel: "Testing disable",
- },
- };
- gNotification = showNotification(this.notifyObj);
- },
- onShown: function* (popup) {
- checkPopup(popup, this.notifyObj);
- let notification = popup.childNodes[0];
- let checkbox = notification.checkbox;
- checkCheckbox(checkbox, "This is a checkbox");
- yield promiseElementVisible(checkbox);
- EventUtils.synthesizeMouseAtCenter(checkbox, {});
- dismissNotification(popup);
- },
- onHidden: function* (popup) {
- let icon = document.getElementById("default-notification-icon");
- let shown = waitForNotificationPanel();
- EventUtils.synthesizeMouseAtCenter(icon, {});
- yield shown;
- let notification = popup.childNodes[0];
- let checkbox = notification.checkbox;
- checkCheckbox(checkbox, "This is a checkbox", true);
- checkMainAction(notification, true);
- gNotification.remove();
- }
- },
-];
-
-// Test checkbox disabling the main action in different combinations
-["checkedState", "uncheckedState"].forEach(function (state) {
- [true, false].forEach(function (checked) {
- tests.push(
- { id: `checkbox_disableMainAction_${state}_${checked ? 'checked' : 'unchecked'}`,
- run: function () {
- this.notifyObj = new BasicNotification(this.id);
- this.notifyObj.options.checkbox = {
- label: "This is a checkbox",
- checked: checked,
- [state]: {
- disableMainAction: true,
- warningLabel: "Testing disable",
- },
- };
- gNotification = showNotification(this.notifyObj);
- },
- onShown: function* (popup) {
- checkPopup(popup, this.notifyObj);
- let notification = popup.childNodes[0];
- let checkbox = notification.checkbox;
- let disabled = (state === "checkedState" && checked) ||
- (state === "uncheckedState" && !checked);
-
- checkCheckbox(checkbox, "This is a checkbox", checked);
- checkMainAction(notification, disabled);
- yield promiseElementVisible(checkbox);
- EventUtils.synthesizeMouseAtCenter(checkbox, {});
- checkCheckbox(checkbox, "This is a checkbox", !checked);
- checkMainAction(notification, !disabled);
- EventUtils.synthesizeMouseAtCenter(checkbox, {});
- checkCheckbox(checkbox, "This is a checkbox", checked);
- checkMainAction(notification, disabled);
-
- // Unblock the main command if it's currently disabled.
- if (disabled) {
- EventUtils.synthesizeMouseAtCenter(checkbox, {});
- }
- triggerMainCommand(popup);
- },
- onHidden: function () { }
- }
- );
- });
-});
-