| Index: chrome/browser/extensions/api/mdns/dns_sd_registry_unittest.cc
|
| diff --git a/chrome/browser/extensions/api/mdns/dns_sd_registry_unittest.cc b/chrome/browser/extensions/api/mdns/dns_sd_registry_unittest.cc
|
| deleted file mode 100644
|
| index a95e68a2078230ea75bff8c5ea7f46889a7e1aad..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/extensions/api/mdns/dns_sd_registry_unittest.cc
|
| +++ /dev/null
|
| @@ -1,264 +0,0 @@
|
| -// Copyright 2013 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.
|
| -
|
| -#include "chrome/browser/extensions/api/mdns/dns_sd_registry.h"
|
| -#include "chrome/browser/extensions/api/mdns/dns_sd_delegate.h"
|
| -#include "chrome/browser/extensions/api/mdns/dns_sd_device_lister.h"
|
| -#include "testing/gmock/include/gmock/gmock.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -namespace extensions {
|
| -
|
| -class MockDnsSdDeviceLister : public DnsSdDeviceLister {
|
| - public:
|
| - MockDnsSdDeviceLister() : DnsSdDeviceLister(NULL, NULL, "") {}
|
| - ~MockDnsSdDeviceLister() override {}
|
| -
|
| - MOCK_METHOD1(Discover, void(bool force_update));
|
| -};
|
| -
|
| -class TestDnsSdRegistry : public DnsSdRegistry {
|
| - public:
|
| - TestDnsSdRegistry() : DnsSdRegistry(NULL), delegate_(NULL) {}
|
| - ~TestDnsSdRegistry() override {}
|
| -
|
| - MockDnsSdDeviceLister* GetListerForService(const std::string& service_type) {
|
| - return listers_[service_type];
|
| - }
|
| -
|
| - int GetServiceListenerCount(const std::string& service_type) {
|
| - if (service_data_map_.find(service_type) == service_data_map_.end())
|
| - return 0;
|
| -
|
| - return service_data_map_[service_type]->GetListenerCount();
|
| - }
|
| -
|
| - MockDnsSdDeviceLister* GetLister(const std::string& service_type) {
|
| - return listers_.find(service_type) != listers_.end()
|
| - ? listers_[service_type]
|
| - : nullptr;
|
| - }
|
| -
|
| - DnsSdDelegate* GetDelegate() {
|
| - return delegate_;
|
| - }
|
| -
|
| - protected:
|
| - DnsSdDeviceLister* CreateDnsSdDeviceLister(
|
| - DnsSdDelegate* delegate,
|
| - const std::string& service_type,
|
| - local_discovery::ServiceDiscoverySharedClient* discovery_client)
|
| - override {
|
| - delegate_ = delegate;
|
| - MockDnsSdDeviceLister* lister = new MockDnsSdDeviceLister();
|
| - listers_[service_type] = lister;
|
| - return lister;
|
| - };
|
| -
|
| - private:
|
| - std::map<std::string, MockDnsSdDeviceLister*> listers_;
|
| - // The last delegate used or NULL.
|
| - DnsSdDelegate* delegate_;
|
| -};
|
| -
|
| -class MockDnsSdObserver : public DnsSdRegistry::DnsSdObserver {
|
| - public:
|
| - MOCK_METHOD2(OnDnsSdEvent, void(const std::string&,
|
| - const DnsSdRegistry::DnsSdServiceList&));
|
| -};
|
| -
|
| -class DnsSdRegistryTest : public testing::Test {
|
| - public:
|
| - DnsSdRegistryTest() {}
|
| - ~DnsSdRegistryTest() override {}
|
| -
|
| - void SetUp() override {
|
| - registry_.reset(new TestDnsSdRegistry());
|
| - registry_->AddObserver(&observer_);
|
| - }
|
| -
|
| - protected:
|
| - std::unique_ptr<TestDnsSdRegistry> registry_;
|
| - MockDnsSdObserver observer_;
|
| -};
|
| -
|
| -// Tests registering 2 listeners and removing one. The device lister should
|
| -// not be destroyed.
|
| -TEST_F(DnsSdRegistryTest, RegisterUnregisterListeners) {
|
| - const std::string service_type = "_testing._tcp.local";
|
| -
|
| - EXPECT_CALL(observer_, OnDnsSdEvent(service_type,
|
| - DnsSdRegistry::DnsSdServiceList())).Times(2);
|
| -
|
| - registry_->RegisterDnsSdListener(service_type);
|
| - registry_->RegisterDnsSdListener(service_type);
|
| - registry_->UnregisterDnsSdListener(service_type);
|
| - EXPECT_EQ(1, registry_->GetServiceListenerCount(service_type));
|
| -
|
| - registry_->UnregisterDnsSdListener(service_type);
|
| - EXPECT_EQ(0, registry_->GetServiceListenerCount(service_type));
|
| -}
|
| -
|
| -// Tests that verify calls to ForceDiscovery() are propagated to registered
|
| -// listeners.
|
| -TEST_F(DnsSdRegistryTest, ForceDiscovery) {
|
| - const std::string service_type1 = "_testing1._tcp.local";
|
| - const std::string service_type2 = "_testing2._tcp.local";
|
| -
|
| - EXPECT_CALL(observer_,
|
| - OnDnsSdEvent(service_type1, DnsSdRegistry::DnsSdServiceList()));
|
| - EXPECT_CALL(observer_,
|
| - OnDnsSdEvent(service_type2, DnsSdRegistry::DnsSdServiceList()));
|
| -
|
| - registry_->RegisterDnsSdListener(service_type1);
|
| - registry_->RegisterDnsSdListener(service_type2);
|
| - EXPECT_EQ(1, registry_->GetServiceListenerCount(service_type1));
|
| - EXPECT_EQ(1, registry_->GetServiceListenerCount(service_type2));
|
| -
|
| - EXPECT_CALL(*registry_->GetLister(service_type1), Discover(false));
|
| - EXPECT_CALL(*registry_->GetLister(service_type2), Discover(false));
|
| - registry_->ForceDiscovery();
|
| -}
|
| -
|
| -// Tests registering a listener and receiving an added and updated event.
|
| -TEST_F(DnsSdRegistryTest, AddAndUpdate) {
|
| - const std::string service_type = "_testing._tcp.local";
|
| - const std::string ip_address1 = "192.168.0.100";
|
| - const std::string ip_address2 = "192.168.0.101";
|
| -
|
| - DnsSdService service;
|
| - service.service_name = "_myDevice." + service_type;
|
| - service.ip_address = ip_address1;
|
| -
|
| - DnsSdRegistry::DnsSdServiceList service_list;
|
| -
|
| - EXPECT_CALL(observer_, OnDnsSdEvent(service_type, service_list));
|
| -
|
| - // Add first service.
|
| - service_list.push_back(service);
|
| - EXPECT_CALL(observer_, OnDnsSdEvent(service_type, service_list));
|
| -
|
| - // Clear services and add same one with different IP address.
|
| - service_list.clear();
|
| - service.ip_address = ip_address2;
|
| - service_list.push_back(service);
|
| - EXPECT_CALL(observer_, OnDnsSdEvent(service_type, service_list));
|
| -
|
| - registry_->RegisterDnsSdListener(service_type);
|
| - service.ip_address = ip_address1;
|
| - registry_->GetDelegate()->ServiceChanged(service_type, true, service);
|
| - service.ip_address = ip_address2;
|
| - registry_->GetDelegate()->ServiceChanged(service_type, false, service);
|
| -}
|
| -
|
| -// Tests registering a listener and receiving an added and removed event.
|
| -TEST_F(DnsSdRegistryTest, AddAndRemove) {
|
| - const std::string service_type = "_testing._tcp.local";
|
| -
|
| - DnsSdService service;
|
| - service.service_name = "_myDevice." + service_type;
|
| - service.ip_address = "192.168.0.100";
|
| -
|
| - DnsSdRegistry::DnsSdServiceList service_list;
|
| - // Expect to be called twice with empty list (once on register, once after
|
| - // removing).
|
| - EXPECT_CALL(observer_, OnDnsSdEvent(service_type, service_list)).Times(2);
|
| - service_list.push_back(service);
|
| - // Expect to be called twice with 1 item (once after adding, once after adding
|
| - // again after removal).
|
| - EXPECT_CALL(observer_, OnDnsSdEvent(service_type, service_list)).Times(2);
|
| -
|
| - registry_->RegisterDnsSdListener(service_type);
|
| - registry_->GetDelegate()->ServiceChanged(service_type, true, service);
|
| - registry_->GetDelegate()->ServiceRemoved(service_type, service.service_name);
|
| - registry_->GetDelegate()->ServiceChanged(service_type, true, service);
|
| -}
|
| -
|
| -// Tests adding multiple services.
|
| -TEST_F(DnsSdRegistryTest, AddMultipleServices) {
|
| - const std::string service_type = "_testing._tcp.local";
|
| -
|
| - DnsSdService service;
|
| - service.service_name = "_myDevice." + service_type;
|
| - service.ip_address = "192.168.0.100";
|
| -
|
| - DnsSdService service2;
|
| - service.service_name = "_myDevice2." + service_type;
|
| - service.ip_address = "192.168.0.101";
|
| -
|
| - DnsSdRegistry::DnsSdServiceList service_list;
|
| - EXPECT_CALL(observer_, OnDnsSdEvent(service_type, service_list));
|
| - service_list.push_back(service);
|
| - EXPECT_CALL(observer_, OnDnsSdEvent(service_type, service_list));
|
| - service_list.push_back(service2);
|
| - EXPECT_CALL(observer_, OnDnsSdEvent(service_type, service_list));
|
| -
|
| - registry_->RegisterDnsSdListener(service_type);
|
| - registry_->GetDelegate()->ServiceChanged(service_type, true, service);
|
| - registry_->GetDelegate()->ServiceChanged(service_type, true, service2);
|
| -}
|
| -
|
| -// Tests adding multiple services and handling a flush event.
|
| -TEST_F(DnsSdRegistryTest, FlushCache) {
|
| - testing::InSequence s;
|
| - const std::string service_type = "_testing._tcp.local";
|
| -
|
| - DnsSdService service;
|
| - service.service_name = "_myDevice." + service_type;
|
| - service.ip_address = "192.168.0.100";
|
| -
|
| - DnsSdService service2;
|
| - service.service_name = "_myDevice2." + service_type;
|
| - service.ip_address = "192.168.0.101";
|
| -
|
| - DnsSdRegistry::DnsSdServiceList service_list;
|
| - EXPECT_CALL(observer_, OnDnsSdEvent(service_type, service_list));
|
| - service_list.push_back(service);
|
| - EXPECT_CALL(observer_, OnDnsSdEvent(service_type, service_list));
|
| - service_list.push_back(service2);
|
| - EXPECT_CALL(observer_, OnDnsSdEvent(service_type, service_list));
|
| - service_list.clear();
|
| - EXPECT_CALL(observer_, OnDnsSdEvent(service_type, service_list));
|
| -
|
| - registry_->RegisterDnsSdListener(service_type);
|
| - registry_->GetDelegate()->ServiceChanged(service_type, true, service);
|
| - registry_->GetDelegate()->ServiceChanged(service_type, true, service2);
|
| - registry_->GetDelegate()->ServicesFlushed(service_type);
|
| -}
|
| -
|
| -// Tests receiving an update from the DnsSdDelegate that does not change the
|
| -// service object does not notify the observer.
|
| -TEST_F(DnsSdRegistryTest, UpdateOnlyIfChanged) {
|
| - const std::string service_type = "_testing._tcp.local";
|
| - const std::string ip_address = "192.168.0.100";
|
| -
|
| - DnsSdService service;
|
| - service.service_name = "_myDevice." + service_type;
|
| - service.ip_address = ip_address;
|
| -
|
| - DnsSdRegistry::DnsSdServiceList service_list;
|
| - EXPECT_CALL(observer_, OnDnsSdEvent(service_type, service_list));
|
| -
|
| - // Expect service_list with initial service.
|
| - service_list.push_back(service);
|
| - EXPECT_CALL(observer_, OnDnsSdEvent(service_type, service_list));
|
| -
|
| - // Expect service_list with updated service.
|
| - service_list.clear();
|
| - service.ip_address = "192.168.0.101";
|
| - service_list.push_back(service);
|
| - EXPECT_CALL(observer_, OnDnsSdEvent(service_type, service_list));
|
| - // No more calls to observer_.
|
| -
|
| - registry_->RegisterDnsSdListener(service_type);
|
| - service.ip_address = "192.168.0.100";
|
| - registry_->GetDelegate()->ServiceChanged(service_type, true, service);
|
| - // Update with changed ip address.
|
| - service.ip_address = "192.168.0.101";
|
| - registry_->GetDelegate()->ServiceChanged(service_type, false, service);
|
| - // Update with no changes to the service.
|
| - registry_->GetDelegate()->ServiceChanged(service_type, false, service);
|
| -}
|
| -
|
| -} // namespace extensions
|
|
|