chromium/third_party/blink/web_tests/http/tests/devtools/elements/elements-img-tooltip.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 {ElementsTestRunner} from 'elements_test_runner';

import * as Components from 'devtools/ui/legacy/components/utils/utils.js';

(async function() {
  TestRunner.addResult(`Tests the tooltip for the image on hover.\n`);
  await TestRunner.showPanel('elements');
  const imgURL = `data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANcAAACuCAIAAAAqMg/rAAAAAXNSR0IArs4c6QAAAU9JREFUeNrt0jERAAAIxDDAv+dHAxNLIqHXTlLwaiTAheBCXAguxIXgQlwILsSF4EJcCC7EheBCXAguxIXgQlwILsSF4EJcCC7EheBCXAguxIXgQlwILsSF4EJcCC7EheBCXAguxIXgQlwILsSF4EJcCC7EheBCXAguxIXgQlwILsSF4EJcCC7EheBCXAguxIXgQlwILsSF4EJcCC7EheBCXAguxIXgQlwILsSF4EJcCC7EheBCXAguxIXgQlwILsSF4EJcCC7EheBCXAguxIXgQlwILsSF4EJcCC7EheBCXAguxIXgQlwILsSF4EJcCC7EheBCXAguxIXgQlwILsSFEuBCcCEuBBfiQnAhLgQX4kJwIS4EF+JCcCEuBBfiQnAhLgQX4kJwIS4EF+JCcCEuBBfiQnAhLgQX4kJwIS4EF+JCcCEuBBfiQnAhLoSDBZXqBFnkRyeqAAAAAElFTkSuQmCC`;
  await TestRunner.loadHTML(`
      <img id="image" src="${imgURL}">
      <img id="image-bordered" style="border: 5px solid; width: 20px; height: 20px" src="${imgURL}">
      <img id="image-box-size" style="box-sizing: border-box; border: 5px solid; width: 20px; height: 20px" src="${imgURL}">
    `);

  var treeElement;
  const node = await ElementsTestRunner.nodeWithIdPromise('image');
  const nodeWithBorder = await ElementsTestRunner.nodeWithIdPromise('image-bordered');
  const nodeWithBoxSizing = await ElementsTestRunner.nodeWithIdPromise('image-box-size');
  const treeOutline = ElementsTestRunner.firstElementsTreeOutline();
  dumpDimensions(await Components.ImagePreview.ImagePreview.loadDimensionsForNode(node));
  dumpDimensions(await Components.ImagePreview.ImagePreview.loadDimensionsForNode(nodeWithBorder));
  dumpDimensions(await Components.ImagePreview.ImagePreview.loadDimensionsForNode(nodeWithBoxSizing));

  TestRunner.completeTest();

  /**
   * @param {!Object}
   */
  function dumpDimensions(dimensions) {
    const {currentSrc, ...sizes} = dimensions;
    TestRunner.addResult(JSON.stringify(sizes));
  }
})();