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

import("//chrome/common/features.gni")
import("//chrome/test/base/js2gtest.gni")

js2gtest("interactive_ui_tests_js_webui") {
  test_type = "webui"

  sources = [
    "cr_elements/cr_elements_focus_test.js",
    "md_bookmarks/md_bookmarks_focus_test.js",
    "md_history/md_history_focus_test.js",
    "print_preview/print_preview_interactive_ui_tests.js",
    "settings/cr_settings_interactive_ui_tests.js",
    "settings/settings_ui_browsertest.js",
  ]

  gen_include_files = [
    "polymer_browser_test_base.js",
    "polymer_interactive_ui_test.js",
  ]

  deps = [
    "//chrome/browser/ui",
  ]

  defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
}

js2gtest("browser_tests_js_webui") {
  test_type = "webui"

  # Javascript sources. These are combined with the .cc files in the GYP build
  # and are handled by a rule, but in the GN build they're in a separate
  # action so need to be separated out.
  sources = [
    "../../../browser/ui/webui/chromeos/bluetooth_pairing_dialog_browsertest.js",
    "../../../browser/ui/webui/chromeos/certificate_manager_dialog_browsertest.js",
    "../../../browser/ui/webui/chromeos/set_time_ui_browsertest.js",
    "../../../browser/ui/webui/identity_internals_ui_browsertest.js",
    "../../../browser/ui/webui/sync_internals_browsertest.js",
    "../chromeos/oobe_webui_browsertest.js",
    "//third_party/axe-core/axe.js",
    "a11y/accessibility_audit_rules.js",
    "a11y/accessibility_test.js",
    "about_invalidations_browsertest.js",
    "assertions.js",
    "async_gen.js",
    "chrome_send_browsertest.js",
    "cr_components/cr_components_browsertest.js",
    "cr_elements/cr_elements_browsertest.js",
    "load_time_data_browsertest.js",
    "md_bookmarks/md_bookmarks_browsertest.js",
    "md_downloads/downloads_browsertest.js",
    "md_history/md_history_browsertest.js",
    "media_router/media_router_elements_browsertest.js",
    "mock4js_browsertest.js",
    "net_internals/bandwidth_view.js",
    "net_internals/chromeos_view.js",
    "net_internals/dns_view.js",
    "net_internals/domain_security_policy_view.js",
    "net_internals/events_view.js",
    "net_internals/log_util.js",
    "net_internals/log_view_painter.js",
    "net_internals/main.js",
    "net_internals/net_internals_test.js",
    "net_internals/prerender_view.js",
    "net_internals/timeline_view.js",
    "ntp4.js",
    "polymer_browser_test_base.js",
    "sandboxstatus_browsertest.js",
    "settings/a11y/about_a11y_test.js",
    "settings/a11y/accessibility_a11y_test.js",
    "settings/a11y/basic_a11y_test.js",
    "settings/a11y/edit_dictionary_a11y_test.js",
    "settings/a11y/manage_accessibility_a11y_test.js",
    "settings/a11y/manage_profile_a11y_test.js",
    "settings/a11y/passwords_a11y_test.js",
    "settings/a11y/settings_accessibility_test.js",
    "settings/a11y/sign_out_a11y_test.js",
    "settings/a11y/tts_subpage_a11y_test.js",
    "settings/advanced_page_browsertest.js",
    "settings/animation_browsertest.js",
    "settings/basic_page_browsertest.js",
    "settings/cr_settings_browsertest.js",
    "settings/help_page_browsertest.js",
    "settings/passwords_and_autofill_fake_data.js",
    "settings/passwords_and_forms_browsertest.js",
    "settings/settings_autofill_section_browsertest.js",
    "settings/settings_idle_load_browsertest.js",
    "settings/settings_page_browsertest.js",
    "settings/settings_passwords_section_browsertest.js",
    "settings/site_settings_page_browsertest.js",
    "text_defaults_browsertest.js",
    "webui_resource_async_browsertest.js",
  ]

  extra_js_files = [
    "//chrome/browser/resources/md_downloads/constants.js",
    "//chrome/browser/resources/signin/dice_sync_confirmation/sync_confirmation_browser_proxy.js",
  ]

  if (is_chromeos) {
    sources += [
      "certificate_viewer_dialog_test.js",
      "multidevice_setup/multidevice_setup_browsertest.js",
      "settings/easy_unlock_browsertest_chromeos.js",
      "sys_internals/sys_internals_browsertest.js",
    ]
  } else {
    sources += [
      "md_user_manager/user_manager_browsertest.js",
      "signin/signin_browsertest.js",
    ]
  }

  if (!is_chrome_branded) {
    # crbug.com/230471
    sources += [ "accessibility_audit_browsertest.js" ]
  }
  if (enable_extensions) {
    sources += [
      "extensions/a11y/extensions_a11y_test.js",
      "extensions/cr_extensions_browsertest.js",
    ]
  }
  if (enable_print_preview) {
    sources += [
      "print_preview/new_print_preview_ui_browsertest.js",
      "print_preview/print_preview_destination_search_test.js",
      "print_preview/print_preview_ui_browsertest.js",
    ]
  }
  deps = [
    "//chrome/browser/ui",
    "//skia",
  ]
  defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
}

