diff --git a/angular/test/test-app/e2e/src/providers.e2e-spec.ts b/angular/test/test-app/e2e/src/providers.e2e-spec.ts new file mode 100644 index 0000000000..703c00b342 --- /dev/null +++ b/angular/test/test-app/e2e/src/providers.e2e-spec.ts @@ -0,0 +1,26 @@ +import { browser, element, by } from 'protractor'; +import { handleErrorMessages, waitTime } from './utils'; + +describe('providers', () => { + + afterEach(() => { + handleErrorMessages(); + }); + + it('should load all providers', async () => { + await browser.get('/providers'); + + expect(await element(by.css('#is-loaded')).getText()).toEqual('true'); + expect(await element(by.css('#is-ready')).getText()).toEqual('true'); + expect(await element(by.css('#is-testing')).getText()).toEqual('false'); + expect(await element(by.css('#is-desktop')).getText()).toEqual('true'); + expect(await element(by.css('#is-mobile')).getText()).toEqual('false'); + expect(await element(by.css('#keyboard-height')).getText()).toEqual('12345'); + }); + + it('should detect testing mode', async () => { + await browser.get('/providers?ionic:_testing=true'); + + expect(await element(by.css('#is-testing')).getText()).toEqual('true'); + }); +}); diff --git a/angular/test/test-app/e2e/src/view-child.e2e-spec.ts b/angular/test/test-app/e2e/src/view-child.e2e-spec.ts index 90c9bff24d..214e8f7912 100644 --- a/angular/test/test-app/e2e/src/view-child.e2e-spec.ts +++ b/angular/test/test-app/e2e/src/view-child.e2e-spec.ts @@ -1,5 +1,5 @@ import { browser, element, by } from 'protractor'; -import { getProperty, setProperty, handleErrorMessages } from './utils'; +import { handleErrorMessages } from './utils'; describe('view-child', () => { diff --git a/angular/test/test-app/src/app/app-routing.module.ts b/angular/test/test-app/src/app/app-routing.module.ts index 815829fb4e..e55c2ff9bd 100644 --- a/angular/test/test-app/src/app/app-routing.module.ts +++ b/angular/test/test-app/src/app/app-routing.module.ts @@ -15,12 +15,14 @@ import { NestedOutletComponent } from './nested-outlet/nested-outlet.component'; import { NestedOutletPageComponent } from './nested-outlet-page/nested-outlet-page.component'; import { NestedOutletPage2Component } from './nested-outlet-page2/nested-outlet-page2.component'; import { ViewChildComponent } from './view-child/view-child.component'; +import { ProvidersComponent } from './providers/providers.component'; const routes: Routes = [ { path: '', component: HomePageComponent }, { path: 'inputs', component: InputsComponent }, { path: 'modals', component: ModalComponent }, { path: 'view-child', component: ViewChildComponent }, + { path: 'providers', component: ProvidersComponent }, { path: 'router-link', component: RouterLinkComponent }, { path: 'router-link-page', component: RouterLinkPageComponent }, { path: 'virtual-scroll', component: VirtualScrollComponent }, diff --git a/angular/test/test-app/src/app/app.module.ts b/angular/test/test-app/src/app/app.module.ts index 113ba8a946..94c7723f92 100644 --- a/angular/test/test-app/src/app/app.module.ts +++ b/angular/test/test-app/src/app/app.module.ts @@ -23,6 +23,7 @@ import { NestedOutletPageComponent } from './nested-outlet-page/nested-outlet-pa import { NestedOutletPage2Component } from './nested-outlet-page2/nested-outlet-page2.component'; import { NavComponent } from './nav/nav.component'; import { ViewChildComponent } from './view-child/view-child.component'; +import { ProvidersComponent } from './providers/providers.component'; @NgModule({ declarations: [ @@ -44,7 +45,8 @@ import { ViewChildComponent } from './view-child/view-child.component'; NestedOutletPageComponent, NestedOutletPage2Component, NavComponent, - ViewChildComponent + ViewChildComponent, + ProvidersComponent ], imports: [ BrowserModule, diff --git a/angular/test/test-app/src/app/home-page/home-page.component.html b/angular/test/test-app/src/app/home-page/home-page.component.html index d544375263..0f624416dd 100644 --- a/angular/test/test-app/src/app/home-page/home-page.component.html +++ b/angular/test/test-app/src/app/home-page/home-page.component.html @@ -42,5 +42,10 @@ ViewChild() + + + Providers + + diff --git a/angular/test/test-app/src/app/providers/providers.component.html b/angular/test/test-app/src/app/providers/providers.component.html new file mode 100644 index 0000000000..a6eda6c259 --- /dev/null +++ b/angular/test/test-app/src/app/providers/providers.component.html @@ -0,0 +1,27 @@ + + + + Providers Test + + + + +

+ isLoaded: {{isLoaded}} +

+

+ isReady: {{isReady}} +

+

+ isTesting: {{isTesting}} +

+

+ isDesktop: {{isDesktop}} +

+

+ isMobile: {{isMobile}} +

+

+ keyboardHeight: {{keyboardHeight}} +

+
diff --git a/angular/test/test-app/src/app/providers/providers.component.ts b/angular/test/test-app/src/app/providers/providers.component.ts new file mode 100644 index 0000000000..a56a5dcb2b --- /dev/null +++ b/angular/test/test-app/src/app/providers/providers.component.ts @@ -0,0 +1,64 @@ +import { Component } from '@angular/core'; +import { + Platform, Config, ModalController, AlertController, ActionSheetController, + PopoverController, ToastController, Events, PickerController, MenuController, + LoadingController, NavController, DomController +} from '@ionic/angular'; + +@Component({ + selector: 'app-providers', + templateUrl: './providers.component.html', +}) +export class ProvidersComponent { + + isLoaded = false; + isReady = false; + isEvent = false; + isTesting: boolean = undefined; + isDesktop: boolean = undefined; + isMobile: boolean = undefined; + keyboardHeight = 0; + + constructor( + actionSheetCtrl: ActionSheetController, + alertCtrl: AlertController, + events: Events, + loadingCtrl: LoadingController, + menuCtrl: MenuController, + pickerCtrl: PickerController, + modalCtrl: ModalController, + platform: Platform, + popoverCtrl: PopoverController, + toastCtrl: ToastController, + navCtrl: NavController, + domCtrl: DomController, + config: Config + ) { + // test all providers load + if ( + actionSheetCtrl && alertCtrl && events && loadingCtrl && menuCtrl && pickerCtrl && + modalCtrl && platform && popoverCtrl && toastCtrl && navCtrl && domCtrl && config + ) { + this.isLoaded = true; + } + + // test platform ready() + platform.ready().then(() => { + this.isReady = true; + }); + + this.isDesktop = platform.is('desktop'); + this.isMobile = platform.is('mobile'); + + // test events + events.subscribe('topic', () => { + this.isEvent = true; + }); + events.publish('topic'); + + // test config + this.isTesting = config.getBoolean('_testing'); + config.set('keyboardHeight', 12345); + this.keyboardHeight = config.getNumber('keyboardHeight'); + } +}