summaryrefslogtreecommitdiff
path: root/chromium/chrome/test/data/webui/BUILD.gn
blob: fdf47396754cb358449f4faab3ae8bb678b8c568 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
# 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("//build/config/chromeos/ui_mode.gni")
import("//build/config/crypto.gni")
import("//chrome/common/features.gni")
import("//chrome/test/base/js2gtest.gni")
import("//chrome/test/include_js_tests.gni")
import("//chromeos/components/chromebox_for_meetings/buildflags/buildflags.gni")
import("//components/signin/features.gni")
import("//printing/buildflags/buildflags.gni")
import("//third_party/closure_compiler/compile_js.gni")
import("//tools/grit/grit_rule.gni")
import("//tools/typescript/ts_definitions.gni")
import("//ui/webui/resources/tools/generate_grd.gni")
import("//ui/webui/webui_features.gni")

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

    sources = [
      "bookmarks/bookmarks_focus_test.js",
      "cr_elements/cr_elements_focus_test.js",
      "cr_focus_row_behavior_interactive_test.js",
      "extensions/cr_extensions_interactive_ui_tests.js",
      "history/history_focus_test.js",
      "print_preview/print_preview_interactive_ui_tests.js",
      "settings/cr_settings_interactive_ui_tests.js",
      "tab_search/tab_search_interactive_ui_tests.js",
    ]

    if (!is_chromeos_ash) {
      sources += [ "signin/local_profile_customization_interactive_ui_test.js" ]
    }

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

    deps = [
      "//chrome/browser/ui",
      "//ui/webui/resources/js:webview_manager",
    ]
    defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
  }

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

    sources = [ "cr_components/cr_components_mojo_interactive_test.js" ]

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

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

    data = [ "mojo_webui_test_support.js" ]

    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/identity_internals_ui_browsertest.js",
      "../../../browser/ui/webui/sync_internals/sync_internals_browsertest.js",
      "assertions.js",
      "async_gen.js",
      "bookmarks/bookmarks_browsertest.js",
      "cr_components/cr_components_browsertest.js",
      "cr_elements/cr_elements_browsertest.js",
      "download_shelf/download_shelf_browsertest.js",
      "histograms/histograms_internals_ui_browsertest.js",
      "history/history_browsertest.js",
      "invalidations/about_invalidations_browsertest.js",
      "js/i18n_process_test.js",
      "js/webui_resource_module_async_browsertest.js",
      "js2gtest_browsertest.js",
      "management/a11y/management_a11y_test.js",
      "media_internals/media_internals_ui_browsertest.js",
      "net_internals/net_internals_browsertest.js",
      "ntp4.js",
      "resources/webui_resources_browsertest.js",
      "sandboxstatus_browsertest.js",
      "settings/a11y/a11y_browsertest.js",
      "settings/cr_settings_browsertest.js",
      "settings/privacy_sandbox_browsertest.js",
      "settings/settings_idle_load_browsertest.js",
      "support_tool/support_tool_browsertest.js",
      "text_defaults_browsertest.js",
      "webui_resource_async_browsertest.js",
      "whats_new/whats_new_browsertest.js",
    ]

    if (is_chrome_branded) {
      sources += [ "media_router/cast_feedback_ui_browsertest.js" ]
    }

    gen_include_files = [
      "a11y/accessibility_audit_rules.js",
      "a11y/accessibility_test.js",
      "net_internals/net_internals_test_base.js",
      "polymer_browser_test_base.js",
      "settings/a11y/settings_accessibility_test.js",
      "//third_party/axe-core/axe.js",
    ]

    deps = [
      "net_internals:preprocess",
      "//build:branding_buildflags",
      "//chrome/browser/ui",
      "//services/network/public/cpp",
      "//skia",
      "//ui/webui/resources/js:unmodulize",
    ]

    if (use_nss_certs) {
      deps +=
          [ "//ui/webui/resources/cr_components/certificate_manager:build_ts" ]
    }

    if (is_chromeos_ash) {
      gen_include_files +=
          [ "settings/chromeos/a11y/os_settings_accessibility_v3_test.js" ]
      deps += [ ":modulize" ]
    }

    if (is_chromeos_ash || is_win) {
      sources += [ "inline_login/inline_login_browsertest.js" ]
      deps += [ "//build:chromeos_buildflags" ]
    }

    if (is_chromeos_ash) {
      sources += [
        "../../../browser/resources/chromeos/login/components/oobe_types.js",
        "../../../browser/resources/chromeos/login/security_token_pin_browsertest.js",
        "../../../browser/ui/webui/chromeos/bluetooth_pairing_dialog_browsertest.js",
        "../../../browser/ui/webui/chromeos/certificate_manager_dialog_browsertest.js",
        "../chromeos/oobe_webui_browsertest.js",
        "chromeos/account_manager/account_manager_browsertest.js",
        "chromeos/edu_coexistence/edu_coexistence_browsertest.js",
        "chromeos/edu_login/edu_login_browsertest.js",
        "chromeos/emoji_picker/emoji_picker_browsertest.js",
        "chromeos/gaia_action_buttons/gaia_action_buttons_browsertest.js",
        "chromeos/internet_detail_dialog_browsertest.js",
        "cr_components/chromeos/cr_components_chromeos_v3_browsertest.js",
        "post_message_api/post_message_api_browsertest.js",
        "set_time_dialog_browsertest.js",
        "settings/chromeos/a11y/v3_os_a11y_browsertest.js",
        "settings/chromeos/os_settings_v3_browsertest.js",
        "sys_internals/sys_internals_browsertest.js",
        "webview_manager/webview_manager_browsertest.js",
      ]
    } else {
      sources += [ "signin/signin_browsertest.js" ]
    }

    if (enable_dice_support) {
      sources += [
        "welcome/a11y_tests.js",
        "welcome/welcome_browsertest.js",
      ]
    }

    if (use_nss_certs) {
      sources += [ "certificate_viewer_dialog_browsertest.js" ]
    }
    if (enable_extensions) {
      sources += [
        "extensions/a11y/extensions_a11y_test.js",
        "extensions/cr_extensions_browsertest.js",
      ]
    }
    if (enable_print_preview) {
      sources += [ "print_preview/print_preview_ui_browsertest.js" ]
    }
    if (enable_webui_tab_strip) {
      sources += [ "tab_strip/tab_strip_browsertest.js" ]
    }
    if (!is_android) {
      sources += [
        "access_code_cast/access_code_cast_browsertest.js",
        "commander/commander_browsertest.js",
      ]
    }
    if (is_cfm) {
      sources += [
        "chromeos/chromebox_for_meetings/cfm_network_settings_browsertest.js",
      ]
    }

    data = [
      "$root_gen_dir/chrome/test/data/webui/net_internals/main_test.js",
      "$root_gen_dir/chrome/test/data/webui/net_internals/test_util.js",
      "$root_gen_dir/ui/webui/resources/js/load_time_data.js",
    ]

    if (is_chromeos_ash || is_win) {
      deps += [ "inline_login:preprocess" ]
      data += [ "$root_gen_dir/chrome/test/data/webui/inline_login/inline_login_test_util.js" ]
    }

    if (is_chromeos_ash) {
      data += [
        "$root_gen_dir/chrome/test/data/webui/chromeos/fake_network_config_mojom.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/cellular_setup/activation_code_page_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/cellular_setup/base_page_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/cellular_setup/button_bar_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/cellular_setup/confirmation_code_page_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/cellular_setup/cellular_eid_dialog_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/cellular_setup/cellular_setup_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/cellular_setup/esim_flow_ui_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/cellular_setup/final_page_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/cellular_setup/provisioning_page_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/cellular_setup/psim_flow_ui_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/cellular_setup/fake_barcode_detector.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/cellular_setup/fake_canvas_context.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/cellular_setup/setup_loading_page_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/cellular_setup/fake_cellular_setup_remote.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/cellular_setup/fake_cellular_setup_delegate.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/cellular_setup/fake_esim_manager_remote.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/cellular_setup/fake_media_devices.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/multidevice_setup/integration_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/multidevice_setup/setup_succeeded_page_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/multidevice_setup/start_setup_page_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/network/cr_policy_network_behavior_mojo_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/network/cr_policy_network_indicator_mojo_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/network/network_apnlist_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/network/network_choose_mobile_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/network/network_config_element_behavior_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/network/network_config_input_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/network/network_config_select_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/network/network_config_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/network/network_config_toggle_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/network/network_icon_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/network/network_ip_config_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/network/network_list_item_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/network/network_list_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/network/network_nameservers_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/network/network_password_input_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/network/network_property_list_mojo_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/network/network_proxy_exclusions_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/network/network_proxy_input_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/network/network_proxy_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/network/network_select_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/network/network_siminfo_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/network/sim_lock_dialogs_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/nearby_share/shared/fake_nearby_contact_manager.m.js",
        "$root_gen_dir/chrome/test/data/webui/nearby_share/shared/fake_nearby_share_settings.m.js",
        "$root_gen_dir/chrome/test/data/webui/nearby_share/shared/nearby_contact_visibility_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/nearby_share/shared/nearby_device_icon_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/nearby_share/shared/nearby_onboarding_page_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/nearby_share/shared/nearby_page_template_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/nearby_share/shared/nearby_visibility_page_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/add_users_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/ambient_mode_page_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/ambient_mode_photos_page_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/apps_page_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/app_detail_view_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/app_item_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/app_management_page_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/arc_detail_view_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/chrome_app_detail_view_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/dark_mode_subpage_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/dom_switch_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/main_view_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/permission_item_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/pin_to_shelf_item_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/pwa_detail_view_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/supported_links_item_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/toggle_row_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/managed_apps_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_plugin_vm_browser_proxy.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/uninstall_button_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/bluetooth_page_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/cellular_networks_list_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/cellular_roaming_toggle_button_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/cellular_setup_dialog_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/crostini_page_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/cups_printer_page_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/cups_printer_test_utils.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/cups_printer_landing_page_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/cups_printer_entry_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/date_time_page_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/device_page_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/esim_install_error_dialog_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/esim_remove_profile_dialog_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/esim_rename_dialog_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/fake_bluetooth_private.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/fake_bluetooth.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/fake_receive_manager.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/fake_quick_unlock_private.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/fake_quick_unlock_uma.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/fake_settings_search_handler.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/fake_users_private.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/fake_user_action_recorder.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/fingerprint_browsertest_chromeos.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/google_assistant_page_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/guest_os_shared_paths_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/guest_os_shared_usb_devices_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/input_method_options_page_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/input_page_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/internet_config_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/onc_mojo_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/internet_detail_menu_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/internet_detail_page_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/internet_known_networks_page_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/internet_subpage_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/internet_page_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/kerberos_accounts_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/kerberos_page_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/keyboard_shortcut_banner_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/localized_link_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/manage_accessibility_page_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/multidevice_feature_item_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/multidevice_feature_toggle_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/multidevice_notification_access_setup_dialog_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/multidevice_page_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/multidevice_permissions_setup_dialog_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/multidevice_smartlock_item_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/multidevice_smartlock_subpage_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/multidevice_subpage_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/multidevice_wifi_sync_disabled_link_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/multidevice_wifi_sync_item_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/nearby_share_receive_dialog_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/nearby_share_subpage_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/network_always_on_vpn_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/network_proxy_section_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/network_summary_item_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/network_summary_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_about_page_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_bluetooth_page_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_bluetooth_pairing_dialog_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_bluetooth_summary_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_bluetooth_devices_subpage_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_bluetooth_device_detail_subpage_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_bluetooth_change_device_name_dialog_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_paired_bluetooth_list_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_paired_bluetooth_list_item_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_edit_dictionary_page_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_files_page_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_languages_page_v2_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/app_notifications_subpage_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/settings_scheduler_slider_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_settings_main_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_settings_ui_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_settings_ui_test_2.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_reset_page_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_people_page_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_privacy_page_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_settings_menu_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_sync_controls_optional_disabled_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_sync_controls_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/lock_screen_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_printing_page_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_search_page_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_settings_search_box_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_settings_page_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/parental_controls_page_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/people_page_account_manager_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/people_page_change_picture_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/personalization_page_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/quick_unlock_authenticate_browsertest_chromeos.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/smart_inputs_page_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/smart_privacy_subpage_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/smb_shares_page_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_a11y_page_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/reducers_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/search_subpage_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/search_engine_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/switch_access_action_assignment_dialog_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/switch_access_setup_guide_dialog_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/switch_access_subpage_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_about_page_browser_proxy_chromeos.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_bluetooth_page_browser_proxy.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_crostini_browser_proxy.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_cups_printers_browser_proxy.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_guest_os_browser_proxy.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_internet_page_browser_proxy.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_multidevice_browser_proxy.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_os_languages_browser_proxy.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_kerberos_accounts_browser_proxy.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_os_languages_metrics_proxy.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_os_lifetime_browser_proxy.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_os_reset_browser_proxy.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_os_sync_browser_proxy.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_personalization_hub_browser_proxy.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_wallpaper_browser_proxy.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/tether_connection_dialog_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/text_to_speech_subpage_tests.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/timezone_selector_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/timezone_subpage_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/tts_subpage_test.m.js",
        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/user_page_tests.m.js",
      ]
    }
    defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
  }

  js2gtest("browser_tests_js_mojo_lite_webui") {
    test_type = "mojo_lite_webui"

    sources = [
      "bluetooth_internals/bluetooth_internals_browsertest.js",
      "media/media_engagement_browsertest.js",
      "media/media_history_webui_browsertest.js",
      "new_tab_page/new_tab_page_browsertest.js",
      "read_later/side_panel/side_panel_browsertest.js",
    ]

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

    if (is_chromeos_ash) {
      sources += [
        "chromeos/ash_common/ash_common_browsertest.js",
        "chromeos/crostini_installer_browsertest.js",
        "chromeos/crostini_upgrader_browsertest.js",
        "chromeos/diagnostics/diagnostics_browsertest.js",
        "chromeos/firmware_update/firmware_update_browsertest.js",
        "chromeos/os_feedback_ui/os_feedback_browsertest.js",
        "chromeos/print_management/print_management_browsertest.js",
        "chromeos/scanning/scanning_app_browsertest.js",
        "chromeos/shimless_rma/shimless_rma_browsertest.js",
        "chromeos/shortcut_customization/shortcut_customization_browsertest.js",
        "nearby_share/nearby_browsertest.js",
        "nearby_share/shared/nearby_shared_v3_browsertest.js",
      ]
    }

    defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
  }

  js2gtest("browser_tests_js_mojo_webui") {
    test_type = "mojo_webui"
    sources = [
      "cr_components/cr_components_mojo_browsertest.js",
      "downloads/downloads_browsertest.js",
      "engagement/site_engagement_browsertest.js",
      "read_later/read_later_browsertest.js",
      "tab_search/tab_search_browsertest.js",
      "usb_internals_browsertest.js",
    ]
    if (is_chromeos_ash) {
      sources += [
        "chromeos/parent_access/parent_access_browsertest.js",
        "chromeos/personalization_app/personalization_app_component_browsertest.js",
        "chromeos/personalization_app/personalization_app_controller_browsertest.js",
      ]
    }
    if (is_win || is_mac || is_linux || is_chromeos) {
      sources += [ "discards/discards_browsertest.js" ]
    }
    defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
    data = [ "mojo_webui_test_support.js" ]
  }

  js2gtest("interactive_ui_tests_js_mojo_lite_webui") {
    test_type = "mojo_lite_webui"

    sources = [ "new_tab_page/new_tab_page_interactive_test.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("unit_tests_js") {
    test_type = "unit"
    sources = [
      "../../../renderer/resources/extensions/notifications_custom_bindings.gtestjs",
      "../unit/framework_unittest.gtestjs",
    ]
    extra_js_files = [
      "../../../renderer/resources/extensions/notifications_custom_bindings.js",
      "../../../renderer/resources/extensions/notifications_test_util.js",
      "//ui/webui/resources/js/cr.js",
    ]
  }
}

