WebUI tests: Migrate remaining Polymer() syntax to use PolymerElement.
This is in preparation of disallowing the use of Polymer() using
presubmit ESLint checks.
It also addresses two related TODOs in chrome/test/data/pdf/.
Bug: 720034
Change-Id: I7a690aa33832992b41c097399ef95c5715dbb77b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4411045
Reviewed-by: Cole Horvitz <colehorvitz@chromium.org>
Commit-Queue: Cole Horvitz <colehorvitz@chromium.org>
Auto-Submit: Demetrios Papadopoulos <dpapad@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1128413}
diff --git a/chrome/test/data/pdf/BUILD.gn b/chrome/test/data/pdf/BUILD.gn
index c994bb1..da97472 100644
--- a/chrome/test/data/pdf/BUILD.gn
+++ b/chrome/test/data/pdf/BUILD.gn
@@ -12,6 +12,7 @@
ts_library("build_ts") {
root_dir = "."
out_dir = "$target_gen_dir/tsc"
+ tsconfig_base = "../../../../tools/typescript/tsconfig_base_polymer.json"
path_mappings = [
"chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/*|" +
rebase_path("$root_gen_dir/chrome/browser/resources/pdf/tsc/*",
diff --git a/chrome/test/data/pdf/bookmarks_test.ts b/chrome/test/data/pdf/bookmarks_test.ts
index 383c92f..df4a2987 100644
--- a/chrome/test/data/pdf/bookmarks_test.ts
+++ b/chrome/test/data/pdf/bookmarks_test.ts
@@ -2,17 +2,11 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-import {Bookmark, ChangePageAndXyDetail, ChangePageDetail, ChangeZoomDetail, NavigateDetail} from 'chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/pdf_viewer_wrapper.js';
+import {ChangePageAndXyDetail, ChangePageDetail, ChangeZoomDetail, NavigateDetail} from 'chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/pdf_viewer_wrapper.js';
import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
import {createBookmarksForTest} from './test_util.js';
-// TODO(crbug.com/1305967): Remove this interface when test_util.js is
-// migrated to TypeScript.
-interface TestBookmarksElement extends HTMLElement {
- bookmarks: Bookmark[];
-}
-
chrome.test.runTests([
/**
* Test that the correct bookmarks were loaded for
@@ -70,7 +64,7 @@
*/
function testFollowBookmark() {
const viewer = document.body.querySelector('pdf-viewer')!;
- const bookmarkContent = createBookmarksForTest() as TestBookmarksElement;
+ const bookmarkContent = createBookmarksForTest();
bookmarkContent.bookmarks = viewer.bookmarks;
document.body.appendChild(bookmarkContent);
diff --git a/chrome/test/data/pdf/material_elements_test.ts b/chrome/test/data/pdf/material_elements_test.ts
index d99ad46..1906382 100644
--- a/chrome/test/data/pdf/material_elements_test.ts
+++ b/chrome/test/data/pdf/material_elements_test.ts
@@ -2,17 +2,12 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-import {Bookmark} from 'chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/pdf_viewer_wrapper.js';
+import 'chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/pdf_viewer_wrapper.js';
+
import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
import {createBookmarksForTest} from './test_util.js';
-// TODO(crbug.com/1305967): Remove this interface when test_util.js is
-// migrated to TypeScript.
-interface TestBookmarksElement extends HTMLElement {
- bookmarks: Bookmark[];
-}
-
/**
* Standalone unit tests of the PDF Polymer elements.
*/
@@ -82,7 +77,7 @@
*/
function testBookmarkStructure() {
document.body.innerHTML = '';
- const bookmarkContent = createBookmarksForTest() as TestBookmarksElement;
+ const bookmarkContent = createBookmarksForTest();
bookmarkContent.bookmarks = [{
title: 'Test 1',
page: 1,
diff --git a/chrome/test/data/pdf/test_util.ts b/chrome/test/data/pdf/test_util.ts
index 4298ec44..e8873862 100644
--- a/chrome/test/data/pdf/test_util.ts
+++ b/chrome/test/data/pdf/test_util.ts
@@ -4,8 +4,8 @@
// Utilities that are used in multiple tests.
-import {DocumentDimensions, LayoutOptions, Viewport} from 'chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/pdf_viewer_wrapper.js';
-import {html, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+import {Bookmark, DocumentDimensions, LayoutOptions, Viewport} from 'chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/pdf_viewer_wrapper.js';
+import {html, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
export class MockElement {
dir: string = '';
@@ -192,23 +192,41 @@
MockUnseasonedPdfPluginElement;
}
+class TestBookmarksElement extends PolymerElement {
+ static get is() {
+ return 'test-bookmarks';
+ }
+
+ static get template() {
+ return html`
+ <template is="dom-repeat" items="[[bookmarks]]">
+ <viewer-bookmark bookmark="[[item]]" depth="0"></viewer-bookmark>
+ </template>
+ `;
+ }
+
+ static get properties() {
+ return {
+ bookmarks: Array,
+ };
+ }
+
+ bookmarks: Bookmark[];
+}
+
+declare global {
+ interface HTMLElementTagNameMap {
+ 'test-bookmarks': TestBookmarksElement;
+ }
+}
+
+customElements.define(TestBookmarksElement.is, TestBookmarksElement);
+
/**
* @return An element containing a dom-repeat of bookmarks, for
* testing the bookmarks outside of the toolbar.
*/
-export function createBookmarksForTest(): HTMLElement {
- Polymer({
- is: 'test-bookmarks',
-
- _template: html`
- <template is="dom-repeat" items="[[bookmarks]]">
- <viewer-bookmark bookmark="[[item]]" depth="0"></viewer-bookmark>
- </template>`,
-
- properties: {
- bookmarks: Array,
- },
- });
+export function createBookmarksForTest(): TestBookmarksElement {
return document.createElement('test-bookmarks');
}
diff --git a/chrome/test/data/webui/cr_components/chromeos/network/cr_policy_network_behavior_mojo_tests.js b/chrome/test/data/webui/cr_components/chromeos/network/cr_policy_network_behavior_mojo_tests.js
index b5e2f9b8..d18ce5e 100644
--- a/chrome/test/data/webui/cr_components/chromeos/network/cr_policy_network_behavior_mojo_tests.js
+++ b/chrome/test/data/webui/cr_components/chromeos/network/cr_policy_network_behavior_mojo_tests.js
@@ -7,16 +7,18 @@
import {CrPolicyIndicatorType} from 'chrome://resources/ash/common/cr_policy_indicator_behavior.js';
import {CrPolicyNetworkBehaviorMojo} from 'chrome://resources/ash/common/network/cr_policy_network_behavior_mojo.js';
import {PolicySource} from 'chrome://resources/mojo/chromeos/services/network_config/public/mojom/network_types.mojom-webui.js';
-import {Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+import {mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
suite('CrPolicyNetworkBehaviorMojo', function() {
- suiteSetup(async () => {
- Polymer({
- is: 'test-behavior',
+ const TestElementBase =
+ mixinBehaviors([CrPolicyNetworkBehaviorMojo], PolymerElement);
- behaviors: [CrPolicyNetworkBehaviorMojo],
- });
- });
+ class TestBehaviorElement extends TestElementBase {
+ static get is() {
+ return 'test-behavior';
+ }
+ }
+ customElements.define(TestBehaviorElement.is, TestBehaviorElement);
let testBehavior;
diff --git a/chrome/test/data/webui/cr_components/chromeos/network/network_config_element_behavior_test.js b/chrome/test/data/webui/cr_components/chromeos/network/network_config_element_behavior_test.js
index a768274..fe5224f 100644
--- a/chrome/test/data/webui/cr_components/chromeos/network/network_config_element_behavior_test.js
+++ b/chrome/test/data/webui/cr_components/chromeos/network/network_config_element_behavior_test.js
@@ -4,7 +4,7 @@
import {NetworkConfigElementBehavior} from 'chrome://resources/ash/common/network/network_config_element_behavior.js';
import {OncMojo} from 'chrome://resources/ash/common/network/onc_mojo.js';
-import {flush, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+import {flush, mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
suite('CrComponentsNetworkConfigElementBehaviorTest', function() {
/** @type {!NetworkConfigElementBehavior} */
@@ -27,24 +27,26 @@
},
};
- suiteSetup(function() {
- Polymer({
- is: 'test-network-config-element',
+ const TestElementBase = mixinBehaviors(
+ [NetworkConfigElementBehavior, TestNetworkPolicyEnforcer],
+ PolymerElement);
- behaviors: [
- NetworkConfigElementBehavior,
- TestNetworkPolicyEnforcer,
- ],
+ class TestNetworkConfigElement extends TestElementBase {
+ static get is() {
+ return 'test-network-config-element';
+ }
- properties: {
+ static get properties() {
+ return {
showPolicyIndicator: {
type: Boolean,
value: false,
computed: 'getDisabled_(disabled, property)',
},
- },
- });
- });
+ };
+ }
+ }
+ customElements.define(TestNetworkConfigElement.is, TestNetworkConfigElement);
setup(function() {
config = document.createElement('test-network-config-element');
diff --git a/chrome/test/data/webui/cr_elements/cr_action_menu_test.ts b/chrome/test/data/webui/cr_elements/cr_action_menu_test.ts
index 40b3d1b..2b5f54c 100644
--- a/chrome/test/data/webui/cr_elements/cr_action_menu_test.ts
+++ b/chrome/test/data/webui/cr_elements/cr_action_menu_test.ts
@@ -11,7 +11,7 @@
import {FocusOutlineManager} from 'chrome://resources/js/focus_outline_manager.js';
import {getDeepActiveElement} from 'chrome://resources/js/util_ts.js';
import {keyDownOn} from 'chrome://resources/polymer/v3_0/iron-test-helpers/mock-interactions.js';
-import {html, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+import {html, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
import {assertEquals, assertFalse, assertNotEquals, assertTrue} from 'chrome://webui-test/chai_assert.js';
import {eventToPromise} from 'chrome://webui-test/test_util.js';
import {flushTasks} from 'chrome://webui-test/polymer_test_util.js';
@@ -473,11 +473,13 @@
const containerTop = 10000;
const containerWidth = 500;
- suiteSetup(function() {
- Polymer({
- is: 'test-element',
+ class TestElement extends PolymerElement {
+ static get is() {
+ return 'test-element';
+ }
- _template: html`
+ static get template() {
+ return html`
<style>
#container {
overflow: auto;
@@ -505,9 +507,11 @@
</cr-action-menu>
</div>
</div>
- `,
- });
- });
+ `;
+ }
+ }
+
+ customElements.define(TestElement.is, TestElement);
setup(function() {
document.body.scrollTop = 0;