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

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

Powered by Google App Engine
This is Rietveld 408576698