Index: ios/chrome/test/earl_grey/chrome_ios_eg_test.gni |
diff --git a/ios/chrome/test/earl_grey/chrome_ios_eg_test.gni b/ios/chrome/test/earl_grey/chrome_ios_eg_test.gni |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c5d7fb91f3cadd5444340925605dc2dd1904c13d |
--- /dev/null |
+++ b/ios/chrome/test/earl_grey/chrome_ios_eg_test.gni |
@@ -0,0 +1,141 @@ |
+# Copyright 2016 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/mac/tweak_info_plist.gni") |
+import("//ios/build/chrome_build.gni") |
+import("//ios/public/provider/chrome/browser/build_config.gni") |
+import("//ios/third_party/earl_grey/ios_eg_test.gni") |
+ |
+# Template wrapping ios_eg_test, setting default values for EarlGrey test |
+# based on //ios/chrome/app:chrome. |
+# |
+# Arguments: |
+# |
+# info_plist: |
+# (optional) string, path to the Info.plist file that will be used for |
+# the bundle. |
+# |
+# info_plist_target: |
+# (optional) string, if the info_plist is generated from an action, |
+# rather than a regular source file, specify the target name in lieu |
+# of info_plist. The two arguments are mutually exclusive. |
+# |
+# extra_info_plists: |
+# (optional) string array, extra list of plist files that will be merged |
+# and tweaked; ignored if either info_plist or info_plist_target is set. |
+# |
+# entitlements_path: |
+# (optional) path to the template to use to generate the application |
+# entitlements by performing variable substitutions, defaults to |
+# //build/config/ios/entitlements.plist. |
+# |
+# entitlements_target: |
+# (optional) label of the target generating the application |
+# entitlements (must generate a single file as output); cannot be |
+# defined if entitlements_path is set. |
+# |
+# deps |
+# list of labels to depends on. |
+# |
+# This template defines two targets, one named "${target_name}" is the EarlGrey |
+# test application, and the other named "${target_name}_deps_group" is a group |
+# target that depends on the template "deps" property (used to implement the |
+# test suite running the FLAKY_ tests). |
+# |
+template("chrome_ios_eg_test") { |
+ if (!defined(entitlements_path) && !defined(entitlements_target)) { |
+ _target_name = target_name |
+ _tweak_entitlements = target_name + "_tweak_entitlements" |
+ compile_plist(_tweak_entitlements) { |
+ format = "xml1" |
+ substitutions = [ "IOS_BUNDLE_ID_PREFIX=$ios_app_bundle_id_prefix" ] |
+ output_name = "$target_gen_dir/$_target_name.entitlements" |
+ plist_templates = |
+ [ "//ios/chrome/test/earl_grey/resources/Chrome.entitlements" ] |
+ } |
+ } |
+ |
+ if (!defined(info_plist) && !defined(info_plist_target)) { |
+ _tweak_info_plist = target_name + "_tweak_info_plist" |
+ tweak_info_plist(_tweak_info_plist) { |
+ info_plists = [ |
+ "//ios/chrome/app/resources/Info.plist", |
+ "//ios/chrome/app/resources/EarlGreyAddition+Info.plist", |
+ ] |
+ if (ios_chrome_info_plist_additions != []) { |
+ info_plists += ios_chrome_info_plist_additions |
+ } |
+ if (defined(invoker.extra_info_plists)) { |
+ info_plists += invoker.extra_info_plists |
+ } |
+ args = [ |
+ "--breakpad=$breakpad_enabled_as_int", |
+ "--branding=$chromium_short_name", |
+ "--version-overrides=MINOR=9999", |
+ ] |
+ } |
+ } |
+ |
+ _deps_group_name = target_name + "_deps_group" |
+ group(_deps_group_name) { |
+ testonly = true |
+ public_deps = invoker.deps |
+ if (defined(invoker.public_deps)) { |
+ public_deps += invoker.public_deps |
+ } |
+ } |
+ |
+ ios_eg_test(target_name) { |
+ forward_variables_from(invoker, |
+ "*", |
+ [ |
+ "deps", |
+ "entitlements_path", |
+ "entitlements_target", |
+ "eg_main_application_delegate", |
+ "info_plist", |
+ "info_plist_target", |
+ "public_deps", |
+ ]) |
+ |
+ if (!defined(entitlements_path) && !defined(entitlements_target)) { |
+ entitlements_target = ":$_tweak_entitlements" |
+ } |
+ |
+ if (!defined(info_plist) && !defined(info_plist_target)) { |
+ info_plist_target = ":$_tweak_info_plist" |
+ } |
+ |
+ _eg_main_application_delegate = "MainApplicationDelegate" |
+ if (defined(invoker.eg_main_application_delegate)) { |
+ _eg_main_application_delegate = invoker.eg_main_application_delegate |
+ } |
+ |
+ deps = [ |
+ ":$_deps_group_name", |
+ "//ios/chrome/app:main", |
+ "//ios/chrome/test/earl_grey:hooks", |
+ "//ios/testing:http_server_bundle_data", |
+ ] |
+ if (!defined(bundle_deps)) { |
+ bundle_deps = [] |
+ } |
+ bundle_deps += [ "//ios/chrome/app/resources" ] |
+ |
+ if (!defined(extra_substitutions)) { |
+ extra_substitutions = [] |
+ } |
+ extra_substitutions += [ |
+ "CHROMIUM_BUNDLE_ID=gtest.$target_name", |
+ "CHROMIUM_HANDOFF_ID=$chromium_handoff_id", |
+ "CHROMIUM_SHORT_NAME=$target_name", |
+ "CHROMIUM_URL_SCHEME_1=$url_unsecure_scheme", |
+ "CHROMIUM_URL_SCHEME_2=$url_secure_scheme", |
+ "CHROMIUM_URL_SCHEME_3=$url_x_callback_scheme", |
+ "CHROMIUM_URL_SCHEME_4=$url_channel_scheme", |
+ "EG_MAIN_APPLICATION_DELEGATE=$_eg_main_application_delegate", |
+ "SSOAUTH_URL_SCHEME=$url_ssoauth_scheme", |
+ ] |
+ } |
+} |