diff --git a/demo-shell-ng2/app/components/login/login-demo.component.html b/demo-shell-ng2/app/components/login/login-demo.component.html index 96b03cad90..e9fe2b6346 100644 --- a/demo-shell-ng2/app/components/login/login-demo.component.html +++ b/demo-shell-ng2/app/components/login/login-demo.component.html @@ -1 +1 @@ - + diff --git a/demo-shell-ng2/app/components/login/login-demo.component.ts b/demo-shell-ng2/app/components/login/login-demo.component.ts index 1056f857b9..2ccc1f45ce 100644 --- a/demo-shell-ng2/app/components/login/login-demo.component.ts +++ b/demo-shell-ng2/app/components/login/login-demo.component.ts @@ -17,6 +17,7 @@ import { Component } from '@angular/core'; import { AlfrescoLoginComponent } from 'ng2-alfresco-login'; +import { Router, ROUTER_DIRECTIVES } from '@angular/router-deprecated'; declare let __moduleName: string; @@ -24,9 +25,21 @@ declare let __moduleName: string; moduleId: __moduleName, selector: 'login-demo', templateUrl: './login-demo.component.html', - directives: [AlfrescoLoginComponent], + directives: [ROUTER_DIRECTIVES, AlfrescoLoginComponent], pipes: [] }) export class LoginDemoComponent { + constructor(public router: Router) { + } + + onLogin($event) { + console.log($event); + this.router.navigate(['Home']); + } + + onError($event) { + console.log($event); + } + } diff --git a/ng2-components/ng2-alfresco-login/README.md b/ng2-components/ng2-alfresco-login/README.md index 32d755ea5e..ff48c80bfd 100644 --- a/ng2-components/ng2-alfresco-login/README.md +++ b/ng2-components/ng2-alfresco-login/README.md @@ -92,31 +92,26 @@ Example of an App that use Alfresco login component : main.ts ```ts -import { bootstrap } from 'angular2/platform/browser'; -import { Component } from 'angular2/core'; -import { Router, RouteConfig, ROUTER_DIRECTIVES } from 'angular2/router'; -import { AlfrescoSettingsService, AlfrescoAuthenticationService } from 'ng2-alfresco-core/dist/ng2-alfresco-core'; -import { AlfrescoLoginComponent } from 'ng2-alfresco-login/dist/ng2-alfresco-login'; -import { ROUTER_PROVIDERS } from 'angular2/router'; -import { HTTP_PROVIDERS } from 'angular2/http'; -import { ALFRESCO_CORE_PROVIDERS, AlfrescoTranslationService, AlfrescoTranslationLoader } from 'ng2-alfresco-core/dist/ng2-alfresco-core'; +import { Component } from '@angular/core'; +import { bootstrap } from '@angular/platform-browser-dynamic'; +import { AlfrescoLoginComponent } from 'ng2-alfresco-login'; +import { HTTP_PROVIDERS } from '@angular/http'; +import { + ALFRESCO_CORE_PROVIDERS, + AlfrescoSettingsService, + AlfrescoAuthenticationService +} from 'ng2-alfresco-core'; - -@RouteConfig([ - {path: '/', name: 'Login', component: AlfrescoLoginComponent, useAsDefault: true} -]) @Component({ selector: 'my-app', - template: '', - directives: [ROUTER_DIRECTIVES, AlfrescoLoginComponent] + template: '', + directives: [AlfrescoLoginComponent] }) export class AppComponent { constructor(public auth: AlfrescoAuthenticationService, - public router: Router, alfrescoSettingsService: AlfrescoSettingsService) { alfrescoSettingsService.host = 'http://192.168.99.100:8080'; - } mySuccessMethod($event) { @@ -130,11 +125,7 @@ export class AppComponent { } bootstrap(AppComponent, [ - ROUTER_PROVIDERS, HTTP_PROVIDERS, - AlfrescoTranslationLoader, - AlfrescoTranslationService, - AlfrescoAuthenticationService, ALFRESCO_CORE_PROVIDERS ]); diff --git a/ng2-components/ng2-alfresco-login/demo/src/main.ts b/ng2-components/ng2-alfresco-login/demo/src/main.ts index 2fe6b0a639..00f66e51e4 100644 --- a/ng2-components/ng2-alfresco-login/demo/src/main.ts +++ b/ng2-components/ng2-alfresco-login/demo/src/main.ts @@ -17,12 +17,6 @@ import { Component } from '@angular/core'; import { bootstrap } from '@angular/platform-browser-dynamic'; -import { - Router, - RouteConfig, - ROUTER_PROVIDERS, - ROUTER_DIRECTIVES -} from '@angular/router-deprecated'; import { AlfrescoLoginComponent } from 'ng2-alfresco-login'; import { HTTP_PROVIDERS } from '@angular/http'; import { @@ -32,17 +26,14 @@ import { } from 'ng2-alfresco-core'; -@RouteConfig([ - {path: '/', name: 'Login', component: AlfrescoLoginComponent, useAsDefault: true} -]) @Component({ selector: 'my-app', template: `