js2gtest("browser_tests_js_mojo_webui") {
  test_type = "mojo_webui"

  sources = [
    "bluetooth_internals_browsertest.js",
    "engagement/site_engagement_browsertest.js",
    "interventions_internals_browsertest.js",
    "media/media_engagement_browsertest.js",
  ]

  if (is_win || is_mac || is_desktop_linux || is_chromeos) {
    sources += [ "discards/discards_browsertest.js" ]
  }

  deps = [
    "//chrome/browser/ui",
    "//skia",
  ]
  defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
}

js2gtest("unit_tests_js") {
  test_type = "unit"
  sources = [
    "../../../browser/resources/md_downloads/search_service_unittest.gtestjs",
    "../../../browser/resources/print_preview/print_preview_utils_unittest.gtestjs",
    "../../../renderer/resources/extensions/notifications_custom_bindings.gtestjs",
    "../unit/framework_unittest.gtestjs",
  ]
  extra_js_files = [
    "../../../browser/resources/md_downloads/browser_proxy.js",
    "../../../browser/resources/print_preview/data/measurement_system.js",
    "../../../browser/resources/print_preview/print_preview_utils.js",
    "../../../browser/resources/md_downloads/search_service.js",
    "../../../renderer/resources/extensions/notifications_custom_bindings.js",
    "../../../renderer/resources/extensions/notifications_test_util.js",
    "//ui/webui/resources/js/cr.js",
  ]
  if (is_chromeos) {
    sources += [
      "../../../browser/resources/chromeos/braille_ime/braille_ime_unittest.gtestjs",
      "../../../browser/resources/chromeos/select_to_speak/node_utils_unittest.gtestjs",
      "../../../browser/resources/chromeos/select_to_speak/paragraph_utils_unittest.gtestjs",
      "../../../browser/resources/chromeos/select_to_speak/rect_utils_unittest.gtestjs",
      "../../../browser/resources/chromeos/select_to_speak/select_to_speak_unittest.gtestjs",
      "../../../browser/resources/chromeos/select_to_speak/word_utils_unittest.gtestjs",
    ]
    extra_js_files += [
      "../../../browser/resources/chromeos/braille_ime/braille_ime.js",
      "../../../browser/resources/chromeos/select_to_speak/paragraph_utils.js",
      "../../../browser/resources/chromeos/select_to_speak/rect_utils.js",
      "../../../browser/resources/chromeos/select_to_speak/select_to_speak.js",
      "../../../browser/resources/chromeos/select_to_speak/test_support.js",
      "../../../browser/resources/chromeos/select_to_speak/word_utils.js",
      "../../../browser/resources/chromeos/select_to_speak/node_utils.js",
    ]
  }
}
