64 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			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);
 | 
						|
  });
 | 
						|
 | 
						|
});
 |