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

Unified Diff: chrome/browser/extensions/api/networking_private/networking_private_chromeos_apitest.cc

Issue 2891453002: Introduce networkingPrivate.getCertificateLists (Closed)
Patch Set: Rebase, fix histograms, remove from networking.onc 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/api/networking_private/networking_private_chromeos_apitest.cc
diff --git a/chrome/browser/extensions/api/networking_private/networking_private_chromeos_apitest.cc b/chrome/browser/extensions/api/networking_private/networking_private_chromeos_apitest.cc
index 209511d127d7a0a58687493600c5331e51459945..2e527239642703764c4313439825cba9a2ace2e5 100644
--- a/chrome/browser/extensions/api/networking_private/networking_private_chromeos_apitest.cc
+++ b/chrome/browser/extensions/api/networking_private/networking_private_chromeos_apitest.cc
@@ -28,6 +28,7 @@
#include "chromeos/dbus/shill_profile_client.h"
#include "chromeos/dbus/shill_service_client.h"
#include "chromeos/network/managed_network_configuration_handler.h"
+#include "chromeos/network/network_certificate_handler.h"
#include "chromeos/network/network_handler.h"
#include "chromeos/network/network_state_handler.h"
#include "chromeos/network/onc/onc_utils.h"
@@ -51,6 +52,8 @@
#include "extensions/browser/api/networking_private/networking_private_delegate_factory.h"
#include "extensions/browser/notification_types.h"
#include "extensions/common/switches.h"
+#include "net/test/cert_test_util.h"
+#include "net/test/test_data_directory.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "third_party/cros_system_api/dbus/service_constants.h"
@@ -140,6 +143,28 @@ class TestNetworkingCastPrivateDelegate
DISALLOW_COPY_AND_ASSIGN(TestNetworkingCastPrivateDelegate);
};
+// This is testing NetworkingPrivateChromeOS, so only use overrides here to
+// provide extra functionality or bookkeeping for code paths that are otherwise
+// difficult to replicate in a test environment.
+class NetworkingPrivateChromeOSTestDelegate : public NetworkingPrivateChromeOS {
+ public:
+ explicit NetworkingPrivateChromeOSTestDelegate(
+ content::BrowserContext* context)
+ : NetworkingPrivateChromeOS(context) {}
+ ~NetworkingPrivateChromeOSTestDelegate() override {}
+
+ // NetworkingPrivateChromeOS
+ std::unique_ptr<base::DictionaryValue> GetCertificateLists() override {
+ // Send a certificates changed notification for testing the event.
+ chromeos::NetworkHandler::Get()
+ ->network_certificate_handler()
+ ->NotifyCertificatsChangedForTest();
+ return NetworkingPrivateChromeOS::GetCertificateLists();
+ }
+
tbarzic 2017/05/23 18:01:58 private:
stevenjb 2017/05/25 00:01:11 Done.
+ DISALLOW_COPY_AND_ASSIGN(NetworkingPrivateChromeOSTestDelegate);
+};
+
class UIDelegateStub : public NetworkingPrivateDelegate::UIDelegate {
public:
static int s_show_account_details_called_;
@@ -323,10 +348,10 @@ class NetworkingPrivateChromeOSApiTest : public ExtensionApiTest {
state, true /* add_to_visible */);
}
- static std::unique_ptr<KeyedService> CreateNetworkingPrivateServiceClient(
+ static std::unique_ptr<KeyedService> CreateNetworkingPrivateDelegate(
content::BrowserContext* context) {
std::unique_ptr<NetworkingPrivateDelegate> result(
- new NetworkingPrivateChromeOS(context));
+ new NetworkingPrivateChromeOSTestDelegate(context));
std::unique_ptr<NetworkingPrivateDelegate::UIDelegate> ui_delegate(
new UIDelegateStub);
result->set_ui_delegate(std::move(ui_delegate));
@@ -351,7 +376,7 @@ class NetworkingPrivateChromeOSApiTest : public ExtensionApiTest {
content::RunAllPendingInMessageLoop();
NetworkingPrivateDelegateFactory::GetInstance()->SetTestingFactory(
- profile(), &CreateNetworkingPrivateServiceClient);
+ profile(), &CreateNetworkingPrivateDelegate);
InitializeSanitizedUsername();
@@ -486,12 +511,28 @@ class NetworkingPrivateChromeOSApiTest : public ExtensionApiTest {
ChromeNetworkingCastPrivateDelegate::SetFactoryCallbackForTest(nullptr);
}
- private:
std::unique_ptr<ChromeNetworkingCastPrivateDelegate>
CreateNetworkingCastPrivateDelegate() {
return base::MakeUnique<TestNetworkingCastPrivateDelegate>();
}
+ bool SetupCertificates() {
+ scoped_refptr<net::X509Certificate> system_ca_cert =
+ net::ImportCertFromFile(net::GetTestCertsDirectory(),
+ "client_1_ca.pem");
+ if (!system_ca_cert)
+ return false;
+
+ net::CertificateList cert_list;
+ cert_list.push_back(std::move(system_ca_cert));
+ // TODO(stevenjb): Figure out a simple way to import a test user cert.
+
+ chromeos::NetworkHandler::Get()
+ ->network_certificate_handler()
+ ->SetCertificatesForTest(cert_list);
+ return true;
+ }
+
protected:
NetworkPortalDetectorTestImpl* detector() { return detector_; }
@@ -770,6 +811,12 @@ IN_PROC_BROWSER_TEST_F(NetworkingPrivateChromeOSApiTest,
<< message_;
}
+IN_PROC_BROWSER_TEST_F(NetworkingPrivateChromeOSApiTest,
+ OnCertificateListsChangedEvent) {
+ EXPECT_TRUE(RunNetworkingSubtest("onCertificateListsChangedEvent"))
+ << message_;
+}
+
IN_PROC_BROWSER_TEST_F(NetworkingPrivateChromeOSApiTest, VerifyDestination) {
EXPECT_TRUE(RunNetworkingSubtest("verifyDestination")) << message_;
}
@@ -891,6 +938,11 @@ IN_PROC_BROWSER_TEST_F(NetworkingPrivateChromeOSApiTest,
EXPECT_TRUE(RunNetworkingSubtest("getTetherNetworkState")) << message_;
}
+IN_PROC_BROWSER_TEST_F(NetworkingPrivateChromeOSApiTest, GetCertificateLists) {
+ ASSERT_TRUE(SetupCertificates());
+ EXPECT_TRUE(RunNetworkingSubtest("getCertificateLists")) << message_;
+}
+
// Tests subset of networking API for the networking API alias - to verify that
// using API methods and event does not cause access exceptions (due to
// missing permissions).

Powered by Google App Engine
This is Rietveld 408576698