chromium/third_party/blink/web_tests/http/tests/devtools/network/waterfall-header-height-updates.js

// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import {TestRunner} from 'test_runner';
import {NetworkTestRunner} from 'network_test_runner';

import * as Network from 'devtools/panels/network/network.js';
import * as SDK from 'devtools/core/sdk/sdk.js';

(async function() {
  TestRunner.addResult(`Tests to ensure network waterfall column updates header height when headers are not visible.\n`);
  await TestRunner.showPanel('network');
  await NetworkTestRunner.clearNetworkCache();

  NetworkTestRunner.recordNetwork();
  TestRunner.addResult('Setting initial large row setting to false');
  Network.NetworkPanel.NetworkPanel.instance().networkLogLargeRowsSetting.set(false);

  TestRunner.addResult('Fetching resource');
  await TestRunner.evaluateInPagePromise(`fetch('resources/empty.html?xhr')`);

  var request = await TestRunner.waitForEvent(
      SDK.NetworkManager.Events.RequestFinished, TestRunner.networkManager,
      request => request.name() === 'empty.html?xhr');
  var xhrNode = await NetworkTestRunner.waitForNetworkLogViewNodeForRequest(request);
  TestRunner.addResult('Node rendered showing fetch resource');
  Network.NetworkPanel.NetworkPanel.instance().onRequestSelected({data: request});
  Network.NetworkPanel.NetworkPanel.instance().showRequestPanel();
  // Wait for NetworkLogViewColumn.updateRowsSize to update the header height
  await new Promise(window.requestAnimationFrame);
  TestRunner.addResult('Height of waterfall header: ' + NetworkTestRunner.networkWaterfallColumn().headerHeight);

  TestRunner.addResult('Setting large row setting to true');
  Network.NetworkPanel.NetworkPanel.instance().networkLogLargeRowsSetting.set(true);
  TestRunner.addResult('Unselecting request from grid');
  Network.NetworkPanel.NetworkPanel.instance().hideRequestPanel();
  // Wait for NetworkLogViewColumn.updateRowsSize to update the header height
  await new Promise(window.requestAnimationFrame);
  TestRunner.addResult('Height of waterfall header: ' + NetworkTestRunner.networkWaterfallColumn().headerHeight);

  TestRunner.completeTest();
})();