# Copyright (c) 2025 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import("//build/test.gni")
import("//build/config/components/idl_tool/idl.gni")
import("../../../web_aafwk.gni")
ohos_unittest("arkweb_scheme_handler_test") {
module_out_path = "webview/Networking"
sources = [ "arkweb_scheme_handler_test.cpp" ]
include_dirs = [ "../common" ]
deps = [
"$webview_path/interfaces/native:ohweb",
"$webview_path/ohos_nweb:web_configs",
]
deps += [
"$webview_path/ohos_nweb:libnweb",
]
external_deps = [
"ability_runtime:app_context",
"bundle_framework:appexecfwk_base",
"bundle_framework:appexecfwk_core",
"c_utils:utils",
"googletest:gmock_main",
"googletest:gtest_main",
"graphic_2d:librender_service_client",
"hilog:libhilog",
"libxml2:libxml2",
"window_manager:libwm",
]
}
ohos_unittest("arkweb_interface_test") {
module_out_path = "webview/Web_Framework"
sources = [ "arkweb_interface_test.cpp" ]
include_dirs = [ "../common" ]
deps = [
"$webview_path/interfaces/native:ohweb",
"$webview_path/ohos_nweb:web_configs",
]
deps += [
"$webview_path/ohos_nweb:libnweb",
]
external_deps = [
"ability_runtime:app_context",
"bundle_framework:appexecfwk_base",
"bundle_framework:appexecfwk_core",
"c_utils:utils",
"googletest:gmock_main",
"googletest:gtest_main",
"graphic_2d:librender_service_client",
"hilog:libhilog",
"libxml2:libxml2",
"window_manager:libwm",
]
}
ohos_unittest("native_javascript_execute_callback_test") {
module_out_path = "webview/Networking"
sources = [ "native_javascript_execute_callback_test.cpp" ]
include_dirs = [ "../common" ]
deps = [
"$webview_path/interfaces/native:ohweb",
"$webview_path/ohos_nweb:web_configs",
]
deps += [
"$webview_path/ohos_nweb:libnweb",
]
external_deps = [
"ability_runtime:app_context",
"bundle_framework:appexecfwk_base",
"bundle_framework:appexecfwk_core",
"c_utils:utils",
"googletest:gmock_main",
"googletest:gtest_main",
"graphic_2d:librender_service_client",
"hilog:libhilog",
"window_manager:libwm",
]
}
ohos_unittest("native_interface_arkweb_test") {
module_out_path = "webview/Networking"
sources = [ "native_interface_arkweb_test.cpp" ]
include_dirs = [
"../common",
"$webview_path/interfaces/native"
]
deps = [
"$webview_path/arkweb_utils:libarkweb_utils",
"$webview_path/interfaces/native:ohweb",
"$webview_path/ohos_nweb:web_configs",
]
deps += [
"$webview_path/ohos_nweb:libnweb",
]
external_deps = [
"ability_runtime:app_context",
"bundle_framework:appexecfwk_base",
"bundle_framework:appexecfwk_core",
"c_utils:utils",
"googletest:gmock_main",
"googletest:gtest_main",
"graphic_2d:librender_service_client",
"hilog:libhilog",
"init:libbegetutil",
"window_manager:libwm",
]
}
ohos_unittest("web_native_messaging_extension_context_info_test") {
module_out_path = "webview/security"
sources = [
"web_native_messaging_extension_context_info_test.cpp"
]
include_dirs = [
"../common",
"$webview_path/interfaces/kits/napi/web_native_messaging_extension/extension/include",
"$webview_path/sa/web_native_messaging/common",
]
deps = [
"$webview_path/interfaces/kits/napi/web_native_messaging_extension/extension:web_extension",
"$webview_path/sa/web_native_messaging:web_native_messaging_kit",
"$webview_path/ohos_nweb:web_configs",
]
deps += [
"$webview_path/ohos_nweb:libnweb",
]
external_deps = [
"ability_base:want",
"ability_runtime:app_context",
"ability_runtime:appkit_native",
"ability_runtime:napi_common",
"ability_runtime:ability_start_options",
"ability_runtime:ability_context_native",
"ability_runtime:extensionkit_native",
"ability_runtime:ability_manager",
"ability_runtime:runtime",
"bundle_framework:appexecfwk_base",
"bundle_framework:appexecfwk_core",
"c_utils:utils",
"googletest:gmock_main",
"googletest:gtest_main",
"hilog:libhilog",
"ipc:ipc_core",
"napi:ace_napi",
"window_manager:libwm",
]
}
ohos_unittest("web_native_messaging_extension_context_test") {
module_out_path = "webview/security"
sources = [
"web_native_messaging_extension_context_test.cpp"
]
include_dirs = [
"../common",
"$webview_path/interfaces/kits/napi/web_native_messaging_extension/extension/include",
"$webview_path/sa/web_native_messaging/common",
]
deps = [
"$webview_path/interfaces/kits/napi/web_native_messaging_extension/extension:web_extension",
"$webview_path/sa/web_native_messaging:web_native_messaging_kit",
"$webview_path/ohos_nweb:web_configs",
]
deps += [
"$webview_path/ohos_nweb:libnweb",
]
external_deps = [
"ability_base:want",
"ability_runtime:app_context",
"ability_runtime:appkit_native",
"ability_runtime:napi_common",
"ability_runtime:ability_start_options",
"ability_runtime:ability_context_native",
"ability_runtime:extensionkit_native",
"ability_runtime:ability_manager",
"ability_runtime:runtime",
"bundle_framework:appexecfwk_base",
"bundle_framework:appexecfwk_core",
"c_utils:utils",
"googletest:gmock_main",
"googletest:gtest_main",
"hilog:libhilog",
"ipc:ipc_core",
"napi:ace_napi",
"window_manager:libwm",
]
}
ohos_unittest("web_native_messaging_extension_proxy_test") {
module_out_path = "webview/security"
sources = [
"web_native_messaging_extension_proxy_test.cpp"
]
include_dirs = [
"../common",
"$webview_path/interfaces/kits/napi/web_native_messaging_extension/extension/include"
]
deps = [
"$webview_path/arkweb_utils:libarkweb_utils",
"$webview_path/interfaces/native:ohweb",
"$webview_path/ohos_nweb:web_configs",
"$webview_path/interfaces/kits/napi/web_native_messaging_extension/extension:connect_info",
"$webview_path/interfaces/kits/napi/web_native_messaging_extension/extension_client:web_extension_client",
]
deps += [
"$webview_path/ohos_nweb:libnweb",
]
external_deps = [
"ability_runtime:app_context",
"bundle_framework:appexecfwk_base",
"bundle_framework:appexecfwk_core",
"c_utils:utils",
"googletest:gmock_main",
"googletest:gtest_main",
"graphic_2d:librender_service_client",
"hilog:libhilog",
"init:libbegetutil",
"window_manager:libwm",
"napi:ace_napi"
]
}
config("module_private_config") {
visibility = [ ":*" ]
include_dirs = [
"$webview_path/sa/include",
"$webview_path/sa/web_native_messaging/client",
"$webview_path/sa/web_native_messaging/common",
"$webview_path/sa/web_native_messaging/service",
"$webview_path/ohos_nweb/include",
"${target_gen_dir}/../../../sa/web_native_messaging",
"${target_gen_dir}",
"${target_gen_dir}/../../ohos_nweb/include",
"${webview_path}/interfaces/kits/napi/web_native_messaging_extension/extension/include",
"${webview_path}/interfaces/kits/napi/web_native_messaging_extension/extension_client/include",
]
}
idl_interface_sources = [
"${target_gen_dir}/web_native_messaging_service_proxy.cpp",
"${target_gen_dir}/web_native_messaging_service_stub.cpp",
]
idl_gen_interface("web_native_messaging_service_interface") {
src_idl = rebase_path("${webview_path}/sa/web_native_messaging/IWebNativeMessagingService.idl")
dst_file = string_join(",", idl_interface_sources)
}
ohos_unittest("web_native_messaging_service_test") {
module_out_path = "webview/security"
output_values = get_target_outputs(":web_native_messaging_service_interface")
sources = [ "web_native_messaging_service_test.cpp" ]
sources += [
"${webview_path}/sa/web_native_messaging/service/connect_native_request.cpp",
"${webview_path}/sa/web_native_messaging/service/extension_ipc_connection.cpp",
"${webview_path}/sa/web_native_messaging/service/service_delay_exit_task.cpp",
"${webview_path}/sa/web_native_messaging/service/service_event_handler.cpp",
"${webview_path}/sa/web_native_messaging/service/web_extension_connection_callback_proxy.cpp",
"${webview_path}/sa/web_native_messaging/service/web_native_messaging_manager.cpp",
"${webview_path}/sa/web_native_messaging/service/web_native_messaging_service.cpp",
"${webview_path}/sa/web_native_messaging/common/connection_native_info_parcel.cpp",
"mock/mock_accesstoken_kit.cpp",
]
sources += filter_include(output_values, [ "*.cpp" ])
configs = [ ":module_private_config" ]
deps = [
"${webview_path}/sa/web_native_messaging:web_native_messaging_service",
"${webview_path}/interfaces/kits/napi/web_native_messaging_extension/extension_client:web_extension_client",
"${webview_path}/interfaces/kits/napi/web_native_messaging_extension/extension:web_extension",
":web_native_messaging_service_interface",
]
external_deps = [
"ability_base:want",
"ability_base:zuri",
"ability_runtime:ability_connect_callback_stub",
"ability_runtime:ability_manager",
"ability_runtime:napi_common",
"ability_runtime:ability_context_native",
"ability_runtime:ability_start_options",
"access_token:libaccesstoken_sdk",
"bundle_framework:appexecfwk_base",
"bundle_framework:appexecfwk_core",
"c_utils:utils",
"eventhandler:libeventhandler",
"hilog:libhilog",
"hitrace:hitrace_meter",
"ipc:ipc_core",
"safwk:system_ability_fwk",
"samgr:samgr_proxy",
"googletest:gmock_main",
"googletest:gtest_main",
]
}
ohos_unittest("connect_native_request_test") {
module_out_path = "webview/security"
sources = [ "connect_native_request_test.cpp" ]
sources += [
"${webview_path}/sa/web_native_messaging/service/connect_native_request.cpp",
"${webview_path}/sa/web_native_messaging/common/connection_native_info_parcel.cpp",
]
include_dirs = [
"$webview_path/sa/include",
"$webview_path/sa/web_native_messaging/client",
"$webview_path/sa/web_native_messaging/common",
"$webview_path/sa/web_native_messaging/service",
"$webview_path/ohos_nweb/include",
"${target_gen_dir}/../../../sa/web_native_messaging",
"${target_gen_dir}",
"${target_gen_dir}/../../ohos_nweb/include",
"${webview_path}/interfaces/kits/napi/web_native_messaging_extension/extension/include",
"${webview_path}/interfaces/kits/napi/web_native_messaging_extension/extension_client/include",
"mock"
]
deps = [
"${webview_path}/interfaces/kits/napi/web_native_messaging_extension/extension_client:web_extension_client",
"${webview_path}/interfaces/kits/napi/web_native_messaging_extension/extension:web_extension",
":web_native_messaging_service_interface",
]
external_deps = [
"ability_base:want",
"ability_base:zuri",
"ability_runtime:ability_manager",
"ability_runtime:napi_common",
"ability_runtime:ability_context_native",
"access_token:libaccesstoken_sdk",
"c_utils:utils",
"hilog:libhilog",
"ipc:ipc_core",
"googletest:gmock_main",
"googletest:gtest_main",
]
}
ohos_unittest("web_native_messaging_manager_test") {
module_out_path = "webview/security"
sources = [ "web_native_messaging_manager_test.cpp" ]
output_values = get_target_outputs(":web_native_messaging_service_interface")
sources += [
"${webview_path}/interfaces/kits/napi/web_native_messaging_extension/extension_client/src/web_native_messaging_extension_proxy.cpp",
"${webview_path}/interfaces/kits/napi/web_native_messaging_extension/extension/src/web_native_messaging_extension_connect_info.cpp",
"${webview_path}/sa/web_native_messaging/service/connect_native_request.cpp",
"${webview_path}/sa/web_native_messaging/service/extension_ipc_connection.cpp",
"${webview_path}/sa/web_native_messaging/service/service_delay_exit_task.cpp",
"${webview_path}/sa/web_native_messaging/service/service_event_handler.cpp",
"${webview_path}/sa/web_native_messaging/service/web_extension_connection_callback_proxy.cpp",
"${webview_path}/sa/web_native_messaging/service/web_native_messaging_manager.cpp",
"${webview_path}/sa/web_native_messaging/common/connection_native_info_parcel.cpp",
"mock/mock_accesstoken_kit.cpp",
"mock/bundle_mgr_client.cpp",
]
sources += filter_include(output_values, [ "*.cpp" ])
include_dirs = [
"$webview_path/sa/include",
"$webview_path/sa/web_native_messaging/client",
"$webview_path/sa/web_native_messaging/common",
"$webview_path/sa/web_native_messaging/service",
"$webview_path/ohos_nweb/include",
"${target_gen_dir}/../../../sa/web_native_messaging",
"${target_gen_dir}",
"${target_gen_dir}/../../ohos_nweb/include",
"${webview_path}/interfaces/kits/napi/web_native_messaging_extension/extension/include",
"${webview_path}/interfaces/kits/napi/web_native_messaging_extension/extension_client/include",
"mock"
]
deps = [
"${webview_path}/interfaces/kits/napi/web_native_messaging_extension/extension_client:web_extension_client",
"${webview_path}/interfaces/kits/napi/web_native_messaging_extension/extension:web_extension",
":web_native_messaging_service_interface",
]
external_deps = [
"ability_base:want",
"ability_base:zuri",
"ability_runtime:ability_connect_callback_stub",
"ability_runtime:ability_manager",
"ability_runtime:napi_common",
"ability_runtime:ability_context_native",
"ability_runtime:ability_start_options",
"access_token:libaccesstoken_sdk",
"c_utils:utils",
"eventhandler:libeventhandler",
"hilog:libhilog",
"hitrace:hitrace_meter",
"ipc:ipc_core",
"safwk:system_ability_fwk",
"samgr:samgr_proxy",
"googletest:gmock_main",
"googletest:gtest_main",
]
}
ohos_unittest("ets_web_native_messaging_extension_context_test") {
module_out_path = "webview/security"
sources = [ "ets_web_native_messaging_extension_context_test.cpp" ]
include_dirs = [
"${webview_path}/interfaces/kits/ani/webnativemessagingextension/ability/include",
"${webview_path}/interfaces/kits/ani/webnativemessagingextension/ability/src",
"${webview_path}/interfaces/kits/ani/webview/src/common",
"${webview_path}/interfaces/kits/napi/web_native_messaging_extension/extension/include",
"${webview_path}/sa/web_native_messaging/common",
"${webview_path}/ohos_nweb/include",
"${webview_path}/interfaces/kits/ani/webview/native/common",
]
deps = [
"${webview_path}/interfaces/kits/ani/webview:webview_ani",
"${webview_path}/interfaces/kits/napi/web_native_messaging_extension/extension:web_extension",
"${webview_path}/sa/web_native_messaging:web_native_messaging_kit",
"${webview_path}/ohos_nweb:web_configs",
]
external_deps = [
"c_utils:utils",
"googletest:gmock_main",
"googletest:gtest_main",
"hilog:libhilog",
]
}
ohos_unittest("web_history_list_test") {
module_out_path = "webview/Networking"
sources = [
"web_history_list_test.cpp",
"${webview_path}/interfaces/kits/nativecommon/web_history_list.cpp",
]
include_dirs = [ "../common" ]
deps = [
"$webview_path/interfaces/native:ohweb",
"$webview_path/ohos_nweb:web_configs",
"../../../ohos_nweb:libnweb",
]
external_deps = [
"ability_runtime:app_context",
"bundle_framework:appexecfwk_base",
"bundle_framework:appexecfwk_core",
"c_utils:utils",
"googletest:gmock_main",
"googletest:gtest_main",
"graphic_2d:librender_service_client",
"hilog:libhilog",
"libxml2:libxml2",
"window_manager:libwm",
]
}
ohos_unittest("web_resource_handler_test") {
module_out_path = "webview/Networking"
sources = [
"web_resource_handler_test.cpp",
"${webview_path}/interfaces/kits/nativecommon/web_resource_handler.cpp",
]
include_dirs = [ "${webview_path}/interfaces/native" ]
deps = [
"$webview_path/interfaces/native:ohweb",
"$webview_path/ohos_nweb:web_configs",
"../../../ohos_nweb:libnweb",
]
external_deps = [
"ability_runtime:app_context",
"bundle_framework:appexecfwk_base",
"bundle_framework:appexecfwk_core",
"c_utils:utils",
"googletest:gmock_main",
"googletest:gtest_main",
"graphic_2d:librender_service_client",
"hilog:libhilog",
"libxml2:libxml2",
"window_manager:libwm",
]
}
ohos_unittest("web_scheme_handler_response_test") {
module_out_path = "webview/Networking"
sources = [
"web_scheme_handler_response_test.cpp",
"${webview_path}/interfaces/kits/nativecommon/web_scheme_handler_response.cpp",
]
include_dirs = [ "${webview_path}/interfaces/native" ]
deps = [
"$webview_path/interfaces/native:ohweb",
"$webview_path/ohos_nweb:web_configs",
"../../../ohos_nweb:libnweb",
]
external_deps = [
"ability_runtime:app_context",
"bundle_framework:appexecfwk_base",
"bundle_framework:appexecfwk_core",
"c_utils:utils",
"googletest:gmock_main",
"googletest:gtest_main",
"graphic_2d:librender_service_client",
"hilog:libhilog",
"libxml2:libxml2",
"window_manager:libwm",
]
}
group("unittest") {
testonly = true
deps = [
":arkweb_interface_test",
":arkweb_scheme_handler_test",
":connect_native_request_test",
":ets_web_native_messaging_extension_context_test",
":native_interface_arkweb_test",
":native_javascript_execute_callback_test",
":web_native_messaging_extension_context_info_test",
":web_native_messaging_extension_context_test",
":web_native_messaging_extension_proxy_test",
":web_native_messaging_service_test",
":web_native_messaging_manager_test",
":web_history_list_test",
":web_resource_handler_test",
":web_scheme_handler_response_test",
]
}