--- /dev/null
+define(['common/authentification/auth.module'], function () {
+ describe('Auth Module', function () {
+ var _Auth, httpBackend, deferred;
+ beforeEach(module('app.common.auth'));
+
+ beforeEach(inject(function ($injector) {
+ _Auth = $injector.get('Auth');
+ httpBackend = $injector.get('$httpBackend');
+ }));
+
+ it('Should have defined function facilate the authentication process', function () {
+ expect(_Auth.setBasic).toBeDefined();
+ expect(_Auth.unsetBasic).toBeDefined();
+ expect(_Auth.getUser).toBeDefined();
+ expect(_Auth.authorize).toBeDefined();
+ expect(_Auth.isAuthed).toBeDefined();
+ expect(_Auth.isLoggedIn).toBeDefined();
+ expect(_Auth.login).toBeDefined();
+ expect(_Auth.logout).toBeDefined();
+ });
+
+ describe(':: Authentication header', function () {
+ var username = 'john',
+ password = 'abc123',
+ _window = null;
+
+ beforeEach(inject(function ($window) {
+ _window = $window;
+ }));
+
+ it('Should set the basic authenticate header', function () {
+ _Auth.setBasic(username, password);
+
+ expect(_window.localStorage.odlUser).toBeDefined();
+ expect(_window.localStorage.odlUser).toEqual(username);
+
+ expect(_window.localStorage.odlPass).toBeDefined();
+ expect(_window.localStorage.odlPass).toEqual(password);
+ });
+
+ it('Should unset the basic authenticate header', inject(function ($http) {
+ _Auth.setBasic(username, password);
+ _Auth.unsetBasic();
+
+ expect(_window.localStorage.odlUser).toBeUndefined();
+ expect(_window.localStorage.odlPass).toBeUndefined();
+ expect($http.defaults.headers.common.Authorization).toBeUndefined();
+ }));
+ });
+
+ describe(':: Login management', function () {
+ var username = 'john',
+ password = 'abc123';
+
+ it('Should return the current user or null otherwise', function () {
+ var user = _Auth.getUser();
+ expect(user).toBeNull();
+
+ _Auth.setBasic(username, password);
+ expect(user).toEqual(user);
+ });
+
+ it('Should set the authentication header and send a callback if success', function () {
+ httpBackend.expect('GET', /.*/).respond(200, '');
+ var successSpy = jasmine.createSpy("successSpy");
+ var errorSpy = jasmine.createSpy("errorSpy");
+ spyOn(_Auth, 'setBasic');
+
+ _Auth.login(username, password, successSpy, errorSpy);
+ httpBackend.flush();
+
+ expect(_Auth.setBasic).toHaveBeenCalledWith(username, password);
+ expect(successSpy).toHaveBeenCalled();
+ expect(errorSpy).not.toHaveBeenCalled();
+ });
+
+ it('Should unset the authentication header and send a callback if error', function () {
+ httpBackend.expect('GET', /.*/).respond(404, '');
+ var successSpy = jasmine.createSpy("successSpy");
+ var errorSpy = jasmine.createSpy("errorSpy");
+ spyOn(_Auth, 'setBasic');
+ spyOn(_Auth, 'unsetBasic');
+
+ _Auth.login(username, password, successSpy, errorSpy);
+ httpBackend.flush();
+
+ expect(_Auth.setBasic).toHaveBeenCalledWith(username, password);
+ expect(_Auth.unsetBasic).toHaveBeenCalled();
+ expect(successSpy).not.toHaveBeenCalled();
+ expect(errorSpy).toHaveBeenCalled();
+ });
+
+ it('Should unset the authentication header on logout', function () {
+ var successSpy = jasmine.createSpy("successSpy");
+ spyOn(_Auth, 'unsetBasic');
+
+ _Auth.logout(successSpy);
+
+ expect(_Auth.unsetBasic).toHaveBeenCalled();
+ expect(successSpy).toHaveBeenCalled();
+ });
+
+ afterEach(function () {
+ httpBackend.verifyNoOutstandingExpectation();
+ httpBackend.verifyNoOutstandingRequest();
+ });
+
+ });
+
+ });
+});