mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2026-03-13 10:22:08 +08:00
74 lines
2.1 KiB
TypeScript
74 lines
2.1 KiB
TypeScript
import { browser } from 'protractor';
|
|
|
|
export function goBack() {
|
|
return browser.executeScript(`return window.history.back()`);
|
|
}
|
|
|
|
export function getProperty(selector: string, property: string) {
|
|
return browser.executeScript(`
|
|
return document.querySelector('${selector}')['${property}'];
|
|
`);
|
|
}
|
|
|
|
export function getText(selector: string) {
|
|
return browser.executeScript(`
|
|
return document.querySelector('${selector}').textContent;
|
|
`);
|
|
}
|
|
|
|
export function setProperty(selector: string, property: string, value: any) {
|
|
const text = JSON.stringify(value);
|
|
return browser.executeScript(`
|
|
document.querySelector('${selector}')['${property}'] = ${text};
|
|
`);
|
|
}
|
|
|
|
export function waitTime(time: number) {
|
|
return new Promise(resolve => {
|
|
setTimeout(resolve, time);
|
|
});
|
|
}
|
|
|
|
export interface LifeCycleCount {
|
|
ionViewWillEnter: number;
|
|
ionViewDidEnter: number;
|
|
ionViewWillLeave: number;
|
|
ionViewDidLeave: number;
|
|
}
|
|
|
|
export function handleErrorMessages() {
|
|
return browser.manage().logs().get('browser').then(function (browserLog) {
|
|
for (let i = 0; i <= browserLog.length - 1; i++) {
|
|
if (browserLog[i].level.name_ === 'SEVERE') {
|
|
fail(browserLog[i].message);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
export async function testLifeCycle(selector: string, expected: LifeCycleCount) {
|
|
await waitTime(50);
|
|
const results = await Promise.all([
|
|
getText(`${selector} #ngOnInit`),
|
|
getText(`${selector} #ionViewWillEnter`),
|
|
getText(`${selector} #ionViewDidEnter`),
|
|
getText(`${selector} #ionViewWillLeave`),
|
|
getText(`${selector} #ionViewDidLeave`),
|
|
]);
|
|
|
|
expect(results[0]).toEqual('1');
|
|
expect(results[1]).toEqual(expected.ionViewWillEnter.toString());
|
|
expect(results[2]).toEqual(expected.ionViewDidEnter.toString());
|
|
expect(results[3]).toEqual(expected.ionViewWillLeave.toString());
|
|
expect(results[4]).toEqual(expected.ionViewDidLeave.toString());
|
|
}
|
|
|
|
export async function testStack(selector: string, expected: string[]) {
|
|
const children = await browser.executeScript(`
|
|
return Array.from(
|
|
document.querySelector('${selector}').children
|
|
).map(el => el.tagName.toLowerCase());
|
|
`);
|
|
expect(children).toEqual(expected);
|
|
}
|