if (is_chromeos_ash) {
  group("modulize") {
    deps = [
      "./cr_components/chromeos:modulize",
      "./nearby_share/shared:modulize",
      "./settings/chromeos:modulize",
    ]
  }
}

group("closure_compile") {
  deps = [
    ":closure_compile_local",
    "cr_components:closure_compile",
    "cr_elements:closure_compile",
    "inline_login:closure_compile",
    "js/cr:closure_compile",
    "media_router:closure_compile",
    "new_tab_page:closure_compile",

    # TODO(crbug.com/1000989): Add page specific targets here.
  ]
  if (is_chromeos_ash) {
    deps += [
      "chromeos:closure_compile",
      "cr_components/chromeos:closure_compile",
      "nearby_share:closure_compile",
      "nearby_share/shared:closure_compile",
      "settings/chromeos:closure_compile",
    ]
  }
}

js_type_check("closure_compile_local") {
  is_polymer3 = true
  deps = [
    ":chai_assert",
    ":fake_chrome_event",
    ":mock_timer",
    ":test_browser_proxy",
    ":test_plural_string_proxy",
    ":test_util",
  ]
}

js_library("fake_chrome_event") {
  deps = [ ":chai_assert" ]
}

js_library("mock_controller") {
}

js_library("mock_timer") {
}

