diff --git a/e2e/components/input/input.e2e.ts b/e2e/components/input/input.e2e.ts new file mode 100644 index 00000000000..0bf53298568 --- /dev/null +++ b/e2e/components/input/input.e2e.ts @@ -0,0 +1,44 @@ +import {browser, by, element} from 'protractor'; + + +describe('input', () => { + describe('text input', () => { + beforeEach(() => browser.get('/input')); + + it('should update input value when user types', () => { + let input = element(by.id('text-input')); + input.sendKeys('abc123'); + expect(input.getAttribute('value')).toBe('abc123'); + }); + }); + + describe('number input', () => { + beforeEach(() => browser.get('/input')); + + it('should update input value when user types', () => { + let input = element(by.id('number-input')); + input.sendKeys('abc123'); + expect(input.getAttribute('value')).toBe('123'); + }); + + it('should increment when increment button clicked', () => { + let input = element(by.id('number-input')); + input.click(); + input.getSize().then((size) => { + browser.actions() + .mouseMove(input, {x: size.width - 5, y: 5}) + .click() + .perform(); + + expect(input.getAttribute('value')).toBe('1'); + + browser.actions() + .mouseMove(input, {x: size.width - 5, y: size.height - 5}) + .click() + .perform(); + + expect(input.getAttribute('value')).toBe('0'); + }); + }); + }); +}); diff --git a/src/e2e-app/e2e-app-module.ts b/src/e2e-app/e2e-app-module.ts index 32b6df2bc5c..89ec750d7e2 100644 --- a/src/e2e-app/e2e-app-module.ts +++ b/src/e2e-app/e2e-app-module.ts @@ -18,6 +18,7 @@ import {FullscreenE2E, TestDialog as TestDialogFullScreen} from './fullscreen/fu import {MaterialModule, OverlayContainer, FullscreenOverlayContainer} from '@angular/material'; import {E2E_APP_ROUTES} from './e2e-app/routes'; import {SlideToggleE2E} from './slide-toggle/slide-toggle-e2e'; +import {InputE2E} from './input/input-e2e'; @NgModule({ imports: [ @@ -27,22 +28,23 @@ import {SlideToggleE2E} from './slide-toggle/slide-toggle-e2e'; NoopAnimationsModule, ], declarations: [ - E2EApp, - IconE2E, - ButtonE2E, - MenuE2E, BasicTabs, - SimpleRadioButtons, - SimpleCheckboxes, - Home, + ButtonE2E, DialogE2E, - TestDialog, + E2EApp, + FullscreenE2E, GridListE2E, + Home, + IconE2E, + InputE2E, ListE2E, + MenuE2E, ProgressBarE2E, ProgressSpinnerE2E, + SimpleCheckboxes, + SimpleRadioButtons, SlideToggleE2E, - FullscreenE2E, + TestDialog, TestDialogFullScreen ], bootstrap: [E2EApp], diff --git a/src/e2e-app/e2e-app/e2e-app.html b/src/e2e-app/e2e-app/e2e-app.html index 753f9be0f8b..fba9328e093 100644 --- a/src/e2e-app/e2e-app/e2e-app.html +++ b/src/e2e-app/e2e-app/e2e-app.html @@ -4,8 +4,10 @@ Button Checkbox Dialog + Fullscreen Grid list Icon + Input List Menu Progress bar @@ -13,7 +15,6 @@ Radios Slide Toggle Tabs - Fullscreen
diff --git a/src/e2e-app/e2e-app/routes.ts b/src/e2e-app/e2e-app/routes.ts index 5d9d6e4687a..1037d6089df 100644 --- a/src/e2e-app/e2e-app/routes.ts +++ b/src/e2e-app/e2e-app/routes.ts @@ -13,20 +13,22 @@ import {ProgressBarE2E} from '../progress-bar/progress-bar-e2e'; import {ProgressSpinnerE2E} from '../progress-spinner/progress-spinner-e2e'; import {SlideToggleE2E} from '../slide-toggle/slide-toggle-e2e'; import {FullscreenE2E} from '../fullscreen/fullscreen-e2e'; +import {InputE2E} from '../input/input-e2e'; export const E2E_APP_ROUTES: Routes = [ {path: '', component: Home}, {path: 'button', component: ButtonE2E}, {path: 'checkbox', component: SimpleCheckboxes}, - {path: 'menu', component: MenuE2E}, - {path: 'icon', component: IconE2E}, - {path: 'radio', component: SimpleRadioButtons}, - {path: 'tabs', component: BasicTabs}, {path: 'dialog', component: DialogE2E}, + {path: 'fullscreen', component: FullscreenE2E}, {path: 'grid-list', component: GridListE2E}, + {path: 'icon', component: IconE2E}, + {path: 'input', component: InputE2E}, {path: 'list', component: ListE2E}, + {path: 'menu', component: MenuE2E}, {path: 'progress-bar', component: ProgressBarE2E}, {path: 'progress-spinner', component: ProgressSpinnerE2E}, + {path: 'radio', component: SimpleRadioButtons}, {path: 'slide-toggle', component: SlideToggleE2E}, - {path: 'fullscreen', component: FullscreenE2E} + {path: 'tabs', component: BasicTabs}, ]; diff --git a/src/e2e-app/input/input-e2e.html b/src/e2e-app/input/input-e2e.html new file mode 100644 index 00000000000..78d0b02e959 --- /dev/null +++ b/src/e2e-app/input/input-e2e.html @@ -0,0 +1,12 @@ +
+

+ + + +

+

+ + + +

+
diff --git a/src/e2e-app/input/input-e2e.ts b/src/e2e-app/input/input-e2e.ts new file mode 100644 index 00000000000..8fbecefc690 --- /dev/null +++ b/src/e2e-app/input/input-e2e.ts @@ -0,0 +1,9 @@ +import {Component} from '@angular/core'; + + +@Component({ + moduleId: module.id, + selector: 'input-e2e', + templateUrl: 'input-e2e.html', +}) +export class InputE2E {}