|  | # 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", | 
|  | "//components/version_info", | 
|  | "//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:app_key_files", | 
|  | "//starboard/loader_app:drain_file", | 
|  | "//starboard/loader_app:installation_manager", | 
|  | "//testing/gmock", | 
|  | "//testing/gtest", | 
|  | # TODO: b/296919440 - Make this a data dep | 
|  | "//starboard/loader_app($starboard_toolchain)", | 
|  | ] | 
|  | } |