diff options
author | mnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-20 10:16:25 +0000 |
---|---|---|
committer | mnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-20 10:16:25 +0000 |
commit | c6f327a37c8f0b1bd1035d6be18f17ad2844b0c7 (patch) | |
tree | a15816a8cb8bd1c90757296b5505fa021033c4f7 /chrome/browser/policy/config_dir_policy_provider_unittest.cc | |
parent | 7760c1a89a1e4a2fb8192a38667c53b7ca055971 (diff) | |
download | chromium_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.cc | 114 |
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_; }; |