BUILD.gn 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. # Copyright 2019 The Chromium Authors. All rights reserved.
  2. # Use of this source code is governed by a BSD-style license that can be
  3. # found in the LICENSE file.
  4. import("//ash/webui/help_app_ui/help_app_ui.gni")
  5. import("//ash/webui/web_applications/system_apps.gni")
  6. import("//build/buildflag_header.gni")
  7. import("//build/config/chromeos/ui_mode.gni")
  8. import("//chrome/test/base/js2gtest.gni")
  9. import("//mojo/public/tools/bindings/mojom.gni")
  10. import("//third_party/closure_compiler/compile_js.gni")
  11. assert(is_chromeos_ash, "Help App is ash-chrome only")
  12. static_library("help_app_ui") {
  13. sources = [
  14. "help_app_kids_magazine_untrusted_ui.cc",
  15. "help_app_kids_magazine_untrusted_ui.h",
  16. "help_app_manager.cc",
  17. "help_app_manager.h",
  18. "help_app_manager_factory.cc",
  19. "help_app_manager_factory.h",
  20. "help_app_page_handler.cc",
  21. "help_app_page_handler.h",
  22. "help_app_ui.cc",
  23. "help_app_ui.h",
  24. "help_app_ui_delegate.h",
  25. "help_app_untrusted_ui.cc",
  26. "help_app_untrusted_ui.h",
  27. "search/search_handler.cc",
  28. "search/search_handler.h",
  29. "search/search_metadata.cc",
  30. "search/search_metadata.h",
  31. "search/search_tag_registry.cc",
  32. "search/search_tag_registry.h",
  33. "url_constants.cc",
  34. "url_constants.h",
  35. ]
  36. deps = [
  37. ":mojo_bindings",
  38. ":mojo_bindings_js",
  39. "//ash/constants",
  40. "//ash/webui/help_app_ui/search:mojo_bindings",
  41. "//ash/webui/help_app_ui/search:mojo_bindings_js",
  42. "//ash/webui/resources:help_app_bundle_resources",
  43. "//ash/webui/resources:help_app_kids_magazine_bundle_resources",
  44. "//ash/webui/resources:help_app_resources",
  45. "//ash/webui/web_applications",
  46. "//chromeos/ash/components/local_search_service/public/cpp",
  47. "//chromeos/ash/components/local_search_service/public/mojom",
  48. "//chromeos/ash/components/local_search_service/public/mojom:mojom_js",
  49. "//chromeos/constants",
  50. "//chromeos/strings",
  51. "//chromeos/system",
  52. "//components/keyed_service/content:content",
  53. "//content/public/browser",
  54. "//content/public/common",
  55. "//mojo/public/cpp/bindings",
  56. "//mojo/public/cpp/platform",
  57. "//ui/resources:webui_generated_resources_grd_grit",
  58. "//ui/webui",
  59. ]
  60. }
  61. mojom("mojo_bindings") {
  62. sources = [ "help_app_ui.mojom" ]
  63. }
  64. source_set("unit_tests") {
  65. testonly = true
  66. sources = [
  67. "search/search_handler_unittest.cc",
  68. "search/search_tag_registry_unittest.cc",
  69. ]
  70. deps = [
  71. ":help_app_ui",
  72. "//ash/webui/help_app_ui/search:mojo_bindings",
  73. "//base/test:test_support",
  74. "//chromeos/ash/components/local_search_service/public/mojom",
  75. "//mojo/public/cpp/bindings:bindings",
  76. "//testing/gtest",
  77. ]
  78. }
  79. group("closure_compile") {
  80. testonly = true
  81. deps = [
  82. ":closure_compile_browsertests",
  83. ":closure_compile_test_lib",
  84. "resources:closure_compile",
  85. "resources/mock:closure_compile",
  86. ]
  87. }
  88. js2gtest("browser_tests_js") {
  89. test_type = "mojo_lite_webui"
  90. sources = [ "test/help_app_ui_gtest_browsertest.js" ]
  91. defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
  92. deps = [
  93. ":browser_test_support",
  94. "//ash/constants",
  95. "//chromeos/constants",
  96. ]
  97. }
  98. source_set("browser_test_support") {
  99. testonly = true
  100. sources = [
  101. "test/help_app_ui_browsertest.cc",
  102. "test/help_app_ui_browsertest.h",
  103. ]
  104. defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
  105. deps = [
  106. ":help_app_ui",
  107. "//ash/webui/web_applications/test:test_support",
  108. "//chrome/test:test_support_ui",
  109. ]
  110. data = [
  111. "test/driver.js",
  112. "test/driver_api.js",
  113. "test/guest_query_receiver.js",
  114. "test/help_app_ui_browsertest.js",
  115. "test/help_app_guest_ui_browsertest.js",
  116. ]
  117. }
  118. js_type_check("closure_compile_test_lib") {
  119. testonly = true
  120. closure_flags = system_app_closure_flags_strict
  121. deps = [
  122. ":test_driver_api_js",
  123. ":test_driver_js",
  124. ":test_guest_query_receiver_js",
  125. ]
  126. }
  127. # Use relaxed flags for the browsertest files themselves. This removes null
  128. # checks and "could not determine type" errors which don't add a lot of value.
  129. js_type_check("closure_compile_browsertests") {
  130. testonly = true
  131. closure_flags = system_app_closure_flags
  132. deps = [
  133. ":test_help_app_guest_ui_browsertest_js",
  134. ":test_help_app_ui_browsertest_js",
  135. ":test_help_app_ui_gtest_browsertest_js",
  136. ]
  137. }
  138. js_library("test_driver_api_js") {
  139. testonly = true
  140. sources = [ "test/driver_api.js" ]
  141. }
  142. js_library("test_guest_query_receiver_js") {
  143. testonly = true
  144. sources = [ "test/guest_query_receiver.js" ]
  145. deps = [
  146. ":test_driver_api_js",
  147. "//ash/webui/help_app_ui/resources:receiver",
  148. "//ash/webui/system_apps/public/js:message_pipe",
  149. ]
  150. }
  151. js_library("test_driver_js") {
  152. testonly = true
  153. sources = [ "test/driver.js" ]
  154. externs_list = [ "//third_party/chaijs/externs/chai-3.5.js" ]
  155. deps = [
  156. ":test_driver_api_js",
  157. "//ash/webui/help_app_ui/resources:browser_proxy",
  158. "//ash/webui/system_apps/public/js:message_pipe",
  159. ]
  160. }
  161. js_library("test_help_app_ui_gtest_browsertest_js") {
  162. testonly = true
  163. sources = [ "test/help_app_ui_gtest_browsertest.js" ]
  164. externs_list = [ "//ash/webui/web_applications/js2gtest_support.externs.js" ]
  165. deps = [ ":test_help_app_ui_browsertest_js" ]
  166. }
  167. js_library("test_help_app_ui_browsertest_js") {
  168. testonly = true
  169. sources = [ "test/help_app_ui_browsertest.js" ]
  170. deps = [
  171. ":test_driver_js",
  172. "//ash/webui/help_app_ui/resources:browser_proxy",
  173. "//ash/webui/system_apps/public/js:message_pipe",
  174. ]
  175. }
  176. js_library("test_help_app_guest_ui_browsertest_js") {
  177. testonly = true
  178. sources = [ "test/help_app_guest_ui_browsertest.js" ]
  179. externs_list = [ "//ash/webui/web_applications/js2gtest_support.externs.js" ]
  180. deps = [
  181. ":test_driver_js",
  182. "//ash/webui/help_app_ui/resources:receiver",
  183. "//ash/webui/system_apps/public/js:message_pipe",
  184. ]
  185. }
  186. # Used to turn off tests that only work with our CIPD package.
  187. buildflag_header("buildflags") {
  188. header = "buildflags.h"
  189. flags = [ "ENABLE_CROS_HELP_APP=$enable_cros_help_app" ]
  190. }