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

Side by Side Diff: chrome/browser/extensions/api/networking_private/networking_private_apitest.cc

Issue 54323003: Base infrastructure for Networking Private API on Windows and Mac. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Sync up to r236620 Created 7 years, 1 month 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 | Annotate | Revision Log
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/callback.h" 5 #include "base/callback.h"
6 #include "base/command_line.h" 6 #include "base/command_line.h"
7 #include "chrome/browser/browser_process.h" 7 #include "chrome/browser/browser_process.h"
8 #include "chrome/browser/chromeos/login/user.h" 8 #include "chrome/browser/chromeos/login/user.h"
9 #include "chrome/browser/chromeos/login/user_manager.h" 9 #include "chrome/browser/chromeos/login/user_manager.h"
10 #include "chrome/browser/extensions/extension_apitest.h" 10 #include "chrome/browser/extensions/extension_apitest.h"
(...skipping 12 matching lines...) Expand all
23 #include "chromeos/dbus/shill_profile_client.h" 23 #include "chromeos/dbus/shill_profile_client.h"
24 #include "chromeos/dbus/shill_service_client.h" 24 #include "chromeos/dbus/shill_service_client.h"
25 #include "chromeos/dbus/shill_stub_helper.h" 25 #include "chromeos/dbus/shill_stub_helper.h"
26 #include "chromeos/network/onc/onc_utils.h" 26 #include "chromeos/network/onc/onc_utils.h"
27 #include "components/onc/onc_constants.h" 27 #include "components/onc/onc_constants.h"
28 #include "components/policy/core/common/external_data_fetcher.h" 28 #include "components/policy/core/common/external_data_fetcher.h"
29 #include "components/policy/core/common/policy_map.h" 29 #include "components/policy/core/common/policy_map.h"
30 #include "components/policy/core/common/policy_types.h" 30 #include "components/policy/core/common/policy_types.h"
31 #include "policy/policy_constants.h" 31 #include "policy/policy_constants.h"
32 #include "third_party/cros_system_api/dbus/service_constants.h" 32 #include "third_party/cros_system_api/dbus/service_constants.h"
33 #endif // OS_CHROMEOS 33 #else // !defined(OS_CHROMEOS)
34 #include "chrome/browser/extensions/api/networking_private/networking_private_se rvice_client.h"
35 #include "chrome/browser/extensions/api/networking_private/networking_private_se rvice_client_factory.h"
36 #include "components/wifi/wifi_service.h"
37 #endif // defined(OS_CHROMEOS)
34 38
35 using testing::Return; 39 using testing::Return;
36 using testing::_; 40 using testing::_;
37 41
38 namespace chromeos { 42 #if defined(OS_CHROMEOS)
43 using chromeos::CryptohomeClient;
44 using chromeos::DBUS_METHOD_CALL_SUCCESS;
45 using chromeos::DBusMethodCallStatus;
46 using chromeos::DBusThreadManager;
47 using chromeos::ShillDeviceClient;
48 using chromeos::ShillManagerClient;
49 using chromeos::ShillProfileClient;
50 using chromeos::ShillServiceClient;
51 #else // !defined(OS_CHROMEOS)
52 using extensions::NetworkingPrivateServiceClientFactory;
53 #endif // defined(OS_CHROMEOS)
54
55 namespace {
39 56
40 #if defined(OS_CHROMEOS) 57 #if defined(OS_CHROMEOS)
41 const char kUser1ProfilePath[] = "/profile/user1/shill"; 58 const char kUser1ProfilePath[] = "/profile/user1/shill";
59 #else // !defined(OS_CHROMEOS)
60
61 // Stub Verify* methods implementation to satisfy expectations of
62 // networking_private_apitest.
63 // TODO(mef): Fix ChromeOS implementation to use NetworkingPrivateCrypto,
64 // and update networking_private_apitest to use and expect valid data.
65 // That will eliminate the need for mock implementation.
66 class CryptoVerifyStub
67 : public extensions::NetworkingPrivateServiceClient::CryptoVerify {
68 virtual void VerifyDestination(scoped_ptr<base::ListValue> args,
69 bool* verified,
70 std::string* error) OVERRIDE {
71 *verified = true;
72 }
73
74 virtual void VerifyAndEncryptData(scoped_ptr<base::ListValue> args,
75 std::string* encoded_data,
76 std::string* error) OVERRIDE {
77 *encoded_data = "encrypted_data";
78 }
79 };
42 #endif // defined(OS_CHROMEOS) 80 #endif // defined(OS_CHROMEOS)
43 81
44 class ExtensionNetworkingPrivateApiTest : 82 class ExtensionNetworkingPrivateApiTest :
45 public ExtensionApiTest, 83 public ExtensionApiTest,
46 public testing::WithParamInterface<bool> { 84 public testing::WithParamInterface<bool> {
47 public: 85 public:
48 bool RunNetworkingSubtest(const std::string& subtest) { 86 bool RunNetworkingSubtest(const std::string& subtest) {
49 return RunExtensionSubtest( 87 return RunExtensionSubtest(
50 "networking", "main.html?" + subtest, 88 "networking", "main.html?" + subtest,
51 kFlagEnableFileAccess | kFlagLoadAsComponent); 89 kFlagEnableFileAccess | kFlagLoadAsComponent);
(...skipping 19 matching lines...) Expand all
71 109
72 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { 110 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
73 ExtensionApiTest::SetUpCommandLine(command_line); 111 ExtensionApiTest::SetUpCommandLine(command_line);
74 // Whitelist the extension ID of the test extension. 112 // Whitelist the extension ID of the test extension.
75 command_line->AppendSwitchASCII(::switches::kWhitelistedExtensionID, 113 command_line->AppendSwitchASCII(::switches::kWhitelistedExtensionID,
76 "epcifkihnkjgphfkloaaleeakhpmgdmn"); 114 "epcifkihnkjgphfkloaaleeakhpmgdmn");
77 115
78 // TODO(pneubeck): Remove the following hack, once the NetworkingPrivateAPI 116 // TODO(pneubeck): Remove the following hack, once the NetworkingPrivateAPI
79 // uses the ProfileHelper to obtain the userhash crbug/238623. 117 // uses the ProfileHelper to obtain the userhash crbug/238623.
80 std::string login_user = 118 std::string login_user =
81 command_line->GetSwitchValueNative(switches::kLoginUser); 119 command_line->GetSwitchValueNative(chromeos::switches::kLoginUser);
82 std::string sanitized_user = CryptohomeClient::GetStubSanitizedUsername( 120 std::string sanitized_user = CryptohomeClient::GetStubSanitizedUsername(
83 login_user); 121 login_user);
84 command_line->AppendSwitchASCII(switches::kLoginProfile, sanitized_user); 122 command_line->AppendSwitchASCII(chromeos::switches::kLoginProfile,
123 sanitized_user);
85 if (GetParam()) 124 if (GetParam())
86 command_line->AppendSwitch(::switches::kMultiProfiles); 125 command_line->AppendSwitch(::switches::kMultiProfiles);
87 } 126 }
88 127
89 void InitializeSanitizedUsername() { 128 void InitializeSanitizedUsername() {
90 chromeos::UserManager* user_manager = chromeos::UserManager::Get(); 129 chromeos::UserManager* user_manager = chromeos::UserManager::Get();
91 chromeos::User* user = user_manager->GetActiveUser(); 130 chromeos::User* user = user_manager->GetActiveUser();
92 CHECK(user); 131 CHECK(user);
93 std::string userhash; 132 std::string userhash;
94 DBusThreadManager::Get()->GetCryptohomeClient()->GetSanitizedUsername( 133 DBusThreadManager::Get()->GetCryptohomeClient()->GetSanitizedUsername(
(...skipping 30 matching lines...) Expand all
125 shill::kTypeCellular, "stub_cellular_device1"); 164 shill::kTypeCellular, "stub_cellular_device1");
126 165
127 const bool add_to_watchlist = true; 166 const bool add_to_watchlist = true;
128 const bool add_to_visible = true; 167 const bool add_to_visible = true;
129 service_test->AddService("stub_ethernet", "eth0", 168 service_test->AddService("stub_ethernet", "eth0",
130 shill::kTypeEthernet, shill::kStateOnline, 169 shill::kTypeEthernet, shill::kStateOnline,
131 add_to_visible, add_to_watchlist); 170 add_to_visible, add_to_watchlist);
132 service_test->SetServiceProperty( 171 service_test->SetServiceProperty(
133 "stub_ethernet", 172 "stub_ethernet",
134 shill::kProfileProperty, 173 shill::kProfileProperty,
135 base::StringValue(shill_stub_helper::kSharedProfilePath)); 174 base::StringValue(chromeos::shill_stub_helper::kSharedProfilePath));
136 profile_test->AddService(shill_stub_helper::kSharedProfilePath, 175 profile_test->AddService(chromeos::shill_stub_helper::kSharedProfilePath,
137 "stub_ethernet"); 176 "stub_ethernet");
138 177
139 service_test->AddService("stub_wifi1", "wifi1", 178 service_test->AddService("stub_wifi1", "wifi1",
140 shill::kTypeWifi, shill::kStateOnline, 179 shill::kTypeWifi, shill::kStateOnline,
141 add_to_visible, add_to_watchlist); 180 add_to_visible, add_to_watchlist);
142 service_test->SetServiceProperty("stub_wifi1", 181 service_test->SetServiceProperty("stub_wifi1",
143 shill::kSecurityProperty, 182 shill::kSecurityProperty,
144 base::StringValue(shill::kSecurityWep)); 183 base::StringValue(shill::kSecurityWep));
145 service_test->SetServiceProperty("stub_wifi1", 184 service_test->SetServiceProperty("stub_wifi1",
146 shill::kProfileProperty, 185 shill::kProfileProperty,
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 content::RunAllPendingInMessageLoop(); 250 content::RunAllPendingInMessageLoop();
212 } 251 }
213 #else // !defined(OS_CHROMEOS) 252 #else // !defined(OS_CHROMEOS)
214 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { 253 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
215 ExtensionApiTest::SetUpCommandLine(command_line); 254 ExtensionApiTest::SetUpCommandLine(command_line);
216 // Whitelist the extension ID of the test extension. 255 // Whitelist the extension ID of the test extension.
217 command_line->AppendSwitchASCII(::switches::kWhitelistedExtensionID, 256 command_line->AppendSwitchASCII(::switches::kWhitelistedExtensionID,
218 "epcifkihnkjgphfkloaaleeakhpmgdmn"); 257 "epcifkihnkjgphfkloaaleeakhpmgdmn");
219 } 258 }
220 259
260 static BrowserContextKeyedService*
261 CreateNetworkingPrivateServiceClient(content::BrowserContext* profile) {
262 return new extensions::NetworkingPrivateServiceClient(
263 wifi::WiFiService::CreateForTest(),
264 new CryptoVerifyStub());
265 }
266
221 virtual void SetUpOnMainThread() OVERRIDE { 267 virtual void SetUpOnMainThread() OVERRIDE {
222 ExtensionApiTest::SetUpOnMainThread(); 268 ExtensionApiTest::SetUpOnMainThread();
223 content::RunAllPendingInMessageLoop(); 269 content::RunAllPendingInMessageLoop();
270 NetworkingPrivateServiceClientFactory::GetInstance()->SetTestingFactory(
271 profile(),
272 &CreateNetworkingPrivateServiceClient);
224 } 273 }
274
225 #endif // OS_CHROMEOS 275 #endif // OS_CHROMEOS
226 276
227 protected: 277 protected:
228 #if defined(OS_CHROMEOS) 278 #if defined(OS_CHROMEOS)
229 policy::MockConfigurationPolicyProvider provider_; 279 policy::MockConfigurationPolicyProvider provider_;
230 std::string userhash_; 280 std::string userhash_;
231 #endif 281 #endif
232 }; 282 };
233 283
234 // Place each subtest into a separate browser test so that the stub networking 284 // Place each subtest into a separate browser test so that the stub networking
(...skipping 17 matching lines...) Expand all
252 StartDisconnectNonexistent) { 302 StartDisconnectNonexistent) {
253 EXPECT_TRUE(RunNetworkingSubtest("startDisconnectNonexistent")) << message_; 303 EXPECT_TRUE(RunNetworkingSubtest("startDisconnectNonexistent")) << message_;
254 } 304 }
255 305
256 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, 306 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest,
257 StartGetPropertiesNonexistent) { 307 StartGetPropertiesNonexistent) {
258 EXPECT_TRUE(RunNetworkingSubtest("startGetPropertiesNonexistent")) 308 EXPECT_TRUE(RunNetworkingSubtest("startGetPropertiesNonexistent"))
259 << message_; 309 << message_;
260 } 310 }
261 311
262 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, CreateNetwork) {
263 EXPECT_TRUE(RunNetworkingSubtest("createNetwork")) << message_;
264 }
265
266 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, GetVisibleNetworks) { 312 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, GetVisibleNetworks) {
267 EXPECT_TRUE(RunNetworkingSubtest("getVisibleNetworks")) << message_; 313 EXPECT_TRUE(RunNetworkingSubtest("getVisibleNetworks")) << message_;
268 } 314 }
269 315
270 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, 316 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest,
271 GetVisibleNetworksWifi) { 317 GetVisibleNetworksWifi) {
272 EXPECT_TRUE(RunNetworkingSubtest("getVisibleNetworksWifi")) << message_; 318 EXPECT_TRUE(RunNetworkingSubtest("getVisibleNetworksWifi")) << message_;
273 } 319 }
274 320
275 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, RequestNetworkScan) { 321 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, RequestNetworkScan) {
276 EXPECT_TRUE(RunNetworkingSubtest("requestNetworkScan")) << message_; 322 EXPECT_TRUE(RunNetworkingSubtest("requestNetworkScan")) << message_;
277 } 323 }
278 324
279 // Properties are filtered and translated through 325 // Properties are filtered and translated through
280 // ShillToONCTranslator::TranslateWiFiWithState 326 // ShillToONCTranslator::TranslateWiFiWithState
281 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, GetProperties) { 327 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, GetProperties) {
282 EXPECT_TRUE(RunNetworkingSubtest("getProperties")) << message_; 328 EXPECT_TRUE(RunNetworkingSubtest("getProperties")) << message_;
283 } 329 }
284 330
285 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, GetState) { 331 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, GetState) {
286 EXPECT_TRUE(RunNetworkingSubtest("getState")) << message_; 332 EXPECT_TRUE(RunNetworkingSubtest("getState")) << message_;
287 } 333 }
288 334
289 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, SetProperties) { 335 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, SetProperties) {
290 EXPECT_TRUE(RunNetworkingSubtest("setProperties")) << message_; 336 EXPECT_TRUE(RunNetworkingSubtest("setProperties")) << message_;
291 } 337 }
292 338
293 #if defined(OS_CHROMEOS) 339 #if defined(OS_CHROMEOS)
340 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, CreateNetwork) {
341 EXPECT_TRUE(RunNetworkingSubtest("createNetwork")) << message_;
342 }
343
294 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, GetStateNonExistent) { 344 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, GetStateNonExistent) {
295 EXPECT_TRUE(RunNetworkingSubtest("getStateNonExistent")) << message_; 345 EXPECT_TRUE(RunNetworkingSubtest("getStateNonExistent")) << message_;
296 } 346 }
297 347
298 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, 348 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest,
299 GetManagedProperties) { 349 GetManagedProperties) {
300 ShillServiceClient::TestInterface* service_test = 350 ShillServiceClient::TestInterface* service_test =
301 DBusThreadManager::Get()->GetShillServiceClient()->GetTestInterface(); 351 DBusThreadManager::Get()->GetShillServiceClient()->GetTestInterface();
302 const std::string uidata_blob = 352 const std::string uidata_blob =
303 "{ \"user_settings\": {" 353 "{ \"user_settings\": {"
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
378 428
379 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest, 429 IN_PROC_BROWSER_TEST_P(ExtensionNetworkingPrivateApiTest,
380 VerifyAndEncryptData) { 430 VerifyAndEncryptData) {
381 EXPECT_TRUE(RunNetworkingSubtest("verifyAndEncryptData")) << message_; 431 EXPECT_TRUE(RunNetworkingSubtest("verifyAndEncryptData")) << message_;
382 } 432 }
383 433
384 INSTANTIATE_TEST_CASE_P(ExtensionNetworkingPrivateApiTestInstantiation, 434 INSTANTIATE_TEST_CASE_P(ExtensionNetworkingPrivateApiTestInstantiation,
385 ExtensionNetworkingPrivateApiTest, 435 ExtensionNetworkingPrivateApiTest,
386 testing::Bool()); 436 testing::Bool());
387 437
388 } // namespace chromeos 438 } // namespace
439
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698