| Index: chrome/browser/local_discovery/privet_device_lister_unittest.cc
|
| diff --git a/chrome/browser/local_discovery/privet_device_lister_unittest.cc b/chrome/browser/local_discovery/privet_device_lister_unittest.cc
|
| deleted file mode 100644
|
| index a165b71874ffbb0586e5d8d1b824714ca62ee5e3..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/local_discovery/privet_device_lister_unittest.cc
|
| +++ /dev/null
|
| @@ -1,312 +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 "base/bind.h"
|
| -#include "chrome/browser/local_discovery/privet_device_lister_impl.h"
|
| -#include "testing/gmock/include/gmock/gmock.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -using testing::SaveArg;
|
| -using testing::_;
|
| -
|
| -namespace local_discovery {
|
| -
|
| -namespace {
|
| -
|
| -class MockServiceResolver;
|
| -class MockServiceWatcher;
|
| -
|
| -class ServiceDiscoveryMockDelegate {
|
| - public:
|
| - virtual void ServiceWatcherStarted(const std::string& service_type,
|
| - MockServiceWatcher* watcher) = 0;
|
| - virtual void ServiceResolverStarted(const std::string& service_type,
|
| - MockServiceResolver* resolver) = 0;
|
| -};
|
| -
|
| -class MockServiceWatcher : public ServiceWatcher {
|
| - public:
|
| - MockServiceWatcher(const std::string& service_type,
|
| - const ServiceWatcher::UpdatedCallback& callback,
|
| - ServiceDiscoveryMockDelegate* mock_delegate)
|
| - : started_(false), service_type_(service_type), callback_(callback),
|
| - mock_delegate_(mock_delegate) {
|
| - }
|
| -
|
| - virtual ~MockServiceWatcher() {
|
| - }
|
| -
|
| - virtual void Start() {
|
| - DCHECK(!started_);
|
| - started_ = true;
|
| - mock_delegate_->ServiceWatcherStarted(service_type_, this);
|
| - }
|
| -
|
| - MOCK_METHOD1(DiscoverNewServices, void(bool force_update));
|
| -
|
| - MOCK_METHOD1(SetActivelyRefreshServices, void(
|
| - bool actively_refresh_services));
|
| -
|
| - virtual std::string GetServiceType() const {
|
| - return service_type_;
|
| - }
|
| -
|
| - bool started() {
|
| - return started_;
|
| - }
|
| -
|
| - ServiceWatcher::UpdatedCallback callback() {
|
| - return callback_;
|
| - }
|
| -
|
| - private:
|
| - bool started_;
|
| - std::string service_type_;
|
| - ServiceWatcher::UpdatedCallback callback_;
|
| - ServiceDiscoveryMockDelegate* mock_delegate_;
|
| -};
|
| -
|
| -class MockServiceResolver : public ServiceResolver {
|
| - public:
|
| - MockServiceResolver(const std::string& service_name,
|
| - const ServiceResolver::ResolveCompleteCallback& callback,
|
| - ServiceDiscoveryMockDelegate* mock_delegate)
|
| - : started_resolving_(false), service_name_(service_name),
|
| - callback_(callback), mock_delegate_(mock_delegate) {
|
| - }
|
| -
|
| - ~MockServiceResolver() override {}
|
| -
|
| - void StartResolving() override {
|
| - started_resolving_ = true;
|
| - mock_delegate_->ServiceResolverStarted(service_name_, this);
|
| - }
|
| -
|
| - bool IsResolving() const {
|
| - return started_resolving_;
|
| - }
|
| -
|
| - std::string GetName() const override { return service_name_; }
|
| -
|
| - const ServiceResolver::ResolveCompleteCallback& callback() {
|
| - return callback_; }
|
| -
|
| - private:
|
| - bool started_resolving_;
|
| - std::string service_name_;
|
| - ServiceResolver::ResolveCompleteCallback callback_;
|
| - ServiceDiscoveryMockDelegate* mock_delegate_;
|
| -};
|
| -
|
| -class MockServiceDiscoveryClient : public ServiceDiscoveryClient {
|
| - public:
|
| - explicit MockServiceDiscoveryClient(
|
| - ServiceDiscoveryMockDelegate* mock_delegate)
|
| - : mock_delegate_(mock_delegate) {
|
| - }
|
| -
|
| - ~MockServiceDiscoveryClient() override {}
|
| -
|
| - // Create a service watcher object listening for DNS-SD service announcements
|
| - // on service type |service_type|.
|
| - scoped_ptr<ServiceWatcher> CreateServiceWatcher(
|
| - const std::string& service_type,
|
| - const ServiceWatcher::UpdatedCallback& callback) override {
|
| - return make_scoped_ptr(
|
| - new MockServiceWatcher(service_type, callback, mock_delegate_));
|
| - }
|
| -
|
| - // Create a service resolver object for getting detailed service information
|
| - // for the service called |service_name|.
|
| - scoped_ptr<ServiceResolver> CreateServiceResolver(
|
| - const std::string& service_name,
|
| - const ServiceResolver::ResolveCompleteCallback& callback) override {
|
| - return make_scoped_ptr(
|
| - new MockServiceResolver(service_name, callback, mock_delegate_));
|
| - }
|
| -
|
| - // Not used in this test.
|
| - scoped_ptr<LocalDomainResolver> CreateLocalDomainResolver(
|
| - const std::string& domain,
|
| - net::AddressFamily address_family,
|
| - const LocalDomainResolver::IPAddressCallback& callback) override {
|
| - NOTREACHED();
|
| - return scoped_ptr<LocalDomainResolver>();
|
| - }
|
| -
|
| - private:
|
| - ServiceDiscoveryMockDelegate* mock_delegate_;
|
| -};
|
| -
|
| -class MockServiceDiscoveryMockDelegate : public ServiceDiscoveryMockDelegate {
|
| - public:
|
| - MOCK_METHOD2(ServiceWatcherStarted, void(const std::string& service_type,
|
| - MockServiceWatcher* watcher));
|
| - MOCK_METHOD2(ServiceResolverStarted, void(const std::string& service_type,
|
| - MockServiceResolver* resolver));
|
| -};
|
| -
|
| -class MockDeviceListerDelegate : public PrivetDeviceLister::Delegate {
|
| - public:
|
| - MockDeviceListerDelegate() {
|
| - }
|
| -
|
| - virtual ~MockDeviceListerDelegate() {
|
| - }
|
| -
|
| - MOCK_METHOD3(DeviceChanged, void(bool added,
|
| - const std::string& name,
|
| - const DeviceDescription& description));
|
| -
|
| - MOCK_METHOD1(DeviceRemoved, void(const std::string& name));
|
| -
|
| - MOCK_METHOD0(DeviceCacheFlushed, void());
|
| -};
|
| -
|
| -class PrivetDeviceListerTest : public testing::Test {
|
| - public:
|
| - PrivetDeviceListerTest() : mock_client_(&mock_delegate_) {
|
| - }
|
| -
|
| - ~PrivetDeviceListerTest() override {
|
| - }
|
| -
|
| - void SetUp() override {
|
| - example_attrs_.push_back("tXtvers=1");
|
| - example_attrs_.push_back("ty=My Printer");
|
| - example_attrs_.push_back("nOte=This is my Printer");
|
| - example_attrs_.push_back("CS=ONlInE");
|
| - example_attrs_.push_back("id=");
|
| -
|
| - service_description_.service_name = "myprinter._privet._tcp.local";
|
| - service_description_.address = net::HostPortPair("myprinter.local", 6006);
|
| - service_description_.metadata = example_attrs_;
|
| - service_description_.last_seen = base::Time() +
|
| - base::TimeDelta::FromSeconds(5);
|
| - service_description_.ip_address.push_back(1);
|
| - service_description_.ip_address.push_back(2);
|
| - service_description_.ip_address.push_back(3);
|
| - service_description_.ip_address.push_back(4);
|
| - }
|
| -
|
| - protected:
|
| - testing::StrictMock<MockServiceDiscoveryMockDelegate> mock_delegate_;
|
| - MockServiceDiscoveryClient mock_client_;
|
| - MockDeviceListerDelegate delegate_;
|
| - std::vector<std::string> example_attrs_;
|
| - ServiceDescription service_description_;
|
| -};
|
| -
|
| -TEST_F(PrivetDeviceListerTest, SimpleUpdateTest) {
|
| - DeviceDescription outgoing_description;
|
| -
|
| - MockServiceWatcher* service_watcher;
|
| - MockServiceResolver* service_resolver;
|
| -
|
| - EXPECT_CALL(mock_delegate_,
|
| - ServiceWatcherStarted("_privet._tcp.local", _))
|
| - .WillOnce(SaveArg<1>(&service_watcher));
|
| - PrivetDeviceListerImpl privet_lister(&mock_client_, &delegate_);
|
| - privet_lister.Start();
|
| - testing::Mock::VerifyAndClear(&mock_delegate_);
|
| -
|
| - EXPECT_CALL(mock_delegate_,
|
| - ServiceResolverStarted("myprinter._privet._tcp.local", _))
|
| - .WillOnce(SaveArg<1>(&service_resolver));
|
| - service_watcher->callback().Run(ServiceWatcher::UPDATE_ADDED,
|
| - "myprinter._privet._tcp.local");
|
| - testing::Mock::VerifyAndClear(&mock_delegate_);
|
| -
|
| - EXPECT_CALL(delegate_, DeviceChanged(true,
|
| - "myprinter._privet._tcp.local",
|
| - _))
|
| - .WillOnce(SaveArg<2>(&outgoing_description));
|
| -
|
| - service_resolver->callback().Run(ServiceResolver::STATUS_SUCCESS,
|
| - service_description_);
|
| -
|
| - EXPECT_EQ(service_description_.address.host(),
|
| - outgoing_description.address.host());
|
| - EXPECT_EQ(service_description_.address.port(),
|
| - outgoing_description.address.port());
|
| - EXPECT_EQ("My Printer", outgoing_description.name);
|
| - EXPECT_EQ("This is my Printer", outgoing_description.description);
|
| - EXPECT_EQ("", outgoing_description.id);
|
| -
|
| - EXPECT_CALL(delegate_, DeviceRemoved("myprinter._privet._tcp.local"));
|
| -
|
| - service_watcher->callback().Run(ServiceWatcher::UPDATE_REMOVED,
|
| - "myprinter._privet._tcp.local");
|
| -}
|
| -
|
| -TEST_F(PrivetDeviceListerTest, MultipleUpdatesPostResolve) {
|
| - MockServiceWatcher* service_watcher;
|
| - MockServiceResolver* service_resolver;
|
| -
|
| - EXPECT_CALL(mock_delegate_,
|
| - ServiceWatcherStarted("_privet._tcp.local", _))
|
| - .WillOnce(SaveArg<1>(&service_watcher));
|
| - PrivetDeviceListerImpl privet_lister(&mock_client_, &delegate_);
|
| - privet_lister.Start();
|
| - testing::Mock::VerifyAndClear(&mock_delegate_);
|
| -
|
| - EXPECT_CALL(mock_delegate_,
|
| - ServiceResolverStarted("myprinter._privet._tcp.local", _))
|
| - .WillOnce(SaveArg<1>(&service_resolver));
|
| -
|
| - service_watcher->callback().Run(ServiceWatcher::UPDATE_CHANGED,
|
| - "myprinter._privet._tcp.local");
|
| - testing::Mock::VerifyAndClear(&mock_delegate_);
|
| -
|
| - EXPECT_CALL(delegate_, DeviceChanged(false,
|
| - "myprinter._privet._tcp.local",
|
| - _));
|
| - service_resolver->callback().Run(ServiceResolver::STATUS_SUCCESS,
|
| - service_description_);
|
| -
|
| - EXPECT_CALL(mock_delegate_,
|
| - ServiceResolverStarted("myprinter._privet._tcp.local", _));
|
| - service_watcher->callback().Run(ServiceWatcher::UPDATE_CHANGED,
|
| - "myprinter._privet._tcp.local");
|
| - testing::Mock::VerifyAndClear(&mock_delegate_);
|
| -}
|
| -
|
| -// Check that the device lister does not create a still-working resolver
|
| -TEST_F(PrivetDeviceListerTest, MultipleUpdatesPreResolve) {
|
| - MockServiceWatcher* service_watcher;
|
| -
|
| - EXPECT_CALL(mock_delegate_,
|
| - ServiceWatcherStarted("_privet._tcp.local", _))
|
| - .WillOnce(SaveArg<1>(&service_watcher));
|
| - PrivetDeviceListerImpl privet_lister(&mock_client_, &delegate_);
|
| - privet_lister.Start();
|
| - testing::Mock::VerifyAndClear(&mock_delegate_);
|
| -
|
| - EXPECT_CALL(mock_delegate_,
|
| - ServiceResolverStarted("myprinter._privet._tcp.local", _))
|
| - .Times(1);
|
| - service_watcher->callback().Run(ServiceWatcher::UPDATE_CHANGED,
|
| - "myprinter._privet._tcp.local");
|
| - service_watcher->callback().Run(ServiceWatcher::UPDATE_CHANGED,
|
| - "myprinter._privet._tcp.local");
|
| -}
|
| -
|
| -TEST_F(PrivetDeviceListerTest, DiscoverNewDevices) {
|
| - MockServiceWatcher* service_watcher;
|
| -
|
| - EXPECT_CALL(mock_delegate_,
|
| - ServiceWatcherStarted("_privet._tcp.local", _))
|
| - .WillOnce(SaveArg<1>(&service_watcher));
|
| - PrivetDeviceListerImpl privet_lister(&mock_client_, &delegate_);
|
| - privet_lister.Start();
|
| - testing::Mock::VerifyAndClear(&mock_delegate_);
|
| -
|
| - EXPECT_CALL(*service_watcher, DiscoverNewServices(false));
|
| - privet_lister.DiscoverNewDevices(false);
|
| -}
|
| -
|
| -
|
| -} // namespace
|
| -
|
| -} // namespace local_discovery
|
|
|