2f87eb52fe
The new view engine allows our codegen to produce less code, as it can interpret view definitions during runtime. The view engine is not feature complete yet, but already allows to implement a tree benchmark based on it. Part of #14013
70 lines
2.1 KiB
TypeScript
70 lines
2.1 KiB
TypeScript
/**
|
|
* @license
|
|
* Copyright Google Inc. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by an MIT-style license that can be
|
|
* found in the LICENSE file at https://angular.io/license
|
|
*/
|
|
|
|
/* tslint:disable:no-console */
|
|
import {browser} from 'protractor';
|
|
|
|
const yargs = require('yargs');
|
|
import * as webdriver from 'selenium-webdriver';
|
|
|
|
let cmdArgs: {'bundles': boolean};
|
|
|
|
declare var expect: any;
|
|
|
|
export function readCommandLine(extraOptions?: {[key: string]: any}) {
|
|
const options: {[key: string]: any} = {
|
|
'bundles': {describe: 'Whether to use the angular bundles or not.', default: false}
|
|
};
|
|
for (const key in extraOptions) {
|
|
options[key] = extraOptions[key];
|
|
}
|
|
|
|
cmdArgs = yargs.usage('Angular e2e test options.').options(options).help('ng-help').wrap(40).argv;
|
|
return cmdArgs;
|
|
}
|
|
|
|
export function openBrowser(config: {
|
|
url: string,
|
|
params?: {name: string, value: any}[],
|
|
ignoreBrowserSynchronization?: boolean
|
|
}) {
|
|
if (config.ignoreBrowserSynchronization) {
|
|
browser.ignoreSynchronization = true;
|
|
}
|
|
let params = config.params || [];
|
|
if (!params.some((param) => param.name === 'bundles')) {
|
|
params = params.concat([{name: 'bundles', value: cmdArgs.bundles}]);
|
|
}
|
|
|
|
const urlParams: string[] = [];
|
|
params.forEach((param) => { urlParams.push(param.name + '=' + param.value); });
|
|
const url = encodeURI(config.url + '?' + urlParams.join('&'));
|
|
browser.get(url);
|
|
if (config.ignoreBrowserSynchronization) {
|
|
browser.sleep(2000);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @experimental This API will be moved to Protractor.
|
|
*/
|
|
export function verifyNoBrowserErrors() {
|
|
// TODO(tbosch): Bug in ChromeDriver: Need to execute at least one command
|
|
// so that the browser logs can be read out!
|
|
browser.executeScript('1+1');
|
|
browser.manage().logs().get('browser').then(function(browserLog: any) {
|
|
const filteredLog = browserLog.filter(function(logEntry: any) {
|
|
if (logEntry.level.value >= webdriver.logging.Level.INFO.value) {
|
|
console.log('>> ' + logEntry.message);
|
|
}
|
|
return logEntry.level.value > webdriver.logging.Level.WARNING.value;
|
|
});
|
|
expect(filteredLog).toEqual([]);
|
|
});
|
|
}
|