mirror of
https://github.com/angular/angular
synced 2026-05-24 09:28:37 +00:00
101 lines
2.6 KiB
TypeScript
101 lines
2.6 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
|
|
*/
|
|
|
|
import {$, browser} from 'protractor';
|
|
|
|
import {openBrowser} from '../../../e2e_util/e2e_util';
|
|
import {runBenchmark} from '../../../e2e_util/perf_util';
|
|
|
|
describe('benchmark render', () => {
|
|
it('should work for createDestroy', () => {
|
|
openTreeBenchmark();
|
|
$('#createDom').click();
|
|
expect($('#root').getText()).toContain('0');
|
|
$('#destroyDom').click();
|
|
expect($('#root').getText() as any).toEqual('');
|
|
});
|
|
|
|
it('should work for update', () => {
|
|
openTreeBenchmark();
|
|
$('#createDom').click();
|
|
$('#createDom').click();
|
|
expect($('#root').getText()).toContain('A');
|
|
});
|
|
|
|
it('should work for detectChanges', () => {
|
|
openTreeBenchmark();
|
|
$('#detectChanges').click();
|
|
expect($('#numberOfChecks').getText()).toContain('10');
|
|
});
|
|
|
|
});
|
|
|
|
describe('benchmarks', () => {
|
|
|
|
it('should work for createOnly', done => {
|
|
runTreeBenchmark({
|
|
id: 'createOnly',
|
|
prepare: () => $('#destroyDom').click(),
|
|
work: () => $('#createDom').click()
|
|
}).then(done, done.fail);
|
|
});
|
|
|
|
it('should work for destroy', done => {
|
|
runTreeBenchmark({
|
|
id: 'createOnly',
|
|
prepare: () => $('#createDom').click(),
|
|
work: () => $('#destroyDom').click()
|
|
}).then(done, done.fail);
|
|
});
|
|
|
|
it('should work for createDestroy', done => {
|
|
runTreeBenchmark({
|
|
id: 'createDestroy',
|
|
work: () => {
|
|
$('#destroyDom').click();
|
|
$('#createDom').click();
|
|
}
|
|
}).then(done, done.fail);
|
|
});
|
|
|
|
it('should work for update', done => {
|
|
runTreeBenchmark({id: 'update', work: () => $('#createDom').click()}).then(done, done.fail);
|
|
});
|
|
|
|
it('should work for detectChanges', done => {
|
|
runTreeBenchmark({
|
|
id: 'detectChanges',
|
|
work: () => $('#detectChanges').click(),
|
|
setup: () => $('#destroyDom').click()
|
|
}).then(done, done.fail);
|
|
});
|
|
|
|
});
|
|
|
|
function runTreeBenchmark({id, prepare, setup, work}:
|
|
{id: string; prepare ? () : void; setup ? () : void; work(): void;}) {
|
|
browser.rootEl = '#root';
|
|
return runBenchmark({
|
|
id: id,
|
|
url: '',
|
|
ignoreBrowserSynchronization: true,
|
|
params: [{name: 'depth', value: 11}],
|
|
work: work,
|
|
prepare: prepare,
|
|
setup: setup
|
|
});
|
|
}
|
|
|
|
function openTreeBenchmark() {
|
|
browser.rootEl = '#root';
|
|
openBrowser({
|
|
url: '',
|
|
ignoreBrowserSynchronization: true,
|
|
params: [{name: 'depth', value: 4}],
|
|
});
|
|
}
|