summaryrefslogtreecommitdiffstats
path: root/chrome/browser/policy/device_token_fetcher_unittest.cc
diff options
context:
space:
mode:
authorgfeher@chromium.org <gfeher@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-09 22:17:33 +0000
committergfeher@chromium.org <gfeher@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-09 22:17:33 +0000
commit8a4751337e754922bf46834b8b3c277a4dcdb44b (patch)
tree7959e4a6a6f6b3ba3b5b8b620901c69e4fffa91b /chrome/browser/policy/device_token_fetcher_unittest.cc
parent0a7cbf904d69d1d2a63efe0cb01a49bc5521d405 (diff)
downloadchromium_src-8a4751337e754922bf46834b8b3c277a4dcdb44b.zip
chromium_src-8a4751337e754922bf46834b8b3c277a4dcdb44b.tar.gz
chromium_src-8a4751337e754922bf46834b8b3c277a4dcdb44b.tar.bz2
Consolidate data storage and notifications in the cloud policy subsystem
Get rid of identity strategies and create a central in-memory data store and notification hub, which is more simple. It's called CloudPolicyDataStore. BUG=chromium-os:17309 TEST=user and device policies work exactly as before Review URL: http://codereview.chromium.org/7298012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@91957 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/policy/device_token_fetcher_unittest.cc')
-rw-r--r--chrome/browser/policy/device_token_fetcher_unittest.cc85
1 files changed, 39 insertions, 46 deletions
diff --git a/chrome/browser/policy/device_token_fetcher_unittest.cc b/chrome/browser/policy/device_token_fetcher_unittest.cc
index 0f9826a..04b23ca 100644
--- a/chrome/browser/policy/device_token_fetcher_unittest.cc
+++ b/chrome/browser/policy/device_token_fetcher_unittest.cc
@@ -4,19 +4,14 @@
#include "chrome/browser/policy/device_token_fetcher.h"
-#include "base/file_util.h"
#include "base/message_loop.h"
#include "base/scoped_temp_dir.h"
-#include "chrome/browser/net/gaia/token_service.h"
-#include "chrome/browser/policy/device_management_service.h"
+#include "chrome/browser/policy/cloud_policy_data_store.h"
#include "chrome/browser/policy/logging_work_scheduler.h"
#include "chrome/browser/policy/mock_device_management_backend.h"
#include "chrome/browser/policy/mock_device_management_service.h"
#include "chrome/browser/policy/policy_notifier.h"
-#include "chrome/browser/policy/proto/device_management_backend.pb.h"
#include "chrome/browser/policy/user_policy_cache.h"
-#include "chrome/common/net/gaia/gaia_constants.h"
-#include "chrome/test/testing_profile.h"
#include "content/browser/browser_thread.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -28,12 +23,14 @@ const char kTestToken[] = "device_token_fetcher_test_auth_token";
using testing::_;
using testing::Mock;
-class MockTokenAvailableObserver : public DeviceTokenFetcher::Observer {
+class MockTokenAvailableObserver : public CloudPolicyDataStore::Observer {
public:
MockTokenAvailableObserver() {}
virtual ~MockTokenAvailableObserver() {}
- MOCK_METHOD0(OnDeviceTokenAvailable, void());
+ MOCK_METHOD0(OnDeviceTokenChanged, void());
+ MOCK_METHOD0(OnCredentialsChanged, void());
+ MOCK_METHOD0(OnDataStoreGoingAway, void());
private:
DISALLOW_COPY_AND_ASSIGN(MockTokenAvailableObserver);
@@ -51,16 +48,27 @@ class DeviceTokenFetcherTest : public testing::Test {
cache_.reset(new UserPolicyCache(
temp_user_data_dir_.path().AppendASCII("DeviceTokenFetcherTest")));
service_.set_backend(&backend_);
+ data_store_.reset(CloudPolicyDataStore::CreateForUserPolicies());
+ data_store_->AddObserver(&observer_);
}
virtual void TearDown() {
loop_.RunAllPending();
+ data_store_->RemoveObserver(&observer_);
+ }
+
+ void FetchToken(DeviceTokenFetcher* fetcher) {
+ data_store_->SetupForTesting("", "fake_device_id", "fake_user_name",
+ "fake_auth_token", true);
+ fetcher->FetchToken();
}
MessageLoop loop_;
MockDeviceManagementBackend backend_;
MockDeviceManagementService service_;
scoped_ptr<CloudPolicyCacheBase> cache_;
+ scoped_ptr<CloudPolicyDataStore> data_store_;
+ MockTokenAvailableObserver observer_;
PolicyNotifier notifier_;
ScopedTempDir temp_user_data_dir_;
@@ -73,32 +81,26 @@ TEST_F(DeviceTokenFetcherTest, FetchToken) {
testing::InSequence s;
EXPECT_CALL(backend_, ProcessRegisterRequest(_, _, _, _)).WillOnce(
MockDeviceManagementBackendSucceedRegister());
- DeviceTokenFetcher fetcher(&service_, cache_.get(), &notifier_);
- MockTokenAvailableObserver observer;
- EXPECT_CALL(observer, OnDeviceTokenAvailable());
- fetcher.AddObserver(&observer);
- EXPECT_EQ("", fetcher.GetDeviceToken());
- fetcher.FetchToken("fake_auth_token", "fake_device_id",
- em::DeviceRegisterRequest::USER,
- "fake_machine_id", "fake_machine_model");
+ DeviceTokenFetcher fetcher(&service_, cache_.get(), data_store_.get(),
+ &notifier_);
+ EXPECT_CALL(observer_, OnDeviceTokenChanged());
+ EXPECT_EQ("", data_store_->device_token());
+ FetchToken(&fetcher);
loop_.RunAllPending();
- Mock::VerifyAndClearExpectations(&observer);
- std::string token = fetcher.GetDeviceToken();
+ Mock::VerifyAndClearExpectations(&observer_);
+ std::string token = data_store_->device_token();
EXPECT_NE("", token);
// Calling FetchToken() again should result in a new token being fetched.
EXPECT_CALL(backend_, ProcessRegisterRequest(_, _, _, _)).WillOnce(
MockDeviceManagementBackendSucceedRegister());
- EXPECT_CALL(observer, OnDeviceTokenAvailable());
- fetcher.FetchToken("fake_auth_token", "fake_device_id",
- em::DeviceRegisterRequest::USER,
- "fake_machine_id", "fake_machine_model");
+ EXPECT_CALL(observer_, OnDeviceTokenChanged());
+ FetchToken(&fetcher);
loop_.RunAllPending();
- Mock::VerifyAndClearExpectations(&observer);
- std::string token2 = fetcher.GetDeviceToken();
+ Mock::VerifyAndClearExpectations(&observer_);
+ std::string token2 = data_store_->device_token();
EXPECT_NE("", token2);
EXPECT_NE(token, token2);
- fetcher.RemoveObserver(&observer);
}
TEST_F(DeviceTokenFetcherTest, RetryOnError) {
@@ -107,18 +109,13 @@ TEST_F(DeviceTokenFetcherTest, RetryOnError) {
MockDeviceManagementBackendFailRegister(
DeviceManagementBackend::kErrorRequestFailed)).WillOnce(
MockDeviceManagementBackendSucceedRegister());
- DeviceTokenFetcher fetcher(&service_, cache_.get(), &notifier_,
- new DummyWorkScheduler);
- MockTokenAvailableObserver observer;
- EXPECT_CALL(observer, OnDeviceTokenAvailable());
- fetcher.AddObserver(&observer);
- fetcher.FetchToken("fake_auth_token", "fake_device_id",
- em::DeviceRegisterRequest::USER,
- "fake_machine_id", "fake_machine_model");
+ DeviceTokenFetcher fetcher(&service_, cache_.get(), data_store_.get(),
+ &notifier_, new DummyWorkScheduler);
+ EXPECT_CALL(observer_, OnDeviceTokenChanged());
+ FetchToken(&fetcher);
loop_.RunAllPending();
- Mock::VerifyAndClearExpectations(&observer);
- EXPECT_NE("", fetcher.GetDeviceToken());
- fetcher.RemoveObserver(&observer);
+ Mock::VerifyAndClearExpectations(&observer_);
+ EXPECT_NE("", data_store_->device_token());
}
TEST_F(DeviceTokenFetcherTest, UnmanagedDevice) {
@@ -126,18 +123,14 @@ TEST_F(DeviceTokenFetcherTest, UnmanagedDevice) {
MockDeviceManagementBackendFailRegister(
DeviceManagementBackend::kErrorServiceManagementNotSupported));
EXPECT_FALSE(cache_->is_unmanaged());
- DeviceTokenFetcher fetcher(&service_, cache_.get(), &notifier_);
- MockTokenAvailableObserver observer;
- EXPECT_CALL(observer, OnDeviceTokenAvailable()).Times(0);
- fetcher.AddObserver(&observer);
- fetcher.FetchToken("fake_auth_token", "fake_device_id",
- em::DeviceRegisterRequest::USER,
- "fake_machine_id", "fake_machine_model");
+ DeviceTokenFetcher fetcher(&service_, cache_.get(), data_store_.get(),
+ &notifier_);
+ EXPECT_CALL(observer_, OnDeviceTokenChanged()).Times(0);
+ FetchToken(&fetcher);
loop_.RunAllPending();
- Mock::VerifyAndClearExpectations(&observer);
- EXPECT_EQ("", fetcher.GetDeviceToken());
+ Mock::VerifyAndClearExpectations(&observer_);
+ EXPECT_EQ("", data_store_->device_token());
EXPECT_TRUE(cache_->is_unmanaged());
- fetcher.RemoveObserver(&observer);
}
} // namespace policy