registerCleanupFunction(function () { return promiseStopServer(fakeServer).finally(() => { for (const pref of Svc.PrefBranch.getChildList("")) {
Svc.PrefBranch.clearUserPref(pref);
}
});
});
let engine;
add_task(async function setup() {
await Service.engineManager.clear();
await Service.engineManager.register(EHTestsCommon.CatapultEngine);
engine = Service.engineManager.get("catapult");
});
async function clean() {
let promiseLogReset = promiseOneObserver("weave:service:reset-file-log");
await Service.startOver();
await promiseLogReset;
Status.resetSync();
Status.resetBackoff(); // Move log levels back to trace (startOver will have reversed this), sicne
syncTestLogging();
}
add_task(async function test_401_logout() {
enableValidationPrefs();
let server = await EHTestsCommon.sync_httpd_setup();
await EHTestsCommon.setUp(server);
// By calling sync, we ensure we're logged in.
await sync_and_validate_telem(); Assert.equal(Status.sync, SYNC_SUCCEEDED); Assert.ok(Service.isLoggedIn);
let promiseErrors = new Promise(res => {
Svc.Obs.add("weave:service:sync:error", onSyncError); function onSyncError() {
_("Got weave:service:sync:error in first sync.");
Svc.Obs.remove("weave:service:sync:error", onSyncError);
// Wait for the automatic next sync.
Svc.Obs.add("weave:service:login:error", onLoginError); function onLoginError() {
_("Got weave:service:login:error in second sync.");
Svc.Obs.remove("weave:service:login:error", onLoginError);
res();
}
}
});
// Make sync fail due to login rejected.
await configureIdentity({ username: "janedoe" }, server);
Service._updateCachedURLs();
add_task(async function test_credentials_changed_logout() {
enableValidationPrefs();
let server = await EHTestsCommon.sync_httpd_setup();
await EHTestsCommon.setUp(server);
// By calling sync, we ensure we're logged in.
await sync_and_validate_telem(); Assert.equal(Status.sync, SYNC_SUCCEEDED); Assert.ok(Service.isLoggedIn);
add_task(async function test_login_non_network_error() {
enableValidationPrefs();
// Test non-network errors are reported // when calling sync
let server = await EHTestsCommon.sync_httpd_setup();
await EHTestsCommon.setUp(server);
Service.identity._syncKeyBundle = null;
Assert.equal(Status.sync, CREDENTIALS_CHANGED); // If we clean this tick, telemetry won't get the right error
await Async.promiseYield();
await clean();
await promiseStopServer(server);
});
add_task(async function test_login_sync_network_error() {
enableValidationPrefs();
// Test network errors are reported when calling sync.
await configureIdentity({ username: "broken.wipe" });
Service.clusterURL = fakeServerUrl;
add_task(async function test_login_non_network_error() {
enableValidationPrefs();
// Test non-network errors are reported
let server = await EHTestsCommon.sync_httpd_setup();
await EHTestsCommon.setUp(server);
Service.identity._syncKeyBundle = null;
add_task(async function test_info_collections_login_server_maintenance_error() {
enableValidationPrefs();
// Test info/collections server maintenance errors are not reported.
let server = await EHTestsCommon.sync_httpd_setup();
await EHTestsCommon.setUp(server);
add_task(async function test_meta_global_login_server_maintenance_error() {
enableValidationPrefs();
// Test meta/global server maintenance errors are not reported.
let server = await EHTestsCommon.sync_httpd_setup();
await EHTestsCommon.setUp(server);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.