angular-cn/modules/benchmarks/e2e_test/old/naive_infinite_scroll_spec.ts

64 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
*/
import {verifyNoBrowserErrors} from '@angular/testing/src/e2e_util';
import {runClickBenchmark} from '@angular/testing/src/perf_util';
describe('ng2 naive infinite scroll benchmark', function() {
const URL = 'benchmarks/src/naive_infinite_scroll/index.html?appSize=3';
afterEach(verifyNoBrowserErrors);
it('should not throw errors', function() {
browser.get(URL);
const expectedRowCount = 18;
const expectedCellsPerRow = 27;
const allScrollItems = 'scroll-app #testArea scroll-item';
const cells = `${ allScrollItems } .row *`;
const stageButtons = `${ allScrollItems } .row stage-buttons button`;
const count = function(selector) {
return browser.executeScript(
`return ` +
`document.querySelectorAll("${ selector }").length;`);
};
const clickFirstOf = function(selector) {
return browser.executeScript(`document.querySelector("${ selector }").click();`);
};
const firstTextOf = function(selector) {
return browser.executeScript(
`return ` +
`document.querySelector("${ selector }").innerText;`);
};
// Make sure rows are rendered
count(allScrollItems).then(function(c) { expect(c).toEqual(expectedRowCount); });
// Make sure cells are rendered
count(cells).then(function(c) { expect(c).toEqual(expectedRowCount * expectedCellsPerRow); });
// Click on first enabled button and verify stage changes
firstTextOf(`${ stageButtons }:enabled`).then(function(text) {
expect(text).toEqual('Pitched');
clickFirstOf(`${ stageButtons }:enabled`).then(function() {
firstTextOf(`${ stageButtons }:enabled`).then((text) => expect(text).toEqual('Won'));
});
});
$('#reset-btn').click();
$('#run-btn').click();
browser.wait(() => {
return $('#done').getText().then(function() { return true; }, function() { return false; });
}, 10000);
});
});