js_library("test_util") {
  deps = [
    "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
    "//ui/webui/resources/js/cr:event_target.m",
  ]
}

js_library("chai_assert") {
  externs_list = [ "//third_party/chaijs/externs/chai-3.5.js" ]
}

js_library("test_browser_proxy") {
  deps = [ "//ui/webui/resources/js:promise_resolver.m" ]
}

js_library("test_plural_string_proxy") {
  deps = [
    ":test_browser_proxy",
    "//ui/webui/resources/js:plural_string_proxy",
  ]
}

grit("resources") {
  defines = chrome_grit_defines

  # These arguments are needed since the grd is generated at build time.
  enable_input_discovery_for_gn_analyze = false
  source = "$target_gen_dir/resources.grd"
  deps = [ ":build_grd" ]

  outputs = [
    "test/data/grit/webui_generated_test_resources.h",
    "test/data/grit/webui_generated_test_resources_map.cc",
    "test/data/grit/webui_generated_test_resources_map.h",
    "webui_generated_test_resources.pak",
  ]
  output_dir = "$root_gen_dir/chrome"
}

generate_grd("build_chai_grdp") {
  grd_prefix = "webui_generated_test"
  out_grd = "$target_gen_dir/chai_resources.grdp"
  input_files_base_dir = rebase_path("//third_party/chaijs", "//")
  input_files = [ "chai.js" ]
}

