feat(demo): expand the e2e testing

This commit is contained in:
Ken Sodemann
2017-11-16 13:34:42 -06:00
parent b4813ed276
commit eb54853614
3 changed files with 97 additions and 17 deletions

View File

@ -12,11 +12,65 @@ describe('Demo Inputs Page', () => {
expect(page.getTitleText()).toEqual('Ionic Core Inputs Demo'); expect(page.getTitleText()).toEqual('Ionic Core Inputs Demo');
}); });
describe('input one', () => { describe('text input', () => {
it('should display the starting text', () => { it('should display the starting text', () => {
page.navigateTo(); page.navigateTo();
const el = page.getIonicTextInput(); const el = page.getIonicTextInput();
expect(el.getAttribute('value')).toEqual('This is the Ionic Text Input'); expect(el.getAttribute('value')).toEqual('This is the Ionic Text Input');
}); });
it('should reflect back the entered data', () => {
page.navigateTo();
const el = page.getIonicTextInputEditable();
el.clear();
el.sendKeys('I am new text');
expect(page.getIonicTextInputOutputText()).toEqual('I am new text');
});
});
describe('textarea input', () => {
it('should display the starting text', () => {
page.navigateTo();
const el = page.getIonicTextareaInput();
expect(el.getAttribute('value')).toEqual('This is the Ionic Textarea Input');
});
it('should reflect back the entered data', () => {
page.navigateTo();
const el = page.getIonicTextareaInputEditable();
el.clear();
el.sendKeys('I am new text');
expect(page.getIonicTextareaInputOutputText()).toEqual('I am new text');
});
});
describe('checkbox input', () => {
it('should be set the initial value', () => {
page.navigateTo();
const el = page.getIonicCheckbox();
expect(el.getAttribute('checked')).toEqual('true');
});
it('should reflect toggling the value', () => {
page.navigateTo();
const el = page.getIonicCheckbox();
el.click();
expect(page.getIonicCheckboxOutputText()).toEqual('false');
});
});
describe('toggle input', () => {
it('should be set the initial value', () => {
page.navigateTo();
const el = page.getIonicToggle();
expect(el.getAttribute('checked')).toBeNull();
});
it('should reflect toggling the value', () => {
page.navigateTo();
const el = page.getIonicToggle();
el.click();
expect(page.getIonicToggleOutputText()).toEqual('true');
});
}); });
}); });

View File

@ -5,18 +5,6 @@ export class InputsPage {
return browser.get('/inputs'); return browser.get('/inputs');
} }
getTitleText() {
return element(by.css('.title')).getText();
}
getIonicTextInput() {
return element(by.id('ionTextInput'));
}
getIonicTextInputOutputText() {
return element(by.id('ionTextInputOutput')).getText();
}
getIonicCheckbox() { getIonicCheckbox() {
return element(by.id('ionCheckbox')); return element(by.id('ionCheckbox'));
} }
@ -24,4 +12,42 @@ export class InputsPage {
getIonicCheckboxOutputText() { getIonicCheckboxOutputText() {
return element(by.id('ionCheckboxOutput')).getText(); return element(by.id('ionCheckboxOutput')).getText();
} }
getIonicToggle() {
return element(by.id('ionToggle'));
}
getIonicToggleOutputText() {
return element(by.id('ionToggleOutput')).getText();
}
getTitleText() {
return element(by.css('.title')).getText();
}
getIonicTextareaInput() {
return element(by.id('ionTextareaInput'));
}
getIonicTextareaInputEditable() {
const parent = this.getIonicTextareaInput();
return parent.all(by.css('textarea')).first();
}
getIonicTextareaInputOutputText() {
return element(by.id('ionTextareaInputOutput')).getText();
}
getIonicTextInput() {
return element(by.id('ionTextInput'));
}
getIonicTextInputEditable() {
const parent = this.getIonicTextInput();
return parent.all(by.css('input')).first();
}
getIonicTextInputOutputText() {
return element(by.id('ionTextInputOutput')).getText();
}
} }

View File

@ -23,7 +23,7 @@
<ion-col> <ion-col>
<ion-item> <ion-item>
<ion-label>Ionic Text Input</ion-label> <ion-label>Ionic Text Input</ion-label>
<ion-input id="ionTextInput" name="ionTextInput" [(ngModel)]="ionTextInput"></ion-input> <ion-input id="ionTextInput" name="ionTextInput" [(ngModel)]="ionTextInput" (ionBlur)="onBlur($event)"></ion-input>
</ion-item> </ion-item>
</ion-col> </ion-col>
<ion-col> <ion-col>
@ -35,12 +35,12 @@
<ion-col> <ion-col>
<ion-item> <ion-item>
<ion-label>Ionic Text Area Input</ion-label> <ion-label>Ionic Text Area Input</ion-label>
<ion-textarea id="ionTextareaInput" name="ionTextareaInput" [(ngModel)]="ionTextareaInput"></ion-textarea> <ion-textarea id="ionTextareaInput" name="ionTextareaInput" [(ngModel)]="ionTextareaInput" (ionBlur)="onBlur($event)"></ion-textarea>
</ion-item> </ion-item>
</ion-col> </ion-col>
<ion-col> <ion-col>
Ionic Text Input: Ionic Text Input:
<span id="ionTextInputOutput">{{ionTextareaInput}}</span> <span id="ionTextareaInputOutput">{{ionTextareaInput}}</span>
</ion-col> </ion-col>
</ion-row> </ion-row>
@ -80,7 +80,7 @@
</ion-col> </ion-col>
<ion-col> <ion-col>
Ionic Toggle: Ionic Toggle:
<span id="ionCheckboxOutput">{{ionToggle}}</span> <span id="ionToggleOutput">{{ionToggle}}</span>
</ion-col> </ion-col>
</ion-row> </ion-row>
</ion-grid> </ion-grid>