summaryrefslogtreecommitdiffstats
path: root/chrome/browser/policy/config_dir_policy_provider_unittest.cc
diff options
context:
space:
mode:
authormnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-20 10:16:25 +0000
committermnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-20 10:16:25 +0000
commitc6f327a37c8f0b1bd1035d6be18f17ad2844b0c7 (patch)
treea15816a8cb8bd1c90757296b5505fa021033c4f7 /chrome/browser/policy/config_dir_policy_provider_unittest.cc
parent7760c1a89a1e4a2fb8192a38667c53b7ca055971 (diff)
downloadchromium_src-c6f327a37c8f0b1bd1035d6be18f17ad2844b0c7.zip
chromium_src-c6f327a37c8f0b1bd1035d6be18f17ad2844b0c7.tar.gz
chromium_src-c6f327a37c8f0b1bd1035d6be18f17ad2844b0c7.tar.bz2
Revert 56832 - Support change detection and reloading in ConfigDirPolicyProvider.
BUG=52418 TEST=unit tests Review URL: http://codereview.chromium.org/3124025 TBR=mnissler@chromium.org Review URL: http://codereview.chromium.org/3161035 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56842 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/policy/config_dir_policy_provider_unittest.cc')
-rw-r--r--chrome/browser/policy/config_dir_policy_provider_unittest.cc114
1 files changed, 5 insertions, 109 deletions
diff --git a/chrome/browser/policy/config_dir_policy_provider_unittest.cc b/chrome/browser/policy/config_dir_policy_provider_unittest.cc
index c7a2e94..9e3d25b 100644
--- a/chrome/browser/policy/config_dir_policy_provider_unittest.cc
+++ b/chrome/browser/policy/config_dir_policy_provider_unittest.cc
@@ -9,24 +9,9 @@
#include "chrome/browser/policy/mock_configuration_policy_store.h"
#include "chrome/common/json_value_serializer.h"
#include "testing/gtest/include/gtest/gtest.h"
-#include "testing/gmock/include/gmock/gmock.h"
-using testing::Mock;
-
-namespace {
-
-// Shorter reload intervals for testing PolicyDirWatcher.
-const int kSettleIntervalSecondsForTesting = 0;
-const int kReloadIntervalMinutesForTesting = 1;
-
-} // namespace
-
-class ConfigDirPolicyProviderTestBase : public testing::Test {
+class ConfigDirPolicyProviderTest : public testing::Test {
protected:
- ConfigDirPolicyProviderTestBase()
- : ui_thread_(ChromeThread::UI, &loop_),
- file_thread_(ChromeThread::FILE, &loop_) {}
-
virtual void SetUp() {
// Determine the directory to use for testing.
ASSERT_TRUE(PathService::Get(base::DIR_TEMP, &test_dir_));
@@ -37,10 +22,12 @@ class ConfigDirPolicyProviderTestBase : public testing::Test {
file_util::Delete(test_dir_, true);
file_util::CreateDirectory(test_dir_);
ASSERT_TRUE(file_util::DirectoryExists(test_dir_));
+
+ // Create a fresh policy store mock.
+ policy_store_.reset(new MockConfigurationPolicyStore());
}
virtual void TearDown() {
- loop_.RunAllPending();
// Clean up test directory.
ASSERT_TRUE(file_util::Delete(test_dir_, true));
ASSERT_FALSE(file_util::PathExists(test_dir_));
@@ -53,101 +40,10 @@ class ConfigDirPolicyProviderTestBase : public testing::Test {
JSONStringValueSerializer serializer(&data);
serializer.Serialize(dict);
FilePath file_path(test_dir_.AppendASCII(file_name));
- ASSERT_TRUE(file_util::WriteFile(file_path, data.c_str(), data.size()));
+ file_util::WriteFile(file_path, data.c_str(), data.size());
}
FilePath test_dir_;
- MessageLoop loop_;
- ChromeThread ui_thread_;
- ChromeThread file_thread_;
-};
-
-// A mock provider that allows us to capture to reload notifications.
-class MockConfigDirPolicyProvider : public ConfigDirPolicyProvider {
- public:
- explicit MockConfigDirPolicyProvider(const FilePath& config_dir_)
- : ConfigDirPolicyProvider(config_dir_) {}
-
- MOCK_METHOD0(NotifyStoreOfPolicyChange, void());
-};
-
-class PolicyDirLoaderTest : public ConfigDirPolicyProviderTestBase {
- protected:
- PolicyDirLoaderTest() {}
-
- virtual void SetUp() {
- ConfigDirPolicyProviderTestBase::SetUp();
- provider_.reset(new MockConfigDirPolicyProvider(test_dir_));
- }
-
- virtual void TearDown() {
- provider_.reset(NULL);
- ConfigDirPolicyProviderTestBase::TearDown();
- }
-
- scoped_ptr<MockConfigDirPolicyProvider> provider_;
-};
-
-TEST_F(PolicyDirLoaderTest, BasicLoad) {
- DictionaryValue test_dict;
- test_dict.SetString("HomepageLocation", "http://www.google.com");
- WriteConfigFile(test_dict, "config_file");
-
- scoped_refptr<PolicyDirLoader> loader_(
- new PolicyDirLoader(provider_->AsWeakPtr(), test_dir_,
- kSettleIntervalSecondsForTesting,
- kReloadIntervalMinutesForTesting));
- scoped_ptr<DictionaryValue> policy(loader_->GetPolicy());
- EXPECT_TRUE(policy.get());
- EXPECT_EQ(1U, policy->size());
-
- std::string str_value;
- EXPECT_TRUE(policy->GetString("HomepageLocation", &str_value));
- EXPECT_EQ("http://www.google.com", str_value);
-
- loader_->Stop();
-}
-
-TEST_F(PolicyDirLoaderTest, TestRefresh) {
- scoped_refptr<PolicyDirLoader> loader_(
- new PolicyDirLoader(provider_->AsWeakPtr(), test_dir_,
- kSettleIntervalSecondsForTesting,
- kReloadIntervalMinutesForTesting));
- scoped_ptr<DictionaryValue> policy(loader_->GetPolicy());
- EXPECT_TRUE(policy.get());
- EXPECT_EQ(0U, policy->size());
-
- DictionaryValue test_dict;
- test_dict.SetString("HomepageLocation", "http://www.google.com");
- WriteConfigFile(test_dict, "config_file");
-
- EXPECT_CALL(*provider_, NotifyStoreOfPolicyChange()).Times(1);
- loader_->OnFilePathChanged(test_dir_.AppendASCII("config_file"));
-
- // Run the loop. The refresh should be handled immediately since the settle
- // interval has been disabled.
- loop_.RunAllPending();
- Mock::VerifyAndClearExpectations(provider_.get());
-
- policy.reset(loader_->GetPolicy());
- EXPECT_TRUE(policy.get());
- EXPECT_EQ(1U, policy->size());
-
- std::string str_value;
- EXPECT_TRUE(policy->GetString("HomepageLocation", &str_value));
- EXPECT_EQ("http://www.google.com", str_value);
-
- loader_->Stop();
-}
-
-class ConfigDirPolicyProviderTest : public ConfigDirPolicyProviderTestBase {
- protected:
- virtual void SetUp() {
- ConfigDirPolicyProviderTestBase::SetUp();
- // Create a fresh policy store mock.
- policy_store_.reset(new MockConfigurationPolicyStore());
- }
-
scoped_ptr<MockConfigurationPolicyStore> policy_store_;
};