# Copyright 2020 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import("//testing/test.gni") if (is_android) { import("//build/config/android/rules.gni") } if (use_blink) { source_set("feed_core_v2") { public = [ "public/feed_api.h", "public/feed_service.h", "public/logging_parameters.h", "public/ntp_feed_content_fetcher.h", "public/persistent_key_value_store.h", "public/refresh_task_scheduler.h", "public/reliability_logging_bridge.h", "public/stream_type.h", "public/surface_renderer.h", "public/types.h", # Includes that should be made private: "config.h", ] sources = [ "algorithm.h", "config.cc", "config.h", "enums.cc", "enums.h", "feed_network.cc", "feed_network.h", "feed_network_impl.cc", "feed_network_impl.h", "feed_store.cc", "feed_store.h", "feed_stream.cc", "feed_stream.h", "feed_stream_surface.cc", "feed_stream_surface.h", "feedstore_util.cc", "feedstore_util.h", "image_fetcher.cc", "image_fetcher.h", "launch_reliability_logger.cc", "launch_reliability_logger.h", "metrics_reporter.cc", "metrics_reporter.h", "operation_token.cc", "operation_token.h", "persistent_key_value_store_impl.cc", "persistent_key_value_store_impl.h", "prefs.cc", "prefs.h", "proto_util.cc", "proto_util.h", "protocol_translator.cc", "protocol_translator.h", "public/feed_api.cc", "public/feed_service.cc", "public/logging_parameters.cc", "public/ntp_feed_content_fetcher.cc", "public/ntp_feed_content_fetcher.h", "public/persistent_key_value_store.cc", "public/public_types.cc", "public/stream_type.cc", "request_throttler.cc", "request_throttler.h", "scheduling.cc", "scheduling.h", "stream/info_card_tracker.cc", "stream/info_card_tracker.h", "stream/privacy_notice_card_tracker.cc", "stream/privacy_notice_card_tracker.h", "stream_model.cc", "stream_model.h", "stream_model/ephemeral_change.cc", "stream_model/ephemeral_change.h", "stream_model/feature_tree.cc", "stream_model/feature_tree.h", "stream_surface_set.cc", "stream_surface_set.h", "surface_updater.cc", "surface_updater.h", "tasks/clear_all_task.cc", "tasks/clear_all_task.h", "tasks/load_more_task.cc", "tasks/load_more_task.h", "tasks/load_stream_from_store_task.cc", "tasks/load_stream_from_store_task.h", "tasks/load_stream_task.cc", "tasks/load_stream_task.h", "tasks/prefetch_images_task.cc", "tasks/prefetch_images_task.h", "tasks/upload_actions_task.cc", "tasks/upload_actions_task.h", "tasks/wait_for_store_initialize_task.cc", "tasks/wait_for_store_initialize_task.h", "test/proto_printer.cc", "test/proto_printer.h", "types.cc", "types.h", "user_actions_collector.cc", "user_actions_collector.h", "view_demotion.cc", "view_demotion.h", "wire_response_translator.cc", "wire_response_translator.h", "xsurface_datastore.cc", "xsurface_datastore.h", ] friend = [ ":core_unit_tests", "//components/feed/core/v2/ios/public:feed_ios_public", "//components/feed/core/v2/ios/public:feed_ios_unit_tests", ] deps = [ "public:common", "//components/country_codes", "//components/feed:feature_list", "//components/feed/core/shared_prefs:feed_shared_prefs", "//components/history/core/browser", "//components/leveldb_proto", "//components/offline_pages/task", "//components/prefs", "//components/search_engines", "//components/signin/public/identity_manager", "//components/url_matcher", "//components/variations", "//components/variations/net", "//components/version_info:channel", "//components/web_resource", "//net", "//services/network/public/cpp", "//services/network/public/mojom", "//third_party/zlib/google:compression_utils", "//ui/base", ] public_deps = [ ":ios_shared", "//base", "//components/feed/core/common:feed_core_common", "//components/feed/core/proto:proto_ios_shared_v2", "//components/feed/core/proto:proto_v2", ] } source_set("test_helpers") { testonly = true sources = [ "test/callback_receiver.cc", "test/callback_receiver.h", ] deps = [ "//base", "//base/test:test_support", ] } source_set("core_unit_tests") { testonly = true sources = [ "algorithm_unittest.cc", "api_test/feed_api_notice_card_unittest.cc", "api_test/feed_api_reliability_logging_unittest.cc", "api_test/feed_api_stream_unittest.cc", "api_test/feed_api_test.cc", "api_test/feed_api_test.h", "feed_network_impl_unittest.cc", "feed_store_unittest.cc", "feedstore_util_unittest.cc", "image_fetcher_unittest.cc", "metrics_reporter_unittest.cc", "operation_token_unittest.cc", "persistent_key_value_store_impl_unittest.cc", "proto_util_unittest.cc", "protocol_translator_unittest.cc", "public/feed_service_unittest.cc", "public/logging_parameters_unittest.cc", "public/ntp_feed_content_fetcher_unittest.cc", "public/public_types_unittest.cc", "public/stream_type_unittest.cc", "request_throttler_unittest.cc", "scheduling_unittest.cc", "stream/info_card_tracker_unittest.cc", "stream/privacy_notice_card_tracker_unittest.cc", "stream_model_unittest.cc", "test/callback_receiver_unittest.cc", "test/stream_builder.cc", "test/stream_builder.h", "test/test_util.cc", "test/test_util.h", "types_unittest.cc", "user_actions_collector_unittest.cc", "view_demotion_unittest.cc", "xsurface_datastore_unittest.cc", ] public_deps = [ ":test_helpers" ] deps = [ ":feed_core_stubs", ":feed_core_v2", "public:common", "//base", "//base/test:test_support", "//components/feed:feature_list", "//components/feed/core/common:feed_core_common", "//components/feed/core/shared_prefs:feed_shared_prefs", "//components/history/core/browser", "//components/leveldb_proto:test_support", "//components/offline_pages/core:test_support", "//components/prefs:test_support", "//components/search_engines", "//components/search_engines:test_support", "//components/signin/public/identity_manager", "//components/signin/public/identity_manager:test_support", "//components/sync/base", "//components/sync_preferences:test_support", "//components/variations:test_support", "//components/version_info:channel", "//net:test_support", "//services/network:test_support", "//services/network/public/cpp", "//services/network/public/mojom", "//testing/gtest", "//third_party/zlib/google:compression_utils", ] if (is_ios) { deps += [ "//components/test:feed_test_bundle_data" ] } else { deps += [ ":unit_tests_bundle_data" ] } # TODO(crbug.com/40031409): Fix code that adds exit-time destructors and # enable the diagnostic by removing this line. configs += [ "//build/config/compiler:no_exit_time_destructors" ] } source_set("feed_core_stubs") { testonly = true sources = [ "public/test/stub_feed_api.cc", "public/test/stub_feed_api.h", ] deps = [ ":feed_core_v2", "//testing/gmock", ] } bundle_data("unit_tests_bundle_data") { visibility = [ ":core_unit_tests" ] testonly = true sources = [ "//components/test/data/feed/response.binarypb" ] outputs = [ "{{bundle_resources_dir}}/" + "{{source_root_relative_dir}}/{{source_file_part}}" ] } } if (is_android) { java_cpp_enum("feedv2_enums_java") { sources = [ "enums.h", "public/types.h", ] } # Wrap feedv2_enums_java in an android_library so that only one # android_library needs to depend on feedv2_enums_java. Otherwise, we will get # classes define multiple times. android_library("feedv2_core_java") { srcjar_deps = [ ":feedv2_enums_java" ] deps = [ "//third_party/androidx:androidx_annotation_annotation_java" ] } java_cpp_enum("feedv2_common_enums_java") { sources = [ "public/common_enums.h" ] } # Wrap feedv2_common_enums_java in an android_library so that only one # android_library needs to depend on feedv2_common_enums_java. Otherwise, we # will get classes define multiple times. android_library("feedv2_common_core_java") { srcjar_deps = [ ":feedv2_common_enums_java" ] deps = [ "//third_party/androidx:androidx_annotation_annotation_java" ] } } # This smaller source set is used by Chrome for iOS. source_set("ios_shared") { sources = [ "ios_shared_experiments_translator.cc", "ios_shared_experiments_translator.h", "ios_shared_prefs.cc", "ios_shared_prefs.h", ] deps = [ "//base", "//components/feed/core/common:feed_core_common", "//components/feed/core/proto:proto_ios_shared_v2", "//components/prefs", ] } source_set("ios_shared_unit_tests") { testonly = true sources = [ "ios_shared_experiments_translator_unittest.cc", "ios_shared_prefs_unittest.cc", ] deps = [ ":ios_shared", "//base", "//base/test:test_support", "//components/feed/core/common:feed_core_common", "//components/feed/core/proto:proto_ios_shared_v2", "//components/prefs", "//components/prefs:test_support", "//testing/gtest", ] }