blob: 1a2fd5fb5eeb813cab1e23595dd637677608f7d0 [file] [log] [blame]
# Copyright 2021 The Cobalt Authors. All Rights Reserved.
#
# 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.
config("update_client_config") {
defines = [
"LIBXML_READER_ENABLED",
"LIBXML_WRITER_ENABLED",
]
}
static_library("update_client") {
sources = [
"action_runner.cc",
"action_runner.h",
"activity_data_service.h",
"cobalt_slot_management.cc",
"cobalt_slot_management.h",
"command_line_config_policy.cc",
"command_line_config_policy.h",
"component.cc",
"component.h",
"component_patcher.cc",
"component_patcher.h",
"component_patcher_operation.cc",
"component_patcher_operation.h",
"component_unpacker.cc",
"component_unpacker.h",
"configurator.h",
"crx_downloader.cc",
"crx_downloader.h",
"crx_update_item.h",
"network.cc",
"network.h",
"patcher.h",
"persisted_data.cc",
"persisted_data.h",
"ping_manager.cc",
"ping_manager.h",
"protocol_definition.cc",
"protocol_definition.h",
"protocol_handler.cc",
"protocol_handler.h",
"protocol_parser.cc",
"protocol_parser.h",
"protocol_parser_json.cc",
"protocol_parser_json.h",
"protocol_serializer.cc",
"protocol_serializer.h",
"protocol_serializer_json.cc",
"protocol_serializer_json.h",
"request_sender.cc",
"request_sender.h",
"task.h",
"task_send_uninstall_ping.cc",
"task_send_uninstall_ping.h",
"task_traits.h",
"task_update.cc",
"task_update.h",
"unzipper.h",
"update_checker.cc",
"update_checker.h",
"update_client.cc",
"update_client.h",
"update_client_errors.h",
"update_client_internal.h",
"update_engine.cc",
"update_engine.h",
"update_query_params.cc",
"update_query_params.h",
"update_query_params_delegate.cc",
"update_query_params_delegate.h",
"updater_state.cc",
"updater_state.h",
"url_fetcher_downloader.cc",
"url_fetcher_downloader.h",
"utils.cc",
"utils.h",
]
configs += [ ":update_client_config" ]
deps = [
"//components/client_update_protocol",
"//components/crx_file",
"//components/prefs",
"//crypto",
"//net",
"//starboard/loader_app:app_key_files",
"//starboard/loader_app:drain_file",
"//third_party/libxml",
"//url",
]
}
static_library("test_support") {
testonly = true
sources = [
"net/network_cobalt.h",
"net/network_impl_cobalt.cc",
"net/network_impl_cobalt.h",
"net/url_request_post_interceptor.cc",
"net/url_request_post_interceptor.h",
"patch/patch_impl_cobalt.cc",
"patch/patch_impl_cobalt.h",
"test_configurator.cc",
"test_configurator.h",
"unzip/unzip_impl_cobalt.cc",
"unzip/unzip_impl_cobalt.h",
]
deps = [
":update_client",
"//base",
"//cobalt/base",
"//cobalt/debug:console_command_manager",
"//cobalt/loader",
"//cobalt/network",
"//components/prefs",
"//net",
"//net:test_support",
"//testing/gmock",
"//testing/gtest",
"//third_party/zlib:zip",
"//url",
]
}
copy("update_client_test_files") {
sources = [
"//components/test/data/update_client/ChromeRecovery.crx3",
"//components/test/data/update_client/binary_bsdiff_patch.bin",
"//components/test/data/update_client/binary_courgette_patch.bin",
"//components/test/data/update_client/binary_input.bin",
"//components/test/data/update_client/binary_output.bin",
"//components/test/data/update_client/ihfokbkgjpifnbbojhneepfflplebdkc/ihfokbkgjpifnbbojhneepfflplebdkc.pem",
"//components/test/data/update_client/ihfokbkgjpifnbbojhneepfflplebdkc/ihfokbkgjpifnbbojhneepfflplebdkc_1/a_changing_binary_file",
"//components/test/data/update_client/ihfokbkgjpifnbbojhneepfflplebdkc/ihfokbkgjpifnbbojhneepfflplebdkc_1/a_changing_text_file",
"//components/test/data/update_client/ihfokbkgjpifnbbojhneepfflplebdkc/ihfokbkgjpifnbbojhneepfflplebdkc_1/a_static_text_file",
"//components/test/data/update_client/ihfokbkgjpifnbbojhneepfflplebdkc/ihfokbkgjpifnbbojhneepfflplebdkc_1/manifest.json",
"//components/test/data/update_client/ihfokbkgjpifnbbojhneepfflplebdkc/ihfokbkgjpifnbbojhneepfflplebdkc_1to2/commands.json",
"//components/test/data/update_client/ihfokbkgjpifnbbojhneepfflplebdkc/ihfokbkgjpifnbbojhneepfflplebdkc_1to2/f0",
"//components/test/data/update_client/ihfokbkgjpifnbbojhneepfflplebdkc/ihfokbkgjpifnbbojhneepfflplebdkc_1to2/f1",
"//components/test/data/update_client/ihfokbkgjpifnbbojhneepfflplebdkc/ihfokbkgjpifnbbojhneepfflplebdkc_1to2/f2",
"//components/test/data/update_client/ihfokbkgjpifnbbojhneepfflplebdkc/ihfokbkgjpifnbbojhneepfflplebdkc_1to2_bad/commands.json",
"//components/test/data/update_client/ihfokbkgjpifnbbojhneepfflplebdkc/ihfokbkgjpifnbbojhneepfflplebdkc_1to2_bad/f1",
"//components/test/data/update_client/ihfokbkgjpifnbbojhneepfflplebdkc/ihfokbkgjpifnbbojhneepfflplebdkc_1to2_bad/f2",
"//components/test/data/update_client/ihfokbkgjpifnbbojhneepfflplebdkc/ihfokbkgjpifnbbojhneepfflplebdkc_1to2_bad/f3",
"//components/test/data/update_client/ihfokbkgjpifnbbojhneepfflplebdkc/ihfokbkgjpifnbbojhneepfflplebdkc_2/a_changing_binary_file",
"//components/test/data/update_client/ihfokbkgjpifnbbojhneepfflplebdkc/ihfokbkgjpifnbbojhneepfflplebdkc_2/a_changing_text_file",
"//components/test/data/update_client/ihfokbkgjpifnbbojhneepfflplebdkc/ihfokbkgjpifnbbojhneepfflplebdkc_2/a_static_text_file",
"//components/test/data/update_client/ihfokbkgjpifnbbojhneepfflplebdkc/ihfokbkgjpifnbbojhneepfflplebdkc_2/manifest.json",
"//components/test/data/update_client/ihfokbkgjpifnbbojhneepfflplebdkc_1.crx",
"//components/test/data/update_client/ihfokbkgjpifnbbojhneepfflplebdkc_1to2.crx",
"//components/test/data/update_client/ihfokbkgjpifnbbojhneepfflplebdkc_1to2_bad.crx",
"//components/test/data/update_client/ihfokbkgjpifnbbojhneepfflplebdkc_2.crx",
"//components/test/data/update_client/jebgalgnebhfojomionfpkfelancnnkf.crx",
"//components/test/data/update_client/jebgalgnebhfojomionfpkfelancnnkf.pem",
"//components/test/data/update_client/jebgalgnebhfojomionfpkfelancnnkf/component1.dll",
"//components/test/data/update_client/jebgalgnebhfojomionfpkfelancnnkf/manifest.json",
"//components/test/data/update_client/runaction_test_win.crx3",
"//components/test/data/update_client/updatecheck_reply_1.json",
"//components/test/data/update_client/updatecheck_reply_4.json",
"//components/test/data/update_client/updatecheck_reply_noupdate.json",
"//components/test/data/update_client/updatecheck_reply_parse_error.json",
"//components/test/data/update_client/updatecheck_reply_unknownapp.json",
]
outputs = [ "$sb_static_contents_output_data_dir/test/{{source_root_relative_dir}}/{{source_file_part}}" ]
}
target(gtest_target_type, "update_client_test") {
testonly = true
sources = [
"component_unpacker_unittest.cc",
# TODO: enable the tests commented out
"crx_downloader_unittest.cc",
"persisted_data_unittest.cc",
"ping_manager_unittest.cc",
"protocol_parser_json_unittest.cc",
# "protocol_serializer_json_unittest.cc",
"protocol_serializer_unittest.cc",
"request_sender_unittest.cc",
"update_checker_unittest.cc",
# "update_client_unittest.cc",
"update_query_params_unittest.cc",
"updater_state_unittest.cc",
"utils_unittest.cc",
]
deps = [
":test_support",
":update_client",
":update_client_test_files",
"//cobalt/base",
"//cobalt/test:run_all_unittests",
"//cobalt/updater",
"//components/crx_file",
"//components/prefs",
"//components/prefs:test_support",
"//crypto",
"//net",
"//net:test_support",
"//testing/gmock",
"//testing/gtest",
"//url",
]
}
target(gtest_target_type, "cobalt_slot_management_test") {
testonly = true
sources = [
"//starboard/common/test_main.cc",
"//starboard/loader_app/system_get_extension_shim.cc",
"cobalt_slot_management_test.cc",
]
deps = [
":update_client",
"//cobalt/base",
"//cobalt/updater",
"//components/crx_file",
"//components/prefs",
"//components/prefs:test_support",
"//crypto",
"//net:test_support",
"//starboard/loader_app",
"//starboard/loader_app:app_key_files",
"//starboard/loader_app:drain_file",
"//starboard/loader_app:installation_manager",
"//testing/gmock",
"//testing/gtest",
]
}