diff options
author | Erik Johnston <erik@matrix.org> | 2014-11-07 10:55:28 +0000 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2014-11-07 10:55:28 +0000 |
commit | 3cb678f84cb3252f08788a31bef1a205edffde9c (patch) | |
tree | 01ad785dc284526ecd4aa1a04ce132bcf639f5ac /syweb/webclient/test/unit/register-controller.spec.js | |
parent | Fix joining over federation (diff) | |
parent | Don't cache isWebRTCSupported because whether webRTC is supported might chang... (diff) | |
download | synapse-3cb678f84cb3252f08788a31bef1a205edffde9c.tar.xz |
Merge branch 'develop' of github.com:matrix-org/synapse into federation_authorization
Diffstat (limited to 'syweb/webclient/test/unit/register-controller.spec.js')
-rw-r--r-- | syweb/webclient/test/unit/register-controller.spec.js | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/syweb/webclient/test/unit/register-controller.spec.js b/syweb/webclient/test/unit/register-controller.spec.js new file mode 100644 index 0000000000..b5c7842358 --- /dev/null +++ b/syweb/webclient/test/unit/register-controller.spec.js @@ -0,0 +1,84 @@ +describe("RegisterController ", function() { + var rootScope, scope, ctrl, $q, $timeout; + var userId = "@foo:bar"; + var displayName = "Foo"; + var avatarUrl = "avatar.url"; + + window.webClientConfig = { + useCapatcha: false + }; + + // test vars + var testRegisterData, testFailRegisterData; + + + // mock services + var matrixService = { + config: function() { + return { + user_id: userId + } + }, + setConfig: function(){}, + register: function(mxid, password, threepidCreds, useCaptcha) { + var d = $q.defer(); + if (testFailRegisterData) { + d.reject({ + data: testFailRegisterData + }); + } + else { + d.resolve({ + data: testRegisterData + }); + } + return d.promise; + } + }; + + var eventStreamService = {}; + + beforeEach(function() { + module('matrixWebClient'); + + // reset test vars + testRegisterData = undefined; + testFailRegisterData = undefined; + }); + + beforeEach(inject(function($rootScope, $injector, $location, $controller, _$q_, _$timeout_) { + $q = _$q_; + $timeout = _$timeout_; + scope = $rootScope.$new(); + rootScope = $rootScope; + routeParams = { + user_matrix_id: userId + }; + ctrl = $controller('RegisterController', { + '$scope': scope, + '$rootScope': $rootScope, + '$location': $location, + 'matrixService': matrixService, + 'eventStreamService': eventStreamService + }); + }) + ); + + // SYWEB-109 + it('should display an error if the HS rejects the username on registration', function() { + var prevFeedback = angular.copy(scope.feedback); + + testFailRegisterData = { + errcode: "M_UNKNOWN", + error: "I am rejecting you." + }; + + scope.account.pwd1 = "password"; + scope.account.pwd2 = "password"; + scope.account.desired_user_id = "bob"; + scope.register(); // this depends on the result of a deferred + rootScope.$digest(); // which is delivered after the digest + + expect(scope.feedback).not.toEqual(prevFeedback); + }); +}); |