# Copyright 2014 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("//testing/test.gni") import("//third_party/protobuf/proto_library.gni") component("gcm") { sources = [ "base/gcm_util.cc", "base/gcm_util.h", "base/mcs_message.cc", "base/mcs_message.h", "base/mcs_util.cc", "base/mcs_util.h", "base/socket_stream.cc", "base/socket_stream.h", "engine/account_mapping.cc", "engine/account_mapping.h", "engine/checkin_request.cc", "engine/checkin_request.h", "engine/connection_event_tracker.cc", "engine/connection_event_tracker.h", "engine/connection_factory.cc", "engine/connection_factory.h", "engine/connection_factory_impl.cc", "engine/connection_factory_impl.h", "engine/connection_handler.cc", "engine/connection_handler.h", "engine/connection_handler_impl.cc", "engine/connection_handler_impl.h", "engine/gcm_registration_request_handler.cc", "engine/gcm_registration_request_handler.h", "engine/gcm_store.cc", "engine/gcm_store.h", "engine/gcm_store_impl.cc", "engine/gcm_store_impl.h", "engine/gcm_unregistration_request_handler.cc", "engine/gcm_unregistration_request_handler.h", "engine/gservices_settings.cc", "engine/gservices_settings.h", "engine/gservices_switches.cc", "engine/gservices_switches.h", "engine/heartbeat_manager.cc", "engine/heartbeat_manager.h", "engine/instance_id_delete_token_request_handler.cc", "engine/instance_id_delete_token_request_handler.h", "engine/instance_id_get_token_request_handler.cc", "engine/instance_id_get_token_request_handler.h", "engine/mcs_client.cc", "engine/mcs_client.h", "engine/registration_request.cc", "engine/registration_request.h", "engine/unregistration_request.cc", "engine/unregistration_request.h", "monitoring/gcm_stats_recorder.h", ] defines = [ "GCM_IMPLEMENTATION" ] configs += [ "//build/config/compiler:wexit_time_destructors" ] public_deps = [ ":proto", ] deps = [ "//base", "//base/third_party/dynamic_annotations", "//mojo/public/cpp/system:system", "//net", "//services/network/public/cpp", "//services/network/public/mojom", "//third_party/leveldatabase", "//url", ] } proto_library("proto") { # This is part of the gcm component. visibility = [ ":gcm" ] sources = [ "protocol/android_checkin.proto", "protocol/checkin.proto", "protocol/mcs.proto", ] cc_generator_options = "dllexport_decl=GCM_EXPORT:" cc_include = "google_apis/gcm/base/gcm_export.h" component_build_force_source_set = true defines = [ "GCM_IMPLEMENTATION" ] } static_library("test_support") { testonly = true sources = [ "base/fake_encryptor.cc", "base/fake_encryptor.h", "engine/fake_connection_factory.cc", "engine/fake_connection_factory.h", "engine/fake_connection_handler.cc", "engine/fake_connection_handler.h", "monitoring/fake_gcm_stats_recorder.cc", "monitoring/fake_gcm_stats_recorder.h", ] public_deps = [ ":gcm", ] deps = [ "//base", "//mojo/public/cpp/system:system", "//net", "//net:test_support", "//testing/gtest", ] } # A standalone MCS (mobile connection server) client. if (!is_ios) { executable("mcs_probe") { testonly = true sources = [ "tools/mcs_probe.cc", ] deps = [ ":gcm", ":test_support", "//base", "//build/win:default_exe_manifest", "//mojo/core/embedder", "//net", "//net:test_support", "//services/network:network_service", "//services/network/public/cpp", "//services/network/public/mojom", "//third_party/protobuf:protobuf_lite", ] } } test("gcm_unit_tests") { sources = [ "base/mcs_message_unittest.cc", "base/mcs_util_unittest.cc", "base/socket_stream_unittest.cc", "engine/account_mapping_unittest.cc", "engine/checkin_request_unittest.cc", "engine/connection_event_tracker_unittest.cc", "engine/connection_factory_impl_unittest.cc", "engine/connection_handler_impl_unittest.cc", "engine/gcm_request_test_base.cc", "engine/gcm_request_test_base.h", "engine/gcm_store_impl_unittest.cc", "engine/gservices_settings_unittest.cc", "engine/heartbeat_manager_unittest.cc", "engine/mcs_client_unittest.cc", "engine/registration_request_unittest.cc", "engine/unregistration_request_unittest.cc", ] deps = [ ":gcm", ":test_support", "//base", "//base/test:test_support", "//google_apis:run_all_unittests", "//mojo/public/cpp/system:system", "//net", "//net:test_support", "//services/network:network_service", "//services/network:test_support", "//testing/gtest", "//third_party/protobuf:protobuf_lite", ] }