| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/bind.h" | 5 #include "base/bind.h" |
| 6 #include "base/message_loop/message_loop.h" | 6 #include "base/message_loop/message_loop.h" |
| 7 #include "base/prefs/scoped_user_pref_update.h" | 7 #include "base/prefs/scoped_user_pref_update.h" |
| 8 #include "base/run_loop.h" | 8 #include "base/run_loop.h" |
| 9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
| 10 #include "base/threading/sequenced_worker_pool.h" | 10 #include "base/threading/sequenced_worker_pool.h" |
| 11 #include "chrome/browser/managed_mode/managed_user_refresh_token_fetcher.h" | 11 #include "chrome/browser/managed_mode/managed_user_refresh_token_fetcher.h" |
| 12 #include "chrome/browser/managed_mode/managed_user_registration_utility.h" | 12 #include "chrome/browser/managed_mode/managed_user_registration_utility.h" |
| 13 #include "chrome/browser/managed_mode/managed_user_shared_settings_service.h" | 13 #include "chrome/browser/managed_mode/managed_user_shared_settings_service.h" |
| 14 #include "chrome/browser/managed_mode/managed_user_shared_settings_service_facto
ry.h" | 14 #include "chrome/browser/managed_mode/managed_user_shared_settings_service_facto
ry.h" |
| 15 #include "chrome/browser/managed_mode/managed_user_sync_service.h" | 15 #include "chrome/browser/managed_mode/managed_user_sync_service.h" |
| 16 #include "chrome/browser/managed_mode/managed_user_sync_service_factory.h" | 16 #include "chrome/browser/managed_mode/managed_user_sync_service_factory.h" |
| 17 #include "chrome/common/pref_names.h" | 17 #include "chrome/common/pref_names.h" |
| 18 #include "chrome/test/base/testing_pref_service_syncable.h" | 18 #include "chrome/test/base/testing_pref_service_syncable.h" |
| 19 #include "chrome/test/base/testing_profile.h" | 19 #include "chrome/test/base/testing_profile.h" |
| 20 #include "content/public/browser/browser_thread.h" | 20 #include "content/public/browser/browser_thread.h" |
| 21 #include "google_apis/gaia/google_service_auth_error.h" | 21 #include "google_apis/gaia/google_service_auth_error.h" |
| 22 #include "sync/api/attachments/attachment_id.h" | 22 #include "sync/api/attachments/attachment_id.h" |
| 23 #include "sync/api/attachments/attachment_service_proxy_for_test.h" | 23 #include "sync/api/attachments/attachment_service_proxy_for_test.h" |
| 24 #include "sync/api/sync_change.h" | 24 #include "sync/api/sync_change.h" |
| 25 #include "sync/api/sync_error_factory_mock.h" | 25 #include "sync/api/sync_error_factory_mock.h" |
| 26 #include "sync/protocol/sync.pb.h" | 26 #include "sync/protocol/sync.pb.h" |
| 27 #include "testing/gtest/include/gtest/gtest.h" | 27 #include "testing/gtest/include/gtest/gtest.h" |
| 28 | 28 |
| 29 using sync_pb::ManagedUserSpecifics; | 29 using sync_pb::ManagedUserSpecifics; |
| 30 using syncer::MANAGED_USERS; | 30 using syncer::SUPERVISED_USERS; |
| 31 using syncer::SyncChange; | 31 using syncer::SyncChange; |
| 32 using syncer::SyncChangeList; | 32 using syncer::SyncChangeList; |
| 33 using syncer::SyncChangeProcessor; | 33 using syncer::SyncChangeProcessor; |
| 34 using syncer::SyncData; | 34 using syncer::SyncData; |
| 35 using syncer::SyncDataList; | 35 using syncer::SyncDataList; |
| 36 using syncer::SyncError; | 36 using syncer::SyncError; |
| 37 using syncer::SyncErrorFactory; | 37 using syncer::SyncErrorFactory; |
| 38 using syncer::SyncMergeResult; | 38 using syncer::SyncMergeResult; |
| 39 | 39 |
| 40 namespace { | 40 namespace { |
| 41 | 41 |
| 42 const char kManagedUserToken[] = "managedusertoken"; | 42 const char kSupervisedUserToken[] = "supervisedusertoken"; |
| 43 | 43 |
| 44 class MockChangeProcessor : public SyncChangeProcessor { | 44 class MockChangeProcessor : public SyncChangeProcessor { |
| 45 public: | 45 public: |
| 46 MockChangeProcessor() {} | 46 MockChangeProcessor() {} |
| 47 virtual ~MockChangeProcessor() {} | 47 virtual ~MockChangeProcessor() {} |
| 48 | 48 |
| 49 // SyncChangeProcessor implementation: | 49 // SyncChangeProcessor implementation: |
| 50 virtual SyncError ProcessSyncChanges( | 50 virtual SyncError ProcessSyncChanges( |
| 51 const tracked_objects::Location& from_here, | 51 const tracked_objects::Location& from_here, |
| 52 const SyncChangeList& change_list) OVERRIDE; | 52 const SyncChangeList& change_list) OVERRIDE; |
| (...skipping 20 matching lines...) Expand all Loading... |
| 73 : public ManagedUserRefreshTokenFetcher { | 73 : public ManagedUserRefreshTokenFetcher { |
| 74 public: | 74 public: |
| 75 MockManagedUserRefreshTokenFetcher() {} | 75 MockManagedUserRefreshTokenFetcher() {} |
| 76 virtual ~MockManagedUserRefreshTokenFetcher() {} | 76 virtual ~MockManagedUserRefreshTokenFetcher() {} |
| 77 | 77 |
| 78 // ManagedUserRefreshTokenFetcher implementation: | 78 // ManagedUserRefreshTokenFetcher implementation: |
| 79 virtual void Start(const std::string& managed_user_id, | 79 virtual void Start(const std::string& managed_user_id, |
| 80 const std::string& device_name, | 80 const std::string& device_name, |
| 81 const TokenCallback& callback) OVERRIDE { | 81 const TokenCallback& callback) OVERRIDE { |
| 82 GoogleServiceAuthError error(GoogleServiceAuthError::NONE); | 82 GoogleServiceAuthError error(GoogleServiceAuthError::NONE); |
| 83 callback.Run(error, kManagedUserToken); | 83 callback.Run(error, kSupervisedUserToken); |
| 84 } | 84 } |
| 85 }; | 85 }; |
| 86 | 86 |
| 87 } // namespace | 87 } // namespace |
| 88 | 88 |
| 89 class ManagedUserRegistrationUtilityTest : public ::testing::Test { | 89 class ManagedUserRegistrationUtilityTest : public ::testing::Test { |
| 90 public: | 90 public: |
| 91 ManagedUserRegistrationUtilityTest(); | 91 ManagedUserRegistrationUtilityTest(); |
| 92 virtual ~ManagedUserRegistrationUtilityTest(); | 92 virtual ~ManagedUserRegistrationUtilityTest(); |
| 93 | 93 |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 173 } | 173 } |
| 174 | 174 |
| 175 scoped_ptr<SyncErrorFactory> | 175 scoped_ptr<SyncErrorFactory> |
| 176 ManagedUserRegistrationUtilityTest::CreateErrorFactory() { | 176 ManagedUserRegistrationUtilityTest::CreateErrorFactory() { |
| 177 return scoped_ptr<SyncErrorFactory>(new syncer::SyncErrorFactoryMock()); | 177 return scoped_ptr<SyncErrorFactory>(new syncer::SyncErrorFactoryMock()); |
| 178 } | 178 } |
| 179 | 179 |
| 180 SyncMergeResult ManagedUserRegistrationUtilityTest::StartInitialSync() { | 180 SyncMergeResult ManagedUserRegistrationUtilityTest::StartInitialSync() { |
| 181 SyncDataList initial_sync_data; | 181 SyncDataList initial_sync_data; |
| 182 SyncMergeResult result = | 182 SyncMergeResult result = |
| 183 service()->MergeDataAndStartSyncing(MANAGED_USERS, | 183 service()->MergeDataAndStartSyncing(SUPERVISED_USERS, |
| 184 initial_sync_data, | 184 initial_sync_data, |
| 185 CreateChangeProcessor(), | 185 CreateChangeProcessor(), |
| 186 CreateErrorFactory()); | 186 CreateErrorFactory()); |
| 187 EXPECT_FALSE(result.error().IsSet()); | 187 EXPECT_FALSE(result.error().IsSet()); |
| 188 return result; | 188 return result; |
| 189 } | 189 } |
| 190 | 190 |
| 191 ManagedUserRegistrationUtility::RegistrationCallback | 191 ManagedUserRegistrationUtility::RegistrationCallback |
| 192 ManagedUserRegistrationUtilityTest::GetRegistrationCallback() { | 192 ManagedUserRegistrationUtilityTest::GetRegistrationCallback() { |
| 193 return base::Bind( | 193 return base::Bind( |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 242 token_ = token; | 242 token_ = token; |
| 243 run_loop_.Quit(); | 243 run_loop_.Quit(); |
| 244 } | 244 } |
| 245 | 245 |
| 246 TEST_F(ManagedUserRegistrationUtilityTest, Register) { | 246 TEST_F(ManagedUserRegistrationUtilityTest, Register) { |
| 247 StartInitialSync(); | 247 StartInitialSync(); |
| 248 GetRegistrationUtility()->Register( | 248 GetRegistrationUtility()->Register( |
| 249 ManagedUserRegistrationUtility::GenerateNewManagedUserId(), | 249 ManagedUserRegistrationUtility::GenerateNewManagedUserId(), |
| 250 ManagedUserRegistrationInfo(base::ASCIIToUTF16("Dug"), 0), | 250 ManagedUserRegistrationInfo(base::ASCIIToUTF16("Dug"), 0), |
| 251 GetRegistrationCallback()); | 251 GetRegistrationCallback()); |
| 252 EXPECT_EQ(1u, prefs()->GetDictionary(prefs::kManagedUsers)->size()); | 252 EXPECT_EQ(1u, prefs()->GetDictionary(prefs::kSupervisedUsers)->size()); |
| 253 Acknowledge(); | 253 Acknowledge(); |
| 254 | 254 |
| 255 EXPECT_TRUE(received_callback()); | 255 EXPECT_TRUE(received_callback()); |
| 256 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state()); | 256 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state()); |
| 257 EXPECT_FALSE(token().empty()); | 257 EXPECT_FALSE(token().empty()); |
| 258 } | 258 } |
| 259 | 259 |
| 260 TEST_F(ManagedUserRegistrationUtilityTest, RegisterBeforeInitialSync) { | 260 TEST_F(ManagedUserRegistrationUtilityTest, RegisterBeforeInitialSync) { |
| 261 GetRegistrationUtility()->Register( | 261 GetRegistrationUtility()->Register( |
| 262 ManagedUserRegistrationUtility::GenerateNewManagedUserId(), | 262 ManagedUserRegistrationUtility::GenerateNewManagedUserId(), |
| 263 ManagedUserRegistrationInfo(base::ASCIIToUTF16("Nemo"), 5), | 263 ManagedUserRegistrationInfo(base::ASCIIToUTF16("Nemo"), 5), |
| 264 GetRegistrationCallback()); | 264 GetRegistrationCallback()); |
| 265 EXPECT_EQ(1u, prefs()->GetDictionary(prefs::kManagedUsers)->size()); | 265 EXPECT_EQ(1u, prefs()->GetDictionary(prefs::kSupervisedUsers)->size()); |
| 266 StartInitialSync(); | 266 StartInitialSync(); |
| 267 Acknowledge(); | 267 Acknowledge(); |
| 268 | 268 |
| 269 EXPECT_TRUE(received_callback()); | 269 EXPECT_TRUE(received_callback()); |
| 270 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state()); | 270 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state()); |
| 271 EXPECT_FALSE(token().empty()); | 271 EXPECT_FALSE(token().empty()); |
| 272 } | 272 } |
| 273 | 273 |
| 274 TEST_F(ManagedUserRegistrationUtilityTest, SyncServiceShutdownBeforeRegFinish) { | 274 TEST_F(ManagedUserRegistrationUtilityTest, SyncServiceShutdownBeforeRegFinish) { |
| 275 StartInitialSync(); | 275 StartInitialSync(); |
| 276 GetRegistrationUtility()->Register( | 276 GetRegistrationUtility()->Register( |
| 277 ManagedUserRegistrationUtility::GenerateNewManagedUserId(), | 277 ManagedUserRegistrationUtility::GenerateNewManagedUserId(), |
| 278 ManagedUserRegistrationInfo(base::ASCIIToUTF16("Remy"), 12), | 278 ManagedUserRegistrationInfo(base::ASCIIToUTF16("Remy"), 12), |
| 279 GetRegistrationCallback()); | 279 GetRegistrationCallback()); |
| 280 EXPECT_EQ(1u, prefs()->GetDictionary(prefs::kManagedUsers)->size()); | 280 EXPECT_EQ(1u, prefs()->GetDictionary(prefs::kSupervisedUsers)->size()); |
| 281 service()->Shutdown(); | 281 service()->Shutdown(); |
| 282 EXPECT_EQ(0u, prefs()->GetDictionary(prefs::kManagedUsers)->size()); | 282 EXPECT_EQ(0u, prefs()->GetDictionary(prefs::kSupervisedUsers)->size()); |
| 283 EXPECT_TRUE(received_callback()); | 283 EXPECT_TRUE(received_callback()); |
| 284 EXPECT_EQ(GoogleServiceAuthError::REQUEST_CANCELED, error().state()); | 284 EXPECT_EQ(GoogleServiceAuthError::REQUEST_CANCELED, error().state()); |
| 285 EXPECT_EQ(std::string(), token()); | 285 EXPECT_EQ(std::string(), token()); |
| 286 } | 286 } |
| 287 | 287 |
| 288 TEST_F(ManagedUserRegistrationUtilityTest, StopSyncingBeforeRegFinish) { | 288 TEST_F(ManagedUserRegistrationUtilityTest, StopSyncingBeforeRegFinish) { |
| 289 StartInitialSync(); | 289 StartInitialSync(); |
| 290 GetRegistrationUtility()->Register( | 290 GetRegistrationUtility()->Register( |
| 291 ManagedUserRegistrationUtility::GenerateNewManagedUserId(), | 291 ManagedUserRegistrationUtility::GenerateNewManagedUserId(), |
| 292 ManagedUserRegistrationInfo(base::ASCIIToUTF16("Mike"), 17), | 292 ManagedUserRegistrationInfo(base::ASCIIToUTF16("Mike"), 17), |
| 293 GetRegistrationCallback()); | 293 GetRegistrationCallback()); |
| 294 EXPECT_EQ(1u, prefs()->GetDictionary(prefs::kManagedUsers)->size()); | 294 EXPECT_EQ(1u, prefs()->GetDictionary(prefs::kSupervisedUsers)->size()); |
| 295 service()->StopSyncing(MANAGED_USERS); | 295 service()->StopSyncing(SUPERVISED_USERS); |
| 296 EXPECT_EQ(0u, prefs()->GetDictionary(prefs::kManagedUsers)->size()); | 296 EXPECT_EQ(0u, prefs()->GetDictionary(prefs::kSupervisedUsers)->size()); |
| 297 EXPECT_TRUE(received_callback()); | 297 EXPECT_TRUE(received_callback()); |
| 298 EXPECT_EQ(GoogleServiceAuthError::REQUEST_CANCELED, error().state()); | 298 EXPECT_EQ(GoogleServiceAuthError::REQUEST_CANCELED, error().state()); |
| 299 EXPECT_EQ(std::string(), token()); | 299 EXPECT_EQ(std::string(), token()); |
| 300 } | 300 } |
| OLD | NEW |