# Copyright 2015 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/android/rules.gni")
import("//testing/test.gni")

# Mark all targets as test only.
testonly = true

group("test") {
  deps = [
    ":android_webview_test_apk",
    ":android_webview_unittests",
  ]
}

android_apk("android_webview_apk") {
  deps = [
    ":android_webview_apk_assets",
    ":android_webview_apk_resources",
    "//android_webview:android_webview_java",
    "//android_webview:locale_pak_assets",
    "//base:base_java",
    "//base:base_java_test_support",
    "//components/policy/android:policy_java_test_support",
    "//content/public/android:content_java",
    "//ui/android:ui_java",
  ]

  apk_name = "AndroidWebView"
  android_manifest = "shell/AndroidManifest.xml"
  java_files = [
    "shell/src/org/chromium/android_webview/shell/AwShellActivity.java",
    "shell/src/org/chromium/android_webview/shell/AwShellApplication.java",
    "shell/src/org/chromium/android_webview/shell/AwShellResourceProvider.java",
    "shell/src/org/chromium/android_webview/shell/AwShellSwitches.java",
    "shell/src/org/chromium/android_webview/shell/DrawGL.java",
    "shell/src/org/chromium/android_webview/test/AwInstrumentationTestRunner.java",
    "shell/src/org/chromium/android_webview/test/AwTestContainerView.java",
    "shell/src/org/chromium/android_webview/test/AwTestRunnerActivity.java",
    "shell/src/org/chromium/android_webview/test/NullContentsClient.java",
    "shell/src/org/chromium/android_webview/test/SecondBrowserProcess.java",
    "shell/src/org/chromium/android_webview/test/TestContentProvider.java",
  ]
  shared_libraries = [
    ":libdrawgl",
    ":libstandalonelibwebviewchromium",
  ]

  native_lib_version_rule = "//build/util:chrome_version_json"
  _native_lib_file =
      rebase_path("$root_gen_dir/CHROME_VERSION.json", root_build_dir)
  native_lib_version_arg = "@FileArg($_native_lib_file:full-quoted)"

  enable_multidex = true
}

android_resources("android_webview_apk_resources") {
  resource_dirs = [ "shell/res" ]
  custom_package = "org.chromium.android_webview.shell"
}

android_assets("android_webview_apk_assets") {
  deps = [
    "//android_webview:pak_file_assets",
    "//third_party/icu:icu_assets",
    "//v8:v8_external_startup_data_assets",
  ]
  sources = [
    "shell/assets/asset_file.html",
    "shell/assets/asset_icon.png",
    "shell/assets/cookie_test.html",
    "shell/assets/full_screen_video.js",
    "shell/assets/full_screen_video_inside_div_test.html",
    "shell/assets/full_screen_video_test.html",
    "shell/assets/full_screen_video_test_not_preloaded.html",
    "shell/assets/key-system-test.html",
    "shell/assets/platform-media-codec-test.html",
    "shell/assets/video.3gp",
    "shell/assets/video.webm",
    "shell/assets/visual_state_during_fullscreen_test.html",
    "shell/assets/visual_state_on_page_commit_visible_test.html",
    "shell/assets/visual_state_waits_for_js_detached_test.html",
    "shell/assets/visual_state_waits_for_js_test.html",
  ]
}

shared_library("libstandalonelibwebviewchromium") {
  sources = [
    "../lib/main/webview_entry_point.cc",
  ]
  ldflags = [ "-Wl,-shared,-Bsymbolic" ]
  deps = [
    "//android_webview:common",
  ]
  configs -= [ "//build/config/android:hide_native_jni_exports" ]
}

