# 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("//build/config/features.gni") import("//testing/test.gni") static_library("jingle_glue") { sources = [ "glue/chrome_async_socket.cc", "glue/chrome_async_socket.h", "glue/resolving_client_socket_factory.h", "glue/task_pump.cc", "glue/task_pump.h", "glue/thread_wrapper.cc", "glue/thread_wrapper.h", "glue/utils.cc", "glue/utils.h", "glue/xmpp_client_socket_factory.cc", "glue/xmpp_client_socket_factory.h", ] public_deps = [ "//third_party/webrtc_overrides", ] deps = [ ":jingle_fake_socket", "//base", "//base/third_party/dynamic_annotations", "//net", "//services/network:network_service", ] configs += [ "//build/config/compiler:no_size_t_to_int_warning" ] if (is_nacl) { sources -= [ "glue/chrome_async_socket.cc", "glue/xmpp_client_socket_factory.cc", ] deps -= [ "//services/network:network_service" ] } } # These files are separated into their own target to avoid a circular dependency # since services/network depends on this. static_library("jingle_fake_socket") { sources = [ "glue/fake_ssl_client_socket.cc", "glue/fake_ssl_client_socket.h", ] deps = [ "//base", "//net", ] } # A library for sending and receiving peer-issued notifications. static_library("notifier") { sources = [ "notifier/base/const_communicator.h", "notifier/base/gaia_constants.cc", "notifier/base/gaia_constants.h", "notifier/base/gaia_token_pre_xmpp_auth.cc", "notifier/base/gaia_token_pre_xmpp_auth.h", "notifier/base/notification_method.cc", "notifier/base/notification_method.h", "notifier/base/notifier_options.cc", "notifier/base/notifier_options.h", "notifier/base/notifier_options_util.cc", "notifier/base/notifier_options_util.h", "notifier/base/server_information.cc", "notifier/base/server_information.h", "notifier/base/weak_xmpp_client.cc", "notifier/base/weak_xmpp_client.h", "notifier/base/xmpp_connection.cc", "notifier/base/xmpp_connection.h", "notifier/communicator/connection_settings.cc", "notifier/communicator/connection_settings.h", "notifier/communicator/login.cc", "notifier/communicator/login.h", "notifier/communicator/login_settings.cc", "notifier/communicator/login_settings.h", "notifier/communicator/single_login_attempt.cc", "notifier/communicator/single_login_attempt.h", "notifier/listener/non_blocking_push_client.cc", "notifier/listener/non_blocking_push_client.h", "notifier/listener/notification_constants.cc", "notifier/listener/notification_constants.h", "notifier/listener/notification_defines.cc", "notifier/listener/notification_defines.h", "notifier/listener/push_client.cc", "notifier/listener/push_client.h", "notifier/listener/push_client_observer.cc", "notifier/listener/push_client_observer.h", "notifier/listener/push_notifications_listen_task.cc", "notifier/listener/push_notifications_listen_task.h", "notifier/listener/push_notifications_send_update_task.cc", "notifier/listener/push_notifications_send_update_task.h", "notifier/listener/push_notifications_subscribe_task.cc", "notifier/listener/push_notifications_subscribe_task.h", "notifier/listener/send_ping_task.cc", "notifier/listener/send_ping_task.h", "notifier/listener/xml_element_util.cc", "notifier/listener/xml_element_util.h", "notifier/listener/xmpp_push_client.cc", "notifier/listener/xmpp_push_client.h", ] defines = [ "_CRT_SECURE_NO_WARNINGS" ] public_deps = [ "//third_party/libjingle_xmpp", "//third_party/webrtc_overrides", ] deps = [ ":jingle_glue", "//base", "//net", "//third_party/expat", "//url", ] } static_library("notifier_test_util") { testonly = true sources = [ "notifier/base/fake_base_task.cc", "notifier/base/fake_base_task.h", "notifier/listener/fake_push_client.cc", "notifier/listener/fake_push_client.h", "notifier/listener/fake_push_client_observer.cc", "notifier/listener/fake_push_client_observer.h", ] public_deps = [ ":jingle_glue", ":notifier", ] deps = [ "//base", "//testing/gmock", ] } test("jingle_unittests") { sources = [ "glue/chrome_async_socket_unittest.cc", "glue/fake_ssl_client_socket_unittest.cc", "glue/jingle_glue_mock_objects.cc", "glue/jingle_glue_mock_objects.h", "glue/logging_unittest.cc", "glue/mock_task.cc", "glue/mock_task.h", "glue/task_pump_unittest.cc", "glue/thread_wrapper_unittest.cc", "notifier/base/weak_xmpp_client_unittest.cc", "notifier/base/xmpp_connection_unittest.cc", "notifier/communicator/connection_settings_unittest.cc", "notifier/communicator/login_settings_unittest.cc", "notifier/communicator/single_login_attempt_unittest.cc", "notifier/listener/non_blocking_push_client_unittest.cc", "notifier/listener/notification_defines_unittest.cc", "notifier/listener/push_client_unittest.cc", "notifier/listener/push_notifications_send_update_task_unittest.cc", "notifier/listener/push_notifications_subscribe_task_unittest.cc", "notifier/listener/send_ping_task_unittest.cc", "notifier/listener/xml_element_util_unittest.cc", "notifier/listener/xmpp_push_client_unittest.cc", ] if (is_android || is_ios) { sources -= [ # TODO(jrg): # EXPECT_DEBUG_DEATH() uses features not enabled. # Should we -std=c++0x or -std=gnu++0x? "glue/chrome_async_socket_unittest.cc", "notifier/base/xmpp_connection_unittest.cc", ] } if (is_android) { # LibjingleLogTest don't pass on Android (crbug.com/843104). sources -= [ "glue/logging_unittest.cc" ] } configs += [ "//build/config/compiler:no_size_t_to_int_warning" ] public_deps = [ "//third_party/libjingle_xmpp", "//third_party/webrtc_overrides", "//third_party/webrtc_overrides:init_webrtc", ] deps = [ ":jingle_glue", ":notifier", ":notifier_test_util", "//base", "//base/test:run_all_unittests", "//base/test:test_support", "//net", "//net:test_support", "//testing/gmock", "//testing/gtest", ] }