Add login test. Fix bugs in socket teardown, RPC retry. Remove chunk of broken merge code pending rewrite.

This commit is contained in:
Ian Gulliver
2014-05-15 19:43:09 +03:00
parent 0b037e899a
commit 482feee804
3 changed files with 28 additions and 22 deletions

View File

@@ -187,13 +187,17 @@ Cosmopolite.prototype.onLoad_ = function() {
Cosmopolite.prototype.onReceiveMessage_ = function(data) {
switch (data) {
case 'login_complete':
this.socket_.close();
if (this.socket_) {
this.socket_.close();
}
break;
case 'logout_complete':
localStorage.removeItem(this.namespace_ + ':client_id');
localStorage.removeItem(this.namespace_ + ':google_user_id');
this.$('#google_user').empty();
this.socket_.close();
if (this.socket_) {
this.socket_.close();
}
break;
default:
console.log('cosmopolite: unknown event type:', data);
@@ -284,7 +288,7 @@ Cosmopolite.prototype.sendRPCs_ = function(commands, delay) {
}
if (data['status'] == 'retry') {
// Discard delay
this.sendRPCs_(commands, onSuccess);
this.sendRPCs_(commands);
return;
}
if (data['status'] != 'ok') {

View File

@@ -182,3 +182,23 @@ asyncTest('Complex object', function() {
var cosmo1 = new Cosmopolite(callbacks1, null, randstring());
var cosmo2 = new Cosmopolite(callbacks2, null, randstring());
});
module('dev_appserver only');
asyncTest('Login', function() {
expect(2);
var callbacks = {
'onLogin': function(login_url) {
ok(true, 'onLogin fired');
cosmo.shutdown();
start();
},
'onLogout': function(login_url) {
ok(true, 'onLogout fired');
// Entirely magic URL that sets the login cookie and redirects.
window.open('/_ah/login?email=test%40example.com&action=Login&continue=/cosmopolite/static/login_complete.html');
}
};
var cosmo = new Cosmopolite(callbacks);
});