instrumentation_test_apk("android_webview_test_apk") {
  apk_name = "AndroidWebViewTest"
  apk_under_test = ":android_webview_apk"
  android_manifest = "../javatests/AndroidManifest.xml"
  deps = [
    "//android_webview:android_webview_crash_services_java",
    "//android_webview:android_webview_java",
    "//android_webview:android_webview_platform_services_java",
    "//base:base_java",
    "//base:base_java_test_support",
    "//components/minidump_uploader:minidump_uploader_java",
    "//components/minidump_uploader:minidump_uploader_javatests",
    "//components/policy/android:policy_java",
    "//components/policy/android:policy_java_test_support",
    "//components/web_contents_delegate_android:web_contents_delegate_android_java",
    "//content/public/android:content_java",
    "//content/public/test/android:content_java_test_support",
    "//device/geolocation:geolocation_java",
    "//device/geolocation:geolocation_java_test_support",
    "//net/android:net_java",
    "//net/android:net_java_test_support",
    "//third_party/android_support_test_runner:runner_java",
    "//third_party/android_tools:legacy_http_javalib",
    "//ui/android:ui_java",
  ]
  java_files = [
    "../javatests/src/org/chromium/android_webview/test/AcceptLanguageTest.java",
    "../javatests/src/org/chromium/android_webview/test/AndroidScrollIntegrationTest.java",
    "../javatests/src/org/chromium/android_webview/test/AndroidViewIntegrationTest.java",
    "../javatests/src/org/chromium/android_webview/test/ArchiveTest.java",
    "../javatests/src/org/chromium/android_webview/test/AwContentsAnchorViewTest.java",
    "../javatests/src/org/chromium/android_webview/test/AwContentsClientAutoLoginTest.java",
    "../javatests/src/org/chromium/android_webview/test/AwContentsClientCallbackHelperTest.java",
    "../javatests/src/org/chromium/android_webview/test/AwContentsClientFaviconTest.java",
    "../javatests/src/org/chromium/android_webview/test/AwContentsClientFullScreenTest.java",
    "../javatests/src/org/chromium/android_webview/test/AwContentsClientGetDefaultVideoPosterTest.java",
    "../javatests/src/org/chromium/android_webview/test/AwContentsClientGetVideoLoadingProgressViewTest.java",
    "../javatests/src/org/chromium/android_webview/test/AwContentsClientOnFormResubmissionTest.java",
    "../javatests/src/org/chromium/android_webview/test/AwContentsClientOnRenderProcessGoneTest.java",
    "../javatests/src/org/chromium/android_webview/test/AwContentsClientOnScaleChangedTest.java",
    "../javatests/src/org/chromium/android_webview/test/AwContentsClientOnUnhandledKeyEventTest.java",
    "../javatests/src/org/chromium/android_webview/test/AwContentsClientShouldInterceptRequestTest.java",
    "../javatests/src/org/chromium/android_webview/test/AwContentsClientShouldOverrideUrlLoadingTest.java",
    "../javatests/src/org/chromium/android_webview/test/AwContentsClientVisitedHistoryTest.java",
    "../javatests/src/org/chromium/android_webview/test/AwContentsGarbageCollectionTest.java",
    "../javatests/src/org/chromium/android_webview/test/AwContentsLifecycleNotifierTest.java",
    "../javatests/src/org/chromium/android_webview/test/AwContentsRenderTest.java",
    "../javatests/src/org/chromium/android_webview/test/AwContentsStaticsTest.java",
    "../javatests/src/org/chromium/android_webview/test/AwContentsTest.java",
    "../javatests/src/org/chromium/android_webview/test/AwDebugTest.java",
    "../javatests/src/org/chromium/android_webview/test/AwImeTest.java",
    "../javatests/src/org/chromium/android_webview/test/AwJavaBridgeTest.java",
    "../javatests/src/org/chromium/android_webview/test/AwLayoutSizerTest.java",
    "../javatests/src/org/chromium/android_webview/test/AwLegacyQuirksTest.java",
    "../javatests/src/org/chromium/android_webview/test/AwPermissionManagerTest.java",
    "../javatests/src/org/chromium/android_webview/test/AwQuotaManagerBridgeTest.java",
    "../javatests/src/org/chromium/android_webview/test/AwScrollOffsetManagerTest.java",
    "../javatests/src/org/chromium/android_webview/test/AwSecondBrowserProcessTest.java",
    "../javatests/src/org/chromium/android_webview/test/AwServiceWorkerClientTest.java",
    "../javatests/src/org/chromium/android_webview/test/AwSettingsTest.java",
    "../javatests/src/org/chromium/android_webview/test/AwStrictModeTest.java",
    "../javatests/src/org/chromium/android_webview/test/AwTestBase.java",
    "../javatests/src/org/chromium/android_webview/test/AwWebContentsObserverTest.java",
    "../javatests/src/org/chromium/android_webview/test/AwZoomTest.java",
    "../javatests/src/org/chromium/android_webview/test/CleanupReferenceTest.java",
    "../javatests/src/org/chromium/android_webview/test/ClearHistoryTest.java",
    "../javatests/src/org/chromium/android_webview/test/ClientAddMessageToConsoleTest.java",
    "../javatests/src/org/chromium/android_webview/test/ClientOnPageFinishedTest.java",
    "../javatests/src/org/chromium/android_webview/test/ClientOnPageStartedTest.java",
    "../javatests/src/org/chromium/android_webview/test/ClientOnReceivedError2Test.java",
    "../javatests/src/org/chromium/android_webview/test/ClientOnReceivedErrorTest.java",
    "../javatests/src/org/chromium/android_webview/test/ClientOnReceivedHttpErrorTest.java",
    "../javatests/src/org/chromium/android_webview/test/ConsoleMessagesForBlockedLoadsTest.java",
    "../javatests/src/org/chromium/android_webview/test/ContentViewMiscTest.java",
    "../javatests/src/org/chromium/android_webview/test/CookieManagerStartupTest.java",
    "../javatests/src/org/chromium/android_webview/test/CookieManagerTest.java",
    "../javatests/src/org/chromium/android_webview/test/DisableHardwareAccelerationForTest.java",
    "../javatests/src/org/chromium/android_webview/test/FullScreenVideoTestAwContentsClient.java",
    "../javatests/src/org/chromium/android_webview/test/GeolocationTest.java",
    "../javatests/src/org/chromium/android_webview/test/GetTitleTest.java",
    "../javatests/src/org/chromium/android_webview/test/HttpAuthDatabaseTest.java",
    "../javatests/src/org/chromium/android_webview/test/HttpCacheTest.java",
    "../javatests/src/org/chromium/android_webview/test/KeySystemTest.java",
    "../javatests/src/org/chromium/android_webview/test/LoadDataWithBaseUrlTest.java",
    "../javatests/src/org/chromium/android_webview/test/LoadUrlTest.java",
    "../javatests/src/org/chromium/android_webview/test/MediaAccessPermissionRequestTest.java",
    "../javatests/src/org/chromium/android_webview/test/NavigationHistoryTest.java",
    "../javatests/src/org/chromium/android_webview/test/PlatformMediaCodecTest.java",
    "../javatests/src/org/chromium/android_webview/test/PolicyUrlFilteringTest.java",
    "../javatests/src/org/chromium/android_webview/test/PopupWindowTest.java",
    "../javatests/src/org/chromium/android_webview/test/PostMessageTest.java",
    "../javatests/src/org/chromium/android_webview/test/SaveRestoreStateTest.java",
    "../javatests/src/org/chromium/android_webview/test/StandaloneAwQuotaManagerBridgeTest.java",
    "../javatests/src/org/chromium/android_webview/test/TestAwContentsClient.java",
    "../javatests/src/org/chromium/android_webview/test/TestAwServiceWorkerClient.java",
    "../javatests/src/org/chromium/android_webview/test/UserAgentTest.java",
    "../javatests/src/org/chromium/android_webview/test/VisualStateTest.java",
    "../javatests/src/org/chromium/android_webview/test/WebKitHitTestTest.java",
    "../javatests/src/org/chromium/android_webview/test/WebViewAsynchronousFindApisTest.java",
    "../javatests/src/org/chromium/android_webview/test/WebViewFindApisTestBase.java",
    "../javatests/src/org/chromium/android_webview/test/WebViewModalDialogOverrideTest.java",
    "../javatests/src/org/chromium/android_webview/test/crash/MinidumpUploaderTest.java",
    "../javatests/src/org/chromium/android_webview/test/util/AwQuotaManagerBridgeTestUtil.java",
    "../javatests/src/org/chromium/android_webview/test/util/AwTestTouchUtils.java",
    "../javatests/src/org/chromium/android_webview/test/util/CommonResources.java",
    "../javatests/src/org/chromium/android_webview/test/util/CookieUtils.java",
    "../javatests/src/org/chromium/android_webview/test/util/GraphicsTestUtils.java",
    "../javatests/src/org/chromium/android_webview/test/util/ImagePageGenerator.java",
    "../javatests/src/org/chromium/android_webview/test/util/JSUtils.java",
    "../javatests/src/org/chromium/android_webview/test/util/JavascriptEventObserver.java",
    "../javatests/src/org/chromium/android_webview/test/util/VideoSurfaceViewUtils.java",
    "../javatests/src/org/chromium/android_webview/test/util/VideoTestUtil.java",
    "../javatests/src/org/chromium/android_webview/test/util/VideoTestWebServer.java",
  ]
  data = [
    "data/",
  ]
  additional_apks = [ "//net/android:net_test_support_apk" ]
}

