Infobar material design refresh: bg color
[chromium-blink-merge.git] / chrome / test / BUILD.gn
blobe9d5fe09eb624f669430860b8dd37a2fd46e55ed
1 # Copyright 2014 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.
5 import("//build/config/chrome_build.gni")
6 import("//build/config/crypto.gni")
7 import("//build/config/features.gni")
8 import("//build/config/ui.gni")
9 import("//chrome/chrome_tests.gni")
10 import("//chrome/test/base/js2gtest.gni")
11 import("//testing/test.gni")
13 declare_args() {
14   # TODO(GYP) http://crbug.com/462791
15   enable_nacl_browsertests = false
18 # This target exists to reference other test executables to bring these files
19 # into the build.
20 group("test") {
21   testonly = true
24 # GYP version: chrome/chrome_tests_unit.gypi:test_support_common
25 source_set("test_support") {
26   defines = []
27   testonly = true
29   sources = [
30     "base/chrome_process_util.cc",
31     "base/chrome_process_util.h",
32     "base/chrome_process_util_mac.cc",
33     "base/chrome_render_view_host_test_harness.cc",
34     "base/chrome_render_view_host_test_harness.h",
35     "base/chrome_test_launcher.cc",
36     "base/chrome_test_launcher.h",
37     "base/chrome_test_suite.cc",
38     "base/chrome_test_suite.h",
39     "base/chrome_unit_test_suite.cc",
40     "base/chrome_unit_test_suite.h",
41     "base/dialog_test_browser_window.cc",
42     "base/dialog_test_browser_window.h",
43     "base/find_in_page_observer.cc",
44     "base/find_in_page_observer.h",
45     "base/history_index_restore_observer.cc",
46     "base/history_index_restore_observer.h",
47     "base/in_process_browser_test.cc",
48     "base/in_process_browser_test.h",
49     "base/in_process_browser_test_mac.cc",
50     "base/profile_mock.cc",
51     "base/profile_mock.h",
52     "base/scoped_browser_locale.cc",
53     "base/scoped_browser_locale.h",
54     "base/scoped_bundle_swizzler_mac.h",
55     "base/scoped_bundle_swizzler_mac.mm",
56     "base/scoped_testing_local_state.cc",
57     "base/scoped_testing_local_state.h",
58     "base/test_browser_window.cc",
59     "base/test_browser_window.h",
60     "base/test_launcher_utils.cc",
61     "base/test_launcher_utils.h",
62     "base/test_switches.cc",
63     "base/test_switches.h",
64     "base/testing_browser_process.cc",
65     "base/testing_browser_process.h",
66     "base/testing_browser_process_platform_part.cc",
67     "base/testing_browser_process_platform_part.h",
68     "base/testing_io_thread_state.cc",
69     "base/testing_io_thread_state.h",
70     "base/testing_pref_service_syncable.cc",
71     "base/testing_pref_service_syncable.h",
72     "base/testing_profile.cc",
73     "base/testing_profile.h",
74     "base/testing_profile_manager.cc",
75     "base/testing_profile_manager.h",
76     "base/tracing.cc",
77     "base/tracing.h",
78     "base/ui_test_utils.cc",
79     "base/ui_test_utils.h",
80     "logging/win/file_logger.cc",
81     "logging/win/file_logger.h",
82     "logging/win/log_file_printer.cc",
83     "logging/win/log_file_printer.h",
84     "logging/win/log_file_reader.cc",
85     "logging/win/log_file_reader.h",
86     "logging/win/mof_data_parser.cc",
87     "logging/win/mof_data_parser.h",
88     "logging/win/test_log_collector.cc",
89     "logging/win/test_log_collector.h",
90   ]
92   configs += [ "//build/config:precompiled_headers" ]
94   # New deps should go in the non-iOS section below.
95   public_deps = [
96     "//content/test:test_support",
97   ]
98   deps = [
99     "//base:prefs_test_support",
100     "//base/test:test_support",
101     "//chrome:resources",
102     "//chrome:strings",
103     "//chrome/app:test_support",
105     #"//chrome/app/theme:theme_resources",
106     "//chrome/browser:test_support",
107     "//chrome/common:test_support",
108     "//chrome/renderer:test_support",
109     "//components/bookmarks/test",
110     "//components/gcm_driver:test_support",
111     "//components/gcm_driver/instance_id:test_support",
112     "//components/history/core/test:test",
113     "//components/metrics:test_support",
114     "//components/omnibox/browser:test_support",
115     "//components/password_manager/core/browser:test_support",
116     "//components/pref_registry:test_support",
117     "//components/rappor:test_support",
118     "//components/search_engines:test_support",
119     "//components/signin/core/browser:test_support",
120     "//components/sync_driver:test_support",
121     "//components/update_client:test_support",
122     "//content/public/app:both",
123     "//ui/gfx:test_support",
124     "//net",
125     "//net:test_support",
126     "//skia",
127     "//sql",
128     "//sql:test_support",
129     "//sync",
130     "//testing/gmock",
131     "//testing/gtest",
132     "//third_party/zlib",
133     "//ui/message_center:test_support",
134   ]
136   if (!is_ios) {
137     deps += [
138       "//chrome/child",
139       "//chrome/plugin",
140       "//chrome/renderer",
141       "//chrome/utility",
142       "//content/public/child",
143       "//content/public/common",
144       "//content/public/plugin",
145       "//content/public/renderer",
146       "//content/public/utility",
147       "//components/autofill/core/browser:test_support",
148       "//components/captive_portal:test_support",
149       "//components/guest_view/browser:test_support",
150       "//components/infobars/core",
151       "//components/sessions:test_support",
152       "//components/user_manager:test_support",
153       "//components/web_resource:test_support",
154       "//google_apis:test_support",
155       "//ipc:test_support",
156       "//media:test_support",
157       "//ppapi/shared_impl",
158       "//sql:test_support",
159       "//third_party/leveldatabase",
160       "//ui/base",
161       "//ui/events:events_base",
162       "//ui/gl",
163     ]
164   }
166   if (enable_extensions) {
167     deps += [
168       "//chrome/common/extensions/api",
169       "//extensions:test_support",
170     ]
171   }
173   if (is_linux) {
174     deps += [ "//crypto:platform" ]
175   }
176   if (is_mac) {
177     # deps += [ '../third_party/ocmock/ocmock.gyp:ocmock' ] TODO(GYP)
178   }
179   if (is_win) {
180     deps += [ "//third_party/wtl" ]
181     if (use_aura) {
182       deps += [
183         "//win8:test_registrar_constants",
184         "//win8:test_support_win8",
185       ]
186     }
187   }
188   if (is_chromeos) {
189     deps += [ "//components/ownership" ]
190   }
192   if (use_aura) {
193     sources += [
194       "base/test_browser_window_aura.cc",
195       "base/test_browser_window_aura.h",
196     ]
197   }
199   if (enable_plugins) {
200     sources += [
201       "ppapi/ppapi_test.cc",
202       "ppapi/ppapi_test.h",
203     ]
204     deps += [ "//pdf" ]
205   }
207   if (use_ash) {
208     deps += [ "//ash:test_support" ]
209   }
210   if (toolkit_views) {
211     deps += [ "//ui/views:test_support" ]
212   }
214   if (enable_extensions) {
215     deps += [
216       "//chrome/common/extensions/api",
217       "//extensions:test_support",
218     ]
219   }
222 if (!is_android) {
223   import("//third_party/protobuf/proto_library.gni")
225   # GYP version: chrome/chrome_tests_unit.gypi:ipc_protobuf_message_test_proto
226   proto_library("test_proto") {
227     sources = [
228       "../common/safe_browsing/ipc_protobuf_message_test.proto",
229     ]
230   }
232   # TODO(GYP): Delete this after we've converted everything to GN.
233   # The _run targets exist only for compatibility w/ GYP.
234   group("interactive_ui_tests_run") {
235     testonly = true
236     deps = [
237       ":interactive_ui_tests",
238     ]
239   }
241   test("interactive_ui_tests") {
242     sources =
243         rebase_path(chrome_tests_gypi_values.chrome_interactive_ui_test_sources,
244                     ".",
245                     "//chrome")
247     configs += [ "//build/config:precompiled_headers" ]
249     data = [
250       "data/",
251       "//net/data/ssl/certificates/",
252       "//net/tools/testserver/",
253       "//ppapi/tests/test_case.html",
254       "//ppapi/tests/test_case.html.mock-http-headers",
255       "//ppapi/tests/test_page.css",
256       "//ppapi/tests/test_page.css.mock-http-headers",
257       "//third_party/pyftpdlib/",
258       "//third_party/pywebsocket/",
259       "//third_party/tlslite/",
260       "//third_party/zlib/google/test/data/",
261       "//tools/metrics/histograms/histograms.xml",
262       "$root_out_dir/pyproto/google/",
263       "$root_out_dir/resources.pak",
264       "$root_out_dir/ui_test.pak",
265     ]
266     if (is_linux || is_win) {
267       data += [
268         "$root_out_dir/chrome_100_percent.pak",
269         "$root_out_dir/locales/en-US.pak",
270         "$root_out_dir/locales/fr.pak",
271       ]
272     }
273     if (is_linux) {
274       data += [ "$root_out_dir/libppapi_tests.so" ]
275     }
277     defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
278     ldflags = []
280     deps = [
281       "//base/allocator",
282       "//chrome/browser",
283       "//chrome/browser/devtools",
284       "//chrome/renderer",
285       "//chrome/test:test_support",
286       "//chrome:resources",
287       "//chrome:strings",
288       "//chrome:packed_extra_resources",
289       "//chrome:packed_resources",
290       "//components/resources",
291       "//content/app/resources",
292       "//crypto:platform",
293       "//crypto:test_support",
294       "//google_apis:test_support",
295       "//net",
296       "//net:net_resources",
297       "//net:test_support",
298       "//skia",
299       "//sync",
300       "//testing/gmock",
301       "//testing/gtest",
302       "//third_party/hunspell",
303       "//third_party/icu",
304       "//third_party/libpng",
305       "//third_party/zlib",
306       "//ui/base:test_support",
307       "//ui/resources:ui_test_pak",
308       "//ui/web_dialogs:test_support",
309     ]
311     # TODO(rockot) bug 505926: The chrome_extensions_interactive_uitests target
312     # should be deleted and this line removed. See the
313     # chrome_extensions_interactive_uitests target for more.
314     deps += [ "//extensions:chrome_extensions_interactive_uitests" ]
316     # Runtime dependencies
317     data_deps = [
318       "//ppapi:ppapi_tests",
319       "//third_party/mesa:osmesa",
320     ]
322     if (toolkit_views) {
323       sources += rebase_path(
324               chrome_tests_gypi_values.chrome_interactive_ui_test_views_sources,
325               ".",
326               "//chrome")
327       deps += [
328         "//ui/views",
329         "//ui/views:test_support",
330         "//ui/views/controls/webview:test_support",
331       ]
332       if (!is_mac) {
333         sources += rebase_path(
334                 chrome_tests_gypi_values.chrome_interactive_ui_test_views_non_mac_sources,
335                 ".",
336                 "//chrome")
337       }
338       if (is_linux) {
339         # TODO(gbillock): aura linux does not support the automation for
340         # SendMouseMoveNotifyWhenDone
341         sources -= [ "../browser/ui/views/toolbar/toolbar_button_test.cc" ]
342       }
343       if (is_chromeos || !use_x11) {
344         sources -= [
345           "../../ui/views/widget/desktop_aura/desktop_window_tree_host_x11_interactive_uitest.cc",
346           "../../ui/views/widget/desktop_aura/x11_topmost_window_finder_interactive_uitest.cc",
347         ]
348       }
349       if (use_aura) {
350         deps += [ "//ui/touch_selection" ]
351       }
352     }
354     if (is_linux && !is_chromeos) {
355       # Desktop linux.
356       sources -= [
357         # TODO(port): This times out. Attempts have been made to fix the
358         # individual failures, but each time I disable a test from these
359         # suites, it seems like one or another starts timing out too.
360         "../browser/ui/views/keyboard_access_browsertest.cc",
361       ]
362     } else {
363       # Everything but desktop Linux.
364       sources += rebase_path(
365               chrome_tests_gypi_values.chrome_interactive_ui_test_non_desktop_linux_sources,
366               ".",
367               "//chrome")
368     }
370     if (is_chromeos) {
371       sources += rebase_path(
372               chrome_tests_gypi_values.chrome_interactive_ui_test_chromeos_sources,
373               ".",
374               "//chrome")
375       sources += [ "../browser/notifications/login_state_notification_blocker_chromeos_browsertest.cc" ]
376       sources -= [
377         # Use only the _chromeos version on ChromeOS.
378         "base/view_event_test_platform_part_ash.cc",
379       ]
381       deps += [
382         "//ash/resources",
383         "//chromeos",
384       ]
386       if (enable_nacl) {
387         deps += [
388           "//native_client/src/trusted/service_runtime/linux:munge_nacl_helper_bootstrap",
389           "//components/nacl:nacl_helper",
391           # '../components/nacl_nonsfi.gyp:nacl_helper_nonsfi',  TODO(GYP)
392         ]
393       }
395       if (is_chrome_branded) {
396         sources -= [
397           # These tests are failing on official cros bots. crbug.com/431450.
398           "../browser/ui/views/bookmarks/bookmark_bar_view_test.cc",
399         ]
400       }
401     } else {
402       # ChromeOS doesn't use panels, everybody else does.
403       sources += rebase_path(
404               chrome_tests_gypi_values.chrome_interactive_ui_test_panels_sources,
405               ".",
406               "//chrome")
408       # TODO(tapted): Include on mac when views panels are ported.
409       if (toolkit_views && !is_mac) {
410         sources += rebase_path(
411                 chrome_tests_gypi_values.chrome_interactive_ui_test_panels_views_sources,
412                 ".",
413                 "//chrome")
414       }
415     }
417     if (!is_linux) {
418       # Non-Linux platforms (Linux includes ChromeOS here).
419       sources += rebase_path(
420               chrome_tests_gypi_values.chrome_interactive_ui_test_non_linux_and_chromeos_sources,
421               ".",
422               "//chrome")
423     }
425     if (is_win) {
426       sources += rebase_path(
427               chrome_tests_gypi_values.chrome_interactive_ui_test_win_sources,
428               ".",
429               "//chrome")
430       deps += [
431         "//chrome:other_version",
432         "//third_party/isimpledom",
433         "//third_party/wtl",
434         "//ui/resources",
435       ]
437       configs -= [ "//build/config/win:default_incremental_linking" ]
438       configs +=
439           [ "//build/config/win:default_large_module_incremental_linking" ]
441       libs = [ "oleacc.lib" ]
442     }
444     if (is_mac) {
445       data_deps += [ "//chrome" ]
447       # TODO(mark): We really want this for all non-static library targets, but
448       # when we tried to pull it up to the common.gypi level, it broke other
449       # things like the ui and startup tests. *shrug*
450       ldflags += [ "-Wl,-ObjC" ]
451     }
453     if (cld_version == 2) {
454       # Interactive tests should use whatever CLD2 data access mode that the
455       # application embedder is using.
456       deps += [ "//third_party/cld_2:cld2_platform_impl" ]
457     }
459     if (use_x11) {
460       configs += [ "//build/config/linux:xtst" ]
461       data_deps += [ "//tools/xdisplaycheck" ]
462     }
464     if (enable_app_list) {
465       sources += rebase_path(
466               chrome_tests_gypi_values.chrome_interactive_ui_test_app_list_sources,
467               ".",
468               "//chrome")
469     }
471     if (use_ash) {
472       sources += rebase_path(
473               chrome_tests_gypi_values.chrome_interactive_ui_test_ash_sources,
474               ".",
475               "//chrome")
476       deps += [ "//ash:interactive_ui_test_support" ]
477     }
479     if (enable_notifications) {
480       sources += rebase_path(
481               chrome_tests_gypi_values.chrome_interactive_ui_test_notifications_sources,
482               ".",
483               "//chrome")
485       # Non-ChromeOS notifications tests (ChromeOS does not use cross-platform
486       # panels).
487       if (!is_chromeos) {
488         sources += [
489           "../browser/notifications/notification_browsertest.cc",
490           "../browser/notifications/platform_notification_service_browsertest.cc",
491         ]
492       }
494       if (is_android) {
495         sources -= [
496           # Android does not use the message center-based Notification system.
497           "../browser/notifications/message_center_notifications_browsertest.cc",
499           # TODO(peter): Enable the Notification browser tests.
500           "../browser/notifications/notification_browsertest.cc",
501           "../browser/notifications/platform_notification_service_browsertest.cc",
502         ]
503       }
504     }  # enable_notifications
506     if (!use_aura || is_chromeos) {
507       sources -=
508           [ "../../ui/views/corewm/desktop_capture_controller_unittest.cc" ]
509     }
510   }
512   source_set("sync_integration_test_support") {
513     testonly = true
514     sources = rebase_path(
515             chrome_tests_gypi_values.test_support_sync_integration_sources,
516             ".",
517             "//chrome")
518     public_deps = [
519       "//chrome/browser",
520     ]
521     deps = [
522       ":test_support",
523       "//base",
524       "//chrome",
525       "//components/invalidation/impl",
526       "//components/invalidation/impl:test_support",
527       "//net",
528       "//skia",
529       "//sync",
530       "//sync:test_support_sync_testserver",
531       "//sync:test_support_sync_fake_server",
532       "//ui/app_list:test_support",
533     ]
535     if (is_mac) {
536       sources -= [
537         "../browser/sync/test/integration/dictionary_helper.cc",
538         "../browser/sync/test/integration/dictionary_helper.h",
539         "../browser/sync/test/integration/dictionary_load_observer.cc",
540         "../browser/sync/test/integration/dictionary_load_observer.h",
541       ]
542     }
543     if (!enable_app_list) {
544       sources -= [
545         "../browser/sync/test/integration/sync_app_list_helper.cc",
546         "../browser/sync/test/integration/sync_app_list_helper.h",
547       ]
548     }
549     if (!is_chromeos) {
550       sources -= [
551         "../browser/sync/test/integration/wifi_credentials_helper.cc",
552         "../browser/sync/test/integration/wifi_credentials_helper.h",
553       ]
554     }
555   }
557   js2gtest("browser_tests_js_webui") {
558     test_type = "webui"
559     sources = rebase_path(
560             chrome_tests_gypi_values.chrome_browser_tests_webui_js_sources,
561             ".",
562             "//chrome")
563     if (is_chrome_branded) {
564       # crbug.com/230471
565       sources -= [ "data/webui/accessibility_audit_browsertest.js" ]
566     }
567     if (!is_chromeos) {
568       sources -= [ "data/webui/certificate_viewer_dialog_test.js" ]
569     }
570     if (!enable_app_list) {
571       sources -= [ "../browser/ui/webui/app_list/start_page_browsertest.js" ]
572     }
573     if (!enable_supervised_users) {
574       sources -=
575           [ "../browser/ui/webui/downloads_ui_supervised_browsertest.js" ]
576     }
577     if (!enable_print_preview) {
578       sources -= [ "data/webui/print_preview.js" ]
579     }
580     if (enable_media_router) {
581       sources +=
582           [ "data/webui/media_router/media_router_elements_browsertest.js" ]
583     }
584     deps = [
585       "//chrome/browser/ui",
586       "//skia",
587     ]
588     defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
589   }
591   # TODO(GYP): Delete this after we've converted everything to GN.
592   # The _run targets exist only for compatibility w/ GYP.
593   group("telemetry_gpu_test_run") {
594     testonly = true
595     deps = [
596       ":telemetry_gpu_test",
597     ]
598   }
600   group("telemetry_gpu_test") {
601     data_deps = [
602       "//chrome",
603       "//tools/telemetry:bitmaptools",
604     ]
606     data = [
607       "//content/test/gpu/",
608       "//content/test/data/gpu/",
610       # For GpuProcess.video
611       "//content/test/data/media/bear.ogv",
612       "//third_party/catapult/",
614       # For webgl_conformance
615       "//third_party/webgl/",
616       "//content/test/gpu/run_gpu_test.py",
618       # Generic telemetry deps
619       # TODO(GYP): These should probably be specified somewhere else
620       # and pulled in via a deps entry.
621       "//build/android/pylib/",
622       "//build/util/",
623       "//third_party/WebKit/PerformanceTests/resources/jquery.tablesorter.min.js",
624       "//third_party/WebKit/PerformanceTests/resources/statistics.js",
625       "//third_party/flot/jquery.flot.min.js",
626       "//third_party/webpagereplay/",
627       "//tools/telemetry/",
628     ]
630     if (is_win && (symbol_level == 1 || symbol_level == 2)) {
631       # TODO(GYP): These should be provided automatically through data_deps.
632       data += [ "$root_out_dir/chrome.exe.pdb" ]
633       if (is_component_build) {
634         data += [
635           "$root_out_dir/base.dll.pdb",
636           "$root_out_dir/blink_platform.dll.pdb",
637           "$root_out_dir/blink_web.dll.pdb",
638           "$root_out_dir/content.dll.pdb",
639         ]
640       }
641     }
642   }
644   # TODO(GYP): Delete this after we've converted everything to GN.
645   # The _run targets exist only for compatibility w/ GYP.
646   group("tab_capture_end2end_tests_run") {
647     testonly = true
648     deps = [
649       ":browser_tests",
650     ]
651   }
653   # TODO(GYP): Delete this after we've converted everything to GN.
654   # The _run targets exist only for compatibility w/ GYP.
655   group("browser_tests_run") {
656     testonly = true
657     data_deps = [ ":browser_tests" ]
658   }
660   test("browser_tests") {
661     sources = [
662       "base/browser_tests_main.cc",
663     ]
664     sources +=
665         rebase_path(chrome_tests_gypi_values.chrome_browser_tests_sources,
666                     ".",
667                     "//chrome")
668     sources += rebase_path(
669             chrome_tests_gypi_values.chrome_browser_extensions_test_support_sources,
670             ".",
671             "//chrome")
673     configs += [ "//build/config:precompiled_headers" ]
675     data = [
676       "data/",
677       "//chrome/browser/policy/test/asn1der.py",
678       "//chrome/browser/policy/test/policy_testserver.py",
679       "//chrome/common/extensions/docs/examples/apps/calculator/",
680       "//chrome/third_party/mock4js/",
681       "//content/test/data/",
682       "//google_apis/test/",
683       "//media/test/data/",
684       "//net/data/",
685       "//net/tools/testserver/",
686       "//ppapi/tests/test_case.html",
687       "//ppapi/tests/test_case.html.mock-http-headers",
688       "//ppapi/tests/test_page.css",
689       "//ppapi/tests/test_page.css.mock-http-headers",
690       "//testing/test_env.py",
691       "//third_party/accessibility-audit/axs_testing.js",
692       "//third_party/mocha/mocha.js",
693       "//third_party/pyftpdlib/",
694       "//third_party/pywebsocket/",
695       "//third_party/safe_browsing/",
696       "//third_party/simplejson/",
697       "//third_party/tlslite/",
698       "//ui/webui/resources/js/",
699       "$root_out_dir/pyproto/",
700       "$root_out_dir/browser_tests.pak",
701       "$root_out_dir/chrome_100_percent.pak",
702       "$root_out_dir/locales/",
703       "$root_out_dir/remoting/unittests/",
704       "$root_out_dir/resources.pak",
705       "$root_out_dir/resources/extension/",
706       "$root_out_dir/test_case.html",
707       "$root_out_dir/test_case.html.mock-http-headers",
708       "$root_out_dir/test_data/",
709       "$root_out_dir/test_page.css",
710       "$root_out_dir/test_page.css.mock-http-headers",
711       "$root_out_dir/test_url_loader_data/",
712     ]
714     deps = [
715       ":browser_tests_js_webui",
716       ":sync_integration_test_support",
717       ":test_support",
718       "//base",
719       "//base:i18n",
720       "//base/allocator",
721       "//base/test:test_support",
722       "//chrome:browser_tests_pak",
723       "//chrome:packed_extra_resources",
724       "//chrome:packed_resources",
725       "//chrome:resources",
726       "//chrome:strings",
727       "//chrome/browser",
728       "//chrome/browser/resources:extension_resource_demo",
729       "//chrome/common/extensions/api",
730       "//chrome/renderer",
731       "//components/autofill/content/browser:risk_proto",
732       "//components/autofill/content/browser/wallet:test_support",
733       "//components/autofill/content/renderer:test_support",
734       "//components/captive_portal:test_support",
735       "//components/dom_distiller/content:content_browser",
736       "//components/dom_distiller/core:test_support",
737       "//components/guest_view/browser:test_support",
738       "//components/resources",
739       "//components/strings",
740       "//components/translate/core/common",
741       "//components/user_manager:test_support",
742       "//crypto:platform",
743       "//crypto:test_support",
744       "//device/bluetooth:mocks",
745       "//device/serial:test_support",
746       "//extensions/common/api",
747       "//google_apis:test_support",
748       "//media",
749       "//media/base:test_support",
750       "//media/cast:test_support",
751       "//net",
752       "//net:test_support",
753       "//sdch",
754       "//skia",
755       "//sync",
756       "//sync:test_support_sync_api",
757       "//testing/gmock",
758       "//testing/gtest",
759       "//testing/perf",
760       "//third_party/cacheinvalidation",
761       "//third_party/icu",
762       "//third_party/leveldatabase",
763       "//third_party/libaddressinput",
764       "//third_party/libjingle",
765       "//third_party/safe_browsing:test_support",
766       "//third_party/webrtc/modules/desktop_capture",
767       "//third_party/widevine/cdm:version_h",
768       "//ui/accessibility:test_support",
769       "//ui/base:test_support",
770       "//ui/compositor:test_support",
771       "//ui/resources",
772       "//ui/web_dialogs:test_support",
773       "//v8",
774     ]
776     # TODO(rockot) bug 505926: The chrome_extensions_browsertests target should
777     # be deleted and this line removed. See the chrome_extensions_browsertests
778     # target for more.
779     deps += [ "//extensions:chrome_extensions_browsertests" ]
781     # Runtime dependencies
782     data_deps = [
783       "//ppapi:ppapi_tests",
784       "//ppapi:power_saver_test_plugin",
785       "//remoting/webapp:browser_test_resources",
786       "//remoting/webapp:unit_tests",
787       "//third_party/mesa:osmesa",
788       "//third_party/widevine/cdm:widevine_test_license_server",
789     ]
791     defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
793     if (!enable_nacl_browsertests) {
794       defines += [ "DISABLE_NACL_BROWSERTESTS" ]
795     }
797     # TODO(GYP) if (is_win) {
798     #       ['incremental_chrome_dll==1', {
799     #         'UseLibraryDependencyInputs': "true",
800     # }
802     if (cld_version == 2) {
803       # Because the browser_tests use translate, they need CLD data.
804       deps += [ "//third_party/cld_2:cld2_platform_impl" ]
805     }
807     if (!enable_one_click_signin) {
808       sources -= [ "../browser/ui/sync/one_click_signin_bubble_links_delegate_browsertest.cc" ]
809     }
810     if (!enable_nacl_browsertests) {
811       sources -= [ "../browser/extensions/api/hotword_private/hotword_private_apitest.cc" ]
812     } else if (enable_nacl) {
813       sources += [
814         "../browser/extensions/extension_nacl_browsertest.cc",
815         "../browser/nacl_host/test/gdb_debug_stub_browsertest.cc",
816       ]
817       deps += [ "//components/nacl/renderer/plugin:nacl_trusted_plugin" ]
819       if (enable_nacl_untrusted) {
820         sources += [
821           "nacl/nacl_browsertest.cc",
822           "nacl/nacl_browsertest_uma.cc",
823           "nacl/nacl_browsertest_util.cc",
824           "nacl/nacl_browsertest_util.h",
825           "nacl/pnacl_header_test.cc",
826           "nacl/pnacl_header_test.h",
827         ]
829         # TODO(GYP): Make NaCl work in other configs and update the irt
830         # dependency as appropriate. We should probably push this
831         # dependency into ppapi/native_client so that clients don't need
832         # to know all of the different toolchain options.
833         assert(current_cpu == "x64")
834         data_deps += [
835           # "test/data/nacl:shared_test_files",  # TODO(GYP) bug 512902
836           "//ppapi/native_client:irt",
837           "//ppapi:ppapi_nacl_tests",
839           # "../ppapi/ppapi_nacl.gyp:ppapi_nacl_tests",  # TODO(GYP) bug 512901
840           # "../ppapi/tests/extensions/extensions.gyp:ppapi_tests_extensions_background_keepalive",  # TODO(GYP) bug 512900
841           # "../ppapi/tests/extensions/extensions.gyp:ppapi_tests_extensions_media_galleries",  # TODO(GYP) bug 512900
842           # "../ppapi/tests/extensions/extensions.gyp:ppapi_tests_extensions_packaged_app",  # TODO(GYP) bug 512900
843         ]
844         if (is_chromeos) {
845           sources += [ "//third_party/liblouis/nacl_wrapper/liblouis_wrapper_browsertest.cc" ]
846           deps += [
847             "//chrome/browser/chromeos",
848             #'../third_party/liblouis/liblouis_nacl.gyp:liblouis_test_data',  TODO(GYP) bug 512906
849           ]
850         }
851       }
852       if (is_win || is_linux) {
853         sources += [ "../browser/nacl_host/test/nacl_gdb_browsertest.cc" ]
854         deps += [ "//chrome/browser/nacl_host/test:mock_nacl_gdb" ]
855       }
856       if (is_win) {
857         # TODO(halyavin) NaCl on Windows can't open debug stub socket in
858         # browser process as needed by this test. See http://crbug.com/157312.
859         sources -= [ "../browser/nacl_host/test/gdb_debug_stub_browsertest.cc" ]
860         deps += [
861           #'chrome.gyp:chrome_nacl_win64',  TODO(GYP) bug 512869
862         ]
863         configs -= [ "//build/config/win:default_incremental_linking" ]
864         configs +=
865             [ "//build/config/win:default_large_module_incremental_linking" ]
866       }
867       if (is_linux) {
868         deps += [
869           "//native_client/src/trusted/service_runtime/linux:munge_nacl_helper_bootstrap",
870           "//components/nacl:nacl_helper",
872           # "//components/nacl_nonsfi.gyp:nacl_helper_nonsfi",  # TODO(GYP) bug 512912.
873         ]
874       }
875     }
876     if (debug_devtools) {
877       defines += [ "DEBUG_DEVTOOLS=1" ]
878     }
879     if (use_ash) {
880       deps += [ "//ash:test_support" ]
881     }
882     if (use_aura || toolkit_views) {
883       deps += [ "//ui/events:test_support" ]
884     }
885     if (toolkit_views) {
886       sources += rebase_path(
887               chrome_tests_gypi_values.chrome_browser_tests_views_sources,
888               ".",
889               "//chrome")
890       deps += [ "//ui/views" ]
891       if (!is_mac) {
892         sources += rebase_path(
893                 chrome_tests_gypi_values.chrome_browser_tests_views_non_mac_sources,
894                 ".",
895                 "//chrome")
896       }
897     }
898     if (is_chromeos) {
899       sources += rebase_path(
900               chrome_tests_gypi_values.chrome_browser_tests_chromeos_sources,
901               ".",
902               "//chrome")
903       sources -= [
904         "../../apps/load_and_launch_browsertest.cc",
905         "../browser/printing/cloud_print/test/cloud_print_policy_browsertest.cc",
906         "../browser/printing/cloud_print/test/cloud_print_proxy_process_browsertest.cc",
908         # chromeos does not support profile list avatar menu
909         "../browser/profiles/profile_list_desktop_browsertest.cc",
910         "../browser/service_process/service_process_control_browsertest.cc",
912         # chromeos does not use cross-platform panels
913         "../browser/ui/panels/panel_extension_browsertest.cc",
915         # chromeos does not use the desktop user manager
916         "../browser/ui/webui/signin/user_manager_ui_browsertest.cc",
917       ]
918       deps += [
919         "//dbus",
920         "//dbus:test_support",
921         "//ui/login:resources",
922       ]
923     } else {
924       sources -= [
925         "../browser/extensions/api/enterprise_device_attributes/enterprise_device_attributes_apitest.cc",
926         "../browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_apitest_nss.cc",
927         "../browser/extensions/api/platform_keys/platform_keys_apitest_nss.cc",
928         "../browser/extensions/api/terminal/terminal_private_apitest.cc",
929         "../browser/invalidation/profile_invalidation_provider_factory_browsertest.cc",
930         "../browser/net/nss_context_chromeos_browsertest.cc",
931         "../browser/ui/ash/keyboard_controller_browsertest.cc",
932         "data/webui/certificate_viewer_ui_test-inl.h",
933       ]
934       if (toolkit_views) {
935         sources -= [ "../browser/ui/views/select_file_dialog_extension_browsertest.cc" ]
936       }
937     }
938     if (enable_configuration_policy) {
939       sources += rebase_path(
940               chrome_tests_gypi_values.chrome_browser_tests_policy_sources,
941               ".",
942               "//chrome")
943     }
944     if (enable_web_speech) {
945       sources += rebase_path(
946               chrome_tests_gypi_values.chrome_browser_tests_speech_sources,
947               ".",
948               "//chrome")
949     }
950     if (safe_browsing_mode == 1) {
951       sources += rebase_path(
952               chrome_tests_gypi_values.chrome_browser_tests_full_safe_browsing_sources,
953               ".",
954               "//chrome")
955     }
956     if (enable_captive_portal_detection) {
957       sources += [ "../browser/captive_portal/captive_portal_browsertest.cc" ]
958     }
959     if (!enable_webrtc) {
960       sources -= [
961         "../browser/extensions/api/webrtc_audio_private/webrtc_audio_private_browsertest.cc",
962         "../browser/extensions/api/webrtc_logging_private/webrtc_logging_private_apitest.cc",
963         "../browser/media/chrome_webrtc_browsertest.cc",
964         "../browser/media/chrome_webrtc_disable_encryption_flag_browsertest.cc",
965         "../browser/media/chrome_webrtc_getmediadevices_browsertest.cc",
966       ]
967     }
968     if (enable_media_router) {
969       sources += rebase_path(
970               chrome_tests_gypi_values.chrome_browser_tests_media_router_sources,
971               ".",
972               "//chrome")
973       deps += [ "//chrome/browser/media/router:test_support" ]
974     }
975     if (is_win) {
976       deps += [
977         "//chrome:other_version",
978         "//third_party/wtl",
979         "//ui/resources",
980       ]
981     } else {
982       sources -= [
983         "../app/chrome_command_ids.h",
984         "../app/chrome_dll_resource.h",
985         "../app/chrome_version.rc.version",
986         "../browser/media_galleries/fileapi/iapps_finder_impl_win_browsertest.cc",
987       ]
988     }
989     if (!is_chromeos && use_aura) {
990       sources -= [
991         # On Windows and Linux, we currently don't support enough of the
992         # ash environment to run these unit tests.
993         #
994         # TODO: enable these on windows and linux.
995         "../browser/ui/ash/accelerator_commands_browsertest.cc",
996         "../browser/ui/ash/accelerator_controller_browsertest.cc",
997         "../browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc",
998         "../browser/ui/ash/launcher/launcher_favicon_loader_browsertest.cc",
999         "../browser/ui/ash/shelf_browsertest.cc",
1000         "../browser/ui/views/frame/browser_non_client_frame_view_ash_browsertest.cc",
1001       ]
1002     }
1003     if (is_mac) {
1004       # TODO(mark): We really want this for all non-static library
1005       # targets, but when we tried to pull it up to the common.gypi
1006       # level, it broke other things like the ui and startup tests. *shrug*
1007       ldflags = [ "-Wl,-ObjC" ]
1009       # Other platforms only need
1010       # chrome_resources.gyp:{packed_extra_resources,packed_resources},
1011       # and can build this target standalone much faster.
1012       deps += [
1013         #'app_mode_app_support',  TODO(GYP)
1014         "//chrome",
1016         #'../components/components.gyp:breakpad_stubs',  TODO(GYP)
1017         "//third_party/ocmock",
1018       ]
1019       sources += [
1020         "../browser/media_galleries/fileapi/iphoto_data_provider_browsertest.cc",
1021         "../browser/renderer_host/chrome_render_widget_host_view_mac_history_swiper_browsertest.mm",
1022         "../browser/spellchecker/spellcheck_message_filter_platform_mac_browsertest.cc",
1023       ]
1024       sources -= [
1025         # TODO(groby): This test depends on hunspell and we cannot run it on
1026         # Mac, which does not use hunspell by default.
1027         "../browser/spellchecker/spellcheck_service_browsertest.cc",
1029         # TODO(rouslan): This test depends on the custom dictionary UI,
1030         # which is disabled on Mac.
1031         # TODO(GYP): This should be added somewhere first ...
1032         # "../browser/ui/webui/options/edit_dictionary_browsertest.js",
1034         # TODO(rouslan): This test depends on hunspell and we cannot run it
1035         # on Mac, which does use hunspell by default.
1036         # TODO(GYP): This should be added somewhere first ...
1037         # "../browser/ui/webui/options/language_options_dictionary_download_browsertest.js",
1039         # ProcessSingletonMac doesn"t do anything.
1040         "../browser/process_singleton_browsertest.cc",
1042         # This test depends on GetCommandLineForRelaunch, which is not
1043         # available on Mac.
1044         "../browser/printing/cloud_print/test/cloud_print_policy_browsertest.cc",
1046         # single-process mode hangs on Mac sometimes because of multiple UI
1047         # message loops. See 306348
1048         "../renderer/safe_browsing/phishing_classifier_browsertest.cc",
1049         "../renderer/safe_browsing/phishing_classifier_delegate_browsertest.cc",
1050         "../renderer/safe_browsing/phishing_dom_feature_extractor_browsertest.cc",
1051       ]
1052     }
1053     if (is_mac || is_win) {
1054       sources += [
1055         "../browser/extensions/api/networking_private/networking_private_apitest.cc",
1056         "../browser/extensions/api/networking_private/networking_private_service_client_apitest.cc",
1057         "../browser/media_galleries/fileapi/itunes_data_provider_browsertest.cc",
1058         "../browser/media_galleries/fileapi/picasa_data_provider_browsertest.cc",
1059       ]
1060       deps += [ "//components/wifi:test_support" ]
1061     }
1062     if (!is_posix || is_chromeos) {
1063       sources -= [ "../common/time_format_browsertest.cc" ]
1064     }
1065     if (is_android) {
1066       sources -= [
1067         "../browser/policy/cloud/component_cloud_policy_browsertest.cc",
1068         "../browser/prefs/pref_hash_browsertest.cc",
1069         "../renderer/spellchecker/spellcheck_provider_hunspell_unittest.cc",
1070         "../renderer/spellchecker/spellcheck_unittest.cc",
1071       ]
1072     }
1073     if (is_chromeos) {
1074       sources += [
1075         "../browser/extensions/api/networking_private/networking_private_apitest.cc",
1076         "../browser/extensions/api/networking_private/networking_private_chromeos_apitest.cc",
1077       ]
1078     }
1079     if (!is_android && !is_ios && enable_nacl_browsertests) {
1080       sources +=
1081           [ "../browser/copresence/chrome_whispernet_client_browsertest.cc" ]
1082       deps += [ "//components/copresence" ]
1083     }
1084     if (enable_app_list) {
1085       sources += rebase_path(
1086               chrome_tests_gypi_values.chrome_browser_tests_app_list_sources,
1087               ".",
1088               "//chrome")
1089     }
1090     if (enable_supervised_users) {
1091       sources += rebase_path(
1092               chrome_tests_gypi_values.chrome_browser_tests_supervised_user_sources,
1093               ".",
1094               "//chrome")
1095     }
1096     if (enable_pepper_cdms) {
1097       # Runtime dependencies.
1098       data_deps += [
1099         "//media/cdm/ppapi:clearkeycdmadapter",
1100         "//third_party/widevine/cdm:widevinecdmadapter",
1101       ]
1102     }
1103     if (!enable_print_preview) {
1104       sources -= [
1105         "../browser/extensions/api/cloud_print_private/cloud_print_private_apitest.cc",
1106         "../browser/printing/cloud_print/test/cloud_print_policy_browsertest.cc",
1107         "../browser/printing/cloud_print/test/cloud_print_proxy_process_browsertest.cc",
1108         "../browser/printing/print_preview_dialog_controller_browsertest.cc",
1109         "../browser/printing/print_preview_pdf_generated_browsertest.cc",
1110         "../browser/service_process/service_process_control_browsertest.cc",
1111         "../browser/ui/webui/print_preview/print_preview_ui_browsertest.cc",
1112         "data/webui/print_preview.cc",
1113         "data/webui/print_preview.h",
1114       ]
1115     }
1116     if (enable_mdns) {
1117       sources += [ "../browser/ui/webui/local_discovery/local_discovery_ui_browsertest.cc" ]
1118     }
1119     if (use_brlapi) {
1120       deps += [ "//build/linux:libbrlapi" ]
1121     } else {
1122       sources -= [ "../browser/extensions/api/braille_display_private/braille_display_private_apitest.cc" ]
1123     }
1124     if (is_chrome_branded) {
1125       sources -= [
1126         # These tests depend on single process mode, which is disabled in
1127         # official builds.
1128         "../renderer/safe_browsing/phishing_classifier_browsertest.cc",
1129         "../renderer/safe_browsing/phishing_classifier_delegate_browsertest.cc",
1130         "../renderer/safe_browsing/phishing_dom_feature_extractor_browsertest.cc",
1131       ]
1132     }
1133     if (!enable_autofill_dialog || is_android || is_ios) {
1134       deps -= [ "//third_party/libaddressinput" ]
1135     }
1136     if (enable_remoting) {
1137       sources += rebase_path(
1138               chrome_tests_gypi_values.chrome_browser_tests_remoting_sources,
1139               ".",
1140               "//chrome")
1141       #deps += [ "//remoting:remoting_webapp" ]  TODO(GYP)
1142     }
1143     if (use_x11) {
1144       deps += [ "//tools/xdisplaycheck" ]
1145     }
1146   }
1148   # TODO(GYP): Delete this after we've converted everything to GN.
1149   # The _run targets exist only for compatibility w/ GYP.
1150   group("sync_integration_tests_run") {
1151     testonly = true
1152     deps = [
1153       ":sync_integration_tests",
1154     ]
1155   }
1157   test("sync_integration_tests") {
1158     sources =
1159         rebase_path(chrome_tests_gypi_values.sync_integration_tests_sources,
1160                     ".",
1161                     "//chrome")
1163     data = [
1164       "//chrome/test/data/sync/",
1165       "//net/tools/testserver/",
1166       "//sync/tools/testserver/",
1167       "//third_party/pyftpdlib/",
1168       "//third_party/pywebsocket/",
1169       "//third_party/tlslite/",
1170       "$root_out_dir/pyproto/",
1171       "$root_out_dir/resources.pak",
1172     ]
1174     if (is_linux || is_win) {
1175       data += [
1176         "$root_out_dir/chrome_100_percent.pak",
1177         "$root_out_dir/locales/en-US.pak",
1178       ]
1179     }
1181     # TODO(phajdan.jr): Only temporary, to make transition easier.
1182     defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
1184     deps = [
1185       ":sync_integration_test_support",
1186       ":test_support",
1187       "//base/allocator",
1188       "//chrome:packed_extra_resources",
1189       "//chrome:packed_resources",
1190       "//chrome:resources",
1191       "//chrome:strings",
1192       "//chrome/common",
1193       "//chrome/renderer",
1194       "//crypto:platform",
1195       "//sync",
1196       "//testing/gmock",
1197       "//testing/gtest",
1198       "//third_party/icu",
1199       "//third_party/leveldatabase",
1200       "//third_party/WebKit/public:blink",
1201     ]
1203     data_deps = [ "//third_party/mesa:osmesa" ]
1205     if (cld_version == 2) {
1206       # Language detection is irrelevant to sync, so it can depend on any
1207       # implementation for CLD2. Dynamic is smaller, so go with dynamic.
1208       deps += [ "//third_party/cld_2:cld2_dynamic" ]
1209     }
1210     if (is_mac) {
1211       # Dictionary sync is disabled on Mac.
1212       sources -= [
1213         "../browser/sync/test/integration/multiple_client_dictionary_sync_test.cc",
1214         "../browser/sync/test/integration/single_client_dictionary_sync_test.cc",
1215         "../browser/sync/test/integration/two_client_dictionary_sync_test.cc",
1216       ]
1218       # The sync_integration_tests do not run on mac without this flag.
1219       # Search for comments about "xcode_settings" elsewhere in this file.
1220       ldflags = [ "-Wl,-ObjC" ]
1221     }
1222     if (is_win) {
1223       deps += [
1224         "//chrome:other_version",
1225         "//third_party/wtl",
1226         "//ui/resources",
1227       ]
1229       configs -= [ "//build/config/win:default_incremental_linking" ]
1230       configs +=
1231           [ "//build/config/win:default_large_module_incremental_linking" ]
1232     } else {
1233       sources -= [ "../app/chrome_version.rc.version" ]
1234     }
1235     if (!is_chromeos) {
1236       sources -= [
1237         "../browser/sync/test/integration/single_client_wifi_credentials_sync_test.cc",
1238         "../browser/sync/test/integration/two_client_wifi_credentials_sync_test.cc",
1239       ]
1240     }
1242     if (toolkit_views) {
1243       deps += [ "//ui/views" ]
1244     }
1245     if (enable_basic_printing || enable_print_preview) {
1246       deps += [ "//printing" ]
1247     }
1248     if (!enable_app_list) {
1249       sources -= [
1250         "../browser/sync/test/integration/single_client_app_list_sync_test.cc",
1251         "../browser/sync/test/integration/two_client_app_list_sync_test.cc",
1252       ]
1253     }
1254     if (!enable_supervised_users) {
1255       sources -= [ "../browser/sync/test/integration/single_client_supervised_user_settings_sync_test.cc" ]
1256     }
1257   }
1259   test("sync_performance_tests") {
1260     sources =
1261         rebase_path(chrome_tests_gypi_values.sync_performance_tests_sources,
1262                     ".",
1263                     "//chrome")
1265     defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
1267     deps = [
1268       ":sync_integration_test_support",
1269       "//base/allocator",
1270       "//crypto:platform",
1271       "//sync",
1272       "//testing/gmock",
1273       "//testing/gtest",
1274     ]
1276     if (cld_version == 2) {
1277       # Language detection is irrelevant to sync, so it can depend on any
1278       # implementation for CLD2. Dynamic is smaller, so go with dynamic.
1279       deps += [ "//third_party/cld_2:cld2_dynamic" ]
1280     }
1282     if (is_mac) {
1283       # Dictionary sync is disabled on Mac.
1284       sources -= [ "../browser/sync/test/integration/performance/dictionary_sync_perf_test.cc" ]
1286       # The sync_performance_tests do not run on mac without this flag.
1287       # Search for comments about "xcode_settings" elsewhere in this file.
1288       ldflags = [ "-Wl,-ObjC" ]
1289     }
1290     if (is_win) {
1291       deps += [
1292         "//chrome:other_version",
1293         "//chrome/installer/util:strings",
1294         "//third_party/wtl",
1295         "//ui/resources",
1296       ]
1297       configs -= [ "//build/config/win:default_incremental_linking" ]
1298       configs +=
1299           [ "//build/config/win:default_large_module_incremental_linking" ]
1300     } else {
1301       sources -= [ "../app/chrome_version.rc.version" ]
1302     }
1304     if (toolkit_views) {
1305       deps += [ "//ui/views" ]
1306     }
1307   }
1309   # Executable to measure time to load libraries.
1310   test("load_library_perf_tests") {
1311     sources = [
1312       "../browser/load_library_perf_test.cc",
1313     ]
1315     deps = [
1316       "//base/test:test_support_perf",
1317       "//testing/gtest",
1318       "//testing/perf",
1319       "//third_party/widevine/cdm:version_h",
1320     ]
1322     if (enable_pepper_cdms) {
1323       data_deps = [
1324         "//media/cdm/ppapi:clearkeycdmadapter",
1325         "//third_party/widevine/cdm:widevinecdmadapter",
1326       ]
1327     }
1328   }
1330   js2gtest("unit_tests_js") {
1331     test_type = "unit"
1332     sources = rebase_path(
1333             chrome_tests_unit_gypi_values.chrome_unit_tests_gtestjs_sources,
1334             ".",
1335             "//chrome")
1336     extra_js_files =
1337         rebase_path(chrome_tests_unit_gypi_values.chrome_unit_tests_js_sources,
1338                     ".",
1339                     "//chrome")
1340     if (is_chromeos) {
1341       sources += rebase_path(
1342               chrome_tests_unit_gypi_values.chrome_unit_tests_chromeos_gtestjs_sources,
1343               ".",
1344               "//chrome")
1345       extra_js_files += rebase_path(
1346               chrome_tests_unit_gypi_values.chrome_unit_tests_chromeos_js_sources,
1347               ".",
1348               "//chrome")
1349     }
1350   }
1352   # TODO(GYP): Delete this after we've converted everything to GN.
1353   # The _run targets exist only for compatibility w/ GYP.
1354   group("unit_tests_run") {
1355     testonly = true
1356     deps = [
1357       ":unit_tests",
1358     ]
1359   }
1361   test("unit_tests") {
1362     sources =
1363         rebase_path(chrome_tests_unit_gypi_values.chrome_unit_tests_sources,
1364                     ".",
1365                     "//chrome")
1367     configs += [ "//build/config:precompiled_headers" ]
1369     data = [
1370       "data/",
1371       "//base/test/data/",
1372       "//chrome/third_party/mock4js/",
1373       "//components/test/data/",
1374       "//extensions/test/data/",
1375       "//google_apis/test/data/",
1376       "//net/data/",
1377       "//net/tools/testserver/",
1378       "//third_party/accessibility-audit/axs_testing.js",
1379       "//third_party/hunspell_dictionaries/",
1380       "//third_party/pyftpdlib/",
1381       "//third_party/pywebsocket/",
1382       "//third_party/tlslite/",
1383       "//third_party/zlib/google/test/data/",
1384       "//tools/metrics/histograms/histograms.xml",
1385       "$root_out_dir/pyproto/google/",
1386       "$root_out_dir/test_data/chrome/browser/resources/google_now/",
1387       "$root_out_dir/test_data/chrome/browser/resources/print_preview/",
1388       "$root_out_dir/test_data/chrome/renderer/resources/extensions/",
1389       "$root_out_dir/test_data/ui/webui/",
1390       "$root_out_dir/resources.pak",
1391     ]
1392     if (is_android || is_linux || is_win) {
1393       data += [
1394         "$root_out_dir/chrome_100_percent.pak",
1395         "$root_out_dir/locales/en-US.pak",
1396       ]
1397     }
1399     defines = []
1401     deps = [
1402       # NOTE: New depndencies should generally be added in the OS!="ios"
1403       # dependencies block below, rather than here.
1404       # Unit tests should only depend on:
1405       # 1) everything that the chrome binaries depend on:
1406       "//chrome:browser_dependencies",
1407       "//chrome:child_dependencies",
1409       # 2) test-specific support libraries:
1410       ":test_support_unit",
1411       "//base/test:test_support",
1412       "//chrome/test:test_support",
1413       "//components/resources",
1414       "//components/content_settings/core/test:test_support",
1415       "//content/test:test_support",
1416       "//content/public/app:both",
1417       "//crypto:platform",
1418       "//crypto:test_support",
1419       "//net",
1420       "//net:test_support",
1421       "//sync:test_support_sync_api",
1422       "//sync:test_support_sync_core",
1423       "//sync:test_support_sync_internal_api",
1424       "//testing/gmock",
1425       "//testing/gtest",
1427       # 3) anything tests directly depend on
1428       "//base/allocator",
1429       "//chrome:resources",
1430       "//chrome:strings",
1431       "//courgette:courgette_lib",
1432       "//google_apis",
1433       "//skia",
1434       "//third_party/cacheinvalidation",
1435       "//third_party/icu",
1436       "//third_party/libxml",
1437       "//ui/base:test_support",
1438       "//ui/gfx:test_support",
1439       "//ui/resources",
1440     ]
1441     data_deps = []
1443     # TODO(GYP) Windows stuff
1444     # ['incremental_chrome_dll==1', {
1445     #   'UseLibraryDependencyInputs': "true",
1447     if (!is_ios) {
1448       deps += [
1449         ":unit_tests_js",
1450         "//components/audio_modem:test_support",
1451         "//components/autofill/content/browser/wallet:test_support",
1452         "//components/autofill/content/renderer:test_support",
1453         "//components/metrics/proto",
1454         "//components/data_reduction_proxy/core/browser:test_support",
1455         "//components/safe_json:test_support",
1456         "//components/webdata_services:test_support",
1457         "//components/strings",
1458         "//device/bluetooth:mocks",
1459         "//content/app/resources",
1460         "//gpu:test_support",
1461         "//media:test_support",
1463         #'../ppapi/ppapi_internal.gyp:ppapi_unittest_shared',  TODO(GYP)
1464         "//third_party/leveldatabase",
1465         "//third_party/libaddressinput",
1466         "//third_party/libjingle",
1467         "//third_party/libphonenumber",
1468         "//third_party/webrtc/modules/desktop_capture",
1469         "//tools/json_schema_compiler/test",
1470         "//ui/gl",
1471         "//v8",
1472       ]
1473     }
1475     if (is_android) {
1476       deps -= [ "//third_party/libaddressinput" ]
1478       # Some android targets still depend on --gc-sections to link.
1479       # TODO: remove --gc-sections for Debug builds (crbug.com/159847).
1480       ldflags = [ "-Wl,--gc-sections" ]
1481       deps += [ "//testing/android/native_test:native_test_native_code" ]
1482       isolate_file = "../unit_tests.isolate"
1483     } else {
1484       sources += rebase_path(
1485               chrome_tests_unit_gypi_values.chrome_unit_tests_non_android_sources,
1486               ".",
1487               "//chrome")
1488       sources -= [ "../browser/download/download_request_infobar_delegate_unittest.cc" ]
1489     }
1490     if (is_ios || is_chromeos) {
1491       sources -=
1492           [ "../browser/metrics/signin_status_metrics_provider_unittest.cc" ]
1493     }
1494     if (enable_background) {
1495       sources += rebase_path(
1496               chrome_tests_unit_gypi_values.chrome_unit_tests_background_sources,
1497               ".",
1498               "//chrome")
1499     }
1500     if (enable_spellcheck) {
1501       sources += rebase_path(
1502               chrome_tests_unit_gypi_values.chrome_unit_tests_spellchecker_sources,
1503               ".",
1504               "//chrome")
1505       if (is_mac && !is_ios) {
1506         deps += [ "//third_party/hunspell" ]
1507       }
1508     }
1510     if (enable_one_click_signin) {
1511       sources += [
1512         "../browser/ui/sync/one_click_signin_sync_observer_unittest.cc",
1513         "../browser/ui/sync/one_click_signin_sync_starter_unittest.cc",
1514       ]
1515     }
1517     if (enable_extensions) {
1518       sources += rebase_path(
1519               chrome_tests_unit_gypi_values.chrome_unit_tests_extensions_sources,
1520               ".",
1521               "//chrome")
1522       deps += [
1523         "//chrome/common/extensions/api",
1524         "//device/usb:mocks",
1525         "//extensions:extensions_resources",
1526         "//extensions/strings",
1527       ]
1528       if (enable_configuration_policy) {
1529         sources += rebase_path(
1530                 chrome_tests_unit_gypi_values.chrome_unit_tests_extensions_policy_sources,
1531                 ".",
1532                 "//chrome")
1533       }
1534       if (!is_chromeos) {
1535         sources += rebase_path(
1536                 chrome_tests_unit_gypi_values.chrome_unit_tests_extensions_non_chromeos_sources,
1537                 ".",
1538                 "//chrome")
1539       }
1540     }
1541     if (toolkit_views) {
1542       deps += [
1543         "//components/web_modal:test_support",
1544         "//ui/views",
1545         "//ui/views:test_support",
1546       ]
1547       sources += rebase_path(
1548               chrome_tests_unit_gypi_values.chrome_unit_tests_views_sources,
1549               ".",
1550               "//chrome")
1551       if (!is_chromeos && (!is_mac || mac_views_browser)) {
1552         sources += rebase_path(
1553                 chrome_tests_unit_gypi_values.chrome_unit_tests_views_non_chromeos_sources,
1554                 ".",
1555                 "//chrome")
1556       }
1557       if (!is_mac) {
1558         sources += rebase_path(
1559                 chrome_tests_unit_gypi_values.chrome_unit_tests_views_non_mac_sources,
1560                 ".",
1561                 "//chrome")
1562       }
1563     }
1564     if (use_ash) {
1565       sources += rebase_path(
1566               chrome_tests_unit_gypi_values.chrome_unit_tests_ash_sources,
1567               ".",
1568               "//chrome")
1569       deps += [
1570         "//ash:test_support",
1571         "//ash/resources",
1572         "//ash/strings",
1573       ]
1575       # We eventually want to compile both in Win Aura builds, see
1576       # http://crbug.com/155545.
1577       if (!is_win) {
1578         sources -= [ "../browser/ui/window_sizer/window_sizer_unittest.cc" ]
1579       }
1580     }
1581     if (use_aura) {
1582       sources += [ "//ui/views/controls/webview/webview_unittest.cc" ]
1583       deps += [
1584         "//ui/wm",
1585         "//ui/aura:test_support",
1586         "//ui/views:test_support",
1587       ]
1588     }
1589     if (!is_chromeos && is_linux) {
1590       sources += rebase_path(
1591               chrome_tests_unit_gypi_values.chrome_unit_tests_desktop_linux_sources,
1592               ".",
1593               "//chrome")
1594     }
1595     if (!is_chromeos && !use_ozone && is_linux) {
1596       deps += [
1597         "//chrome/browser/ui/libgtk2ui",
1598         "//build/linux:gio",
1599       ]
1600     }
1602     if (enable_task_manager) {
1603       sources += rebase_path(
1604               chrome_tests_unit_gypi_values.chrome_unit_tests_task_manager_sources,
1605               ".",
1606               "//chrome")
1607     }
1608     if (enable_mdns) {
1609       sources += rebase_path(
1610               chrome_tests_unit_gypi_values.chrome_unit_tests_mdns_sources,
1611               ".",
1612               "//chrome")
1613     }
1614     if (enable_service_discovery) {
1615       sources += rebase_path(
1616               chrome_tests_unit_gypi_values.chrome_unit_tests_service_discovery_sources,
1617               ".",
1618               "//chrome")
1619     }
1620     if (enable_configuration_policy) {
1621       sources += rebase_path(
1622               chrome_tests_unit_gypi_values.chrome_unit_tests_configuration_policy_sources,
1623               ".",
1624               "//chrome")
1625       if (is_chromeos) {
1626         sources -=
1627             [ "../browser/policy/cloud/user_policy_signin_service_unittest.cc" ]
1628       } else if (is_android) {
1629         sources -= [ "../browser/policy/policy_path_parser_unittest.cc" ]
1630       }
1631       if (!is_android && !is_ios && !is_chromeos) {
1632         sources +=
1633             [ "../browser/net/disk_cache_dir_policy_handler_unittest.cc" ]
1634       }
1635       if (!is_android && !is_ios) {
1636         sources +=
1637             [ "../browser/download/download_dir_policy_handler_unittest.cc" ]
1638       }
1639     }
1640     if (enable_web_speech) {
1641       sources += rebase_path(
1642               chrome_tests_unit_gypi_values.chrome_unit_tests_speech_sources,
1643               ".",
1644               "//chrome")
1645     }
1646     if (enable_notifications) {
1647       sources += rebase_path(
1648               chrome_tests_unit_gypi_values.chrome_unit_tests_notifications_sources,
1649               ".",
1650               "//chrome")
1651       if (is_android) {
1652         sources -= [
1653           # Android does not use the Message Center notification system.
1654           "../browser/notifications/message_center_notifications_unittest.cc",
1655           "../browser/notifications/message_center_settings_controller_unittest.cc",
1656         ]
1657       }
1658     }
1659     if (safe_browsing_mode == 1) {
1660       # TODO(sgurun): enable tests for safe_browsing==2.
1661       sources += rebase_path(
1662               chrome_tests_unit_gypi_values.chrome_unit_tests_full_safe_browsing_sources + chrome_tests_unit_gypi_values.chrome_unit_tests_shared_safe_browsing_sources,
1663               ".",
1664               "//chrome")
1665       deps += [ ":test_proto" ]
1666     } else if (safe_browsing_mode == 3) {
1667       sources += rebase_path(
1668               chrome_tests_unit_gypi_values.chrome_unit_tests_mobile_extended_safe_browsing_sources + chrome_tests_unit_gypi_values.chrome_unit_tests_shared_safe_browsing_sources,
1669               ".",
1670               "//chrome")
1671     }
1672     if (enable_autofill_dialog && !is_android) {
1673       sources += rebase_path(
1674               chrome_tests_unit_gypi_values.chrome_unit_tests_autofill_dialog_sources,
1675               ".",
1676               "//chrome")
1677     }
1678     if (enable_plugins) {
1679       sources += rebase_path(
1680               chrome_tests_unit_gypi_values.chrome_unit_tests_plugins_sources,
1681               ".",
1682               "//chrome")
1683     }
1684     if (enable_print_preview) {
1685       sources += rebase_path(
1686               chrome_tests_unit_gypi_values.chrome_unit_tests_print_preview_sources,
1687               ".",
1688               "//chrome")
1689     }
1690     if (enable_captive_portal_detection) {
1691       sources += rebase_path(
1692               chrome_tests_unit_gypi_values.chrome_unit_tests_captive_portal_sources,
1693               ".",
1694               "//chrome")
1695     }
1696     if (enable_session_service) {
1697       sources += rebase_path(
1698               chrome_tests_unit_gypi_values.chrome_unit_tests_session_service_sources,
1699               ".",
1700               "//chrome")
1701     }
1702     if (enable_media_router) {
1703       sources += rebase_path(
1704               chrome_tests_unit_gypi_values.chrome_unit_tests_media_router_sources,
1705               ".",
1706               "//chrome")
1707       deps += [ "//chrome/browser/media/router:test_support" ]
1708       if (!is_android) {
1709         sources += rebase_path(
1710                 chrome_tests_unit_gypi_values.chrome_unit_tests_media_router_non_android_sources,
1711                 ".",
1712                 "//chrome")
1713       }
1714       if (!toolkit_views) {
1715         sources -= [ "../browser/ui/views/media_router/media_router_ui_browsertest.cc" ]
1716       }
1717     }
1718     if (enable_webrtc) {
1719       sources += rebase_path(
1720               chrome_tests_unit_gypi_values.chrome_unit_tests_webrtc_sources,
1721               ".",
1722               "//chrome")
1723     }
1724     if (is_chromeos) {
1725       deps += [ "//chrome/browser/chromeos:unit_tests" ]
1726       sources -= [
1727         "../browser/signin/signin_global_error_unittest.cc",
1728         "../browser/signin/signin_manager_unittest.cc",
1729       ]
1730     }
1731     if (use_x11) {
1732       deps += [ "//ui/events/devices" ]
1733       data_deps += [ "//tools/xdisplaycheck" ]
1734     } else {
1735       sources -= [ "../browser/password_manager/password_store_x_unittest.cc" ]
1736     }
1737     if (cld_version == 2) {
1738       # Unit tests should be independent of the CLD2 access mechanism, just use
1739       # static for simplicity.
1740       deps += [ "//third_party/cld_2:cld2_static" ]
1741     }
1742     if (is_desktop_linux && current_cpu == "x64") {
1743       # Only add this test for 64 bit builds because otherwise we need the 32
1744       # bit library on 64 bit systems when running this test.
1745       sources +=
1746           [ "../browser/password_manager/native_backend_gnome_x_unittest.cc" ]
1747       configs += [
1748         "//chrome/browser:gnome_keyring",
1749         "//chrome/browser:gnome_keyring_direct",
1750       ]
1751     }
1752     if (is_linux && !is_chromeos) {
1753       sources +=
1754           [ "../browser/password_manager/native_backend_libsecret_unittest.cc" ]
1755     }
1756     if (is_linux && use_aura) {
1757       deps += [
1758         "//dbus",
1759         "//dbus:test_support",
1760         "//ui/aura:test_support",
1761       ]
1762     }
1763     if (is_linux && is_chrome_branded && current_cpu == "x86") {
1764       ldflags = [ "-Wl,--strip-debug" ]
1765     }
1766     if (is_mac) {
1767       sources += rebase_path(
1768               chrome_tests_unit_gypi_values.chrome_unit_tests_mac_sources,
1769               ".",
1770               "//chrome")
1771       sources -= [
1772         "../browser/ui/tests/ui_gfx_image_unittest.cc",
1773         "../renderer/spellchecker/spellcheck_provider_hunspell_unittest.cc",
1774         "../tools/convert_dict/convert_dict_unittest.cc",
1775       ]
1777       # The test fetches resources which means Mac need the app bundle to exist
1778       # on disk so it can pull from it.
1779       deps += [
1780         "//third_party/google_toolbox_for_mac",
1781         "//third_party/ocmock",
1782       ]
1784       # TODO(mark): We really want this for all non-static library targets,
1785       # but when we tried to pull it up to the common.gypi level, it broke
1786       # other things like the ui and startup tests. *shrug*
1787       ldflags = [ "-Wl,-ObjC" ]
1788     }
1789     if (!is_mac && !is_ios) {
1790       deps += [
1791         "//chrome/tools/convert_dict:lib",
1792         "//chrome:packed_extra_resources",
1793         "//chrome:packed_resources",
1794         "//third_party/hunspell",
1795       ]
1796     }
1797     if (is_win || is_mac) {
1798       sources += rebase_path(
1799               chrome_tests_unit_gypi_values.chrome_unit_tests_win_mac_sources,
1800               ".",
1801               "//chrome")
1802     }
1803     if (is_win || is_mac || is_chromeos) {
1804       sources += [ "../common/extensions/api/networking_private/networking_private_crypto_unittest.cc" ]
1805     }
1806     if (enable_rlz_support) {
1807       sources += [ "../browser/rlz/chrome_rlz_tracker_delegate_unittest.cc" ]
1808       deps += [
1809         "//chrome/browser:rlz",
1810         "//components/rlz",
1811         "//rlz:test_support",
1812       ]
1813     }
1814     if (is_win) {
1815       # The PDB gets too large for incremental linking.
1816       configs -= [ "//build/config/win:default_incremental_linking" ]
1817       configs += [ "//build/config/win:no_incremental_linking" ]
1819       sources += rebase_path(
1820               chrome_tests_unit_gypi_values.chrome_unit_tests_win_sources,
1821               ".",
1822               "//chrome")
1823       deps += [
1824         #'browser/safe_browsing/incident_reporting/verifier_test/verifier_unittest.gyp:verifier_test_dll_1',  TODO(GYP) bug 512919
1825         #'browser/safe_browsing/incident_reporting/verifier_test/verifier_unittest.gyp:verifier_test_dll_2',  TODO(GYP) bug 512919
1826         "//chrome:other_version",
1827         "//chrome_elf:blacklist_test_dll_1",
1828         "//chrome/installer/util:strings",
1829         "//third_party/iaccessible2",
1830         "//third_party/isimpledom",
1831         "//third_party/wtl",
1832         "//ui/resources",
1833       ]
1835       libs = [
1836         "comsupp.lib",
1837         "oleacc.lib",
1838         "rpcrt4.lib",
1839         "urlmon.lib",
1840         "winmm.lib",
1841       ]
1842       if (!is_chrome_branded) {
1843         sources -= [ "../browser/google/google_update_win_unittest.cc" ]
1844       }
1845     }
1846     if (is_android || is_ios) {
1847       sources -= [
1848         "../browser/devtools/device/webrtc/devtools_bridge_instances_request_unittest.cc",
1849         "../browser/ui/sync/sync_promo_ui_unittest.cc",
1850       ]
1851     } else {
1852       deps += [ "//chrome/tools/profile_reset:jtl_compiler_lib" ]
1853     }
1854     if (!is_android && !is_chromeos) {
1855       sources += rebase_path(
1856               chrome_tests_unit_gypi_values.chrome_unit_tests_non_android_or_chromeos_sources,
1857               ".",
1858               "//chrome")
1859     }
1860     if (enable_themes) {
1861       sources += rebase_path(
1862               chrome_tests_unit_gypi_values.chrome_unit_tests_themes_sources,
1863               ".",
1864               "//chrome")
1865     }
1866     if (!is_android && (use_nss_certs || use_openssl_certs)) {
1867       sources += [ "../common/net/x509_certificate_model_unittest.cc" ]
1868     }
1869     if (enable_supervised_users) {
1870       sources += rebase_path(
1871               chrome_tests_unit_gypi_values.chrome_unit_tests_supervised_user_sources,
1872               ".",
1873               "//chrome")
1874     }
1875     if (enable_supervised_users && !is_android && !is_ios) {
1876       sources += rebase_path(
1877               chrome_tests_unit_gypi_values.chrome_unit_tests_supervised_user_legacy_sources,
1878               ".",
1879               "//chrome")
1880     }
1881     if (safe_browsing_mode == 1 && enable_extensions) {
1882       sources += [ "../browser/extensions/blacklist_unittest.cc" ]
1883     }
1884     if (cld_version == 1) {
1885       sources += [ "//third_party/cld/encodings/compact_lang_det/compact_lang_det_unittest_small.cc" ]
1886       defines += [ "CLD_WINDOWS" ]
1887       deps += [ "//third_party/cld" ]
1888     }
1889     if (enable_app_list) {
1890       sources += rebase_path(
1891               chrome_tests_unit_gypi_values.chrome_unit_tests_app_list_sources,
1892               ".",
1893               "//chrome")
1894       deps += [ "//ui/app_list:test_support" ]
1895     }
1896     if (enable_app_list && is_chromeos) {
1897       sources += rebase_path(
1898               chrome_tests_unit_gypi_values.chrome_unit_tests_app_list_chromeos_sources,
1899               ".",
1900               "//chrome")
1901     }
1902     if (enable_plugins && !enable_plugin_installation) {
1903       sources -= [ "../browser/plugins/plugin_installer_unittest.cc" ]
1904     }
1905   }
1907   if (is_win || (is_linux && !is_chromeos)) {
1908     # TODO(GYP): Figure out which of these work and are needed on other
1909     # platforms.
1910     test("chrome_app_unittests") {
1911       sources = [
1912         "../app/chrome_watcher_client_unittest_win.cc",
1913         "../app/chrome_watcher_client_win.cc",
1914         "../app/chrome_watcher_command_line_unittest_win.cc",
1915         "../app/chrome_watcher_command_line_win.cc",
1916         "../app/delay_load_hook_unittest_win.cc",
1917         "../app/delay_load_hook_win.cc",
1918         "../app/delay_load_hook_win.h",
1919         "../app/signature_validator_win.cc",
1920         "../app/signature_validator_win.h",
1921         "../app/signature_validator_win_unittest.cc",
1922         "../common/crash_keys.cc",
1923         "../common/crash_keys.h",
1924       ]
1926       deps = [
1927         ":test_support",
1928         "//breakpad:client",
1929         "//chrome/browser",
1930         "//chrome/child",
1931         "//components/crash_keys",
1932         "//base/test:run_all_unittests",
1933         "//base/test:test_support",
1934       ]
1935       if (cld_version == 2) {
1936         # Use whatever CLD2 data access mode that the
1937         # application embedder is using.
1938         deps += [ "//third_party/cld_2:cld2_platform_impl" ]
1939       }
1940     }
1942     test("performance_browser_tests") {
1943       sources = rebase_path(
1944               chrome_tests_gypi_values.performance_browser_tests_sources,
1945               ".",
1946               "//chrome")
1948       defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
1950       deps = [
1951         ":test_support",
1952         "//base",
1953         "//base:i18n",
1954         "//base/test:test_support",
1955         "//chrome/browser",
1956         "//chrome/renderer",
1957         "//components/about_handler",
1958         "//components/autofill/content/browser/wallet:test_support",
1959         "//components/autofill/content/renderer:test_support",
1960         "//media/cast:test_support",
1961         "//testing/gmock",
1962         "//testing/gtest",
1963         "//testing/perf",
1964       ]
1966       if (is_win) {
1967         configs -= [ "//build/config/win:default_incremental_linking" ]
1968         configs +=
1969             [ "//build/config/win:default_large_module_incremental_linking" ]
1970       } else {
1971         sources -= [
1972           "../app/chrome_command_ids.h",
1974           #"../app/chrome_dll.rc",
1975           #"../app/chrome_dll_resource.h",
1976           "../app/chrome_version.rc.version",
1977         ]
1978       }
1979       if (!is_mac) {
1980         sources -= [ "perf/mach_ports_performancetest.cc" ]
1981       }
1983       if (cld_version == 2) {
1984         # Use whatever CLD2 data access mode that the
1985         # application embedder is using.
1986         deps += [ "//third_party/cld_2:cld2_platform_impl" ]
1987       }
1988     }
1989   }
1992 source_set("test_support_unit") {
1993   testonly = true
1994   sources = [
1995     "../browser/sync/glue/session_sync_test_helper.cc",
1996     "../browser/sync/glue/session_sync_test_helper.h",
1997     "base/run_all_unittests.cc",
1998   ]
2000   deps = [
2001     ":test_support",
2002     "//base",
2003     "//chrome:resources",
2004     "//chrome:strings",
2005     "//chrome/browser",
2006     "//chrome/common",
2007     "//mojo/environment:chromium",
2008     "//third_party/mojo/src/mojo/edk/system",
2009   ]
2011   if (!is_android && use_ash) {
2012     sources += rebase_path(
2013             chrome_tests_unit_gypi_values.chrome_test_support_unit_ash_sources,
2014             ".",
2015             "//chrome")
2016   }