Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(380)

Side by Side Diff: chrome/browser/extensions/api/mdns/mdns_apitest.cc

Issue 2876703002: [mDns] Move dns_sd_registry from extension/api/mdns to media/router/discovery/mdns (Closed)
Patch Set: rebase with master Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/command_line.h" 5 #include "base/command_line.h"
6 #include "base/memory/ptr_util.h" 6 #include "base/memory/ptr_util.h"
7 #include "build/build_config.h" 7 #include "build/build_config.h"
8 #include "chrome/browser/extensions/api/mdns/mdns_api.h" 8 #include "chrome/browser/extensions/api/mdns/mdns_api.h"
9 #include "chrome/browser/extensions/extension_apitest.h" 9 #include "chrome/browser/extensions/extension_apitest.h"
10 #include "chrome/browser/extensions/extension_service.h" 10 #include "chrome/browser/extensions/extension_service.h"
11 #include "chrome/common/extensions/api/mdns.h" 11 #include "chrome/common/extensions/api/mdns.h"
12 #include "extensions/common/switches.h" 12 #include "extensions/common/switches.h"
13 #include "extensions/test/result_catcher.h" 13 #include "extensions/test/result_catcher.h"
14 #include "testing/gmock/include/gmock/gmock.h" 14 #include "testing/gmock/include/gmock/gmock.h"
15 15
16 using extensions::DnsSdRegistry;
17 using ::testing::_; 16 using ::testing::_;
18 using ::testing::A; 17 using ::testing::A;
18 using DnsSdRegistry = media_router::DnsSdRegistry;
19 19
20 namespace api = extensions::api; 20 namespace api = extensions::api;
21 21
22 namespace { 22 namespace {
23 23
24 class MockDnsSdRegistry : public DnsSdRegistry { 24 class MockDnsSdRegistry : public DnsSdRegistry {
25 public: 25 public:
26 explicit MockDnsSdRegistry(extensions::MDnsAPI* api) : api_(api) {} 26 explicit MockDnsSdRegistry(extensions::MDnsAPI* api) : api_(api) {}
27 virtual ~MockDnsSdRegistry() {} 27 virtual ~MockDnsSdRegistry() {}
28 28
29 MOCK_METHOD1(AddObserver, void(DnsSdObserver* observer)); 29 MOCK_METHOD1(AddObserver, void(DnsSdObserver* observer));
30 MOCK_METHOD1(RemoveObserver, void(DnsSdObserver* observer)); 30 MOCK_METHOD1(RemoveObserver, void(DnsSdObserver* observer));
31 MOCK_METHOD1(RegisterDnsSdListener, void(const std::string& service_type)); 31 MOCK_METHOD1(RegisterDnsSdListener, void(const std::string& service_type));
32 MOCK_METHOD1(UnregisterDnsSdListener, void(const std::string& service_type)); 32 MOCK_METHOD1(UnregisterDnsSdListener, void(const std::string& service_type));
33 MOCK_METHOD0(ForceDiscovery, void(void)); 33 MOCK_METHOD0(ForceDiscovery, void(void));
34 34
35 void DispatchMDnsEvent(const std::string& service_type, 35 void DispatchMDnsEvent(const std::string& service_type,
36 const DnsSdServiceList& services) { 36 const DnsSdServiceList& services) {
37 api_->OnDnsSdEvent(service_type, services); 37 api_->OnDnsSdEvent(service_type, services);
38 } 38 }
39 39
40 private: 40 private:
41 extensions::DnsSdRegistry::DnsSdObserver* api_; 41 DnsSdRegistry::DnsSdObserver* api_;
42 }; 42 };
43 43
44 class MDnsAPITest : public ExtensionApiTest { 44 class MDnsAPITest : public ExtensionApiTest {
45 public: 45 public:
46 MDnsAPITest() {} 46 MDnsAPITest() {}
47 47
48 void SetUpCommandLine(base::CommandLine* command_line) override { 48 void SetUpCommandLine(base::CommandLine* command_line) override {
49 ExtensionApiTest::SetUpCommandLine(command_line); 49 ExtensionApiTest::SetUpCommandLine(command_line);
50 command_line->AppendSwitchASCII( 50 command_line->AppendSwitchASCII(
51 extensions::switches::kWhitelistedExtensionID, 51 extensions::switches::kWhitelistedExtensionID,
(...skipping 26 matching lines...) Expand all
78 // Test loading extension, registering an MDNS listener and dispatching events. 78 // Test loading extension, registering an MDNS listener and dispatching events.
79 IN_PROC_BROWSER_TEST_F(MDnsAPITest, MAYBE_RegisterListener) { 79 IN_PROC_BROWSER_TEST_F(MDnsAPITest, MAYBE_RegisterListener) {
80 const std::string& service_type = "_googlecast._tcp.local"; 80 const std::string& service_type = "_googlecast._tcp.local";
81 SetUpTestDnsSdRegistry(); 81 SetUpTestDnsSdRegistry();
82 82
83 EXPECT_CALL(*dns_sd_registry_, RegisterDnsSdListener(service_type)) 83 EXPECT_CALL(*dns_sd_registry_, RegisterDnsSdListener(service_type))
84 .Times(1); 84 .Times(1);
85 EXPECT_CALL(*dns_sd_registry_, UnregisterDnsSdListener(service_type)) 85 EXPECT_CALL(*dns_sd_registry_, UnregisterDnsSdListener(service_type))
86 .Times(1); 86 .Times(1);
87 EXPECT_CALL(*dns_sd_registry_, 87 EXPECT_CALL(*dns_sd_registry_,
88 RemoveObserver(A<extensions::DnsSdRegistry::DnsSdObserver*>())) 88 RemoveObserver(A<DnsSdRegistry::DnsSdObserver*>()))
89 .Times(1); 89 .Times(1);
90 90
91 EXPECT_TRUE(RunExtensionSubtest("mdns/api", "register_listener.html")) 91 EXPECT_TRUE(RunExtensionSubtest("mdns/api", "register_listener.html"))
92 << message_; 92 << message_;
93 93
94 extensions::ResultCatcher catcher; 94 extensions::ResultCatcher catcher;
95 // Dispatch 3 events, one of which should not be sent to the test extension. 95 // Dispatch 3 events, one of which should not be sent to the test extension.
96 DnsSdRegistry::DnsSdServiceList services; 96 DnsSdRegistry::DnsSdServiceList services;
97 97
98 extensions::DnsSdService service; 98 media_router::DnsSdService service;
99 service.service_name = service_type; 99 service.service_name = service_type;
100 services.push_back(service); 100 services.push_back(service);
101 101
102 dns_sd_registry_->DispatchMDnsEvent(service_type, services); 102 dns_sd_registry_->DispatchMDnsEvent(service_type, services);
103 dns_sd_registry_->DispatchMDnsEvent("_uninteresting._tcp.local", services); 103 dns_sd_registry_->DispatchMDnsEvent("_uninteresting._tcp.local", services);
104 dns_sd_registry_->DispatchMDnsEvent(service_type, services); 104 dns_sd_registry_->DispatchMDnsEvent(service_type, services);
105 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); 105 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
106 } 106 }
107 107
108 // TODO(justinlin): Win Dbg has a workaround that makes RunExtensionSubtest 108 // TODO(justinlin): Win Dbg has a workaround that makes RunExtensionSubtest
109 // always return true without actually running the test. Remove when fixed. 109 // always return true without actually running the test. Remove when fixed.
110 #if defined(OS_WIN) && !defined(NDEBUG) 110 #if defined(OS_WIN) && !defined(NDEBUG)
111 #define MAYBE_ForceDiscovery DISABLED_ForceDiscovery 111 #define MAYBE_ForceDiscovery DISABLED_ForceDiscovery
112 #else 112 #else
113 #define MAYBE_ForceDiscovery ForceDiscovery 113 #define MAYBE_ForceDiscovery ForceDiscovery
114 #endif 114 #endif
115 // Test loading extension, registering an MDNS listener and dispatching events. 115 // Test loading extension, registering an MDNS listener and dispatching events.
116 IN_PROC_BROWSER_TEST_F(MDnsAPITest, MAYBE_ForceDiscovery) { 116 IN_PROC_BROWSER_TEST_F(MDnsAPITest, MAYBE_ForceDiscovery) {
117 const std::string& service_type = "_googlecast._tcp.local"; 117 const std::string& service_type = "_googlecast._tcp.local";
118 SetUpTestDnsSdRegistry(); 118 SetUpTestDnsSdRegistry();
119 119
120 EXPECT_CALL(*dns_sd_registry_, RegisterDnsSdListener(service_type)).Times(1); 120 EXPECT_CALL(*dns_sd_registry_, RegisterDnsSdListener(service_type)).Times(1);
121 EXPECT_CALL(*dns_sd_registry_, UnregisterDnsSdListener(service_type)) 121 EXPECT_CALL(*dns_sd_registry_, UnregisterDnsSdListener(service_type))
122 .Times(1); 122 .Times(1);
123 EXPECT_CALL(*dns_sd_registry_, ForceDiscovery()).Times(1); 123 EXPECT_CALL(*dns_sd_registry_, ForceDiscovery()).Times(1);
124 EXPECT_CALL(*dns_sd_registry_, 124 EXPECT_CALL(*dns_sd_registry_,
125 RemoveObserver(A<extensions::DnsSdRegistry::DnsSdObserver*>())) 125 RemoveObserver(A<DnsSdRegistry::DnsSdObserver*>()))
126 .Times(1); 126 .Times(1);
127 127
128 EXPECT_TRUE(RunExtensionSubtest("mdns/api", "force_discovery.html")) 128 EXPECT_TRUE(RunExtensionSubtest("mdns/api", "force_discovery.html"))
129 << message_; 129 << message_;
130 130
131 extensions::ResultCatcher catcher; 131 extensions::ResultCatcher catcher;
132 DnsSdRegistry::DnsSdServiceList services; 132 DnsSdRegistry::DnsSdServiceList services;
133 133
134 extensions::DnsSdService service; 134 media_router::DnsSdService service;
135 service.service_name = service_type; 135 service.service_name = service_type;
136 services.push_back(service); 136 services.push_back(service);
137 137
138 dns_sd_registry_->DispatchMDnsEvent(service_type, services); 138 dns_sd_registry_->DispatchMDnsEvent(service_type, services);
139 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); 139 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
140 } 140 }
141 141
142 // TODO(justinlin): Win Dbg has a workaround that makes RunExtensionSubtest 142 // TODO(justinlin): Win Dbg has a workaround that makes RunExtensionSubtest
143 // always return true without actually running the test. Remove when fixed. 143 // always return true without actually running the test. Remove when fixed.
144 #if defined(OS_WIN) && !defined(NDEBUG) 144 #if defined(OS_WIN) && !defined(NDEBUG)
145 #define MAYBE_RegisterMultipleListeners DISABLED_RegisterMultipleListeners 145 #define MAYBE_RegisterMultipleListeners DISABLED_RegisterMultipleListeners
146 #else 146 #else
147 #define MAYBE_RegisterMultipleListeners RegisterMultipleListeners 147 #define MAYBE_RegisterMultipleListeners RegisterMultipleListeners
148 #endif 148 #endif
149 // Test loading extension and registering multiple listeners. 149 // Test loading extension and registering multiple listeners.
150 IN_PROC_BROWSER_TEST_F(MDnsAPITest, MAYBE_RegisterMultipleListeners) { 150 IN_PROC_BROWSER_TEST_F(MDnsAPITest, MAYBE_RegisterMultipleListeners) {
151 const std::string& service_type = "_googlecast._tcp.local"; 151 const std::string& service_type = "_googlecast._tcp.local";
152 const std::string& test_service_type = "_testing._tcp.local"; 152 const std::string& test_service_type = "_testing._tcp.local";
153 SetUpTestDnsSdRegistry(); 153 SetUpTestDnsSdRegistry();
154 154
155 EXPECT_CALL(*dns_sd_registry_, RegisterDnsSdListener(service_type)) 155 EXPECT_CALL(*dns_sd_registry_, RegisterDnsSdListener(service_type))
156 .Times(1); 156 .Times(1);
157 EXPECT_CALL(*dns_sd_registry_, UnregisterDnsSdListener(service_type)) 157 EXPECT_CALL(*dns_sd_registry_, UnregisterDnsSdListener(service_type))
158 .Times(1); 158 .Times(1);
159 EXPECT_CALL(*dns_sd_registry_, RegisterDnsSdListener(test_service_type)) 159 EXPECT_CALL(*dns_sd_registry_, RegisterDnsSdListener(test_service_type))
160 .Times(1); 160 .Times(1);
161 EXPECT_CALL(*dns_sd_registry_, UnregisterDnsSdListener(test_service_type)) 161 EXPECT_CALL(*dns_sd_registry_, UnregisterDnsSdListener(test_service_type))
162 .Times(1); 162 .Times(1);
163 EXPECT_CALL(*dns_sd_registry_, 163 EXPECT_CALL(*dns_sd_registry_,
164 RemoveObserver(A<extensions::DnsSdRegistry::DnsSdObserver*>())) 164 RemoveObserver(A<DnsSdRegistry::DnsSdObserver*>()))
165 .Times(1); 165 .Times(1);
166 166
167 EXPECT_TRUE(RunExtensionSubtest("mdns/api", 167 EXPECT_TRUE(RunExtensionSubtest("mdns/api",
168 "register_multiple_listeners.html")) 168 "register_multiple_listeners.html"))
169 << message_; 169 << message_;
170 170
171 extensions::ResultCatcher catcher; 171 extensions::ResultCatcher catcher;
172 DnsSdRegistry::DnsSdServiceList services; 172 DnsSdRegistry::DnsSdServiceList services;
173 173
174 extensions::DnsSdService service; 174 media_router::DnsSdService service;
175 service.service_name = service_type; 175 service.service_name = service_type;
176 services.push_back(service); 176 services.push_back(service);
177 177
178 dns_sd_registry_->DispatchMDnsEvent(service_type, services); 178 dns_sd_registry_->DispatchMDnsEvent(service_type, services);
179 dns_sd_registry_->DispatchMDnsEvent(test_service_type, services); 179 dns_sd_registry_->DispatchMDnsEvent(test_service_type, services);
180 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); 180 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
181 } 181 }
182 182
183 // TODO(justinlin): Win Dbg has a workaround that makes RunExtensionSubtest 183 // TODO(justinlin): Win Dbg has a workaround that makes RunExtensionSubtest
184 // always return true without actually running the test. Remove when fixed. 184 // always return true without actually running the test. Remove when fixed.
185 #if defined(OS_WIN) && !defined(NDEBUG) 185 #if defined(OS_WIN) && !defined(NDEBUG)
186 #define MAYBE_RegisterTooManyListeners DISABLED_RegisterTooManyListeners 186 #define MAYBE_RegisterTooManyListeners DISABLED_RegisterTooManyListeners
187 #else 187 #else
188 #define MAYBE_RegisterTooManyListeners RegisterTooManyListeners 188 #define MAYBE_RegisterTooManyListeners RegisterTooManyListeners
189 #endif 189 #endif
190 // Test loading extension and registering multiple listeners. 190 // Test loading extension and registering multiple listeners.
191 IN_PROC_BROWSER_TEST_F(MDnsAPITest, MAYBE_RegisterTooManyListeners) { 191 IN_PROC_BROWSER_TEST_F(MDnsAPITest, MAYBE_RegisterTooManyListeners) {
192 SetUpTestDnsSdRegistry(); 192 SetUpTestDnsSdRegistry();
193 193
194 EXPECT_CALL(*dns_sd_registry_, RegisterDnsSdListener(_)).Times(10); 194 EXPECT_CALL(*dns_sd_registry_, RegisterDnsSdListener(_)).Times(10);
195 EXPECT_CALL(*dns_sd_registry_, UnregisterDnsSdListener(_)).Times(10); 195 EXPECT_CALL(*dns_sd_registry_, UnregisterDnsSdListener(_)).Times(10);
196 EXPECT_CALL(*dns_sd_registry_, 196 EXPECT_CALL(*dns_sd_registry_,
197 RemoveObserver(A<extensions::DnsSdRegistry::DnsSdObserver*>())) 197 RemoveObserver(A<DnsSdRegistry::DnsSdObserver*>()))
198 .Times(1); 198 .Times(1);
199 199
200 EXPECT_TRUE(RunPlatformAppTest("mdns/api-packaged-apps")) 200 EXPECT_TRUE(RunPlatformAppTest("mdns/api-packaged-apps"))
201 << message_; 201 << message_;
202 } 202 }
203 203
204 // TODO(justinlin): Win Dbg has a workaround that makes RunExtensionSubtest 204 // TODO(justinlin): Win Dbg has a workaround that makes RunExtensionSubtest
205 // always return true without actually running the test. Remove when fixed. 205 // always return true without actually running the test. Remove when fixed.
206 #if defined(OS_WIN) && !defined(NDEBUG) 206 #if defined(OS_WIN) && !defined(NDEBUG)
207 #define MAYBE_MaxServiceInstancesPerEventConst \ 207 #define MAYBE_MaxServiceInstancesPerEventConst \
208 DISABLED_MaxServiceInstancesPerEventConst 208 DISABLED_MaxServiceInstancesPerEventConst
209 #else 209 #else
210 #define MAYBE_MaxServiceInstancesPerEventConst MaxServiceInstancesPerEventConst 210 #define MAYBE_MaxServiceInstancesPerEventConst MaxServiceInstancesPerEventConst
211 #endif 211 #endif
212 // Test loading extension and registering multiple listeners. 212 // Test loading extension and registering multiple listeners.
213 IN_PROC_BROWSER_TEST_F(MDnsAPITest, MAYBE_MaxServiceInstancesPerEventConst) { 213 IN_PROC_BROWSER_TEST_F(MDnsAPITest, MAYBE_MaxServiceInstancesPerEventConst) {
214 EXPECT_TRUE(RunExtensionSubtest("mdns/api", 214 EXPECT_TRUE(RunExtensionSubtest("mdns/api",
215 "get_max_service_instances.html")); 215 "get_max_service_instances.html"));
216 } 216 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/api/mdns/mdns_api_unittest.cc ('k') | chrome/browser/media/router/discovery/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698