diff --git a/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthenticationService.service.spec.ts b/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthenticationService.service.spec.ts index 3ec6b1a0aa..68f2ed7a9b 100644 --- a/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthenticationService.service.spec.ts +++ b/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthenticationService.service.spec.ts @@ -203,6 +203,28 @@ describe('AlfrescoAuthentication', () => { ); }); + it('should logout only for if the provider is loggedin', (done) => { + let providers = ['BPM', 'ECM']; + let alfSetting = injector.get(AlfrescoSettingsService); + alfSetting.providers = providers; + + service = injector.get(AlfrescoAuthenticationService); + localStorage.setItem('ticket-ECM', 'fake-post-ticket-ECM'); + service.createProviderInstance(providers); + spyOn(AlfrescoAuthenticationECM.prototype, 'callApiLogout').and.returnValue(fakePromiseECM); + service.performeSaveToken('ECM', 'fake-ticket-ECM'); + service.logout() + .subscribe(() => { + expect(service.isLoggedIn(providers[0])).toBe(false); + expect(service.getTicket(providers[0])).toBeUndefined(); + expect(localStorage.getItem('ticket-ECM')).toBeUndefined(); + done(); + } + ); + }); + + + it('should return an error if no provider are defined calling the logout', (done) => { let providers = []; let alfSetting = injector.get(AlfrescoSettingsService); diff --git a/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthenticationService.service.ts b/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthenticationService.service.ts index d427bcfc7c..202e4612c2 100644 --- a/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthenticationService.service.ts +++ b/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthenticationService.service.ts @@ -152,7 +152,9 @@ export class AlfrescoAuthenticationService extends AlfrescoAuthenticationBase { private performLogout(): Observable { let observableBatch = []; this.providersInstance.forEach((authInstance) => { - observableBatch.push(authInstance.logout()); + if (authInstance.isLoggedIn()) { + observableBatch.push(authInstance.logout()); + } }); return Observable.create(observer => { Observable.forkJoin(observableBatch).subscribe(