test("android_webview_unittests") {
  # Tests do not require any data, but our dependencies pull a lot in.
  ignore_all_data_deps = true

  # Dependencies (e.g. Play services) make the binary reach the dex limit.
  enable_multidex = true

  deps = [
    ":android_webview_unittests_assets",
    ":android_webview_unittests_java",
    ":android_webview_unittests_jni",
    "//android_webview:common",
    "//base/test:test_support",
    "//content/test:test_support",
    "//net:test_support",
    "//ui/base:ui_base_jni_headers",
    "//ui/gl",
    "//ui/gl:test_support",
  ]

  sources = [
    "../browser/aw_form_database_service_unittest.cc",
    "../browser/aw_permission_manager_unittest.cc",
    "../browser/aw_static_cookie_policy_unittest.cc",
    "../browser/browser_view_renderer_unittest.cc",
    "../browser/command_line_helper_unittest.cc",
    "../browser/net/android_stream_reader_url_request_job_unittest.cc",
    "../browser/net/aw_cookie_store_wrapper_unittest.cc",
    "../browser/net/input_stream_reader_unittest.cc",
    "../browser/renderer_host/auto_login_parser_unittest.cc",
    "../browser/test/fake_window.cc",
    "../browser/test/fake_window.h",
    "../browser/test/rendering_test.cc",
    "../browser/test/rendering_test.h",
    "../lib/main/webview_tests.cc",
    "../native/aw_contents_client_bridge_unittest.cc",
    "../native/aw_media_url_interceptor_unittest.cc",
    "../native/input_stream_unittest.cc",
    "../native/permission/media_access_permission_request_unittest.cc",
    "../native/permission/permission_request_handler_unittest.cc",
    "../native/state_serializer_unittest.cc",
  ]
}

android_assets("android_webview_unittests_assets") {
  sources = [
    "unittest/assets/asset_file.ogg",
  ]
}

android_library("android_webview_unittests_java") {
  testonly = true
  deps = [
    "//android_webview:android_webview_java",
    "//base:base_java",
    "//content/public/test/android:content_java_test_support",
  ]
  java_files = [
    "../unittestjava/src/org/chromium/android_webview/unittest/InputStreamUnittest.java",
    "../unittestjava/src/org/chromium/android_webview/unittest/MockAwContentsClientBridge.java",
  ]
}

generate_jni("android_webview_unittests_jni") {
  jni_package = "android_webview_unittests"
  sources = [
    "../unittestjava/src/org/chromium/android_webview/unittest/InputStreamUnittest.java",
    "../unittestjava/src/org/chromium/android_webview/unittest/MockAwContentsClientBridge.java",
  ]
}

shared_library("libdrawgl") {
  sources = [
    "shell/src/draw_gl/draw_gl.cc",
  ]
  configs -= [ "//build/config/android:hide_native_jni_exports" ]
}
