chromium/chrome/test/data/pdf/layout_test.ts

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

import type {PdfViewerElement} from 'chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/pdf_viewer_wrapper.js';

// Tests common to all PDFs.
const tests = [
  function testLayoutOptions() {
    const viewer = document.body.querySelector<PdfViewerElement>('#viewer')!;
    chrome.test.assertEq(
        {
          direction: 2,
          defaultPageOrientation: 0,
          twoUpViewEnabled: false,
        },
        viewer.viewport.getLayoutOptions());
    chrome.test.succeed();
  },
];

// Tests specific to each PDF's layout.
const perLayoutTests: {[name: string]: Array<() => void>} = {
  'test-layout3.pdf': [
    function testDimensions3() {
      const viewer = document.body.querySelector<PdfViewerElement>('#viewer')!;
      chrome.test.assertEq(
          {
            width: 103,
            height: 437,
          },
          viewer.viewport.getDocumentDimensions());
      chrome.test.succeed();
    },
  ],

  'test-layout4.pdf': [
    function testDimensions4() {
      const viewer = document.body.querySelector<PdfViewerElement>('#viewer')!;
      chrome.test.assertEq(
          {
            width: 143,
            height: 504,
          },
          viewer.viewport.getDocumentDimensions());
      chrome.test.succeed();
    },
  ],
};

const viewer = document.body.querySelector<PdfViewerElement>('#viewer')!;
if (viewer.pdfTitle in perLayoutTests) {
  chrome.test.runTests(tests.concat(perLayoutTests[viewer.pdfTitle]!));
} else {
  chrome.test.fail(viewer.pdfTitle);
}