Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(448)

Unified Diff: chrome/browser/policy/user_policy_cache_unittest.cc

Issue 9404011: Explicitly wait for user policy before completing login. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698