From b613f9d226577f8e9ec7d21466285be27553aa58 Mon Sep 17 00:00:00 2001 From: Eugenio Romano Date: Wed, 14 Dec 2016 23:43:22 +0000 Subject: [PATCH] #1272 Clean the login storage ticket info before to login --- .../AlfrescoAuthentication.service.ts | 1 + .../src/services/AlfrescoContent.spec.ts | 59 +++++++++++++++---- 2 files changed, 47 insertions(+), 13 deletions(-) diff --git a/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthentication.service.ts b/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthentication.service.ts index 1741867c7c..870320a27b 100644 --- a/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthentication.service.ts +++ b/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthentication.service.ts @@ -140,6 +140,7 @@ export class AlfrescoAuthenticationService { public removeTicket(): void { this.storage.removeItem('ticket-ECM'); this.storage.removeItem('ticket-BPM'); + this.alfrescoApi.setTicket(undefined, undefined); } /** diff --git a/ng2-components/ng2-alfresco-core/src/services/AlfrescoContent.spec.ts b/ng2-components/ng2-alfresco-core/src/services/AlfrescoContent.spec.ts index b8192afe5f..b96f160cba 100644 --- a/ng2-components/ng2-alfresco-core/src/services/AlfrescoContent.spec.ts +++ b/ng2-components/ng2-alfresco-core/src/services/AlfrescoContent.spec.ts @@ -22,9 +22,15 @@ import { AlfrescoContentService } from './AlfrescoContent.service'; import { AlfrescoApiService } from './AlfrescoApi.service'; import { StorageService } from './storage.service'; +declare let jasmine: any; + describe('AlfrescoContentService', () => { - let injector, contentService: AlfrescoContentService, authService: AlfrescoAuthenticationService, node; + let injector, contentService: AlfrescoContentService; + let authService: AlfrescoAuthenticationService; + let settingsService: AlfrescoSettingsService; + let storage: StorageService; + let node: any; const nodeId = 'fake-node-id'; @@ -36,29 +42,56 @@ describe('AlfrescoContentService', () => { AlfrescoSettingsService, StorageService ]); - spyOn(localStorage, 'getItem').and.callFake(function (key) { - return 'myTicket'; - }); - contentService = injector.get(AlfrescoContentService); authService = injector.get(AlfrescoAuthenticationService); - authService.login('fake-username', 'fake-password'); + settingsService = injector.get(AlfrescoSettingsService); + contentService = injector.get(AlfrescoContentService); + storage = injector.get(StorageService); + storage.clear(); node = { entry: { id: nodeId } }; + + jasmine.Ajax.install(); }); - it('should return a valid content URL', () => { - expect(contentService.getContentUrl(node)).toBe('http://localhost:8080/alfresco/api/' + - '-default-/public/alfresco/versions/1/nodes/fake-node-id/content?attachment=false&alf_ticket=myTicket'); + afterEach(() => { + jasmine.Ajax.uninstall(); }); - it('should return a valid thumbnail URL', () => { - expect(contentService.getDocumentThumbnailUrl(node)) - .toBe('http://localhost:8080/alfresco/api/-default-/public/alfresco' + - '/versions/1/nodes/fake-node-id/renditions/doclib/content?attachment=false&alf_ticket=myTicket'); + beforeEach(() => { + settingsService.setProviders('ECM'); + }); + + it('should return a valid content URL', (done) => { + authService.login('fake-username', 'fake-password').subscribe(() => { + expect(contentService.getContentUrl(node)).toBe('http://localhost:8080/alfresco/api/' + + '-default-/public/alfresco/versions/1/nodes/fake-node-id/content?attachment=false&alf_ticket=fake-post-ticket'); + done(); + }); + + jasmine.Ajax.requests.mostRecent().respondWith({ + 'status': 201, + contentType: 'application/json', + responseText: JSON.stringify({'entry': {'id': 'fake-post-ticket', 'userId': 'admin'}}) + }); + }); + + it('should return a valid thumbnail URL', (done) => { + authService.login('fake-username', 'fake-password').subscribe(() => { + expect(contentService.getDocumentThumbnailUrl(node)) + .toBe('http://localhost:8080/alfresco/api/-default-/public/alfresco' + + '/versions/1/nodes/fake-node-id/renditions/doclib/content?attachment=false&alf_ticket=fake-post-ticket'); + done(); + }); + + jasmine.Ajax.requests.mostRecent().respondWith({ + 'status': 201, + contentType: 'application/json', + responseText: JSON.stringify({'entry': {'id': 'fake-post-ticket', 'userId': 'admin'}}) + }); }); });