mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 683396 follow-up: Fix intermittent test failures
This commit is contained in:
parent
6c39f4933e
commit
fb406c9e6d
@ -495,9 +495,9 @@ let ErrorHandler = {
|
||||
if (this.shouldReportError()) {
|
||||
this.resetFileLog(Svc.Prefs.get("log.appender.file.logOnError"),
|
||||
LOG_PREFIX_ERROR);
|
||||
Svc.Obs.notify("weave:ui:login:error");
|
||||
this.notifyOnNextTick("weave:ui:login:error");
|
||||
} else {
|
||||
Svc.Obs.notify("weave:ui:clear-error");
|
||||
this.notifyOnNextTick("weave:ui:clear-error");
|
||||
}
|
||||
|
||||
this.dontIgnoreErrors = false;
|
||||
@ -510,9 +510,9 @@ let ErrorHandler = {
|
||||
if (this.shouldReportError()) {
|
||||
this.resetFileLog(Svc.Prefs.get("log.appender.file.logOnError"),
|
||||
LOG_PREFIX_ERROR);
|
||||
Svc.Obs.notify("weave:ui:sync:error");
|
||||
this.notifyOnNextTick("weave:ui:sync:error");
|
||||
} else {
|
||||
Svc.Obs.notify("weave:ui:sync:finish");
|
||||
this.notifyOnNextTick("weave:ui:sync:finish");
|
||||
}
|
||||
|
||||
this.dontIgnoreErrors = false;
|
||||
@ -525,7 +525,7 @@ let ErrorHandler = {
|
||||
|
||||
if (this.shouldReportError()) {
|
||||
this.dontIgnoreErrors = false;
|
||||
Svc.Obs.notify("weave:ui:sync:error");
|
||||
this.notifyOnNextTick("weave:ui:sync:error");
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
@ -533,11 +533,15 @@ let ErrorHandler = {
|
||||
LOG_PREFIX_SUCCESS);
|
||||
}
|
||||
this.dontIgnoreErrors = false;
|
||||
Svc.Obs.notify("weave:ui:sync:finish");
|
||||
this.notifyOnNextTick("weave:ui:sync:finish");
|
||||
break;
|
||||
}
|
||||
},
|
||||
|
||||
notifyOnNextTick: function notifyOnNextTick(topic) {
|
||||
Utils.nextTick(function() Svc.Obs.notify(topic));
|
||||
},
|
||||
|
||||
/**
|
||||
* Trigger a sync and don't muffle any errors, particularly network errors.
|
||||
*/
|
||||
|
@ -111,6 +111,12 @@ function setUp() {
|
||||
return serverKeys.upload(Service.cryptoKeysURL).success;
|
||||
}
|
||||
|
||||
function clean() {
|
||||
Service.startOver();
|
||||
Status.resetSync();
|
||||
Status.resetBackoff();
|
||||
}
|
||||
|
||||
add_test(function test_401_logout() {
|
||||
let server = sync_httpd_setup();
|
||||
setUp();
|
||||
@ -364,7 +370,7 @@ add_test(function test_shouldReportError_master_password() {
|
||||
|
||||
// Clean up.
|
||||
Service.verifyLogin = Service._verifyLogin;
|
||||
Service.startOver();
|
||||
clean();
|
||||
server.stop(run_next_test);
|
||||
});
|
||||
|
||||
@ -379,7 +385,7 @@ add_test(function test_login_syncAndReportErrors_non_network_error() {
|
||||
Svc.Obs.remove("weave:ui:login:error", onSyncError);
|
||||
do_check_eq(Status.login, LOGIN_FAILED_NO_PASSWORD);
|
||||
|
||||
Service.startOver();
|
||||
clean();
|
||||
server.stop(run_next_test);
|
||||
});
|
||||
|
||||
@ -404,7 +410,7 @@ add_test(function test_sync_syncAndReportErrors_non_network_error() {
|
||||
Svc.Obs.remove("weave:ui:sync:error", onSyncError);
|
||||
do_check_eq(Status.sync, CREDENTIALS_CHANGED);
|
||||
|
||||
Service.startOver();
|
||||
clean();
|
||||
server.stop(run_next_test);
|
||||
});
|
||||
|
||||
@ -423,7 +429,7 @@ add_test(function test_login_syncAndReportErrors_prolonged_non_network_error() {
|
||||
Svc.Obs.remove("weave:ui:login:error", onSyncError);
|
||||
do_check_eq(Status.login, LOGIN_FAILED_NO_PASSWORD);
|
||||
|
||||
Service.startOver();
|
||||
clean();
|
||||
server.stop(run_next_test);
|
||||
});
|
||||
|
||||
@ -448,7 +454,7 @@ add_test(function test_sync_syncAndReportErrors_prolonged_non_network_error() {
|
||||
Svc.Obs.remove("weave:ui:sync:error", onSyncError);
|
||||
do_check_eq(Status.sync, CREDENTIALS_CHANGED);
|
||||
|
||||
Service.startOver();
|
||||
clean();
|
||||
server.stop(run_next_test);
|
||||
});
|
||||
|
||||
@ -467,7 +473,7 @@ add_test(function test_login_syncAndReportErrors_network_error() {
|
||||
Svc.Obs.remove("weave:ui:login:error", onSyncError);
|
||||
do_check_eq(Status.login, LOGIN_FAILED_NETWORK_ERROR);
|
||||
|
||||
Service.startOver();
|
||||
clean();
|
||||
run_next_test();
|
||||
});
|
||||
|
||||
@ -485,7 +491,7 @@ add_test(function test_sync_syncAndReportErrors_network_error() {
|
||||
do_check_eq(Status.sync, LOGIN_FAILED_NETWORK_ERROR);
|
||||
|
||||
Services.io.offline = false;
|
||||
Service.startOver();
|
||||
clean();
|
||||
run_next_test();
|
||||
});
|
||||
|
||||
@ -503,9 +509,9 @@ add_test(function test_login_syncAndReportErrors_prolonged_network_error() {
|
||||
|
||||
Svc.Obs.add("weave:ui:login:error", function onSyncError() {
|
||||
Svc.Obs.remove("weave:ui:login:error", onSyncError);
|
||||
do_check_eq(Status.sync, LOGIN_FAILED_NETWORK_ERROR);
|
||||
do_check_eq(Status.login, LOGIN_FAILED_NETWORK_ERROR);
|
||||
|
||||
Service.startOver();
|
||||
clean();
|
||||
run_next_test();
|
||||
});
|
||||
|
||||
@ -523,7 +529,7 @@ add_test(function test_sync_syncAndReportErrors_prolonged_network_error() {
|
||||
do_check_eq(Status.sync, LOGIN_FAILED_NETWORK_ERROR);
|
||||
|
||||
Services.io.offline = false;
|
||||
Service.startOver();
|
||||
clean();
|
||||
run_next_test();
|
||||
});
|
||||
|
||||
@ -541,7 +547,7 @@ add_test(function test_login_prolonged_non_network_error() {
|
||||
Svc.Obs.remove("weave:ui:login:error", onSyncError);
|
||||
do_check_eq(Status.sync, PROLONGED_SYNC_FAILURE);
|
||||
|
||||
Service.startOver();
|
||||
clean();
|
||||
server.stop(run_next_test);
|
||||
});
|
||||
|
||||
@ -565,7 +571,7 @@ add_test(function test_sync_prolonged_non_network_error() {
|
||||
Svc.Obs.remove("weave:ui:sync:error", onSyncError);
|
||||
do_check_eq(Status.sync, PROLONGED_SYNC_FAILURE);
|
||||
|
||||
Service.startOver();
|
||||
clean();
|
||||
server.stop(run_next_test);
|
||||
});
|
||||
|
||||
@ -584,7 +590,7 @@ add_test(function test_login_prolonged_network_error() {
|
||||
Svc.Obs.remove("weave:ui:login:error", onSyncError);
|
||||
do_check_eq(Status.sync, PROLONGED_SYNC_FAILURE);
|
||||
|
||||
Service.startOver();
|
||||
clean();
|
||||
run_next_test();
|
||||
});
|
||||
|
||||
@ -601,7 +607,7 @@ add_test(function test_sync_prolonged_network_error() {
|
||||
do_check_eq(Status.sync, PROLONGED_SYNC_FAILURE);
|
||||
|
||||
Services.io.offline = false;
|
||||
Service.startOver();
|
||||
clean();
|
||||
run_next_test();
|
||||
});
|
||||
|
||||
@ -619,7 +625,7 @@ add_test(function test_login_non_network_error() {
|
||||
Svc.Obs.remove("weave:ui:login:error", onSyncError);
|
||||
do_check_eq(Status.login, LOGIN_FAILED_NO_PASSWORD);
|
||||
|
||||
Service.startOver();
|
||||
clean();
|
||||
server.stop(run_next_test);
|
||||
});
|
||||
|
||||
@ -627,7 +633,6 @@ add_test(function test_login_non_network_error() {
|
||||
Service.sync();
|
||||
});
|
||||
|
||||
|
||||
add_test(function test_sync_non_network_error() {
|
||||
// Test non-network errors are reported
|
||||
let server = sync_httpd_setup();
|
||||
@ -644,7 +649,7 @@ add_test(function test_sync_non_network_error() {
|
||||
Svc.Obs.remove("weave:ui:sync:error", onSyncError);
|
||||
do_check_eq(Status.sync, CREDENTIALS_CHANGED);
|
||||
|
||||
Service.startOver();
|
||||
clean();
|
||||
server.stop(run_next_test);
|
||||
});
|
||||
|
||||
@ -664,9 +669,8 @@ add_test(function test_login_network_error() {
|
||||
|
||||
do_check_eq(Status.login, LOGIN_FAILED_NETWORK_ERROR);
|
||||
|
||||
Service.startOver();
|
||||
Status.resetSync();
|
||||
Services.io.offline = false;
|
||||
clean();
|
||||
run_next_test();
|
||||
});
|
||||
|
||||
@ -682,9 +686,8 @@ add_test(function test_sync_network_error() {
|
||||
Svc.Obs.remove("weave:ui:sync:finish", onUIUpdate);
|
||||
do_check_eq(Status.sync, LOGIN_FAILED_NETWORK_ERROR);
|
||||
|
||||
Service.startOver();
|
||||
Services.io.offline = false;
|
||||
Status.resetSync();
|
||||
clean();
|
||||
run_next_test();
|
||||
});
|
||||
|
||||
@ -703,24 +706,26 @@ add_test(function test_sync_server_maintenance_error() {
|
||||
engine.exception = {status: 503,
|
||||
headers: {"retry-after": BACKOFF}};
|
||||
|
||||
function onUIUpdate() {
|
||||
function onSyncError() {
|
||||
do_throw("Shouldn't get here!");
|
||||
}
|
||||
Svc.Obs.add("weave:ui:sync:error", onUIUpdate);
|
||||
Svc.Obs.add("weave:ui:sync:error", onSyncError);
|
||||
|
||||
do_check_eq(Status.service, STATUS_OK);
|
||||
|
||||
Svc.Obs.add("weave:ui:sync:finish", function onSyncFinish() {
|
||||
Svc.Obs.remove("weave:ui:sync:finish", onSyncFinish);
|
||||
|
||||
do_check_eq(Status.service, SYNC_FAILED_PARTIAL);
|
||||
do_check_eq(Status.sync, SERVER_MAINTENANCE);
|
||||
|
||||
Svc.Obs.remove("weave:ui:sync:error", onSyncError);
|
||||
clean();
|
||||
server.stop(run_next_test);
|
||||
});
|
||||
|
||||
setLastSync(NON_PROLONGED_ERROR_DURATION);
|
||||
Service.sync();
|
||||
|
||||
do_check_eq(Status.service, SYNC_FAILED_PARTIAL);
|
||||
do_check_eq(Status.sync, SERVER_MAINTENANCE);
|
||||
|
||||
Svc.Obs.remove("weave:ui:sync:error", onUIUpdate);
|
||||
Service.startOver();
|
||||
Status.resetSync();
|
||||
Status.resetBackoff();
|
||||
server.stop(run_next_test);
|
||||
});
|
||||
|
||||
add_test(function test_info_collections_login_server_maintenance_error() {
|
||||
@ -745,20 +750,21 @@ add_test(function test_info_collections_login_server_maintenance_error() {
|
||||
do_check_false(Status.enforceBackoff);
|
||||
do_check_eq(Status.service, STATUS_OK);
|
||||
|
||||
Svc.Obs.add("weave:ui:clear-error", function onLoginFinish() {
|
||||
Svc.Obs.remove("weave:ui:clear-error", onLoginFinish);
|
||||
|
||||
do_check_true(Status.enforceBackoff);
|
||||
do_check_eq(backoffInterval, 42);
|
||||
do_check_eq(Status.service, LOGIN_FAILED);
|
||||
do_check_eq(Status.login, SERVER_MAINTENANCE);
|
||||
|
||||
Svc.Obs.remove("weave:ui:login:error", onUIUpdate);
|
||||
clean();
|
||||
server.stop(run_next_test);
|
||||
});
|
||||
|
||||
setLastSync(NON_PROLONGED_ERROR_DURATION);
|
||||
Service.sync();
|
||||
|
||||
do_check_true(Status.enforceBackoff);
|
||||
do_check_eq(backoffInterval, 42);
|
||||
do_check_eq(Status.service, LOGIN_FAILED);
|
||||
do_check_eq(Status.login, SERVER_MAINTENANCE);
|
||||
|
||||
Svc.Obs.remove("weave:ui:login:error", onUIUpdate);
|
||||
Service.startOver();
|
||||
Status.resetSync();
|
||||
Status.resetBackoff();
|
||||
|
||||
server.stop(run_next_test);
|
||||
});
|
||||
|
||||
add_test(function test_meta_global_login_server_maintenance_error() {
|
||||
@ -783,20 +789,21 @@ add_test(function test_meta_global_login_server_maintenance_error() {
|
||||
do_check_false(Status.enforceBackoff);
|
||||
do_check_eq(Status.service, STATUS_OK);
|
||||
|
||||
Svc.Obs.add("weave:ui:clear-error", function onLoginFinish() {
|
||||
Svc.Obs.remove("weave:ui:clear-error", onLoginFinish);
|
||||
|
||||
do_check_true(Status.enforceBackoff);
|
||||
do_check_eq(backoffInterval, 42);
|
||||
do_check_eq(Status.service, LOGIN_FAILED);
|
||||
do_check_eq(Status.login, SERVER_MAINTENANCE);
|
||||
|
||||
Svc.Obs.remove("weave:ui:login:error", onUIUpdate);
|
||||
clean();
|
||||
server.stop(run_next_test);
|
||||
});
|
||||
|
||||
setLastSync(NON_PROLONGED_ERROR_DURATION);
|
||||
Service.sync();
|
||||
|
||||
do_check_true(Status.enforceBackoff);
|
||||
do_check_eq(backoffInterval, 42);
|
||||
do_check_eq(Status.service, LOGIN_FAILED);
|
||||
do_check_eq(Status.login, SERVER_MAINTENANCE);
|
||||
|
||||
Svc.Obs.remove("weave:ui:login:error", onUIUpdate);
|
||||
Service.startOver();
|
||||
Status.resetSync();
|
||||
Status.resetBackoff();
|
||||
|
||||
server.stop(run_next_test);
|
||||
});
|
||||
|
||||
add_test(function test_crypto_keys_login_server_maintenance_error() {
|
||||
@ -821,20 +828,21 @@ add_test(function test_crypto_keys_login_server_maintenance_error() {
|
||||
do_check_false(Status.enforceBackoff);
|
||||
do_check_eq(Status.service, STATUS_OK);
|
||||
|
||||
Svc.Obs.add("weave:ui:clear-error", function onLoginFinish() {
|
||||
Svc.Obs.remove("weave:ui:clear-error", onLoginFinish);
|
||||
|
||||
do_check_true(Status.enforceBackoff);
|
||||
do_check_eq(backoffInterval, 42);
|
||||
do_check_eq(Status.service, LOGIN_FAILED);
|
||||
do_check_eq(Status.login, SERVER_MAINTENANCE);
|
||||
|
||||
Svc.Obs.remove("weave:ui:login:error", onUIUpdate);
|
||||
clean();
|
||||
server.stop(run_next_test);
|
||||
});
|
||||
|
||||
setLastSync(NON_PROLONGED_ERROR_DURATION);
|
||||
Service.sync();
|
||||
|
||||
do_check_true(Status.enforceBackoff);
|
||||
do_check_eq(backoffInterval, 42);
|
||||
do_check_eq(Status.service, LOGIN_FAILED);
|
||||
do_check_eq(Status.login, SERVER_MAINTENANCE);
|
||||
|
||||
Svc.Obs.remove("weave:ui:login:error", onUIUpdate);
|
||||
Service.startOver();
|
||||
Status.resetSync();
|
||||
Status.resetBackoff();
|
||||
|
||||
server.stop(run_next_test);
|
||||
});
|
||||
|
||||
add_test(function test_sync_prolonged_server_maintenance_error() {
|
||||
@ -853,9 +861,7 @@ add_test(function test_sync_prolonged_server_maintenance_error() {
|
||||
do_check_eq(Status.service, SYNC_FAILED);
|
||||
do_check_eq(Status.sync, PROLONGED_SYNC_FAILURE);
|
||||
|
||||
Service.startOver();
|
||||
Status.resetSync();
|
||||
Status.resetBackoff();
|
||||
clean();
|
||||
server.stop(run_next_test);
|
||||
});
|
||||
|
||||
@ -886,9 +892,7 @@ add_test(function test_info_collections_login_prolonged_server_maintenance_error
|
||||
do_check_eq(Status.service, SYNC_FAILED);
|
||||
do_check_eq(Status.sync, PROLONGED_SYNC_FAILURE);
|
||||
|
||||
Service.startOver();
|
||||
Status.resetSync();
|
||||
Status.resetBackoff();
|
||||
clean();
|
||||
server.stop(run_next_test);
|
||||
});
|
||||
|
||||
@ -920,9 +924,7 @@ add_test(function test_meta_global_login_prolonged_server_maintenance_error(){
|
||||
do_check_eq(Status.service, SYNC_FAILED);
|
||||
do_check_eq(Status.sync, PROLONGED_SYNC_FAILURE);
|
||||
|
||||
Service.startOver();
|
||||
Status.resetSync();
|
||||
Status.resetBackoff();
|
||||
clean();
|
||||
server.stop(run_next_test);
|
||||
});
|
||||
|
||||
@ -954,9 +956,7 @@ add_test(function test_crypto_keys_login_prolonged_server_maintenance_error(){
|
||||
do_check_eq(Status.service, SYNC_FAILED);
|
||||
do_check_eq(Status.sync, PROLONGED_SYNC_FAILURE);
|
||||
|
||||
Service.startOver();
|
||||
Status.resetSync();
|
||||
Status.resetBackoff();
|
||||
clean();
|
||||
server.stop(run_next_test);
|
||||
});
|
||||
|
||||
@ -984,9 +984,7 @@ add_test(function test_sync_syncAndReportErrors_server_maintenance_error() {
|
||||
do_check_eq(Status.service, SYNC_FAILED_PARTIAL);
|
||||
do_check_eq(Status.sync, SERVER_MAINTENANCE);
|
||||
|
||||
Service.startOver();
|
||||
Status.resetSync();
|
||||
Status.resetBackoff();
|
||||
clean();
|
||||
server.stop(run_next_test);
|
||||
});
|
||||
|
||||
@ -1018,9 +1016,7 @@ add_test(function test_info_collections_login_syncAndReportErrors_server_mainten
|
||||
do_check_eq(Status.service, LOGIN_FAILED);
|
||||
do_check_eq(Status.login, SERVER_MAINTENANCE);
|
||||
|
||||
Service.startOver();
|
||||
Status.resetSync();
|
||||
Status.resetBackoff();
|
||||
clean();
|
||||
server.stop(run_next_test);
|
||||
});
|
||||
|
||||
@ -1053,9 +1049,7 @@ add_test(function test_meta_global_login_syncAndReportErrors_server_maintenance_
|
||||
do_check_eq(Status.service, LOGIN_FAILED);
|
||||
do_check_eq(Status.login, SERVER_MAINTENANCE);
|
||||
|
||||
Service.startOver();
|
||||
Status.resetSync();
|
||||
Status.resetBackoff();
|
||||
clean();
|
||||
server.stop(run_next_test);
|
||||
});
|
||||
|
||||
@ -1088,9 +1082,7 @@ add_test(function test_crypto_keys_login_syncAndReportErrors_server_maintenance_
|
||||
do_check_eq(Status.service, LOGIN_FAILED);
|
||||
do_check_eq(Status.login, SERVER_MAINTENANCE);
|
||||
|
||||
Service.startOver();
|
||||
Status.resetSync();
|
||||
Status.resetBackoff();
|
||||
clean();
|
||||
server.stop(run_next_test);
|
||||
});
|
||||
|
||||
@ -1118,9 +1110,7 @@ add_test(function test_sync_syncAndReportErrors_prolonged_server_maintenance_err
|
||||
do_check_eq(Status.service, SYNC_FAILED_PARTIAL);
|
||||
do_check_eq(Status.sync, SERVER_MAINTENANCE);
|
||||
|
||||
Service.startOver();
|
||||
Status.resetBackoff();
|
||||
Status.resetSync();
|
||||
clean();
|
||||
server.stop(run_next_test);
|
||||
});
|
||||
|
||||
@ -1152,9 +1142,7 @@ add_test(function test_info_collections_login_syncAndReportErrors_prolonged_serv
|
||||
do_check_eq(Status.service, LOGIN_FAILED);
|
||||
do_check_eq(Status.login, SERVER_MAINTENANCE);
|
||||
|
||||
Service.startOver();
|
||||
Status.resetSync();
|
||||
Status.resetBackoff();
|
||||
clean();
|
||||
server.stop(run_next_test);
|
||||
});
|
||||
|
||||
@ -1187,9 +1175,7 @@ add_test(function test_meta_global_login_syncAndReportErrors_prolonged_server_ma
|
||||
do_check_eq(Status.service, LOGIN_FAILED);
|
||||
do_check_eq(Status.login, SERVER_MAINTENANCE);
|
||||
|
||||
Service.startOver();
|
||||
Status.resetSync();
|
||||
Status.resetBackoff();
|
||||
clean();
|
||||
server.stop(run_next_test);
|
||||
});
|
||||
|
||||
@ -1222,9 +1208,7 @@ add_test(function test_crypto_keys_login_syncAndReportErrors_prolonged_server_ma
|
||||
do_check_eq(Status.service, LOGIN_FAILED);
|
||||
do_check_eq(Status.login, SERVER_MAINTENANCE);
|
||||
|
||||
Service.startOver();
|
||||
Status.resetSync();
|
||||
Status.resetBackoff();
|
||||
clean();
|
||||
server.stop(run_next_test);
|
||||
});
|
||||
|
||||
@ -1263,16 +1247,11 @@ add_test(function test_sync_engine_generic_fail() {
|
||||
do_check_eq(logfile.leafName.slice(0, LOG_PREFIX_ERROR.length),
|
||||
LOG_PREFIX_ERROR);
|
||||
|
||||
Status.resetSync();
|
||||
Service.startOver();
|
||||
|
||||
server.stop(run_next_test);
|
||||
clean();
|
||||
});
|
||||
|
||||
do_check_eq(Status.engines["catapult"], undefined);
|
||||
|
||||
do_check_true(setUp());
|
||||
|
||||
Service.sync();
|
||||
});
|
||||
|
||||
@ -1304,15 +1283,11 @@ add_test(function test_engine_applyFailed() {
|
||||
do_check_eq(logfile.leafName.slice(0, LOG_PREFIX_ERROR.length),
|
||||
LOG_PREFIX_ERROR);
|
||||
|
||||
Status.resetSync();
|
||||
Service.startOver();
|
||||
|
||||
clean();
|
||||
server.stop(run_next_test);
|
||||
});
|
||||
|
||||
do_check_eq(Status.engines["catapult"], undefined);
|
||||
|
||||
do_check_true(setUp());
|
||||
|
||||
Service.sync();
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user