{{ status }}
- `, - directives: [ROUTER_DIRECTIVES, AlfrescoLoginComponent] + `, + directives: [AlfrescoLoginComponent] }) export class AppComponent { @@ -53,7 +44,6 @@ export class AppComponent { public status: string = ''; constructor(public auth: AlfrescoAuthenticationService, - public router: Router, private alfrescoSettingsService: AlfrescoSettingsService) { alfrescoSettingsService.host = this.host; } @@ -74,7 +64,6 @@ export class AppComponent { } bootstrap(AppComponent, [ - ROUTER_PROVIDERS, HTTP_PROVIDERS, ALFRESCO_CORE_PROVIDERS ]); diff --git a/ng2-components/ng2-alfresco-login/karma.conf.js b/ng2-components/ng2-alfresco-login/karma.conf.js index 268fb9b62d..e32efb0519 100644 --- a/ng2-components/ng2-alfresco-login/karma.conf.js +++ b/ng2-components/ng2-alfresco-login/karma.conf.js @@ -4,7 +4,7 @@ module.exports = function (config) { var configuration = { basePath: '.', - frameworks: ['jasmine-ajax', 'jasmine'], + frameworks: ['jasmine'], files: [ // paths loaded by Karma @@ -63,7 +63,6 @@ module.exports = function (config) { plugins: [ 'karma-jasmine', 'karma-coverage', - 'karma-jasmine-ajax', 'karma-chrome-launcher', 'karma-mocha-reporter', 'karma-jasmine-html-reporter' diff --git a/ng2-components/ng2-alfresco-login/package.json b/ng2-components/ng2-alfresco-login/package.json index 331e831ed1..1faf5b56c5 100644 --- a/ng2-components/ng2-alfresco-login/package.json +++ b/ng2-components/ng2-alfresco-login/package.json @@ -1,7 +1,7 @@ { "name": "ng2-alfresco-login", "description": "Alfresco Angular2 Login Component", - "version": "0.1.18", + "version": "0.1.19", "author": "Alfresco Software, Ltd.", "scripts": { "clean": "rm -rf dist node_modules typings", diff --git a/ng2-components/ng2-alfresco-login/src/components/alfresco-login.component.spec.ts b/ng2-components/ng2-alfresco-login/src/components/alfresco-login.component.spec.ts index 0861bfacb7..779eab3a2b 100644 --- a/ng2-components/ng2-alfresco-login/src/components/alfresco-login.component.spec.ts +++ b/ng2-components/ng2-alfresco-login/src/components/alfresco-login.component.spec.ts @@ -15,59 +15,42 @@ * limitations under the License. */ -describe('AlfrescoLogin', () => { - it('should be upgraded to angular 2.0.0-rc.1', () => { - expect(false).toBe(true); - }); -}); -/* -import { TEST_BROWSER_PLATFORM_PROVIDERS, TEST_BROWSER_APPLICATION_PROVIDERS } from 'angular2/platform/testing/browser'; +import { + TEST_BROWSER_DYNAMIC_PLATFORM_PROVIDERS, + TEST_BROWSER_DYNAMIC_APPLICATION_PROVIDERS +} from '@angular/platform-browser-dynamic/testing'; import { it, describe, expect, inject, - injectAsync, - beforeEach, beforeEachProviders, - TestComponentBuilder, setBaseTestProviders } from '@angular/core/testing'; +import { TestComponentBuilder } from '@angular/compiler/testing'; import { provide } from '@angular/core'; -import { Location, Router, RouteRegistry, ROUTER_PRIMARY_COMPONENT, Route } from 'angular2/router'; -import { RootRouter } from 'angular2/src/router/router'; -import { SpyLocation } from 'angular2/src/mock/location_mock'; -import { AlfrescoTranslationService } from 'ng2-alfresco-core/dist/ng2-alfresco-core'; +import { AlfrescoTranslationService } from 'ng2-alfresco-core'; import { AlfrescoLoginComponent } from './alfresco-login.component'; import { AuthenticationMock } from './../assets/authentication.service.mock'; import { TranslationMock } from './../assets/translation.service.mock'; describe('AlfrescoLogin', () => { - let authService, location, router; + let authService; - setBaseTestProviders(TEST_BROWSER_PLATFORM_PROVIDERS, TEST_BROWSER_APPLICATION_PROVIDERS); + setBaseTestProviders(TEST_BROWSER_DYNAMIC_PLATFORM_PROVIDERS, TEST_BROWSER_DYNAMIC_APPLICATION_PROVIDERS); beforeEachProviders(() => { authService = new AuthenticationMock(); return [ authService.getProviders(), - RouteRegistry, - provide(Location, {useClass: SpyLocation}), - provide(ROUTER_PRIMARY_COMPONENT, {useValue: AlfrescoLoginComponent}), - provide(Router, {useClass: RootRouter}), provide(AlfrescoTranslationService, {useClass: TranslationMock}) ]; }); - beforeEach(inject([Router, Location], (r, l) => { - router = r; - location = l; - })); - it('should render `Login` form with all the keys to be translated', - injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => { + inject([TestComponentBuilder], (tcb: TestComponentBuilder) => { return tcb .createAsync(AlfrescoLoginComponent) .then((fixture) => { @@ -92,7 +75,7 @@ describe('AlfrescoLogin', () => { })); it('should render user and password input fields with default values', - injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => { + inject([TestComponentBuilder], (tcb: TestComponentBuilder) => { return tcb .createAsync(AlfrescoLoginComponent) .then((fixture) => { @@ -106,7 +89,7 @@ describe('AlfrescoLogin', () => { })); it('should render min-length error when the username is lower than 4 characters', - injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => { + inject([TestComponentBuilder], (tcb: TestComponentBuilder) => { return tcb .createAsync(AlfrescoLoginComponent) .then((fixture) => { @@ -133,7 +116,7 @@ describe('AlfrescoLogin', () => { })); it('should render no errors when the username and password are correct', - injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => { + inject([TestComponentBuilder], (tcb: TestComponentBuilder) => { return tcb .createAsync(AlfrescoLoginComponent) .then((fixture) => { @@ -161,7 +144,7 @@ describe('AlfrescoLogin', () => { })); it('should render the new values after user and password values are changed', - injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => { + inject([TestComponentBuilder], (tcb: TestComponentBuilder) => { return tcb .createAsync(AlfrescoLoginComponent) .then((fixture) => { @@ -182,13 +165,11 @@ describe('AlfrescoLogin', () => { }); })); - it('should navigate to Home route after the login have succeeded ', - injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => { + it('should return success true after the login have succeeded ', + inject([TestComponentBuilder], (tcb: TestComponentBuilder) => { return tcb .createAsync(AlfrescoLoginComponent) .then((fixture) => { - router.config([new Route({path: '/home', name: 'Home', component: AlfrescoLoginComponent})]); - spyOn(router, 'navigate').and.callThrough(); let component = fixture.componentInstance; component.isErrorStyle = function () { console.log('mock'); @@ -207,16 +188,15 @@ describe('AlfrescoLogin', () => { fixture.detectChanges(); expect(component.error).toBe(false); - expect(router.navigate).toHaveBeenCalledWith(['Home']); + expect(component.success).toBe(true); }); })); it('should return error with a wrong username ', - injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => { + inject([TestComponentBuilder], (tcb: TestComponentBuilder) => { return tcb .createAsync(AlfrescoLoginComponent) .then((fixture) => { - spyOn(router, 'navigate').and.callThrough(); let component = fixture.componentInstance; component.isErrorStyle = function () { console.log('mock'); @@ -240,11 +220,10 @@ describe('AlfrescoLogin', () => { })); it('should return error with a wrong password ', - injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => { + inject([TestComponentBuilder], (tcb: TestComponentBuilder) => { return tcb .createAsync(AlfrescoLoginComponent) .then((fixture) => { - spyOn(router, 'navigate').and.callThrough(); let component = fixture.componentInstance; component.isErrorStyle = function () { console.log('mock'); @@ -268,11 +247,10 @@ describe('AlfrescoLogin', () => { })); it('should return error with a wrong username and password ', - injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => { + inject([TestComponentBuilder], (tcb: TestComponentBuilder) => { return tcb .createAsync(AlfrescoLoginComponent) .then((fixture) => { - spyOn(router, 'navigate').and.callThrough(); let component = fixture.componentInstance; component.isErrorStyle = function () { console.log('mock'); @@ -297,7 +275,7 @@ describe('AlfrescoLogin', () => { it('should emit onSuccess event after the login has succeeded', - injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => { + inject([TestComponentBuilder], (tcb: TestComponentBuilder) => { return tcb .createAsync(AlfrescoLoginComponent) .then((fixture) => { @@ -329,7 +307,7 @@ describe('AlfrescoLogin', () => { })); it('should emit onError event after the login has failed', - injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => { + inject([TestComponentBuilder], (tcb: TestComponentBuilder) => { return tcb .createAsync(AlfrescoLoginComponent) .then((fixture) => { @@ -362,7 +340,7 @@ describe('AlfrescoLogin', () => { })); it('should render the password in clear when the toggleShowPassword is call', - injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => { + inject([TestComponentBuilder], (tcb: TestComponentBuilder) => { return tcb .createAsync(AlfrescoLoginComponent) .then((fixture) => { @@ -383,7 +361,7 @@ describe('AlfrescoLogin', () => { })); it('should render the hide password when the password is in clear and the toggleShowPassword is call', - injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => { + inject([TestComponentBuilder], (tcb: TestComponentBuilder) => { return tcb .createAsync(AlfrescoLoginComponent) .then((fixture) => { @@ -403,7 +381,5 @@ describe('AlfrescoLogin', () => { }); })); - - }); -*/ + diff --git a/ng2-components/ng2-alfresco-login/src/components/alfresco-login.component.ts b/ng2-components/ng2-alfresco-login/src/components/alfresco-login.component.ts index 8dd91e1e99..f0a81c9e4c 100644 --- a/ng2-components/ng2-alfresco-login/src/components/alfresco-login.component.ts +++ b/ng2-components/ng2-alfresco-login/src/components/alfresco-login.component.ts @@ -16,7 +16,6 @@ */ import { Component, Output, EventEmitter } from '@angular/core'; -import { Router, ROUTER_DIRECTIVES } from '@angular/router-deprecated'; import { FORM_DIRECTIVES, ControlGroup, FormBuilder, Validators } from '@angular/common'; import { AlfrescoTranslationService, @@ -30,7 +29,7 @@ declare let __moduleName: string; @Component({ selector: 'alfresco-login', moduleId: __moduleName, - directives: [ROUTER_DIRECTIVES, FORM_DIRECTIVES], + directives: [FORM_DIRECTIVES], templateUrl: './alfresco-login.component.html', styleUrls: ['./alfresco-login.component.css'], pipes: [AlfrescoPipeTranslate] @@ -60,12 +59,10 @@ export class AlfrescoLoginComponent { * Constructor * @param _fb * @param auth - * @param router * @param translate */ constructor(private _fb: FormBuilder, public auth: AlfrescoAuthenticationService, - public router: Router, private translate: AlfrescoTranslationService) { this.formError = { @@ -108,16 +105,10 @@ export class AlfrescoLoginComponent { this.auth.login(value.username, value.password) .subscribe( (token: any) => { - try { - this.success = true; - this.onSuccess.emit({ - value: 'Login OK' - }); - this.router.navigate(['Home']); - } catch (error) { - console.error(error.message); - } - + this.success = true; + this.onSuccess.emit({ + value: 'Login OK' + }); }, (err: any) => { this.error = true;