Chromium Code Reviews| Index: chrome/browser/extensions/api/mdns/mdns_api_unittest.cc |
| diff --git a/chrome/browser/extensions/api/mdns/mdns_api_unittest.cc b/chrome/browser/extensions/api/mdns/mdns_api_unittest.cc |
| index 5cb384755f4801b128e5c819b6caac08fdd890bd..080da0ee150bca20ee02afda3f7c8c7caa7da28a 100644 |
| --- a/chrome/browser/extensions/api/mdns/mdns_api_unittest.cc |
| +++ b/chrome/browser/extensions/api/mdns/mdns_api_unittest.cc |
| @@ -94,7 +94,11 @@ base::FilePath bogus_file_pathname(const std::string& name) { |
| class MockDnsSdRegistry : public media_router::DnsSdRegistry { |
| public: |
| explicit MockDnsSdRegistry(extensions::MDnsAPI* api) : api_(api) {} |
| - virtual ~MockDnsSdRegistry() {} |
| + |
| + virtual ~MockDnsSdRegistry() { |
| + RemoveObserver(api_); |
| + api_->SetDnsSdRegistryForTesting(nullptr); |
| + } |
| MOCK_METHOD1(AddObserver, void(DnsSdObserver* observer)); |
| MOCK_METHOD1(RemoveObserver, void(DnsSdObserver* observer)); |
| @@ -105,11 +109,13 @@ class MockDnsSdRegistry : public media_router::DnsSdRegistry { |
| void DispatchMDnsEvent(const std::string& service_type, |
| const DnsSdServiceList& services) { |
| - api_->OnDnsSdEvent(service_type, services); |
| + auto* observer = |
|
mark a. foltz
2017/05/11 23:22:24
MdnsAPI implements the DnsSdObserver interface. I
zhaobin
2017/05/12 17:35:00
Code removed.
|
| + static_cast<media_router::DnsSdRegistry::DnsSdObserver*>(api_); |
| + observer->OnDnsSdEvent(service_type, services); |
| } |
| private: |
| - media_router::DnsSdRegistry::DnsSdObserver* api_; |
| + extensions::MDnsAPI* api_; |
| }; |
| class MockEventRouter : public EventRouter { |
| @@ -204,13 +210,13 @@ class MDnsAPITest : public extensions::ExtensionServiceTestBase { |
| ASSERT_TRUE(MDnsAPI::Get(browser_context())); // constructs MDnsAPI |
| ASSERT_TRUE(EventRouter::Get(browser_context())); // constructs EventRouter |
| - registry_ = new MockDnsSdRegistry(MDnsAPI::Get(browser_context())); |
| + registry_ = |
| + base::MakeUnique<MockDnsSdRegistry>(MDnsAPI::Get(browser_context())); |
| EXPECT_CALL(*dns_sd_registry(), |
| AddObserver(MDnsAPI::Get(browser_context()))) |
| .Times(1); |
| MDnsAPI::Get(browser_context()) |
| - ->SetDnsSdRegistryForTesting( |
| - std::unique_ptr<media_router::DnsSdRegistry>(registry_)); |
| + ->SetDnsSdRegistryForTesting(registry_.get()); |
| render_process_host_.reset( |
| new content::MockRenderProcessHost(browser_context())); |
| @@ -230,9 +236,7 @@ class MDnsAPITest : public extensions::ExtensionServiceTestBase { |
| extensions::ExtensionServiceTestBase::TearDown(); |
| } |
| - virtual MockDnsSdRegistry* dns_sd_registry() { |
| - return registry_; |
| - } |
| + virtual MockDnsSdRegistry* dns_sd_registry() { return registry_.get(); } |
| // Constructs an extension according to the parameters that matter most to |
| // MDnsAPI the local unit tests. |
| @@ -265,9 +269,7 @@ class MDnsAPITest : public extensions::ExtensionServiceTestBase { |
| } |
| private: |
| - // The registry is owned by MDnsAPI, but MDnsAPI does not have an accessor |
| - // for it, so use a private member. |
| - MockDnsSdRegistry* registry_; |
| + std::unique_ptr<MockDnsSdRegistry> registry_; |
| std::unique_ptr<content::RenderProcessHost> render_process_host_; |
| }; |