diff options
author | Gabriel Albo <gabriel@albo.com.br> | 2015-11-04 11:23:50 -0200 |
---|---|---|
committer | Gabriel Albo <gabriel@albo.com.br> | 2015-11-04 11:23:50 -0200 |
commit | 742f6c87b0ff37154b1c2779c0f5a44fd899c34d (patch) | |
tree | 763caa014955576b613c4114cb7962265b37e743 /web-ui/test/spec/helpers | |
parent | dccd63fcffe4a5b73282815514fdb0848a0468ed (diff) | |
parent | d79aa00e3c24c5bf5e5ed5ba5a9b976f93034362 (diff) |
Merge branch 'master' of github.com:pixelated-project/pixelated-user-agent
Diffstat (limited to 'web-ui/test/spec/helpers')
-rw-r--r-- | web-ui/test/spec/helpers/monitored_ajax_call.spec.js | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/web-ui/test/spec/helpers/monitored_ajax_call.spec.js b/web-ui/test/spec/helpers/monitored_ajax_call.spec.js index bf7a2db4..972ca3ae 100644 --- a/web-ui/test/spec/helpers/monitored_ajax_call.spec.js +++ b/web-ui/test/spec/helpers/monitored_ajax_call.spec.js @@ -35,6 +35,44 @@ define(['helpers/monitored_ajax'], function (monitoredAjax) { expect(component.trigger).toHaveBeenCalledWith(document, Pixelated.events.ui.userAlerts.displayMessage, { message: 'Server Message' }); }); + }); + + describe('when user seems to be logged out', function () { + var component, browser; + + beforeEach(function () { + component = { trigger: function () {}}; + browser = require('helpers/browser'); + + }); + + it('will redirect the browser to the location specified', function () { + var redirectUrl = '/some/redirect/url'; + var deferred = $.Deferred(); + spyOn($, 'ajax').and.returnValue(deferred); + var spyRedirect = spyOn(browser, 'redirect').and.returnValue($.Deferred()); + + monitoredAjax(component, '/some/url', {}); + + deferred.reject({status: 302, getResponseHeader: function (_) {return redirectUrl;}}, '', ''); + + expect(spyRedirect).toHaveBeenCalled(); + expect(spyRedirect.calls.mostRecent().args[0]).toEqual(redirectUrl); + }); + + it ('will redirect the browser to root if authentication is required', function () { + var redirectUrl = '/'; + var deferred = $.Deferred(); + spyOn($, 'ajax').and.returnValue(deferred); + var spyRedirect = spyOn(browser, 'redirect').and.returnValue($.Deferred()); + + monitoredAjax(component, '/some/url', {}); + + deferred.reject({status: 401}, '', ''); + + expect(spyRedirect).toHaveBeenCalled(); + expect(spyRedirect.calls.mostRecent().args[0]).toEqual(redirectUrl); + }); }); }); |