Commit 3e2be57d authored by PKH's avatar PKH Committed by Commit Bot

[Android Refactor] Make adding instrumentation tests to shell_apk_javatests easier

This CL splits the webapk_java GN template into two targets:
1) webapk_java
- Contains most of the source files of the old webapk_java template
- Does not depend on compiled_in_runtime_library_java
- shell_apk_javatests depends on webapk_java
2) webapk_with_service_java
- depends on webapk_java and compiled_in_runtime_library_java

BUG=817263

Change-Id: If234e939fc3ba5119dd9290256fab3a34c80b2fc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1585114
Commit-Queue: Peter Kotwicz <pkotwicz@chromium.org>
Reviewed-by: default avatarYaron Friedman <yfriedman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#654691}
parent 1dbda1ca
...@@ -27,11 +27,9 @@ android_library("compiled_in_runtime_library_java") { ...@@ -27,11 +27,9 @@ android_library("compiled_in_runtime_library_java") {
java_files = [ "src/org/chromium/webapk/lib/runtime_library/IWebApkApi.java" ] java_files = [ "src/org/chromium/webapk/lib/runtime_library/IWebApkApi.java" ]
} }
# Split out as a separate target so that it can be tested from chrome_public_test_apk # |webapk_java| is split from |webapk_with_service_java| for the sake of instrumentation tests.
android_library("dex_loader_java") { # |chrome_public_test_apk| cannot depend on |compiled_in_runtime_library_java| due to a class
java_files = [ "src/org/chromium/webapk/shell_apk/DexLoader.java" ] # name conflict.
}
template("webapk_java") { template("webapk_java") {
android_library(target_name) { android_library(target_name) {
forward_variables_from(invoker, forward_variables_from(invoker,
...@@ -45,22 +43,17 @@ template("webapk_java") { ...@@ -45,22 +43,17 @@ template("webapk_java") {
"src/org/chromium/webapk/shell_apk/HostBrowserLauncher.java", "src/org/chromium/webapk/shell_apk/HostBrowserLauncher.java",
"src/org/chromium/webapk/shell_apk/HostBrowserLauncherParams.java", "src/org/chromium/webapk/shell_apk/HostBrowserLauncherParams.java",
"src/org/chromium/webapk/shell_apk/ChooseHostBrowserDialog.java", "src/org/chromium/webapk/shell_apk/ChooseHostBrowserDialog.java",
"src/org/chromium/webapk/shell_apk/DexLoader.java",
"src/org/chromium/webapk/shell_apk/HostBrowserUtils.java", "src/org/chromium/webapk/shell_apk/HostBrowserUtils.java",
"src/org/chromium/webapk/shell_apk/IdentityService.java", "src/org/chromium/webapk/shell_apk/IdentityService.java",
"src/org/chromium/webapk/shell_apk/InstallHostBrowserDialog.java", "src/org/chromium/webapk/shell_apk/InstallHostBrowserDialog.java",
"src/org/chromium/webapk/shell_apk/LaunchHostBrowserSelector.java", "src/org/chromium/webapk/shell_apk/LaunchHostBrowserSelector.java",
"src/org/chromium/webapk/shell_apk/MainActivity.java", "src/org/chromium/webapk/shell_apk/MainActivity.java",
"src/org/chromium/webapk/shell_apk/TransparentLauncherActivity.java", "src/org/chromium/webapk/shell_apk/TransparentLauncherActivity.java",
"src/org/chromium/webapk/shell_apk/WebApkServiceFactory.java",
"src/org/chromium/webapk/shell_apk/WebApkServiceImplWrapper.java",
"src/org/chromium/webapk/shell_apk/WebApkSharedPreferences.java", "src/org/chromium/webapk/shell_apk/WebApkSharedPreferences.java",
"src/org/chromium/webapk/shell_apk/WebApkUtils.java", "src/org/chromium/webapk/shell_apk/WebApkUtils.java",
] ]
deps += [ deps += [ "//chrome/android/webapk/libs/common:common_java" ]
":compiled_in_runtime_library_java",
":dex_loader_java",
"//chrome/android/webapk/libs/common:common_java",
]
if (invoker.use_new_splash) { if (invoker.use_new_splash) {
java_files += [ java_files += [
...@@ -76,6 +69,22 @@ template("webapk_java") { ...@@ -76,6 +69,22 @@ template("webapk_java") {
} }
} }
template("webapk_with_service_java") {
android_library(target_name) {
forward_variables_from(invoker,
[
"android_manifest_for_lint",
"deps",
])
java_files = [
"src/org/chromium/webapk/shell_apk/WebApkServiceFactory.java",
"src/org/chromium/webapk/shell_apk/WebApkServiceImplWrapper.java",
]
deps += [ ":compiled_in_runtime_library_java" ]
}
}
template("webapk_tmpl") { template("webapk_tmpl") {
_manifest_to_upload_target_name = "${target_name}_manifest_to_upload" _manifest_to_upload_target_name = "${target_name}_manifest_to_upload"
_manifest_to_upload_output = _manifest_to_upload_output =
...@@ -83,7 +92,9 @@ template("webapk_tmpl") { ...@@ -83,7 +92,9 @@ template("webapk_tmpl") {
_manifest_target_name = "${target_name}_generate_manifest" _manifest_target_name = "${target_name}_generate_manifest"
_manifest_output = _manifest_output =
"${target_gen_dir}/${_manifest_target_name}/AndroidManifest.xml" "${target_gen_dir}/${_manifest_target_name}/AndroidManifest.xml"
_java_target_name = "${target_name}_java" _java_without_services_target_name = "${target_name}_generated_webapk_java"
_java_with_services_target_name =
"${target_name}_generated_webapk_with_service_java"
_resources_target_name = "${target_name}_resources" _resources_target_name = "${target_name}_resources"
_use_new_splash = false _use_new_splash = false
...@@ -140,7 +151,7 @@ template("webapk_tmpl") { ...@@ -140,7 +151,7 @@ template("webapk_tmpl") {
} }
} }
webapk_java(_java_target_name) { webapk_java(_java_without_services_target_name) {
android_manifest_for_lint = _manifest_output android_manifest_for_lint = _manifest_output
use_new_splash = _use_new_splash use_new_splash = _use_new_splash
deps = [ deps = [
...@@ -149,10 +160,18 @@ template("webapk_tmpl") { ...@@ -149,10 +160,18 @@ template("webapk_tmpl") {
] ]
} }
webapk_with_service_java(_java_with_services_target_name) {
android_manifest_for_lint = _manifest_output
deps = [
":$_java_without_services_target_name",
":$_manifest_target_name",
]
}
android_apk(target_name) { android_apk(target_name) {
forward_variables_from(invoker, [ "apk_name" ]) forward_variables_from(invoker, [ "apk_name" ])
deps = [ deps = [
":$_java_target_name", ":$_java_with_services_target_name",
] ]
android_manifest = _manifest_output android_manifest = _manifest_output
...@@ -290,7 +309,7 @@ android_library("shell_apk_javatests") { ...@@ -290,7 +309,7 @@ android_library("shell_apk_javatests") {
java_files = java_files =
[ "javatests/src/org/chromium/webapk/shell_apk/DexLoaderTest.java" ] [ "javatests/src/org/chromium/webapk/shell_apk/DexLoaderTest.java" ]
deps = [ deps = [
":dex_loader_java", ":webapk_generated_webapk_java",
"//base:base_java", "//base:base_java",
"//base:base_java_test_support", "//base:base_java_test_support",
"//chrome/android/webapk/libs/common:common_java", "//chrome/android/webapk/libs/common:common_java",
...@@ -311,9 +330,7 @@ junit_binary("webapk_shell_apk_junit_tests") { ...@@ -311,9 +330,7 @@ junit_binary("webapk_shell_apk_junit_tests") {
"junit/src/org/chromium/webapk/shell_apk/WebApkUtilsTest.java", "junit/src/org/chromium/webapk/shell_apk/WebApkUtilsTest.java",
] ]
deps = [ deps = [
":compiled_in_runtime_library_java", ":webapk_generated_webapk_with_service_java",
":dex_loader_java",
":webapk_java",
"//chrome/android/webapk/libs/common:common_java", "//chrome/android/webapk/libs/common:common_java",
"//chrome/android/webapk/libs/runtime_library:runtime_library_for_tests_java", "//chrome/android/webapk/libs/runtime_library:runtime_library_for_tests_java",
"//chrome/android/webapk/test:junit_test_support", "//chrome/android/webapk/test:junit_test_support",
...@@ -324,7 +341,7 @@ junit_binary("webapk_shell_apk_h2o_junit_tests") { ...@@ -324,7 +341,7 @@ junit_binary("webapk_shell_apk_h2o_junit_tests") {
java_files = [ "junit/src/org/chromium/webapk/shell_apk/h2o/LaunchTest.java" ] java_files = [ "junit/src/org/chromium/webapk/shell_apk/h2o/LaunchTest.java" ]
deps = [ deps = [
":${h2o_junit_manifest_target_name}", ":${h2o_junit_manifest_target_name}",
":h2o_j_unit_webapk_java", ":h2o_j_unit_webapk_generated_webapk_with_service_java",
"//chrome/android/webapk/libs/common:common_java", "//chrome/android/webapk/libs/common:common_java",
"//chrome/android/webapk/test:junit_test_support", "//chrome/android/webapk/test:junit_test_support",
] ]
......
...@@ -12,4 +12,4 @@ ...@@ -12,4 +12,4 @@
# //chrome/android/webapk/shell_apk:webapk is changed. This includes # //chrome/android/webapk/shell_apk:webapk is changed. This includes
# Java files, Android resource files and AndroidManifest.xml. Does not affect # Java files, Android resource files and AndroidManifest.xml. Does not affect
# Chrome.apk # Chrome.apk
current_shell_apk_version = 85 current_shell_apk_version = 86
...@@ -53,7 +53,7 @@ public class WebApkServiceFactory extends Service { ...@@ -53,7 +53,7 @@ public class WebApkServiceFactory extends Service {
webApkServiceImplClass.getConstructor(Context.class, Bundle.class); webApkServiceImplClass.getConstructor(Context.class, Bundle.class);
int hostBrowserUid = WebApkUtils.getRemotePackageUid(this, hostBrowserPackage); int hostBrowserUid = WebApkUtils.getRemotePackageUid(this, hostBrowserPackage);
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putInt(KEY_SMALL_ICON_ID, R.drawable.notification_badge); bundle.putInt(KEY_SMALL_ICON_ID, WebApkUtils.getNotificationSmallIconId());
bundle.putInt(KEY_HOST_BROWSER_UID, hostBrowserUid); bundle.putInt(KEY_HOST_BROWSER_UID, hostBrowserUid);
IBinder webApkServiceImpl = IBinder webApkServiceImpl =
(IBinder) webApkServiceImplConstructor.newInstance(new Object[] {this, bundle}); (IBinder) webApkServiceImplConstructor.newInstance(new Object[] {this, bundle});
......
...@@ -111,7 +111,7 @@ public class WebApkServiceImplWrapper extends IWebApkApi.Stub { ...@@ -111,7 +111,7 @@ public class WebApkServiceImplWrapper extends IWebApkApi.Stub {
NotificationManager manager = NotificationManager manager =
(NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE); (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationChannel channel = new NotificationChannel(DEFAULT_NOTIFICATION_CHANNEL_ID, NotificationChannel channel = new NotificationChannel(DEFAULT_NOTIFICATION_CHANNEL_ID,
mContext.getString(R.string.notification_channel_name), WebApkUtils.getNotificationChannelName(mContext),
NotificationManager.IMPORTANCE_DEFAULT); NotificationManager.IMPORTANCE_DEFAULT);
manager.createNotificationChannel(channel); manager.createNotificationChannel(channel);
} }
......
...@@ -282,4 +282,12 @@ public class WebApkUtils { ...@@ -282,4 +282,12 @@ public class WebApkUtils {
activity.finish(); activity.finish();
} }
} }
public static String getNotificationChannelName(Context context) {
return context.getString(R.string.notification_channel_name);
}
public static int getNotificationSmallIconId() {
return R.drawable.notification_badge;
}
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment