Index: chrome/browser/extensions/api/settings_private/settings_private_apitest.cc |
diff --git a/chrome/browser/extensions/api/settings_private/settings_private_apitest.cc b/chrome/browser/extensions/api/settings_private/settings_private_apitest.cc |
index 3e6d167e9c0a73c50b4be4930a0852da1affbbb2..64a62c066a6415f4872e56d50612102fe5fa6841 100644 |
--- a/chrome/browser/extensions/api/settings_private/settings_private_apitest.cc |
+++ b/chrome/browser/extensions/api/settings_private/settings_private_apitest.cc |
@@ -12,15 +12,26 @@ |
#include "chrome/browser/extensions/api/settings_private/settings_private_delegate_factory.h" |
#include "chrome/browser/extensions/extension_apitest.h" |
#include "chrome/common/extensions/api/settings_private.h" |
+#include "chrome/common/pref_names.h" |
#include "components/keyed_service/core/keyed_service.h" |
+#include "components/policy/core/browser/browser_policy_connector.h" |
+#include "components/policy/core/common/mock_configuration_policy_provider.h" |
+#include "components/policy/core/common/policy_map.h" |
+#include "components/policy/policy_constants.h" |
#include "components/prefs/pref_service.h" |
#include "content/public/test/test_utils.h" |
#include "extensions/common/switches.h" |
+#include "testing/gmock/include/gmock/gmock.h" |
+#include "testing/gtest/include/gtest/gtest.h" |
#if defined(OS_CHROMEOS) |
#include "chromeos/chromeos_switches.h" |
#endif |
+using testing::Mock; |
+using testing::Return; |
+using testing::_; |
+ |
namespace extensions { |
namespace { |
@@ -37,14 +48,33 @@ class SettingsPrivateApiTest : public ExtensionApiTest { |
#endif |
} |
+ void SetUpInProcessBrowserTestFixture() override { |
+ EXPECT_CALL(provider_, IsInitializationComplete(_)) |
+ .WillRepeatedly(Return(true)); |
+ policy::BrowserPolicyConnector::SetPolicyProviderForTesting(&provider_); |
+ ExtensionApiTest::SetUpInProcessBrowserTestFixture(); |
+ } |
+ |
protected: |
bool RunSettingsSubtest(const std::string& subtest) { |
- return RunExtensionSubtest("settings_private", |
- "main.html?" + subtest, |
+ return RunExtensionSubtest("settings_private", "main.html?" + subtest, |
kFlagLoadAsComponent); |
} |
+ void SetPrefPolicy(const std::string& key, policy::PolicyLevel level) { |
+ policy::PolicyMap policies; |
+ policies.Set(key, level, policy::POLICY_SCOPE_USER, |
+ policy::POLICY_SOURCE_CLOUD, |
+ base::WrapUnique(new base::Value(true)), nullptr); |
+ provider_.UpdateChromePolicy(policies); |
+ DCHECK(base::MessageLoop::current()); |
+ base::RunLoop loop; |
+ loop.RunUntilIdle(); |
+ } |
+ |
private: |
+ policy::MockConfigurationPolicyProvider provider_; |
+ |
DISALLOW_COPY_AND_ASSIGN(SettingsPrivateApiTest); |
}; |
@@ -59,6 +89,18 @@ IN_PROC_BROWSER_TEST_F(SettingsPrivateApiTest, GetPref) { |
EXPECT_TRUE(RunSettingsSubtest("getPref")) << message_; |
} |
+IN_PROC_BROWSER_TEST_F(SettingsPrivateApiTest, GetEnforcedPref) { |
+ SetPrefPolicy(policy::key::kHomepageIsNewTabPage, |
+ policy::POLICY_LEVEL_MANDATORY); |
+ EXPECT_TRUE(RunSettingsSubtest("getEnforcedPref")) << message_; |
+} |
+ |
+IN_PROC_BROWSER_TEST_F(SettingsPrivateApiTest, GetRecommendedPref) { |
+ SetPrefPolicy(policy::key::kHomepageIsNewTabPage, |
+ policy::POLICY_LEVEL_RECOMMENDED); |
+ EXPECT_TRUE(RunSettingsSubtest("getRecommendedPref")) << message_; |
+} |
+ |
IN_PROC_BROWSER_TEST_F(SettingsPrivateApiTest, GetAllPrefs) { |
EXPECT_TRUE(RunSettingsSubtest("getAllPrefs")) << message_; |
} |