generate_grd("build_web_ui_test_mojo_grdp") {
  grd_prefix = "webui_generated_test"
  out_grd = "$target_gen_dir/web_ui_test_mojo_resources.grdp"
  input_files_base_dir = rebase_path(target_gen_dir, root_build_dir)
  input_files = [ "web_ui_test.mojom-webui.js" ]
  deps = [ "..:web_ui_test_mojom_js_module" ]
}

generate_grd("build_grd") {
  grd_prefix = "webui_generated_test"
  output_files_base_dir = "test/data/grit"
  out_grd = "$target_gen_dir/resources.grd"

  input_files_base_dir = rebase_path(".", "//")
  input_files = [
    "chai_assert.js",
    "fake_chrome_event.js",
    "mock_timer.js",
    "mojo_webui_test_support.js",
    "test_browser_proxy.js",
    "test_plural_string_proxy.js",
    "test_store.js",
    "test_util.js",
  ]

  deps = [
    ":build_chai_grdp",
    ":build_web_ui_test_mojo_grdp",
    "bookmarks:build_grdp",
    "downloads:build_grdp",
    "read_later:build_grdp",
    "settings:build_grdp",
    "tab_search:build_grdp",
  ]

  grdp_files = [
    "$target_gen_dir/bookmarks/resources.grdp",
    "$target_gen_dir/chai_resources.grdp",
    "$target_gen_dir/downloads/resources.grdp",
    "$target_gen_dir/read_later/resources.grdp",
    "$target_gen_dir/settings/resources.grdp",
    "$target_gen_dir/tab_search/resources.grdp",
    "$target_gen_dir/web_ui_test_mojo_resources.grdp",
  ]

  if (enable_print_preview) {
    deps += [ "print_preview:build_grdp" ]
    grdp_files += [ "$target_gen_dir/print_preview/resources.grdp" ]
  }

  if (enable_webui_tab_strip) {
    deps += [ "tab_strip:build_grdp" ]
    grdp_files += [ "$target_gen_dir/tab_strip/resources.grdp" ]
  }

  if (!is_chromeos_ash && !is_android) {
    deps += [
      "signin:build_grdp",
      "welcome:build_grdp",
    ]
    grdp_files += [
      "$target_gen_dir/welcome/resources.grdp",
      "$target_gen_dir/signin/resources.grdp",
    ]
  }
}

# TypeScript related targets

ts_definitions("generate_definitions") {
  root_dir = "./"
  out_dir = "$target_gen_dir/tsc"
  js_files = [
    "chai_assert.js",
    "fake_chrome_event.js",
    "mojo_webui_test_support.js",
    "test_browser_proxy.js",
    "test_plural_string_proxy.js",
    "test_store.js",
    "test_util.js",
  ]
  extra_deps = [ "//ui/webui/resources:generate_definitions" ]
}