<!DOCTYPE html>
<!--
@license
Copyright (C) 2015 The Android Open Source Project

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->

<meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1.0, user-scalable=yes">
<title>Elements Test Runner</title>
<meta charset="utf-8">
<script src="../bower_components/webcomponentsjs/webcomponents-lite.min.js"></script>
<script src="../bower_components/web-component-tester/browser.js"></script>
<script>
  const testFiles = [];
  const elementsPath = '../elements/';
  const behaviorsPath = '../behaviors/';

  // Elements tests.
  /* eslint-disable max-len */
  const elements = [
    // This seemed to be flakey when it was farther down the list. Keep at the
    // beginning.
    'gr-app_test.html',
    'admin/gr-access-section/gr-access-section_test.html',
    'admin/gr-admin-group-list/gr-admin-group-list_test.html',
    'admin/gr-admin-view/gr-admin-view_test.html',
    'admin/gr-confirm-delete-item-dialog/gr-confirm-delete-item-dialog_test.html',
    'admin/gr-create-change-dialog/gr-create-change-dialog_test.html',
    'admin/gr-create-group-dialog/gr-create-group-dialog_test.html',
    'admin/gr-create-pointer-dialog/gr-create-pointer-dialog_test.html',
    'admin/gr-create-repo-dialog/gr-create-repo-dialog_test.html',
    'admin/gr-group-audit-log/gr-group-audit-log_test.html',
    'admin/gr-group-members/gr-group-members_test.html',
    'admin/gr-group/gr-group_test.html',
    'admin/gr-permission/gr-permission_test.html',
    'admin/gr-plugin-config-array-editor/gr-plugin-config-array-editor_test.html',
    'admin/gr-plugin-list/gr-plugin-list_test.html',
    'admin/gr-repo-access/gr-repo-access_test.html',
    'admin/gr-repo-command/gr-repo-command_test.html',
    'admin/gr-repo-commands/gr-repo-commands_test.html',
    'admin/gr-repo-dashboards/gr-repo-dashboards_test.html',
    'admin/gr-repo-detail-list/gr-repo-detail-list_test.html',
    'admin/gr-repo-list/gr-repo-list_test.html',
    'admin/gr-repo-plugin-config/gr-repo-plugin-config_test.html',
    'admin/gr-repo/gr-repo_test.html',
    'admin/gr-rule-editor/gr-rule-editor_test.html',
    'change-list/gr-change-list-item/gr-change-list-item_test.html',
    'change-list/gr-change-list-view/gr-change-list-view_test.html',
    'change-list/gr-change-list/gr-change-list_test.html',
    'change-list/gr-create-commands-dialog/gr-create-commands-dialog_test.html',
    'change-list/gr-create-change-help/gr-create-change-help_test.html',
    'change-list/gr-dashboard-view/gr-dashboard-view_test.html',
    'change-list/gr-user-header/gr-user-header_test.html',
    'change/gr-account-entry/gr-account-entry_test.html',
    'change/gr-account-list/gr-account-list_test.html',
    'change/gr-change-actions/gr-change-actions_test.html',
    'change/gr-change-metadata/gr-change-metadata-it_test.html',
    'change/gr-change-metadata/gr-change-metadata_test.html',
    'change/gr-change-requirements/gr-change-requirements_test.html',
    'change/gr-change-view/gr-change-view_test.html',
    'change/gr-comment-list/gr-comment-list_test.html',
    'change/gr-commit-info/gr-commit-info_test.html',
    'change/gr-confirm-abandon-dialog/gr-confirm-abandon-dialog_test.html',
    'change/gr-confirm-cherrypick-dialog/gr-confirm-cherrypick-dialog_test.html',
    'change/gr-confirm-cherrypick-conflict-dialog/gr-confirm-cherrypick-conflict-dialog_test.html',
    'change/gr-confirm-move-dialog/gr-confirm-move-dialog_test.html',
    'change/gr-confirm-rebase-dialog/gr-confirm-rebase-dialog_test.html',
    'change/gr-confirm-revert-dialog/gr-confirm-revert-dialog_test.html',
    'change/gr-confirm-submit-dialog/gr-confirm-submit-dialog_test.html',
    'change/gr-download-dialog/gr-download-dialog_test.html',
    'change/gr-file-list-header/gr-file-list-header_test.html',
    'change/gr-file-list/gr-file-list_test.html',
    'change/gr-included-in-dialog/gr-included-in-dialog_test.html',
    'change/gr-label-score-row/gr-label-score-row_test.html',
    'change/gr-label-scores/gr-label-scores_test.html',
    'change/gr-message/gr-message_test.html',
    'change/gr-messages-list/gr-messages-list_test.html',
    'change/gr-related-changes-list/gr-related-changes-list_test.html',
    'change/gr-reply-dialog/gr-reply-dialog-it_test.html',
    'change/gr-reply-dialog/gr-reply-dialog_test.html',
    'change/gr-reviewer-list/gr-reviewer-list_test.html',
    'change/gr-thread-list/gr-thread-list_test.html',
    'change/gr-upload-help-dialog/gr-upload-help-dialog_test.html',
    'core/gr-account-dropdown/gr-account-dropdown_test.html',
    'core/gr-error-dialog/gr-error-dialog_test.html',
    'core/gr-error-manager/gr-error-manager_test.html',
    'core/gr-key-binding-display/gr-key-binding-display_test.html',
    'core/gr-keyboard-shortcuts-dialog/gr-keyboard-shortcuts-dialog_test.html',
    'core/gr-main-header/gr-main-header_test.html',
    'core/gr-navigation/gr-navigation_test.html',
    'core/gr-reporting/gr-jank-detector_test.html',
    'core/gr-reporting/gr-reporting_test.html',
    'core/gr-router/gr-router_test.html',
    'core/gr-search-bar/gr-search-bar_test.html',
    'core/gr-smart-search/gr-smart-search_test.html',
    'diff/gr-comment-api/gr-comment-api_test.html',
    'diff/gr-diff-builder/gr-diff-builder_test.html',
    'diff/gr-diff-cursor/gr-diff-cursor_test.html',
    'diff/gr-diff-highlight/gr-annotation_test.html',
    'diff/gr-diff-highlight/gr-diff-highlight_test.html',
    'diff/gr-diff-mode-selector/gr-diff-mode-selector_test.html',
    'diff/gr-diff-processor/gr-diff-processor_test.html',
    'diff/gr-diff-selection/gr-diff-selection_test.html',
    'diff/gr-diff-view/gr-diff-view_test.html',
    'diff/gr-diff/gr-diff-group_test.html',
    'diff/gr-diff/gr-diff_test.html',
    'diff/gr-patch-range-select/gr-patch-range-select_test.html',
    'diff/gr-ranged-comment-layer/gr-ranged-comment-layer_test.html',
    'diff/gr-selection-action-box/gr-selection-action-box_test.html',
    'diff/gr-syntax-layer/gr-syntax-layer_test.html',
    'documentation/gr-documentation-search/gr-documentation-search_test.html',
    'edit/gr-default-editor/gr-default-editor_test.html',
    'edit/gr-edit-controls/gr-edit-controls_test.html',
    'edit/gr-edit-file-controls/gr-edit-file-controls_test.html',
    'edit/gr-editor-view/gr-editor-view_test.html',
    'plugins/gr-admin-api/gr-admin-api_test.html',
    'plugins/gr-attribute-helper/gr-attribute-helper_test.html',
    'plugins/gr-endpoint-decorator/gr-endpoint-decorator_test.html',
    'plugins/gr-event-helper/gr-event-helper_test.html',
    'plugins/gr-external-style/gr-external-style_test.html',
    'plugins/gr-plugin-host/gr-plugin-host_test.html',
    'plugins/gr-popup-interface/gr-plugin-popup_test.html',
    'plugins/gr-popup-interface/gr-popup-interface_test.html',
    'plugins/gr-repo-api/gr-repo-api_test.html',
    'plugins/gr-settings-api/gr-settings-api_test.html',
    'settings/gr-account-info/gr-account-info_test.html',
    'settings/gr-change-table-editor/gr-change-table-editor_test.html',
    'settings/gr-cla-view/gr-cla-view_test.html',
    'settings/gr-edit-preferences/gr-edit-preferences_test.html',
    'settings/gr-email-editor/gr-email-editor_test.html',
    'settings/gr-gpg-editor/gr-gpg-editor_test.html',
    'settings/gr-group-list/gr-group-list_test.html',
    'settings/gr-http-password/gr-http-password_test.html',
    'settings/gr-identities/gr-identities_test.html',
    'settings/gr-menu-editor/gr-menu-editor_test.html',
    'settings/gr-registration-dialog/gr-registration-dialog_test.html',
    'settings/gr-settings-view/gr-settings-view_test.html',
    'settings/gr-ssh-editor/gr-ssh-editor_test.html',
    'settings/gr-watched-projects-editor/gr-watched-projects-editor_test.html',
    'shared/gr-account-label/gr-account-label_test.html',
    'shared/gr-account-link/gr-account-link_test.html',
    'shared/gr-alert/gr-alert_test.html',
    'shared/gr-autocomplete-dropdown/gr-autocomplete-dropdown_test.html',
    'shared/gr-autocomplete/gr-autocomplete_test.html',
    'shared/gr-avatar/gr-avatar_test.html',
    'shared/gr-button/gr-button_test.html',
    'shared/gr-change-star/gr-change-star_test.html',
    'shared/gr-change-status/gr-change-status_test.html',
    'shared/gr-comment-thread/gr-comment-thread_test.html',
    'shared/gr-comment/gr-comment_test.html',
    'shared/gr-copy-clipboard/gr-copy-clipboard_test.html',
    'shared/gr-cursor-manager/gr-cursor-manager_test.html',
    'shared/gr-date-formatter/gr-date-formatter_test.html',
    'shared/gr-dialog/gr-dialog_test.html',
    'shared/gr-diff-preferences/gr-diff-preferences_test.html',
    'shared/gr-download-commands/gr-download-commands_test.html',
    'shared/gr-dropdown-list/gr-dropdown-list_test.html',
    'shared/gr-editable-content/gr-editable-content_test.html',
    'shared/gr-editable-label/gr-editable-label_test.html',
    'shared/gr-formatted-text/gr-formatted-text_test.html',
    'shared/gr-js-api-interface/gr-change-actions-js-api_test.html',
    'shared/gr-js-api-interface/gr-change-reply-js-api_test.html',
    'shared/gr-js-api-interface/gr-js-api-interface_test.html',
    'shared/gr-js-api-interface/gr-plugin-endpoints_test.html',
    'shared/gr-js-api-interface/gr-plugin-rest-api_test.html',
    'shared/gr-fixed-panel/gr-fixed-panel_test.html',
    'shared/gr-labeled-autocomplete/gr-labeled-autocomplete_test.html',
    'shared/gr-lib-loader/gr-lib-loader_test.html',
    'shared/gr-limited-text/gr-limited-text_test.html',
    'shared/gr-linked-chip/gr-linked-chip_test.html',
    'shared/gr-linked-text/gr-linked-text_test.html',
    'shared/gr-list-view/gr-list-view_test.html',
    'shared/gr-page-nav/gr-page-nav_test.html',
    'shared/gr-repo-branch-picker/gr-repo-branch-picker_test.html',
    'shared/gr-rest-api-interface/gr-auth_test.html',
    'shared/gr-rest-api-interface/gr-rest-api-interface_test.html',
    'shared/gr-rest-api-interface/gr-reviewer-updates-parser_test.html',
    'shared/gr-select/gr-select_test.html',
    'shared/gr-storage/gr-storage_test.html',
    'shared/gr-textarea/gr-textarea_test.html',
    'shared/gr-tooltip-content/gr-tooltip-content_test.html',
    'shared/gr-tooltip/gr-tooltip_test.html',
    'shared/revision-info/revision-info_test.html',
  ];
  /* eslint-enable max-len */
  for (let file of elements) {
    file = elementsPath + file;
    testFiles.push(file);
    testFiles.push(file + '?dom=shadow');
  }

  // Behaviors tests.
  /* eslint-disable max-len */
  const behaviors = [
    'async-foreach-behavior/async-foreach-behavior_test.html',
    'base-url-behavior/base-url-behavior_test.html',
    'docs-url-behavior/docs-url-behavior_test.html',
    'dom-util-behavior/dom-util-behavior_test.html',
    'keyboard-shortcut-behavior/keyboard-shortcut-behavior_test.html',
    'rest-client-behavior/rest-client-behavior_test.html',
    'gr-access-behavior/gr-access-behavior_test.html',
    'gr-admin-nav-behavior/gr-admin-nav-behavior_test.html',
    'gr-anonymous-name-behavior/gr-anonymous-name-behavior_test.html',
    'gr-change-table-behavior/gr-change-table-behavior_test.html',
    'gr-patch-set-behavior/gr-patch-set-behavior_test.html',
    'gr-path-list-behavior/gr-path-list-behavior_test.html',
    'gr-tooltip-behavior/gr-tooltip-behavior_test.html',
    'gr-url-encoding-behavior/gr-url-encoding-behavior_test.html',
    'safe-types-behavior/safe-types-behavior_test.html',
  ];
  /* eslint-enable max-len */
  for (let file of behaviors) {
    // Behaviors do not utilize the DOM, so no shadow DOM test is necessary.
    file = behaviorsPath + file;
    testFiles.push(file);
  }

  WCT.loadSuites(testFiles);
</script>
