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

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

Issue 2891453002: Introduce networkingPrivate.getCertificateLists (Closed)
Patch Set: Clang format 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 <memory> 5 #include <memory>
6 #include <utility> 6 #include <utility>
7 7
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 10 matching lines...) Expand all
21 #include "chromeos/chromeos_switches.h" 21 #include "chromeos/chromeos_switches.h"
22 #include "chromeos/cryptohome/cryptohome_parameters.h" 22 #include "chromeos/cryptohome/cryptohome_parameters.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_ipconfig_client.h"
27 #include "chromeos/dbus/shill_manager_client.h" 27 #include "chromeos/dbus/shill_manager_client.h"
28 #include "chromeos/dbus/shill_profile_client.h" 28 #include "chromeos/dbus/shill_profile_client.h"
29 #include "chromeos/dbus/shill_service_client.h" 29 #include "chromeos/dbus/shill_service_client.h"
30 #include "chromeos/network/managed_network_configuration_handler.h" 30 #include "chromeos/network/managed_network_configuration_handler.h"
31 #include "chromeos/network/network_certificate_handler.h"
31 #include "chromeos/network/network_handler.h" 32 #include "chromeos/network/network_handler.h"
32 #include "chromeos/network/network_state_handler.h" 33 #include "chromeos/network/network_state_handler.h"
33 #include "chromeos/network/onc/onc_utils.h" 34 #include "chromeos/network/onc/onc_utils.h"
34 #include "chromeos/network/portal_detector/network_portal_detector.h" 35 #include "chromeos/network/portal_detector/network_portal_detector.h"
35 #include "components/onc/onc_constants.h" 36 #include "components/onc/onc_constants.h"
36 #include "components/policy/core/browser/browser_policy_connector.h" 37 #include "components/policy/core/browser/browser_policy_connector.h"
37 #include "components/policy/core/common/external_data_fetcher.h" 38 #include "components/policy/core/common/external_data_fetcher.h"
38 #include "components/policy/core/common/mock_configuration_policy_provider.h" 39 #include "components/policy/core/common/mock_configuration_policy_provider.h"
39 #include "components/policy/core/common/policy_map.h" 40 #include "components/policy/core/common/policy_map.h"
40 #include "components/policy/core/common/policy_types.h" 41 #include "components/policy/core/common/policy_types.h"
41 #include "components/policy/policy_constants.h" 42 #include "components/policy/policy_constants.h"
42 #include "components/user_manager/user.h" 43 #include "components/user_manager/user.h"
43 #include "components/user_manager/user_manager.h" 44 #include "components/user_manager/user_manager.h"
44 #include "components/user_manager/user_names.h" 45 #include "components/user_manager/user_names.h"
45 #include "content/public/browser/notification_observer.h" 46 #include "content/public/browser/notification_observer.h"
46 #include "content/public/browser/notification_registrar.h" 47 #include "content/public/browser/notification_registrar.h"
47 #include "content/public/browser/notification_service.h" 48 #include "content/public/browser/notification_service.h"
48 #include "content/public/browser/notification_source.h" 49 #include "content/public/browser/notification_source.h"
49 #include "content/public/test/test_utils.h" 50 #include "content/public/test/test_utils.h"
50 #include "extensions/browser/api/networking_private/networking_private_chromeos. h" 51 #include "extensions/browser/api/networking_private/networking_private_chromeos. h"
51 #include "extensions/browser/api/networking_private/networking_private_delegate_ factory.h" 52 #include "extensions/browser/api/networking_private/networking_private_delegate_ factory.h"
52 #include "extensions/browser/notification_types.h" 53 #include "extensions/browser/notification_types.h"
53 #include "extensions/common/switches.h" 54 #include "extensions/common/switches.h"
55 #include "net/test/cert_test_util.h"
56 #include "net/test/test_data_directory.h"
54 #include "testing/gmock/include/gmock/gmock.h" 57 #include "testing/gmock/include/gmock/gmock.h"
55 #include "third_party/cros_system_api/dbus/service_constants.h" 58 #include "third_party/cros_system_api/dbus/service_constants.h"
56 59
57 // This tests the Chrome OS implementation of the networkingPrivate API 60 // This tests the Chrome OS implementation of the networkingPrivate API
58 // (NetworkingPrivateChromeOS). Note: The test expectations for chromeos, and 61 // (NetworkingPrivateChromeOS). Note: The test expectations for chromeos, and
59 // win/mac (NetworkingPrivateServiceClient) are different to reflect the 62 // win/mac (NetworkingPrivateServiceClient) are different to reflect the
60 // different implementations, but should be kept similar where possible. 63 // different implementations, but should be kept similar where possible.
61 64
62 using testing::Return; 65 using testing::Return;
63 using testing::_; 66 using testing::_;
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 } 319 }
317 320
318 void AddService(const std::string& service_path, 321 void AddService(const std::string& service_path,
319 const std::string& name, 322 const std::string& name,
320 const std::string& type, 323 const std::string& type,
321 const std::string& state) { 324 const std::string& state) {
322 service_test_->AddService(service_path, service_path + "_guid", name, type, 325 service_test_->AddService(service_path, service_path + "_guid", name, type,
323 state, true /* add_to_visible */); 326 state, true /* add_to_visible */);
324 } 327 }
325 328
326 static std::unique_ptr<KeyedService> CreateNetworkingPrivateServiceClient( 329 static std::unique_ptr<KeyedService> CreateNetworkingPrivateDelegate(
327 content::BrowserContext* context) { 330 content::BrowserContext* context) {
328 std::unique_ptr<NetworkingPrivateDelegate> result( 331 std::unique_ptr<NetworkingPrivateDelegate> result(
329 new NetworkingPrivateChromeOS(context)); 332 new NetworkingPrivateChromeOS(context));
330 std::unique_ptr<NetworkingPrivateDelegate::UIDelegate> ui_delegate( 333 std::unique_ptr<NetworkingPrivateDelegate::UIDelegate> ui_delegate(
331 new UIDelegateStub); 334 new UIDelegateStub);
332 result->set_ui_delegate(std::move(ui_delegate)); 335 result->set_ui_delegate(std::move(ui_delegate));
333 return result; 336 return result;
334 } 337 }
335 338
336 void SetUp() override { 339 void SetUp() override {
337 networking_cast_delegate_factory_ = base::Bind( 340 networking_cast_delegate_factory_ = base::Bind(
338 &NetworkingPrivateChromeOSApiTest::CreateNetworkingCastPrivateDelegate, 341 &NetworkingPrivateChromeOSApiTest::CreateNetworkingCastPrivateDelegate,
339 base::Unretained(this)); 342 base::Unretained(this));
340 ChromeNetworkingCastPrivateDelegate::SetFactoryCallbackForTest( 343 ChromeNetworkingCastPrivateDelegate::SetFactoryCallbackForTest(
341 &networking_cast_delegate_factory_); 344 &networking_cast_delegate_factory_);
342 345
343 ExtensionApiTest::SetUp(); 346 ExtensionApiTest::SetUp();
344 } 347 }
345 348
346 void SetUpOnMainThread() override { 349 void SetUpOnMainThread() override {
347 detector_ = new NetworkPortalDetectorTestImpl(); 350 detector_ = new NetworkPortalDetectorTestImpl();
348 chromeos::network_portal_detector::InitializeForTesting(detector_); 351 chromeos::network_portal_detector::InitializeForTesting(detector_);
349 352
350 ExtensionApiTest::SetUpOnMainThread(); 353 ExtensionApiTest::SetUpOnMainThread();
351 content::RunAllPendingInMessageLoop(); 354 content::RunAllPendingInMessageLoop();
352 355
353 NetworkingPrivateDelegateFactory::GetInstance()->SetTestingFactory( 356 NetworkingPrivateDelegateFactory::GetInstance()->SetTestingFactory(
354 profile(), &CreateNetworkingPrivateServiceClient); 357 profile(), &CreateNetworkingPrivateDelegate);
355 358
356 InitializeSanitizedUsername(); 359 InitializeSanitizedUsername();
357 360
358 DBusThreadManager* dbus_manager = DBusThreadManager::Get(); 361 DBusThreadManager* dbus_manager = DBusThreadManager::Get();
359 manager_test_ = dbus_manager->GetShillManagerClient()->GetTestInterface(); 362 manager_test_ = dbus_manager->GetShillManagerClient()->GetTestInterface();
360 profile_test_ = dbus_manager->GetShillProfileClient()->GetTestInterface(); 363 profile_test_ = dbus_manager->GetShillProfileClient()->GetTestInterface();
361 service_test_ = dbus_manager->GetShillServiceClient()->GetTestInterface(); 364 service_test_ = dbus_manager->GetShillServiceClient()->GetTestInterface();
362 device_test_ = dbus_manager->GetShillDeviceClient()->GetTestInterface(); 365 device_test_ = dbus_manager->GetShillDeviceClient()->GetTestInterface();
363 366
364 ShillIPConfigClient::TestInterface* ip_config_test = 367 ShillIPConfigClient::TestInterface* ip_config_test =
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
479 profile_test_->AddService(kUser1ProfilePath, "stub_vpn2"); 482 profile_test_->AddService(kUser1ProfilePath, "stub_vpn2");
480 483
481 content::RunAllPendingInMessageLoop(); 484 content::RunAllPendingInMessageLoop();
482 } 485 }
483 486
484 void TearDown() override { 487 void TearDown() override {
485 ExtensionApiTest::TearDown(); 488 ExtensionApiTest::TearDown();
486 ChromeNetworkingCastPrivateDelegate::SetFactoryCallbackForTest(nullptr); 489 ChromeNetworkingCastPrivateDelegate::SetFactoryCallbackForTest(nullptr);
487 } 490 }
488 491
489 private:
490 std::unique_ptr<ChromeNetworkingCastPrivateDelegate> 492 std::unique_ptr<ChromeNetworkingCastPrivateDelegate>
491 CreateNetworkingCastPrivateDelegate() { 493 CreateNetworkingCastPrivateDelegate() {
492 return base::MakeUnique<TestNetworkingCastPrivateDelegate>(); 494 return base::MakeUnique<TestNetworkingCastPrivateDelegate>();
493 } 495 }
494 496
497 bool SetupCertificates() {
498 scoped_refptr<net::X509Certificate> system_ca_cert =
499 net::ImportCertFromFile(net::GetTestCertsDirectory(),
500 "client_1_ca.pem");
501 if (!system_ca_cert)
502 return false;
503
504 net::CertificateList cert_list;
505 cert_list.push_back(std::move(system_ca_cert));
506 // TODO(stevenjb): Figure out a simple way to import a test user cert.
507
508 chromeos::NetworkHandler::Get()
509 ->network_certificate_handler()
510 ->SetCertificatesForTest(cert_list);
511 return true;
512 }
513
495 protected: 514 protected:
496 NetworkPortalDetectorTestImpl* detector() { return detector_; } 515 NetworkPortalDetectorTestImpl* detector() { return detector_; }
497 516
498 NetworkPortalDetectorTestImpl* detector_; 517 NetworkPortalDetectorTestImpl* detector_;
499 ShillManagerClient::TestInterface* manager_test_; 518 ShillManagerClient::TestInterface* manager_test_;
500 ShillProfileClient::TestInterface* profile_test_; 519 ShillProfileClient::TestInterface* profile_test_;
501 ShillServiceClient::TestInterface* service_test_; 520 ShillServiceClient::TestInterface* service_test_;
502 ShillDeviceClient::TestInterface* device_test_; 521 ShillDeviceClient::TestInterface* device_test_;
503 policy::MockConfigurationPolicyProvider provider_; 522 policy::MockConfigurationPolicyProvider provider_;
504 std::string userhash_; 523 std::string userhash_;
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
763 OnNetworkListChangedEvent) { 782 OnNetworkListChangedEvent) {
764 EXPECT_TRUE(RunNetworkingSubtest("onNetworkListChangedEvent")) << message_; 783 EXPECT_TRUE(RunNetworkingSubtest("onNetworkListChangedEvent")) << message_;
765 } 784 }
766 785
767 IN_PROC_BROWSER_TEST_F(NetworkingPrivateChromeOSApiTest, 786 IN_PROC_BROWSER_TEST_F(NetworkingPrivateChromeOSApiTest,
768 OnDeviceStateListChangedEvent) { 787 OnDeviceStateListChangedEvent) {
769 EXPECT_TRUE(RunNetworkingSubtest("onDeviceStateListChangedEvent")) 788 EXPECT_TRUE(RunNetworkingSubtest("onDeviceStateListChangedEvent"))
770 << message_; 789 << message_;
771 } 790 }
772 791
792 IN_PROC_BROWSER_TEST_F(NetworkingPrivateChromeOSApiTest,
793 OnCertificateListsChangedEvent) {
794 TestListener listener("eventListenerReady", base::Bind([]() {
795 chromeos::NetworkHandler::Get()
796 ->network_certificate_handler()
797 ->NotifyCertificatsChangedForTest();
798 }));
799 EXPECT_TRUE(RunNetworkingSubtest("onCertificateListsChangedEvent"))
800 << message_;
801 }
802
773 IN_PROC_BROWSER_TEST_F(NetworkingPrivateChromeOSApiTest, VerifyDestination) { 803 IN_PROC_BROWSER_TEST_F(NetworkingPrivateChromeOSApiTest, VerifyDestination) {
774 EXPECT_TRUE(RunNetworkingSubtest("verifyDestination")) << message_; 804 EXPECT_TRUE(RunNetworkingSubtest("verifyDestination")) << message_;
775 } 805 }
776 806
777 IN_PROC_BROWSER_TEST_F(NetworkingPrivateChromeOSApiTest, 807 IN_PROC_BROWSER_TEST_F(NetworkingPrivateChromeOSApiTest,
778 VerifyAndEncryptCredentials) { 808 VerifyAndEncryptCredentials) {
779 EXPECT_TRUE(RunNetworkingSubtest("verifyAndEncryptCredentials")) << message_; 809 EXPECT_TRUE(RunNetworkingSubtest("verifyAndEncryptCredentials")) << message_;
780 } 810 }
781 811
782 IN_PROC_BROWSER_TEST_F(NetworkingPrivateChromeOSApiTest, VerifyAndEncryptData) { 812 IN_PROC_BROWSER_TEST_F(NetworkingPrivateChromeOSApiTest, VerifyAndEncryptData) {
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
884 EXPECT_TRUE(RunNetworkingSubtest("getTetherNetworkManagedProperties")) 914 EXPECT_TRUE(RunNetworkingSubtest("getTetherNetworkManagedProperties"))
885 << message_; 915 << message_;
886 } 916 }
887 917
888 IN_PROC_BROWSER_TEST_F(NetworkingPrivateChromeOSApiTest, 918 IN_PROC_BROWSER_TEST_F(NetworkingPrivateChromeOSApiTest,
889 Tether_GetTetherNetworkState) { 919 Tether_GetTetherNetworkState) {
890 SetupTether(); 920 SetupTether();
891 EXPECT_TRUE(RunNetworkingSubtest("getTetherNetworkState")) << message_; 921 EXPECT_TRUE(RunNetworkingSubtest("getTetherNetworkState")) << message_;
892 } 922 }
893 923
924 IN_PROC_BROWSER_TEST_F(NetworkingPrivateChromeOSApiTest, GetCertificateLists) {
925 ASSERT_TRUE(SetupCertificates());
926 EXPECT_TRUE(RunNetworkingSubtest("getCertificateLists")) << message_;
927 }
928
894 // Tests subset of networking API for the networking API alias - to verify that 929 // Tests subset of networking API for the networking API alias - to verify that
895 // using API methods and event does not cause access exceptions (due to 930 // using API methods and event does not cause access exceptions (due to
896 // missing permissions). 931 // missing permissions).
897 IN_PROC_BROWSER_TEST_F(NetworkingPrivateChromeOSApiTest, Alias) { 932 IN_PROC_BROWSER_TEST_F(NetworkingPrivateChromeOSApiTest, Alias) {
898 SetupCellular(); 933 SetupCellular();
899 EXPECT_TRUE(RunPlatformAppTest("networking_private/alias")) << message_; 934 EXPECT_TRUE(RunPlatformAppTest("networking_private/alias")) << message_;
900 } 935 }
901 936
902 } // namespace 937 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698