Backed out changeset 9ab9bde4021f (bug 1397744) for failing browser-chrome's browser/components/customizableui/test/browser_synced_tabs_menu.js. r=backout

This commit is contained in:
Sebastian Hengst 2017-10-04 21:49:30 +02:00
parent 27e4a543cc
commit 6c9c0c17e9
2 changed files with 40 additions and 28 deletions

View File

@ -524,7 +524,6 @@ var gSync = {
}
const state = UIState.get();
if (state.status == UIState.STATUS_SIGNED_IN) {
this.updateSyncStatus({ syncing: true });
setTimeout(() => Weave.Service.errorHandler.syncAndReportErrors(), 0);
}
},

View File

@ -7,7 +7,6 @@
requestLongerTimeout(2);
let {SyncedTabs} = Cu.import("resource://services-sync/SyncedTabs.jsm", {});
Cu.import("resource://services-sync/UIState.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "UITour", "resource:///modules/UITour.jsm");
@ -43,16 +42,18 @@ add_task(async function setup() {
let oldInternal = SyncedTabs._internal;
SyncedTabs._internal = mockedInternal;
let origNotifyStateUpdated = UIState._internal.notifyStateUpdated;
// Sync start-up will interfere with our tests, don't let UIState send UI updates.
UIState._internal.notifyStateUpdated = () => {};
// Force gSync initialization
gSync.init();
// This test hacks some observer states to simulate a user being signed
// in to Sync - restore them when the test completes.
let initialObserverStates = {};
for (let id of ["sync-reauth-state", "sync-setup-state", "sync-syncnow-state"]) {
initialObserverStates[id] = document.getElementById(id).hidden;
}
registerCleanupFunction(() => {
UIState._internal.notifyStateUpdated = origNotifyStateUpdated;
SyncedTabs._internal = oldInternal;
for (let [id, initial] of Object.entries(initialObserverStates)) {
document.getElementById(id).hidden = initial;
}
});
});
@ -134,14 +135,19 @@ async function asyncCleanup() {
// When Sync is not setup.
add_task(async function() {
gSync.updateAllUI({ status: UIState.STATUS_NOT_CONFIGURED });
await openPrefsFromMenuPanel("PanelUI-remotetabs-setupsync", "synced-tabs");
document.getElementById("sync-reauth-state").hidden = true;
document.getElementById("sync-setup-state").hidden = false;
document.getElementById("sync-syncnow-state").hidden = true;
await openPrefsFromMenuPanel("PanelUI-remotetabs-setupsync", "synced-tabs")
});
add_task(asyncCleanup);
// When Sync is configured in a "needs reauthentication" state.
add_task(async function() {
gSync.updateAllUI({ status: UIState.STATUS_LOGIN_FAILED, email: "foo@bar.com" });
// configure our broadcasters so we are in the right state.
document.getElementById("sync-reauth-state").hidden = false;
document.getElementById("sync-setup-state").hidden = true;
document.getElementById("sync-syncnow-state").hidden = true;
await openPrefsFromMenuPanel("PanelUI-remotetabs-reauthsync", "synced-tabs")
});
@ -151,7 +157,9 @@ add_task(async function() {
Services.prefs.setCharPref("identity.mobilepromo.android", "http://example.com/?os=android&tail=");
Services.prefs.setCharPref("identity.mobilepromo.ios", "http://example.com/?os=ios&tail=");
gSync.updateAllUI({ status: UIState.STATUS_SIGNED_IN, email: "foo@bar.com" });
document.getElementById("sync-reauth-state").hidden = true;
document.getElementById("sync-setup-state").hidden = true;
document.getElementById("sync-syncnow-state").hidden = false;
let syncPanel = document.getElementById("PanelUI-remotetabs");
let links = syncPanel.querySelectorAll(".remotetabs-promo-link");
@ -202,7 +210,10 @@ add_task(async function() {
// Test the "Sync Now" button
add_task(async function() {
gSync.updateAllUI({ status: UIState.STATUS_SIGNED_IN, email: "foo@bar.com" });
// configure our broadcasters so we are in the right state.
document.getElementById("sync-reauth-state").hidden = true;
document.getElementById("sync-setup-state").hidden = true;
document.getElementById("sync-syncnow-state").hidden = false;
await document.getElementById("nav-bar").overflowable.show();
let tabsUpdatedPromise = promiseObserverNotified("synced-tabs-menu:test:tabs-updated");
@ -221,11 +232,22 @@ add_task(async function() {
// provides them
is(deck.selectedIndex, DECKINDEX_FETCHING, "first deck entry is visible");
let syncNowButton = document.getElementById("PanelUI-remotetabs-syncnow");
let didSync = false;
let oldDoSync = gSync.doSync;
gSync.doSync = function() {
didSync = true;
mockedInternal.hasSyncedThisSession = true;
gSync.doSync = oldDoSync;
}
syncNowButton.click();
ok(didSync, "clicking the button called the correct function");
// Tell the widget there are tabs available, but with zero clients.
mockedInternal.getTabClients = () => {
return Promise.resolve([]);
}
mockedInternal.hasSyncedThisSession = true;
await updateTabsPanel();
// The UI should be showing the "no clients" pane.
is(deck.selectedIndex, DECKINDEX_NOCLIENTS, "no-clients deck entry is visible");
@ -327,18 +349,6 @@ add_task(async function() {
node = node.nextSibling;
is(node, null, "no more entries");
let didSync = false;
let oldDoSync = gSync.doSync;
gSync.doSync = function() {
didSync = true;
gSync.doSync = oldDoSync;
}
let syncNowButton = document.getElementById("PanelUI-remotetabs-syncnow");
is(syncNowButton.disabled, false);
syncNowButton.click();
ok(didSync, "clicking the button called the correct function");
await hideOverflow();
});
@ -365,7 +375,10 @@ add_task(async function() {
]);
};
gSync.updateAllUI({ status: UIState.STATUS_SIGNED_IN, email: "foo@bar.com" });
// configure our broadcasters so we are in the right state.
document.getElementById("sync-reauth-state").hidden = true;
document.getElementById("sync-setup-state").hidden = true;
document.getElementById("sync-syncnow-state").hidden = false;
await document.getElementById("nav-bar").overflowable.show();
let tabsUpdatedPromise = promiseObserverNotified("synced-tabs-menu:test:tabs-updated");