OLD | NEW |
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/bind.h" | 5 #include "base/bind.h" |
6 #include "base/callback.h" | 6 #include "base/callback.h" |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/macros.h" | 8 #include "base/macros.h" |
9 #include "chrome/browser/browser_process.h" | 9 #include "chrome/browser/browser_process.h" |
10 #include "chrome/browser/chromeos/login/user.h" | 10 #include "chrome/browser/chromeos/login/user.h" |
11 #include "chrome/browser/chromeos/login/user_manager.h" | 11 #include "chrome/browser/chromeos/login/user_manager.h" |
12 #include "chrome/browser/extensions/extension_apitest.h" | 12 #include "chrome/browser/extensions/extension_apitest.h" |
13 #include "chrome/common/chrome_switches.h" | 13 #include "chrome/common/chrome_switches.h" |
14 #include "chrome/test/base/ui_test_utils.h" | 14 #include "chrome/test/base/ui_test_utils.h" |
15 #include "extensions/common/switches.h" | 15 #include "extensions/common/switches.h" |
16 #include "testing/gmock/include/gmock/gmock.h" | 16 #include "testing/gmock/include/gmock/gmock.h" |
17 | 17 |
18 #if defined(OS_CHROMEOS) | 18 #if defined(OS_CHROMEOS) |
19 #include "chrome/browser/chrome_notification_types.h" | 19 #include "chrome/browser/chrome_notification_types.h" |
20 #include "chrome/browser/chromeos/net/network_portal_detector.h" | 20 #include "chrome/browser/chromeos/net/network_portal_detector.h" |
21 #include "chrome/browser/chromeos/net/network_portal_detector_test_impl.h" | 21 #include "chrome/browser/chromeos/net/network_portal_detector_test_impl.h" |
22 #include "chromeos/chromeos_switches.h" | 22 #include "chromeos/chromeos_switches.h" |
23 #include "chromeos/dbus/cryptohome_client.h" | 23 #include "chromeos/dbus/cryptohome_client.h" |
24 #include "chromeos/dbus/dbus_thread_manager.h" | 24 #include "chromeos/dbus/dbus_thread_manager.h" |
25 #include "chromeos/dbus/shill_device_client.h" | 25 #include "chromeos/dbus/shill_device_client.h" |
| 26 #include "chromeos/dbus/shill_ipconfig_client.h" |
26 #include "chromeos/dbus/shill_manager_client.h" | 27 #include "chromeos/dbus/shill_manager_client.h" |
27 #include "chromeos/dbus/shill_profile_client.h" | 28 #include "chromeos/dbus/shill_profile_client.h" |
28 #include "chromeos/dbus/shill_service_client.h" | 29 #include "chromeos/dbus/shill_service_client.h" |
29 #include "chromeos/network/onc/onc_utils.h" | 30 #include "chromeos/network/onc/onc_utils.h" |
30 #include "components/onc/onc_constants.h" | 31 #include "components/onc/onc_constants.h" |
31 #include "components/policy/core/browser/browser_policy_connector.h" | 32 #include "components/policy/core/browser/browser_policy_connector.h" |
32 #include "components/policy/core/common/external_data_fetcher.h" | 33 #include "components/policy/core/common/external_data_fetcher.h" |
33 #include "components/policy/core/common/mock_configuration_policy_provider.h" | 34 #include "components/policy/core/common/mock_configuration_policy_provider.h" |
34 #include "components/policy/core/common/policy_map.h" | 35 #include "components/policy/core/common/policy_map.h" |
35 #include "components/policy/core/common/policy_types.h" | 36 #include "components/policy/core/common/policy_types.h" |
36 #include "content/public/browser/notification_observer.h" | 37 #include "content/public/browser/notification_observer.h" |
37 #include "content/public/browser/notification_registrar.h" | 38 #include "content/public/browser/notification_registrar.h" |
38 #include "content/public/browser/notification_service.h" | 39 #include "content/public/browser/notification_service.h" |
39 #include "content/public/browser/notification_source.h" | 40 #include "content/public/browser/notification_source.h" |
40 #include "policy/policy_constants.h" | 41 #include "policy/policy_constants.h" |
41 #include "third_party/cros_system_api/dbus/service_constants.h" | 42 #include "third_party/cros_system_api/dbus/service_constants.h" |
42 #else // !defined(OS_CHROMEOS) | 43 #else // !defined(OS_CHROMEOS) |
43 #include "chrome/browser/extensions/api/networking_private/networking_private_cr
edentials_getter.h" | 44 #include "chrome/browser/extensions/api/networking_private/networking_private_cr
edentials_getter.h" |
44 #include "chrome/browser/extensions/api/networking_private/networking_private_se
rvice_client.h" | 45 #include "chrome/browser/extensions/api/networking_private/networking_private_se
rvice_client.h" |
45 #include "chrome/browser/extensions/api/networking_private/networking_private_se
rvice_client_factory.h" | 46 #include "chrome/browser/extensions/api/networking_private/networking_private_se
rvice_client_factory.h" |
46 #include "components/wifi/fake_wifi_service.h" | 47 #include "components/wifi/fake_wifi_service.h" |
47 #endif // defined(OS_CHROMEOS) | 48 #endif // defined(OS_CHROMEOS) |
48 | 49 |
| 50 // TODO(stevenjb/mef): Clean these tests up. crbug.com/371442 |
| 51 |
49 using testing::Return; | 52 using testing::Return; |
50 using testing::_; | 53 using testing::_; |
51 | 54 |
52 #if defined(OS_CHROMEOS) | 55 #if defined(OS_CHROMEOS) |
53 using chromeos::CryptohomeClient; | 56 using chromeos::CryptohomeClient; |
54 using chromeos::DBUS_METHOD_CALL_SUCCESS; | 57 using chromeos::DBUS_METHOD_CALL_SUCCESS; |
55 using chromeos::DBusMethodCallStatus; | 58 using chromeos::DBusMethodCallStatus; |
56 using chromeos::DBusThreadManager; | 59 using chromeos::DBusThreadManager; |
57 using chromeos::NetworkPortalDetector; | 60 using chromeos::NetworkPortalDetector; |
58 using chromeos::NetworkPortalDetectorTestImpl; | 61 using chromeos::NetworkPortalDetectorTestImpl; |
59 using chromeos::ShillDeviceClient; | 62 using chromeos::ShillDeviceClient; |
| 63 using chromeos::ShillIPConfigClient; |
60 using chromeos::ShillManagerClient; | 64 using chromeos::ShillManagerClient; |
61 using chromeos::ShillProfileClient; | 65 using chromeos::ShillProfileClient; |
62 using chromeos::ShillServiceClient; | 66 using chromeos::ShillServiceClient; |
63 #else // !defined(OS_CHROMEOS) | 67 #else // !defined(OS_CHROMEOS) |
64 using extensions::NetworkingPrivateServiceClientFactory; | 68 using extensions::NetworkingPrivateServiceClientFactory; |
65 #endif // defined(OS_CHROMEOS) | 69 #endif // defined(OS_CHROMEOS) |
66 | 70 |
67 namespace { | 71 namespace { |
68 | 72 |
69 #if defined(OS_CHROMEOS) | 73 #if defined(OS_CHROMEOS) |
70 const char kUser1ProfilePath[] = "/profile/user1/shill"; | 74 const char kUser1ProfilePath[] = "/profile/user1/shill"; |
| 75 const char kWifiDevicePath[] = "/device/stub_wifi_device1"; |
| 76 const char kCellularDevicePath[] = "/device/stub_cellular_device1"; |
| 77 const char kIPConfigPath[] = "/ipconfig/ipconfig1"; |
71 | 78 |
72 class TestListener : public content::NotificationObserver { | 79 class TestListener : public content::NotificationObserver { |
73 public: | 80 public: |
74 TestListener(const std::string& message, const base::Closure& callback) | 81 TestListener(const std::string& message, const base::Closure& callback) |
75 : message_(message), callback_(callback) { | 82 : message_(message), callback_(callback) { |
76 registrar_.Add(this, | 83 registrar_.Add(this, |
77 chrome::NOTIFICATION_EXTENSION_TEST_MESSAGE, | 84 chrome::NOTIFICATION_EXTENSION_TEST_MESSAGE, |
78 content::NotificationService::AllSources()); | 85 content::NotificationService::AllSources()); |
79 } | 86 } |
80 | 87 |
(...skipping 24 matching lines...) Expand all Loading... |
105 : public extensions::NetworkingPrivateServiceClient::CryptoVerify { | 112 : public extensions::NetworkingPrivateServiceClient::CryptoVerify { |
106 virtual void VerifyDestination(scoped_ptr<base::ListValue> args, | 113 virtual void VerifyDestination(scoped_ptr<base::ListValue> args, |
107 bool* verified, | 114 bool* verified, |
108 std::string* error) OVERRIDE { | 115 std::string* error) OVERRIDE { |
109 *verified = true; | 116 *verified = true; |
110 } | 117 } |
111 | 118 |
112 virtual void VerifyAndEncryptCredentials( | 119 virtual void VerifyAndEncryptCredentials( |
113 scoped_ptr<base::ListValue> args, | 120 scoped_ptr<base::ListValue> args, |
114 const extensions::NetworkingPrivateServiceClient::CryptoVerify:: | 121 const extensions::NetworkingPrivateServiceClient::CryptoVerify:: |
115 VerifyAndEncryptCredentialsCallback& callback) OVERRIDE { | 122 VerifyAndEncryptCredentialsCallback& callback) OVERRIDE { |
116 callback.Run("encrypted_credentials", ""); | 123 callback.Run("encrypted_credentials", ""); |
117 } | 124 } |
118 | 125 |
119 virtual void VerifyAndEncryptData(scoped_ptr<base::ListValue> args, | 126 virtual void VerifyAndEncryptData(scoped_ptr<base::ListValue> args, |
120 std::string* encoded_data, | 127 std::string* encoded_data, |
121 std::string* error) OVERRIDE { | 128 std::string* error) OVERRIDE { |
122 *encoded_data = "encrypted_data"; | 129 *encoded_data = "encrypted_data"; |
123 } | 130 } |
124 }; | 131 }; |
125 #endif // defined(OS_CHROMEOS) | 132 #endif // defined(OS_CHROMEOS) |
126 | 133 |
127 class ExtensionNetworkingPrivateApiTest | 134 class ExtensionNetworkingPrivateApiTest |
128 : public ExtensionApiTest, | 135 : public ExtensionApiTest, |
129 public testing::WithParamInterface<bool> { | 136 public testing::WithParamInterface<bool> { |
130 public: | 137 public: |
131 ExtensionNetworkingPrivateApiTest() | 138 ExtensionNetworkingPrivateApiTest() |
132 #if defined(OS_CHROMEOS) | 139 #if defined(OS_CHROMEOS) |
133 : detector_(NULL) | 140 : detector_(NULL), |
| 141 service_test_(NULL) |
134 #endif | 142 #endif |
135 { | 143 { |
136 } | 144 } |
137 | 145 |
138 bool RunNetworkingSubtest(const std::string& subtest) { | 146 bool RunNetworkingSubtest(const std::string& subtest) { |
139 return RunExtensionSubtest( | 147 return RunExtensionSubtest( |
140 "networking", "main.html?" + subtest, | 148 "networking", "main.html?" + subtest, |
141 kFlagEnableFileAccess | kFlagLoadAsComponent); | 149 kFlagEnableFileAccess | kFlagLoadAsComponent); |
142 } | 150 } |
143 | 151 |
144 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE { | 152 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE { |
145 #if defined(OS_CHROMEOS) | 153 #if defined(OS_CHROMEOS) |
146 EXPECT_CALL(provider_, IsInitializationComplete(_)) | 154 EXPECT_CALL(provider_, IsInitializationComplete(_)) |
147 .WillRepeatedly(Return(true)); | 155 .WillRepeatedly(Return(true)); |
148 policy::BrowserPolicyConnector::SetPolicyProviderForTesting(&provider_); | 156 policy::BrowserPolicyConnector::SetPolicyProviderForTesting(&provider_); |
149 #endif | 157 #endif |
150 | 158 |
151 ExtensionApiTest::SetUpInProcessBrowserTestFixture(); | 159 ExtensionApiTest::SetUpInProcessBrowserTestFixture(); |
152 } | 160 } |
153 | 161 |
154 #if defined(OS_CHROMEOS) | 162 #if defined(OS_CHROMEOS) |
155 static void AssignString(std::string* out, | 163 static void AssignString(std::string* out, |
156 DBusMethodCallStatus call_status, | 164 DBusMethodCallStatus call_status, |
157 const std::string& result) { | 165 const std::string& result) { |
158 CHECK_EQ(call_status, DBUS_METHOD_CALL_SUCCESS); | 166 CHECK_EQ(call_status, DBUS_METHOD_CALL_SUCCESS); |
159 *out = result; | 167 *out = result; |
160 } | 168 } |
161 | 169 |
162 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { | 170 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { |
163 ExtensionApiTest::SetUpCommandLine(command_line); | 171 ExtensionApiTest::SetUpCommandLine(command_line); |
164 // Whitelist the extension ID of the test extension. | 172 // Whitelist the extension ID of the test extension. |
165 command_line->AppendSwitchASCII( | 173 command_line->AppendSwitchASCII( |
166 extensions::switches::kWhitelistedExtensionID, | 174 extensions::switches::kWhitelistedExtensionID, |
167 "epcifkihnkjgphfkloaaleeakhpmgdmn"); | 175 "epcifkihnkjgphfkloaaleeakhpmgdmn"); |
(...skipping 24 matching lines...) Expand all Loading... |
192 | 200 |
193 virtual void SetUpOnMainThread() OVERRIDE { | 201 virtual void SetUpOnMainThread() OVERRIDE { |
194 detector_ = new NetworkPortalDetectorTestImpl(); | 202 detector_ = new NetworkPortalDetectorTestImpl(); |
195 NetworkPortalDetector::InitializeForTesting(detector_); | 203 NetworkPortalDetector::InitializeForTesting(detector_); |
196 | 204 |
197 ExtensionApiTest::SetUpOnMainThread(); | 205 ExtensionApiTest::SetUpOnMainThread(); |
198 content::RunAllPendingInMessageLoop(); | 206 content::RunAllPendingInMessageLoop(); |
199 | 207 |
200 InitializeSanitizedUsername(); | 208 InitializeSanitizedUsername(); |
201 | 209 |
| 210 DBusThreadManager* dbus_manager = DBusThreadManager::Get(); |
202 ShillManagerClient::TestInterface* manager_test = | 211 ShillManagerClient::TestInterface* manager_test = |
203 DBusThreadManager::Get()->GetShillManagerClient()->GetTestInterface(); | 212 dbus_manager->GetShillManagerClient()->GetTestInterface(); |
| 213 ShillIPConfigClient::TestInterface* ip_config_test = |
| 214 dbus_manager->GetShillIPConfigClient()->GetTestInterface(); |
204 ShillDeviceClient::TestInterface* device_test = | 215 ShillDeviceClient::TestInterface* device_test = |
205 DBusThreadManager::Get()->GetShillDeviceClient()->GetTestInterface(); | 216 dbus_manager->GetShillDeviceClient()->GetTestInterface(); |
206 ShillProfileClient::TestInterface* profile_test = | 217 ShillProfileClient::TestInterface* profile_test = |
207 DBusThreadManager::Get()->GetShillProfileClient()->GetTestInterface(); | 218 dbus_manager->GetShillProfileClient()->GetTestInterface(); |
208 ShillServiceClient::TestInterface* service_test = | 219 |
209 DBusThreadManager::Get()->GetShillServiceClient()->GetTestInterface(); | 220 service_test_ = dbus_manager->GetShillServiceClient()->GetTestInterface(); |
210 | 221 |
211 device_test->ClearDevices(); | 222 device_test->ClearDevices(); |
212 service_test->ClearServices(); | 223 service_test_->ClearServices(); |
213 | 224 |
214 // Sends a notification about the added profile. | 225 // Sends a notification about the added profile. |
215 profile_test->AddProfile(kUser1ProfilePath, userhash_); | 226 profile_test->AddProfile(kUser1ProfilePath, userhash_); |
216 | 227 |
217 device_test->AddDevice("/device/stub_wifi_device1", | 228 // Add IPConfigs |
218 shill::kTypeWifi, "stub_wifi_device1"); | 229 base::DictionaryValue ipconfig; |
219 device_test->AddDevice("/device/stub_cellular_device1", | 230 ipconfig.SetStringWithoutPathExpansion(shill::kAddressProperty, "0.0.0.0"); |
220 shill::kTypeCellular, "stub_cellular_device1"); | 231 ipconfig.SetStringWithoutPathExpansion(shill::kGatewayProperty, "0.0.0.1"); |
| 232 ipconfig.SetIntegerWithoutPathExpansion(shill::kPrefixlenProperty, 0); |
| 233 ipconfig.SetStringWithoutPathExpansion( |
| 234 shill::kMethodProperty, shill::kTypeIPv4); |
| 235 ip_config_test->AddIPConfig(kIPConfigPath, ipconfig); |
221 | 236 |
| 237 // Add Devices |
| 238 device_test->AddDevice( |
| 239 kWifiDevicePath, shill::kTypeWifi, "stub_wifi_device1"); |
| 240 base::ListValue wifi_ip_configs; |
| 241 wifi_ip_configs.AppendString(kIPConfigPath); |
| 242 device_test->SetDeviceProperty( |
| 243 kWifiDevicePath, shill::kIPConfigsProperty, wifi_ip_configs); |
| 244 device_test->AddDevice( |
| 245 kCellularDevicePath, shill::kTypeCellular, "stub_cellular_device1"); |
| 246 |
| 247 // Add Services |
222 const bool add_to_watchlist = true; | 248 const bool add_to_watchlist = true; |
223 const bool add_to_visible = true; | 249 const bool add_to_visible = true; |
224 service_test->AddService("stub_ethernet", "eth0", | 250 service_test_->AddService("stub_ethernet", "eth0", |
225 shill::kTypeEthernet, shill::kStateOnline, | 251 shill::kTypeEthernet, shill::kStateOnline, |
226 add_to_visible, add_to_watchlist); | 252 add_to_visible, add_to_watchlist); |
227 service_test->SetServiceProperty( | 253 service_test_->SetServiceProperty( |
228 "stub_ethernet", | 254 "stub_ethernet", |
229 shill::kProfileProperty, | 255 shill::kProfileProperty, |
230 base::StringValue(ShillProfileClient::GetSharedProfilePath())); | 256 base::StringValue(ShillProfileClient::GetSharedProfilePath())); |
231 profile_test->AddService(ShillProfileClient::GetSharedProfilePath(), | 257 profile_test->AddService(ShillProfileClient::GetSharedProfilePath(), |
232 "stub_ethernet"); | 258 "stub_ethernet"); |
233 | 259 |
234 service_test->AddService("stub_wifi1", "wifi1", | 260 service_test_->AddService("stub_wifi1", "wifi1", |
235 shill::kTypeWifi, shill::kStateOnline, | 261 shill::kTypeWifi, shill::kStateOnline, |
236 add_to_visible, add_to_watchlist); | 262 add_to_visible, add_to_watchlist); |
237 service_test->SetServiceProperty("stub_wifi1", | 263 service_test_->SetServiceProperty("stub_wifi1", |
238 shill::kSecurityProperty, | 264 shill::kSecurityProperty, |
239 base::StringValue(shill::kSecurityWep)); | 265 base::StringValue(shill::kSecurityWep)); |
240 service_test->SetServiceProperty("stub_wifi1", | 266 service_test_->SetServiceProperty("stub_wifi1", |
241 shill::kProfileProperty, | 267 shill::kSignalStrengthProperty, |
242 base::StringValue(kUser1ProfilePath)); | 268 base::FundamentalValue(40)); |
| 269 service_test_->SetServiceProperty("stub_wifi1", |
| 270 shill::kProfileProperty, |
| 271 base::StringValue(kUser1ProfilePath)); |
| 272 service_test_->SetServiceProperty("stub_wifi1", |
| 273 shill::kConnectableProperty, |
| 274 base::FundamentalValue(true)); |
| 275 service_test_->SetServiceProperty("stub_wifi1", |
| 276 shill::kDeviceProperty, |
| 277 base::StringValue(kWifiDevicePath)); |
243 profile_test->AddService(kUser1ProfilePath, "stub_wifi1"); | 278 profile_test->AddService(kUser1ProfilePath, "stub_wifi1"); |
244 base::ListValue frequencies1; | 279 base::ListValue frequencies1; |
245 frequencies1.AppendInteger(2400); | 280 frequencies1.AppendInteger(2400); |
246 service_test->SetServiceProperty("stub_wifi1", | 281 service_test_->SetServiceProperty("stub_wifi1", |
247 shill::kWifiFrequencyListProperty, | 282 shill::kWifiFrequencyListProperty, |
248 frequencies1); | 283 frequencies1); |
249 service_test->SetServiceProperty("stub_wifi1", | 284 service_test_->SetServiceProperty("stub_wifi1", |
250 shill::kWifiFrequency, | 285 shill::kWifiFrequency, |
251 base::FundamentalValue(2400)); | 286 base::FundamentalValue(2400)); |
252 | 287 |
253 service_test->AddService("stub_wifi2", "wifi2_PSK", | 288 service_test_->AddService("stub_wifi2", "wifi2_PSK", |
254 shill::kTypeWifi, shill::kStateIdle, | 289 shill::kTypeWifi, shill::kStateIdle, |
255 add_to_visible, add_to_watchlist); | 290 add_to_visible, add_to_watchlist); |
256 service_test->SetServiceProperty("stub_wifi2", | 291 service_test_->SetServiceProperty("stub_wifi2", |
257 shill::kGuidProperty, | 292 shill::kGuidProperty, |
258 base::StringValue("stub_wifi2")); | 293 base::StringValue("stub_wifi2")); |
259 service_test->SetServiceProperty("stub_wifi2", | 294 service_test_->SetServiceProperty("stub_wifi2", |
260 shill::kSecurityProperty, | 295 shill::kSecurityProperty, |
261 base::StringValue(shill::kSecurityPsk)); | 296 base::StringValue(shill::kSecurityPsk)); |
262 service_test->SetServiceProperty("stub_wifi2", | 297 service_test_->SetServiceProperty("stub_wifi2", |
263 shill::kSignalStrengthProperty, | 298 shill::kSignalStrengthProperty, |
264 base::FundamentalValue(80)); | 299 base::FundamentalValue(80)); |
265 service_test->SetServiceProperty("stub_wifi2", | 300 service_test_->SetServiceProperty("stub_wifi2", |
266 shill::kConnectableProperty, | 301 shill::kConnectableProperty, |
267 base::FundamentalValue(true)); | 302 base::FundamentalValue(true)); |
268 | 303 |
269 base::ListValue frequencies2; | 304 base::ListValue frequencies2; |
270 frequencies2.AppendInteger(2400); | 305 frequencies2.AppendInteger(2400); |
271 frequencies2.AppendInteger(5000); | 306 frequencies2.AppendInteger(5000); |
272 service_test->SetServiceProperty("stub_wifi2", | 307 service_test_->SetServiceProperty("stub_wifi2", |
273 shill::kWifiFrequencyListProperty, | 308 shill::kWifiFrequencyListProperty, |
274 frequencies2); | 309 frequencies2); |
275 service_test->SetServiceProperty("stub_wifi2", | 310 service_test_->SetServiceProperty("stub_wifi2", |
276 shill::kWifiFrequency, | 311 shill::kWifiFrequency, |
277 base::FundamentalValue(5000)); | 312 base::FundamentalValue(5000)); |
278 service_test->SetServiceProperty("stub_wifi2", | 313 service_test_->SetServiceProperty("stub_wifi2", |
279 shill::kProfileProperty, | 314 shill::kProfileProperty, |
280 base::StringValue(kUser1ProfilePath)); | 315 base::StringValue(kUser1ProfilePath)); |
281 profile_test->AddService(kUser1ProfilePath, "stub_wifi2"); | 316 profile_test->AddService(kUser1ProfilePath, "stub_wifi2"); |
282 | 317 |
283 service_test->AddService("stub_cellular1", "cellular1", | 318 service_test_->AddService("stub_vpn1", "vpn1", |
284 shill::kTypeCellular, shill::kStateIdle, | 319 shill::kTypeVPN, |
285 add_to_visible, add_to_watchlist); | 320 shill::kStateOnline, |
286 service_test->SetServiceProperty( | 321 add_to_visible, add_to_watchlist); |
287 "stub_cellular1", | |
288 shill::kNetworkTechnologyProperty, | |
289 base::StringValue(shill::kNetworkTechnologyGsm)); | |
290 service_test->SetServiceProperty( | |
291 "stub_cellular1", | |
292 shill::kActivationStateProperty, | |
293 base::StringValue(shill::kActivationStateNotActivated)); | |
294 service_test->SetServiceProperty( | |
295 "stub_cellular1", | |
296 shill::kRoamingStateProperty, | |
297 base::StringValue(shill::kRoamingStateHome)); | |
298 | |
299 service_test->AddService("stub_vpn1", "vpn1", | |
300 shill::kTypeVPN, | |
301 shill::kStateOnline, | |
302 add_to_visible, add_to_watchlist); | |
303 | 322 |
304 manager_test->SortManagerServices(); | 323 manager_test->SortManagerServices(); |
305 | 324 |
306 content::RunAllPendingInMessageLoop(); | 325 content::RunAllPendingInMessageLoop(); |
307 } | 326 } |
308 #else // !defined(OS_CHROMEOS) | 327 #else // !defined(OS_CHROMEOS) |
309 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { | 328 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { |
310 ExtensionApiTest::SetUpCommandLine(command_line); | 329 ExtensionApiTest::SetUpCommandLine(command_line); |
311 // Whitelist the extension ID of the test extension. | 330 // Whitelist the extension ID of the test extension. |
312 command_line->AppendSwitchASCII( | 331 command_line->AppendSwitchASCII( |
(...skipping 15 matching lines...) Expand all Loading... |
328 &CreateNetworkingPrivateServiceClient); | 347 &CreateNetworkingPrivateServiceClient); |
329 } | 348 } |
330 | 349 |
331 #endif // OS_CHROMEOS | 350 #endif // OS_CHROMEOS |
332 | 351 |
333 protected: | 352 protected: |
334 #if defined(OS_CHROMEOS) | 353 #if defined(OS_CHROMEOS) |
335 NetworkPortalDetectorTestImpl* detector() { return detector_; } | 354 NetworkPortalDetectorTestImpl* detector() { return detector_; } |
336 | 355 |
337 NetworkPortalDetectorTestImpl* detector_; | 356 NetworkPortalDetectorTestImpl* detector_; |
| 357 ShillServiceClient::TestInterface* service_test_; |
338 policy::MockConfigurationPolicyProvider provider_; | 358 policy::MockConfigurationPolicyProvider provider_; |
339 std::string userhash_; | 359 std::string userhash_; |
340 #endif | 360 #endif |
341 }; | 361 }; |
342 | 362 |
343 // Place each subtest into a separate browser test so that the stub networking | 363 // Place each subtest into a separate browser test so that the stub networking |
344 // library state is reset for each subtest run. This way they won't affect each | 364 // library state is reset for each subtest run. This way they won't affect each |
345 // other. | 365 // other. |
346 | 366 |
347 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, StartConnect) { | 367 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, StartConnect) { |
(...skipping 13 matching lines...) Expand all Loading... |
361 StartDisconnectNonexistent) { | 381 StartDisconnectNonexistent) { |
362 EXPECT_TRUE(RunNetworkingSubtest("startDisconnectNonexistent")) << message_; | 382 EXPECT_TRUE(RunNetworkingSubtest("startDisconnectNonexistent")) << message_; |
363 } | 383 } |
364 | 384 |
365 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, | 385 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, |
366 StartGetPropertiesNonexistent) { | 386 StartGetPropertiesNonexistent) { |
367 EXPECT_TRUE(RunNetworkingSubtest("startGetPropertiesNonexistent")) | 387 EXPECT_TRUE(RunNetworkingSubtest("startGetPropertiesNonexistent")) |
368 << message_; | 388 << message_; |
369 } | 389 } |
370 | 390 |
| 391 #if defined(OS_CHROMEOS) |
| 392 // Non-Chrome OS only supports wifi currently. |
371 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, GetVisibleNetworks) { | 393 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, GetVisibleNetworks) { |
372 EXPECT_TRUE(RunNetworkingSubtest("getVisibleNetworks")) << message_; | 394 EXPECT_TRUE(RunNetworkingSubtest("getVisibleNetworks")) << message_; |
373 } | 395 } |
| 396 #endif |
374 | 397 |
375 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, | 398 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, |
376 GetVisibleNetworksWifi) { | 399 GetVisibleNetworksWifi) { |
377 EXPECT_TRUE(RunNetworkingSubtest("getVisibleNetworksWifi")) << message_; | 400 EXPECT_TRUE(RunNetworkingSubtest("getVisibleNetworksWifi")) << message_; |
378 } | 401 } |
379 | 402 |
| 403 #if defined(OS_CHROMEOS) |
| 404 // TODO(stevenjb/mef): Fix this on non-Chrome OS, crbug.com/371442. |
380 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, RequestNetworkScan) { | 405 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, RequestNetworkScan) { |
381 EXPECT_TRUE(RunNetworkingSubtest("requestNetworkScan")) << message_; | 406 EXPECT_TRUE(RunNetworkingSubtest("requestNetworkScan")) << message_; |
382 } | 407 } |
| 408 #endif |
383 | 409 |
384 // Properties are filtered and translated through | 410 // Properties are filtered and translated through |
385 // ShillToONCTranslator::TranslateWiFiWithState | 411 // ShillToONCTranslator::TranslateWiFiWithState |
386 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, GetProperties) { | 412 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, GetProperties) { |
387 EXPECT_TRUE(RunNetworkingSubtest("getProperties")) << message_; | 413 EXPECT_TRUE(RunNetworkingSubtest("getProperties")) << message_; |
388 } | 414 } |
389 | 415 |
390 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, GetState) { | 416 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, GetState) { |
391 EXPECT_TRUE(RunNetworkingSubtest("getState")) << message_; | 417 EXPECT_TRUE(RunNetworkingSubtest("getState")) << message_; |
392 } | 418 } |
393 | 419 |
394 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, GetStateNonExistent) { | 420 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, GetStateNonExistent) { |
395 EXPECT_TRUE(RunNetworkingSubtest("getStateNonExistent")) << message_; | 421 EXPECT_TRUE(RunNetworkingSubtest("getStateNonExistent")) << message_; |
396 } | 422 } |
397 | 423 |
398 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, SetProperties) { | 424 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, SetProperties) { |
399 EXPECT_TRUE(RunNetworkingSubtest("setProperties")) << message_; | 425 EXPECT_TRUE(RunNetworkingSubtest("setProperties")) << message_; |
400 } | 426 } |
401 | 427 |
402 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, CreateNetwork) { | 428 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, CreateNetwork) { |
403 EXPECT_TRUE(RunNetworkingSubtest("createNetwork")) << message_; | 429 EXPECT_TRUE(RunNetworkingSubtest("createNetwork")) << message_; |
404 } | 430 } |
405 | 431 |
| 432 #if defined(OS_CHROMEOS) |
| 433 // TODO(stevenjb/mef): Find a maintainable way to support this on win/mac and |
| 434 // a better way to set this up on Chrome OS. |
406 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, | 435 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, |
407 GetManagedProperties) { | 436 GetManagedProperties) { |
408 #if defined(OS_CHROMEOS) | |
409 // TODO(mef): Move this to ChromeOS-specific helper or SetUpOnMainThread. | |
410 ShillServiceClient::TestInterface* service_test = | |
411 DBusThreadManager::Get()->GetShillServiceClient()->GetTestInterface(); | |
412 const std::string uidata_blob = | 437 const std::string uidata_blob = |
413 "{ \"user_settings\": {" | 438 "{ \"user_settings\": {" |
414 " \"WiFi\": {" | 439 " \"WiFi\": {" |
415 " \"Passphrase\": \"FAKE_CREDENTIAL_VPaJDV9x\" }" | 440 " \"Passphrase\": \"FAKE_CREDENTIAL_VPaJDV9x\" }" |
416 " }" | 441 " }" |
417 "}"; | 442 "}"; |
418 service_test->SetServiceProperty("stub_wifi2", | 443 service_test_->SetServiceProperty("stub_wifi2", |
419 shill::kUIDataProperty, | 444 shill::kUIDataProperty, |
420 base::StringValue(uidata_blob)); | 445 base::StringValue(uidata_blob)); |
421 service_test->SetServiceProperty("stub_wifi2", | 446 service_test_->SetServiceProperty("stub_wifi2", |
422 shill::kAutoConnectProperty, | 447 shill::kAutoConnectProperty, |
423 base::FundamentalValue(false)); | 448 base::FundamentalValue(false)); |
424 | 449 |
425 ShillProfileClient::TestInterface* profile_test = | 450 ShillProfileClient::TestInterface* profile_test = |
426 DBusThreadManager::Get()->GetShillProfileClient()->GetTestInterface(); | 451 DBusThreadManager::Get()->GetShillProfileClient()->GetTestInterface(); |
427 // Update the profile entry. | 452 // Update the profile entry. |
428 profile_test->AddService(kUser1ProfilePath, "stub_wifi2"); | 453 profile_test->AddService(kUser1ProfilePath, "stub_wifi2"); |
429 | 454 |
430 content::RunAllPendingInMessageLoop(); | 455 content::RunAllPendingInMessageLoop(); |
431 | 456 |
432 const std::string user_policy_blob = | 457 const std::string user_policy_blob = |
433 "{ \"NetworkConfigurations\": [" | 458 "{ \"NetworkConfigurations\": [" |
(...skipping 13 matching lines...) Expand all Loading... |
447 | 472 |
448 policy::PolicyMap policy; | 473 policy::PolicyMap policy; |
449 policy.Set(policy::key::kOpenNetworkConfiguration, | 474 policy.Set(policy::key::kOpenNetworkConfiguration, |
450 policy::POLICY_LEVEL_MANDATORY, | 475 policy::POLICY_LEVEL_MANDATORY, |
451 policy::POLICY_SCOPE_USER, | 476 policy::POLICY_SCOPE_USER, |
452 new base::StringValue(user_policy_blob), | 477 new base::StringValue(user_policy_blob), |
453 NULL); | 478 NULL); |
454 provider_.UpdateChromePolicy(policy); | 479 provider_.UpdateChromePolicy(policy); |
455 | 480 |
456 content::RunAllPendingInMessageLoop(); | 481 content::RunAllPendingInMessageLoop(); |
457 #endif // OS_CHROMEOS | |
458 | 482 |
459 EXPECT_TRUE(RunNetworkingSubtest("getManagedProperties")) << message_; | 483 EXPECT_TRUE(RunNetworkingSubtest("getManagedProperties")) << message_; |
460 } | 484 } |
| 485 #endif // OS_CHROMEOS |
461 | 486 |
462 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, | 487 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, |
463 OnNetworksChangedEventConnect) { | 488 OnNetworksChangedEventConnect) { |
464 EXPECT_TRUE(RunNetworkingSubtest("onNetworksChangedEventConnect")) | 489 EXPECT_TRUE(RunNetworkingSubtest("onNetworksChangedEventConnect")) |
465 << message_; | 490 << message_; |
466 } | 491 } |
467 | 492 |
468 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, | 493 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, |
469 OnNetworksChangedEventDisconnect) { | 494 OnNetworksChangedEventDisconnect) { |
470 EXPECT_TRUE(RunNetworkingSubtest("onNetworksChangedEventDisconnect")) | 495 EXPECT_TRUE(RunNetworkingSubtest("onNetworksChangedEventDisconnect")) |
471 << message_; | 496 << message_; |
472 } | 497 } |
473 | 498 |
| 499 #if defined(OS_CHROMEOS) |
| 500 // TODO(stevenjb/mef): Fix this on non-Chrome OS, crbug.com/371442. |
474 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, | 501 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, |
475 OnNetworkListChangedEvent) { | 502 OnNetworkListChangedEvent) { |
476 EXPECT_TRUE(RunNetworkingSubtest("onNetworkListChangedEvent")) << message_; | 503 EXPECT_TRUE(RunNetworkingSubtest("onNetworkListChangedEvent")) << message_; |
477 } | 504 } |
| 505 #endif // OS_CHROMEOS |
478 | 506 |
479 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, | 507 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, |
480 VerifyDestination) { | 508 VerifyDestination) { |
481 EXPECT_TRUE(RunNetworkingSubtest("verifyDestination")) << message_; | 509 EXPECT_TRUE(RunNetworkingSubtest("verifyDestination")) << message_; |
482 } | 510 } |
483 | 511 |
484 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, | 512 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, |
485 VerifyAndEncryptCredentials) { | 513 VerifyAndEncryptCredentials) { |
486 EXPECT_TRUE(RunNetworkingSubtest("verifyAndEncryptCredentials")) << message_; | 514 EXPECT_TRUE(RunNetworkingSubtest("verifyAndEncryptCredentials")) << message_; |
487 } | 515 } |
(...skipping 13 matching lines...) Expand all Loading... |
501 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, | 529 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, |
502 GetWifiTDLSStatus) { | 530 GetWifiTDLSStatus) { |
503 EXPECT_TRUE(RunNetworkingSubtest("getWifiTDLSStatus")) << message_; | 531 EXPECT_TRUE(RunNetworkingSubtest("getWifiTDLSStatus")) << message_; |
504 } | 532 } |
505 #endif | 533 #endif |
506 | 534 |
507 // NetworkPortalDetector is only enabled for Chrome OS. | 535 // NetworkPortalDetector is only enabled for Chrome OS. |
508 #if defined(OS_CHROMEOS) | 536 #if defined(OS_CHROMEOS) |
509 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, | 537 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, |
510 GetCaptivePortalStatus) { | 538 GetCaptivePortalStatus) { |
| 539 service_test_->AddService("stub_cellular1", "cellular1", |
| 540 shill::kTypeCellular, shill::kStateIdle, |
| 541 true /* add_to_visible */, |
| 542 true /* add_to_watchlist */); |
| 543 service_test_->SetServiceProperty( |
| 544 "stub_cellular1", |
| 545 shill::kNetworkTechnologyProperty, |
| 546 base::StringValue(shill::kNetworkTechnologyGsm)); |
| 547 service_test_->SetServiceProperty( |
| 548 "stub_cellular1", |
| 549 shill::kActivationStateProperty, |
| 550 base::StringValue(shill::kActivationStateNotActivated)); |
| 551 service_test_->SetServiceProperty( |
| 552 "stub_cellular1", |
| 553 shill::kRoamingStateProperty, |
| 554 base::StringValue(shill::kRoamingStateHome)); |
| 555 DBusThreadManager::Get()->GetShillManagerClient()->GetTestInterface()-> |
| 556 SortManagerServices(); |
| 557 content::RunAllPendingInMessageLoop(); |
| 558 |
511 NetworkPortalDetector::CaptivePortalState state; | 559 NetworkPortalDetector::CaptivePortalState state; |
512 state.status = NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE; | 560 state.status = NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE; |
513 detector()->SetDetectionResultsForTesting("stub_ethernet", state); | 561 detector()->SetDetectionResultsForTesting("stub_ethernet", state); |
514 | 562 |
515 state.status = NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_OFFLINE; | 563 state.status = NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_OFFLINE; |
516 detector()->SetDetectionResultsForTesting("stub_wifi1", state); | 564 detector()->SetDetectionResultsForTesting("stub_wifi1", state); |
517 | 565 |
518 state.status = NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL; | 566 state.status = NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL; |
519 detector()->SetDetectionResultsForTesting("stub_wifi2", state); | 567 detector()->SetDetectionResultsForTesting("stub_wifi2", state); |
520 | 568 |
(...skipping 17 matching lines...) Expand all Loading... |
538 base::Unretained(detector()))); | 586 base::Unretained(detector()))); |
539 EXPECT_TRUE(RunNetworkingSubtest("captivePortalNotification")) << message_; | 587 EXPECT_TRUE(RunNetworkingSubtest("captivePortalNotification")) << message_; |
540 } | 588 } |
541 #endif // defined(OS_CHROMEOS) | 589 #endif // defined(OS_CHROMEOS) |
542 | 590 |
543 INSTANTIATE_TEST_CASE_P(ExtensionNetworkingPrivateApiTestInstantiation, | 591 INSTANTIATE_TEST_CASE_P(ExtensionNetworkingPrivateApiTestInstantiation, |
544 ExtensionNetworkingPrivateApiTest, | 592 ExtensionNetworkingPrivateApiTest, |
545 testing::Bool()); | 593 testing::Bool()); |
546 | 594 |
547 } // namespace | 595 } // namespace |
OLD | NEW |