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 |