Chromium Code Reviews| Index: chrome/browser/policy/user_policy_cache_unittest.cc |
| diff --git a/chrome/browser/policy/user_policy_cache_unittest.cc b/chrome/browser/policy/user_policy_cache_unittest.cc |
| index 9010c8f024ab300492436ba240bee9f9198612e6..d636802cd5b39228216564a93588ab9ecf146f29 100644 |
| --- a/chrome/browser/policy/user_policy_cache_unittest.cc |
| +++ b/chrome/browser/policy/user_policy_cache_unittest.cc |
| @@ -7,6 +7,8 @@ |
| #include <limits> |
| #include <string> |
| +#include "base/bind.h" |
| +#include "base/callback.h" |
| #include "base/file_util.h" |
| #include "base/message_loop.h" |
| #include "base/scoped_temp_dir.h" |
| @@ -25,6 +27,15 @@ using testing::_; |
| namespace em = enterprise_management; |
| +namespace { |
| + |
| +// Used to verify if a callback was invoked or not. |
| +void SetTrue(bool* flag) { |
|
Mattias Nissler (ping if slow)
2012/02/16 10:24:11
Use a MOCK_METHOD on UserPolicyCacheTest instead?
|
| + *flag = true; |
| +} |
| + |
| +} // namespace |
| + |
| namespace policy { |
| // Decodes a CloudPolicySettings object into a PolicyMap. |
| @@ -205,14 +216,14 @@ TEST_F(UserPolicyCacheTest, DecodeStringList) { |
| } |
| TEST_F(UserPolicyCacheTest, Empty) { |
| - UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */); |
| + UserPolicyCache cache(test_file(), false, base::Closure()); |
| PolicyMap empty; |
| EXPECT_TRUE(empty.Equals(*cache.policy())); |
| EXPECT_EQ(base::Time(), cache.last_policy_refresh_time()); |
| } |
| TEST_F(UserPolicyCacheTest, LoadNoFile) { |
| - UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */); |
| + UserPolicyCache cache(test_file(), false, base::Closure()); |
| cache.Load(); |
| loop_.RunAllPending(); |
| PolicyMap empty; |
| @@ -226,7 +237,7 @@ TEST_F(UserPolicyCacheTest, RejectFuture) { |
| base::TimeDelta::FromMinutes(5), |
| em::PolicyOptions::MANDATORY)); |
| WritePolicy(*policy_response); |
| - UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */); |
| + UserPolicyCache cache(test_file(), false, base::Closure()); |
| cache.Load(); |
| loop_.RunAllPending(); |
| PolicyMap empty; |
| @@ -239,7 +250,7 @@ TEST_F(UserPolicyCacheTest, LoadWithFile) { |
| CreateHomepagePolicy("", base::Time::NowFromSystemTime(), |
| em::PolicyOptions::MANDATORY)); |
| WritePolicy(*policy_response); |
| - UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */); |
| + UserPolicyCache cache(test_file(), false, base::Closure()); |
| cache.Load(); |
| loop_.RunAllPending(); |
| PolicyMap empty; |
| @@ -254,7 +265,7 @@ TEST_F(UserPolicyCacheTest, LoadWithData) { |
| base::Time::NowFromSystemTime(), |
| em::PolicyOptions::MANDATORY)); |
| WritePolicy(*policy); |
| - UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */); |
| + UserPolicyCache cache(test_file(), false, base::Closure()); |
| cache.Load(); |
| loop_.RunAllPending(); |
| PolicyMap expected; |
| @@ -266,7 +277,7 @@ TEST_F(UserPolicyCacheTest, LoadWithData) { |
| } |
| TEST_F(UserPolicyCacheTest, SetPolicy) { |
| - UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */); |
| + UserPolicyCache cache(test_file(), false, base::Closure()); |
| em::PolicyFetchResponse* policy = |
| CreateHomepagePolicy("http://www.example.com", |
| base::Time::NowFromSystemTime(), |
| @@ -295,7 +306,7 @@ TEST_F(UserPolicyCacheTest, SetPolicy) { |
| } |
| TEST_F(UserPolicyCacheTest, ResetPolicy) { |
| - UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */); |
| + UserPolicyCache cache(test_file(), false, base::Closure()); |
| em::PolicyFetchResponse* policy = |
| CreateHomepagePolicy("http://www.example.com", |
| @@ -319,7 +330,7 @@ TEST_F(UserPolicyCacheTest, ResetPolicy) { |
| TEST_F(UserPolicyCacheTest, PersistPolicy) { |
| { |
| - UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */); |
| + UserPolicyCache cache(test_file(), false, base::Closure()); |
| scoped_ptr<em::PolicyFetchResponse> policy( |
| CreateHomepagePolicy("http://www.example.com", |
| base::Time::NowFromSystemTime(), |
| @@ -330,7 +341,7 @@ TEST_F(UserPolicyCacheTest, PersistPolicy) { |
| loop_.RunAllPending(); |
| EXPECT_TRUE(file_util::PathExists(test_file())); |
| - UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */); |
| + UserPolicyCache cache(test_file(), false, base::Closure()); |
| cache.Load(); |
| loop_.RunAllPending(); |
| PolicyMap expected; |
| @@ -348,7 +359,7 @@ TEST_F(UserPolicyCacheTest, FreshPolicyOverride) { |
| em::PolicyOptions::MANDATORY)); |
| WritePolicy(*policy); |
| - UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */); |
| + UserPolicyCache cache(test_file(), false, base::Closure()); |
| em::PolicyFetchResponse* updated_policy = |
| CreateHomepagePolicy("http://www.chromium.org", |
| base::Time::NowFromSystemTime(), |
| @@ -366,7 +377,7 @@ TEST_F(UserPolicyCacheTest, FreshPolicyOverride) { |
| } |
| TEST_F(UserPolicyCacheTest, SetReady) { |
| - UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */); |
| + UserPolicyCache cache(test_file(), false, base::Closure()); |
| cache.AddObserver(&observer_); |
| scoped_ptr<em::PolicyFetchResponse> policy( |
| CreateHomepagePolicy("http://www.example.com", |
| @@ -386,7 +397,7 @@ TEST_F(UserPolicyCacheTest, SetReady) { |
| // CloudPolicySettings protobuf. Can be removed when this support is no longer |
| // required. |
| TEST_F(UserPolicyCacheTest, OldStylePolicy) { |
| - UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */); |
| + UserPolicyCache cache(test_file(), false, base::Closure()); |
| em::PolicyFetchResponse* policy = new em::PolicyFetchResponse(); |
| em::PolicyData signed_response; |
| em::LegacyChromeSettingsProto settings; |
| @@ -423,7 +434,7 @@ TEST_F(UserPolicyCacheTest, OldStylePolicy) { |
| } |
| TEST_F(UserPolicyCacheTest, CheckReadyNoWaiting) { |
| - UserPolicyCache cache(test_file(), false /* wait_for_policy_fetch */); |
| + UserPolicyCache cache(test_file(), false, base::Closure()); |
| EXPECT_FALSE(cache.IsReady()); |
| cache.Load(); |
| loop_.RunAllPending(); |
| @@ -431,23 +442,35 @@ TEST_F(UserPolicyCacheTest, CheckReadyNoWaiting) { |
| } |
| TEST_F(UserPolicyCacheTest, CheckReadyWaitForFetch) { |
| - UserPolicyCache cache(test_file(), true /* wait_for_policy_fetch */); |
| + bool ready_callback_was_invoked_ = false; |
| + UserPolicyCache cache(test_file(), |
| + true, |
| + base::Bind(SetTrue, &ready_callback_was_invoked_)); |
| EXPECT_FALSE(cache.IsReady()); |
| + EXPECT_FALSE(ready_callback_was_invoked_); |
| cache.Load(); |
| loop_.RunAllPending(); |
| EXPECT_FALSE(cache.IsReady()); |
| + EXPECT_FALSE(ready_callback_was_invoked_); |
| cache.SetFetchingDone(); |
| EXPECT_TRUE(cache.IsReady()); |
| + EXPECT_TRUE(ready_callback_was_invoked_); |
| } |
| TEST_F(UserPolicyCacheTest, CheckReadyWaitForDisk) { |
| - UserPolicyCache cache(test_file(), true /* wait_for_policy_fetch */); |
| + bool ready_callback_was_invoked_ = false; |
| + UserPolicyCache cache(test_file(), |
| + true, |
| + base::Bind(SetTrue, &ready_callback_was_invoked_)); |
| EXPECT_FALSE(cache.IsReady()); |
| + EXPECT_FALSE(ready_callback_was_invoked_); |
| cache.SetFetchingDone(); |
| EXPECT_FALSE(cache.IsReady()); |
| + EXPECT_FALSE(ready_callback_was_invoked_); |
| cache.Load(); |
| loop_.RunAllPending(); |
| EXPECT_TRUE(cache.IsReady()); |
| + EXPECT_TRUE(ready_callback_was_invoked_); |
| } |
| } // namespace policy |