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

Side by Side Diff: chrome/browser/ui/webui/options/certificate_manager_browsertest.cc

Issue 2913343002: Start removing deprecated Options UI code (Closed)
Patch Set: thestig@ review Created 3 years, 6 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "base/memory/ptr_util.h"
6 #include "base/values.h"
7 #include "build/build_config.h"
8 #include "chrome/browser/ui/tabs/tab_strip_model.h"
9 #include "chrome/browser/ui/webui/options/options_ui_browsertest.h"
10 #include "components/policy/core/browser/browser_policy_connector.h"
11 #include "components/policy/core/common/external_data_fetcher.h"
12 #include "components/policy/core/common/mock_configuration_policy_provider.h"
13 #include "components/policy/core/common/policy_map.h"
14 #include "components/policy/core/common/policy_types.h"
15 #include "components/policy/policy_constants.h"
16 #include "content/public/browser/render_frame_host.h"
17 #include "content/public/browser/web_contents.h"
18 #include "content/public/test/browser_test_utils.h"
19 #include "content/public/test/test_utils.h"
20 #include "testing/gmock/include/gmock/gmock.h"
21 #include "testing/gtest/include/gtest/gtest.h"
22
23 #if defined(OS_CHROMEOS)
24 #include "chrome/browser/chromeos/policy/device_policy_cros_browser_test.h"
25 #include "chromeos/network/onc/onc_test_utils.h"
26 #endif
27
28 using testing::Return;
29 using testing::_;
30
31 class CertificateManagerBrowserTest : public options::OptionsUIBrowserTest {
32 public:
33 CertificateManagerBrowserTest() {}
34 ~CertificateManagerBrowserTest() override {}
35
36 protected:
37 void SetUpInProcessBrowserTestFixture() override {
38 options::OptionsUIBrowserTest::SetUpInProcessBrowserTestFixture();
39 #if defined(OS_CHROMEOS)
40 device_policy_test_helper_.MarkAsEnterpriseOwned();
41 #endif
42 // Setup the policy provider for injecting certs through ONC policy.
43 EXPECT_CALL(provider_, IsInitializationComplete(_))
44 .WillRepeatedly(Return(true));
45 policy::BrowserPolicyConnector::SetPolicyProviderForTesting(&provider_);
46 }
47
48 #if defined(OS_CHROMEOS)
49 void LoadONCPolicy(const std::string& filename) {
50 const std::string& user_policy_blob =
51 chromeos::onc::test_utils::ReadTestData(filename);
52 policy::PolicyMap policy;
53 policy.Set(policy::key::kOpenNetworkConfiguration,
54 policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
55 policy::POLICY_SOURCE_CLOUD,
56 base::MakeUnique<base::Value>(user_policy_blob), nullptr);
57 provider_.UpdateChromePolicy(policy);
58 content::RunAllPendingInMessageLoop();
59 }
60 #endif
61
62 void ClickElement(const std::string& selector) {
63 EXPECT_TRUE(content::ExecuteScript(
64 GetSettingsFrame(),
65 "document.querySelector(\"" + selector + "\").click()"));
66 }
67
68 bool HasElement(const std::string& selector) {
69 bool result;
70 EXPECT_TRUE(content::ExecuteScriptAndExtractBool(
71 GetSettingsFrame(),
72 "window.domAutomationController.send("
73 " !!document.querySelector('" + selector + "'));",
74 &result));
75 return result;
76 }
77
78 policy::MockConfigurationPolicyProvider provider_;
79 #if defined(OS_CHROMEOS)
80 policy::DevicePolicyCrosTestHelper device_policy_test_helper_;
81 #endif
82 };
83
84 #if defined(OS_CHROMEOS)
85 // Ensure policy-installed certificates without web trust do not display
86 // the managed setting indicator (only on Chrome OS).
87 IN_PROC_BROWSER_TEST_F(CertificateManagerBrowserTest,
88 PolicyCertificateWithoutWebTrustHasNoIndicator) {
89 LoadONCPolicy("certificate-authority.onc");
90 NavigateToSettings();
91 ClickElement("#certificatesManageButton");
92 ClickElement("#ca-certs-nav-tab");
93 EXPECT_FALSE(HasElement(".cert-policy"));
94 }
95 #endif
96
97 #if defined(OS_CHROMEOS)
98 // Ensure policy-installed certificates with web trust display the
99 // managed setting indicator (only on Chrome OS).
100 IN_PROC_BROWSER_TEST_F(CertificateManagerBrowserTest,
101 PolicyCertificateWithWebTrustHasIndicator) {
102 LoadONCPolicy("certificate-web-authority.onc");
103 NavigateToSettings();
104 ClickElement("#certificatesManageButton");
105 ClickElement("#ca-certs-nav-tab");
106 EXPECT_TRUE(HasElement(".cert-policy"));
107 }
108 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698