mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2026-03-13 10:22:08 +08:00
73 lines
2.2 KiB
TypeScript
73 lines
2.2 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() {
|
|
browser.manage().logs().get('browser').then(function(browserLog) {
|
|
let severWarnings = false;
|
|
|
|
for (let i; i <= browserLog.length - 1; i++) {
|
|
if (browserLog[i].level.name === 'SEVERE') {
|
|
console.log('\n' + browserLog[i].level.name);
|
|
console.log('(Possibly exception) \n' + browserLog[i].message);
|
|
|
|
severWarnings = true;
|
|
}
|
|
}
|
|
|
|
expect(severWarnings).toBe(false);
|
|
});
|
|
}
|
|
|
|
export async function testLifeCycle(selector: string, expected: LifeCycleCount) {
|
|
await waitTime(50);
|
|
expect(await getText(`${selector} #ngOnInit`)).toEqual('1');
|
|
expect(await getText(`${selector} #ionViewWillEnter`)).toEqual(expected.ionViewWillEnter.toString());
|
|
expect(await getText(`${selector} #ionViewDidEnter`)).toEqual(expected.ionViewDidEnter.toString());
|
|
expect(await getText(`${selector} #ionViewWillLeave`)).toEqual(expected.ionViewWillLeave.toString());
|
|
expect(await getText(`${selector} #ionViewDidLeave`)).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);
|
|
}
|