diff --git a/TestSelenium.js b/TestSelenium.js index cd34b1986..352b293eb 100644 --- a/TestSelenium.js +++ b/TestSelenium.js @@ -36,7 +36,10 @@ var nt = nThen(function (waitFor) { }).nThen; [ + // login test must happen after register test ['/register/', {}], + ['/login/', {}], + ['/assert/', {}], ['/auth/', {}], diff --git a/www/login/main.js b/www/login/main.js index 24f0e905a..408203d9b 100644 --- a/www/login/main.js +++ b/www/login/main.js @@ -6,9 +6,10 @@ define([ '/common/common-realtime.js', '/common/common-feedback.js', '/common/outer/local-store.js', + '/common/test.js', 'less!/bower_components/components-font-awesome/css/font-awesome.min.css', -], function ($, Cryptpad, Login, UI, Realtime, Feedback, LocalStore) { +], function ($, Cryptpad, Login, UI, Realtime, Feedback, LocalStore, Test) { $(function () { var $main = $('#mainBlock'); var Messages = Cryptpad.Messages; @@ -53,6 +54,7 @@ define([ }); var hashing = false; + var test; $('button.login').click(function () { if (hashing) { return void console.log("hashing is already in progress"); } @@ -89,6 +91,11 @@ define([ Realtime.whenRealtimeSyncs(result.realtime, function() { LocalStore.login(result.userHash, result.userName, function () { hashing = false; + if (test) { + localStorage.clear(); + test.pass(); + return; + } if (sessionStorage.redirectTo) { var h = sessionStorage.redirectTo; var parser = document.createElement('a'); @@ -145,5 +152,12 @@ define([ } window.location.href = '/register/'; }); + + Test(function (t) { + $uname.val('testuser'); + $passwd.val('testtest'); + test = t; + $('button.login').click(); + }); }); }); diff --git a/www/register/main.js b/www/register/main.js index a6c31509f..172eaf8cc 100644 --- a/www/register/main.js +++ b/www/register/main.js @@ -54,11 +54,8 @@ define([ var $register = $('button#register'); var registering = false; + var test; var logMeIn = function (result) { - if (Test.testing) { - Test.passed(); - return; - } LocalStore.setUserHash(result.userHash); var proxy = result.proxy; @@ -72,6 +69,11 @@ define([ Realtime.whenRealtimeSyncs(result.realtime, function () { LocalStore.login(result.userHash, result.userName, function () { registering = false; + if (test) { + localStorage.clear(); + test.pass(); + return; + } if (sessionStorage.redirectTo) { var h = sessionStorage.redirectTo; var parser = document.createElement('a'); @@ -236,8 +238,9 @@ define([ } }); - Test(function () { - $uname.val('test' + Math.random()); + Test(function (t) { + test = t; + $uname.val('testuser'); $passwd.val('testtest'); $confirm.val('testtest'); $checkImport[0].checked = true;