Skip to content
Snippets Groups Projects
Commit e022ca97 authored by Shane Tomlinson's avatar Shane Tomlinson
Browse files

Fixing a problem where the "waiting for email validation" would go away.

* The xhr_delay module would take away the wait screen as soon as any XHR message was complete, even if no xhr requests were delayed.

close #913
parent 38e269d9
No related branches found
No related tags found
No related merge requests found
......@@ -7,14 +7,32 @@ BrowserID.Modules.XHRDelay = (function() {
var bid = BrowserID,
wait = bid.Wait,
delayed,
sc;
function delayStart() {
delayed = true;
// XXX - This has a flaw in it. If the user is waiting for at the email
// validation screen and an XHR delay occurs, it will overwrite the waiting
// for validation screen. When the xhr delay completes, then it will take
// away all wait screens and show the add email screen. Perhaps we need
// a new screen/layer to avoid this.
this.renderWait("wait", wait.slowXHR);
}
function delayStop() {
if(delayed) {
delayed = false;
this.hideWait();
}
}
var Module = bid.Modules.PageModule.extend({
start: function(options) {
var self=this;
self.subscribe("xhr_delay", this.renderWait.curry("wait", wait.slowXHR));
self.subscribe("xhr_complete", this.hideWait);
self.subscribe("xhr_delay", delayStart);
self.subscribe("xhr_complete", delayStop);
sc.start.call(self, options);
},
......
......@@ -10,6 +10,7 @@
Module = bid.Modules.XHRDelay,
testHelpers = bid.TestHelpers,
mediator = bid.Mediator,
screens = bid.Screens,
mod;
function createModule(options) {
......@@ -31,10 +32,18 @@
test("xhr_delay shows the wait screen, xhr_complete hides the wait screen", function() {
mediator.publish("xhr_delay");
ok($("#slowXHR:visible").length, "slowXHR error screen is shown");
equal($("body").hasClass("waiting"), true, "waiting screen shown");
ok($("#slowXHR:visible").length, "slowXHR screen is shown");
testHelpers.testWaitVisible();
mediator.publish("xhr_complete");
equal($("body").hasClass("waiting"), false, "waiting screen not shown");
equal(testHelpers.waitVisible(), false, "slowXHR screen no longer visible");
});
test("xhr_complete does not hide wait screen if wait screen not started by xhr_delay", function() {
screens.wait.show("wait", {title: "test wait", message: "testing"});
mediator.publish("xhr_complete");
testHelpers.testWaitVisible();
});
}());
......@@ -112,6 +112,14 @@ BrowserID.TestHelpers = (function() {
equal(TestHelpers.errorVisible(), true, "error screen is visible");
},
waitVisible: function() {
return screens.wait.visible;
},
testWaitVisible: function() {
equal(TestHelpers.waitVisible(), true, "wait screen is visible");
},
checkNetworkError: checkNetworkError,
unexpectedSuccess: function() {
ok(false, "unexpected success");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment