mirror of
https://github.com/classilla/tenfourfox.git
synced 2024-07-04 19:29:55 +00:00
78 lines
2.1 KiB
JavaScript
Executable File
78 lines
2.1 KiB
JavaScript
Executable File
/* 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";
|
|
|
|
var syncService = {};
|
|
Components.utils.import("resource://services-sync/service.js", syncService);
|
|
|
|
var needsSetup;
|
|
var originalSync;
|
|
var service = syncService.Service;
|
|
var syncWasCalled = false;
|
|
|
|
add_task(function* testSyncButtonFunctionality() {
|
|
info("Check Sync button functionality");
|
|
storeInitialValues();
|
|
mockFunctions();
|
|
|
|
// add the Sync button to the panel
|
|
CustomizableUI.addWidgetToArea("sync-button", CustomizableUI.AREA_PANEL);
|
|
|
|
// check the button's functionality
|
|
yield PanelUI.show();
|
|
info("The panel menu was opened");
|
|
|
|
let syncButton = document.getElementById("sync-button");
|
|
ok(syncButton, "The Sync button was added to the Panel Menu");
|
|
// click the button - the panel should open.
|
|
syncButton.click();
|
|
let syncPanel = document.getElementById("PanelUI-remotetabs");
|
|
ok(syncPanel.getAttribute("current"), "Sync Panel is in view");
|
|
|
|
// Find and click the "setup" button.
|
|
let syncNowButton = document.getElementById("PanelUI-remotetabs-syncnow");
|
|
syncNowButton.click();
|
|
|
|
info("The sync button was clicked");
|
|
|
|
yield waitForCondition(() => syncWasCalled);
|
|
});
|
|
|
|
add_task(function* asyncCleanup() {
|
|
// reset the panel UI to the default state
|
|
yield resetCustomization();
|
|
ok(CustomizableUI.inDefaultState, "The panel UI is in default state again.");
|
|
|
|
if (isPanelUIOpen()) {
|
|
let panelHidePromise = promisePanelHidden(window);
|
|
PanelUI.hide();
|
|
yield panelHidePromise;
|
|
}
|
|
|
|
restoreValues();
|
|
});
|
|
|
|
function mockFunctions() {
|
|
// mock needsSetup
|
|
gSyncUI._needsSetup = () => Promise.resolve(false);
|
|
|
|
// mock service.errorHandler.syncAndReportErrors()
|
|
service.errorHandler.syncAndReportErrors = mocked_syncAndReportErrors;
|
|
}
|
|
|
|
function mocked_syncAndReportErrors() {
|
|
syncWasCalled = true;
|
|
}
|
|
|
|
function restoreValues() {
|
|
gSyncUI._needsSetup = needsSetup;
|
|
service.sync = originalSync;
|
|
}
|
|
|
|
function storeInitialValues() {
|
|
needsSetup = gSyncUI._needsSetup;
|
|
originalSync = service.sync;
|
|
}
|