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

Side by Side Diff: chrome/browser/chromeos/policy/affiliated_invalidation_service_provider_impl_unittest.cc

Issue 1306183007: Switch to id-based affiliation determination (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "chrome/browser/chromeos/policy/affiliated_invalidation_service_provide r_impl.h" 5 #include "chrome/browser/chromeos/policy/affiliated_invalidation_service_provide r_impl.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "chrome/browser/chrome_notification_types.h" 10 #include "chrome/browser/chrome_notification_types.h"
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 }; 80 };
81 81
82 class AffiliatedInvalidationServiceProviderImplTest : public testing::Test { 82 class AffiliatedInvalidationServiceProviderImplTest : public testing::Test {
83 public: 83 public:
84 AffiliatedInvalidationServiceProviderImplTest(); 84 AffiliatedInvalidationServiceProviderImplTest();
85 85
86 // testing::Test: 86 // testing::Test:
87 void SetUp() override; 87 void SetUp() override;
88 void TearDown() override; 88 void TearDown() override;
89 89
90 // Ownership is not passed. The Profile is owned by the global ProfileManager. 90 // Both functions don't pass ownership of the profile. The Profile is owned
91 Profile* LogInAndReturnProfile(const std::string& user_id); 91 // by the global ProfileManager.
92 Profile* LogInAndReturnAffiliatedProfile(const std::string& user_id);
93 Profile* LogInAndReturnNonAffiliatedProfile(const std::string& user_id);
92 94
93 // Logs in as an affiliated user and indicates that the per-profile 95 // Logs in as an affiliated user and indicates that the per-profile
94 // invalidation service for this user connected. Verifies that this 96 // invalidation service for this user connected. Verifies that this
95 // invalidation service is made available to the |consumer_| and the 97 // invalidation service is made available to the |consumer_| and the
96 // device-global invalidation service is destroyed. 98 // device-global invalidation service is destroyed.
97 void LogInAsAffiliatedUserAndConnectInvalidationService(); 99 void LogInAsAffiliatedUserAndConnectInvalidationService();
98 100
99 // Logs in as an unaffiliated user and indicates that the per-profile 101 // Logs in as an unaffiliated user and indicates that the per-profile
100 // invalidation service for this user connected. Verifies that this 102 // invalidation service for this user connected. Verifies that this
101 // invalidation service is ignored and the device-global invalidation service 103 // invalidation service is ignored and the device-global invalidation service
102 // is not destroyed. 104 // is not destroyed.
103 void LogInAsUnaffiliatedUserAndConnectInvalidationService(); 105 void LogInAsUnaffiliatedUserAndConnectInvalidationService();
104 106
105 // Indicates that the device-global invalidation service connected. Verifies 107 // Indicates that the device-global invalidation service connected. Verifies
106 // that the |consumer_| is informed about this. 108 // that the |consumer_| is informed about this.
107 void ConnectDeviceGlobalInvalidationService(); 109 void ConnectDeviceGlobalInvalidationService();
108 110
109 // Indicates that the logged-in user's per-profile invalidation service 111 // Indicates that the logged-in user's per-profile invalidation service
110 // disconnected. Verifies that the |consumer_| is informed about this and a 112 // disconnected. Verifies that the |consumer_| is informed about this and a
111 // device-global invalidation service is created. 113 // device-global invalidation service is created.
112 void DisconnectPerProfileInvalidationService(); 114 void DisconnectPerProfileInvalidationService();
113 115
114 invalidation::FakeInvalidationService* GetProfileInvalidationService( 116 invalidation::FakeInvalidationService* GetProfileInvalidationService(
115 Profile* profile, 117 Profile* profile,
116 bool create); 118 bool create);
117 119
118 protected: 120 protected:
121 // Ownership is not passed. The Profile is owned by the global ProfileManager.
122 Profile* LogInAndReturnProfile(const std::string& user_id,
123 bool is_affiliated);
119 scoped_ptr<AffiliatedInvalidationServiceProviderImpl> provider_; 124 scoped_ptr<AffiliatedInvalidationServiceProviderImpl> provider_;
120 scoped_ptr<FakeConsumer> consumer_; 125 scoped_ptr<FakeConsumer> consumer_;
121 invalidation::TiclInvalidationService* device_invalidation_service_; 126 invalidation::TiclInvalidationService* device_invalidation_service_;
122 invalidation::FakeInvalidationService* profile_invalidation_service_; 127 invalidation::FakeInvalidationService* profile_invalidation_service_;
123 128
124 private: 129 private:
125 content::TestBrowserThreadBundle thread_bundle_; 130 content::TestBrowserThreadBundle thread_bundle_;
126 chromeos::FakeChromeUserManager* fake_user_manager_; 131 chromeos::FakeChromeUserManager* fake_user_manager_;
127 chromeos::ScopedUserManagerEnabler user_manager_enabler_; 132 chromeos::ScopedUserManagerEnabler user_manager_enabler_;
128 ScopedStubEnterpriseInstallAttributes install_attributes_; 133 ScopedStubEnterpriseInstallAttributes install_attributes_;
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 provider_->Shutdown(); 218 provider_->Shutdown();
214 provider_.reset(); 219 provider_.reset();
215 220
216 invalidation::ProfileInvalidationProviderFactory::GetInstance()-> 221 invalidation::ProfileInvalidationProviderFactory::GetInstance()->
217 RegisterTestingFactory(nullptr); 222 RegisterTestingFactory(nullptr);
218 chromeos::DeviceOAuth2TokenServiceFactory::Shutdown(); 223 chromeos::DeviceOAuth2TokenServiceFactory::Shutdown();
219 chromeos::DBusThreadManager::Shutdown(); 224 chromeos::DBusThreadManager::Shutdown();
220 chromeos::SystemSaltGetter::Shutdown(); 225 chromeos::SystemSaltGetter::Shutdown();
221 } 226 }
222 227
228 Profile*
229 AffiliatedInvalidationServiceProviderImplTest::LogInAndReturnAffiliatedProfile(
230 const std::string& user_id) {
231 return LogInAndReturnProfile(user_id, true);
232 }
233
234 Profile* AffiliatedInvalidationServiceProviderImplTest::
235 LogInAndReturnNonAffiliatedProfile(const std::string& user_id) {
236 return LogInAndReturnProfile(user_id, false);
237 }
238
223 Profile* AffiliatedInvalidationServiceProviderImplTest::LogInAndReturnProfile( 239 Profile* AffiliatedInvalidationServiceProviderImplTest::LogInAndReturnProfile(
224 const std::string& user_id) { 240 const std::string& user_id,
225 fake_user_manager_->AddUser(AccountId::FromUserEmail(user_id)); 241 bool is_affiliated) {
242 fake_user_manager_->AddUserWithAffiliation(AccountId::FromUserEmail(user_id),
243 is_affiliated);
226 Profile* profile = profile_manager_.CreateTestingProfile(user_id); 244 Profile* profile = profile_manager_.CreateTestingProfile(user_id);
227 content::NotificationService::current()->Notify( 245 content::NotificationService::current()->Notify(
228 chrome::NOTIFICATION_LOGIN_USER_PROFILE_PREPARED, 246 chrome::NOTIFICATION_LOGIN_USER_PROFILE_PREPARED,
229 content::NotificationService::AllSources(), 247 content::NotificationService::AllSources(),
230 content::Details<Profile>(profile)); 248 content::Details<Profile>(profile));
231 return profile; 249 return profile;
232 } 250 }
233 251
234 void AffiliatedInvalidationServiceProviderImplTest:: 252 void AffiliatedInvalidationServiceProviderImplTest::
235 LogInAsAffiliatedUserAndConnectInvalidationService() { 253 LogInAsAffiliatedUserAndConnectInvalidationService() {
236 // Log in as an affiliated user. 254 // Log in as an affiliated user.
237 Profile* profile = LogInAndReturnProfile(kAffiliatedUserID1); 255 Profile* profile = LogInAndReturnAffiliatedProfile(kAffiliatedUserID1);
238 EXPECT_TRUE(profile); 256 EXPECT_TRUE(profile);
239 257
240 // Verify that a per-profile invalidation service has been created. 258 // Verify that a per-profile invalidation service has been created.
241 profile_invalidation_service_ = 259 profile_invalidation_service_ =
242 GetProfileInvalidationService(profile, false /* create */); 260 GetProfileInvalidationService(profile, false /* create */);
243 ASSERT_TRUE(profile_invalidation_service_); 261 ASSERT_TRUE(profile_invalidation_service_);
244 262
245 // Verify that the device-global invalidation service still exists. 263 // Verify that the device-global invalidation service still exists.
246 EXPECT_TRUE(provider_->GetDeviceInvalidationServiceForTest()); 264 EXPECT_TRUE(provider_->GetDeviceInvalidationServiceForTest());
247 265
248 // Indicate that the per-profile invalidation service has connected. Verify 266 // Indicate that the per-profile invalidation service has connected. Verify
249 // that the consumer is informed about this. 267 // that the consumer is informed about this.
250 EXPECT_EQ(0, consumer_->GetAndClearInvalidationServiceSetCount()); 268 EXPECT_EQ(0, consumer_->GetAndClearInvalidationServiceSetCount());
251 profile_invalidation_service_->SetInvalidatorState( 269 profile_invalidation_service_->SetInvalidatorState(
252 syncer::INVALIDATIONS_ENABLED); 270 syncer::INVALIDATIONS_ENABLED);
253 EXPECT_EQ(1, consumer_->GetAndClearInvalidationServiceSetCount()); 271 EXPECT_EQ(1, consumer_->GetAndClearInvalidationServiceSetCount());
254 EXPECT_EQ(profile_invalidation_service_, consumer_->GetInvalidationService()); 272 EXPECT_EQ(profile_invalidation_service_, consumer_->GetInvalidationService());
255 273
256 // Verify that the device-global invalidation service has been destroyed. 274 // Verify that the device-global invalidation service has been destroyed.
257 EXPECT_FALSE(provider_->GetDeviceInvalidationServiceForTest()); 275 EXPECT_FALSE(provider_->GetDeviceInvalidationServiceForTest());
258 } 276 }
259 277
260 void AffiliatedInvalidationServiceProviderImplTest:: 278 void AffiliatedInvalidationServiceProviderImplTest::
261 LogInAsUnaffiliatedUserAndConnectInvalidationService() { 279 LogInAsUnaffiliatedUserAndConnectInvalidationService() {
262 // Log in as an unaffiliated user. 280 // Log in as an unaffiliated user.
263 Profile* profile = LogInAndReturnProfile(kUnaffiliatedUserID); 281 Profile* profile = LogInAndReturnNonAffiliatedProfile(kUnaffiliatedUserID);
264 EXPECT_TRUE(profile); 282 EXPECT_TRUE(profile);
265 283
266 // Verify that a per-profile invalidation service has been created. 284 // Verify that a per-profile invalidation service has been created.
267 profile_invalidation_service_ = 285 profile_invalidation_service_ =
268 GetProfileInvalidationService(profile, false /* create */); 286 GetProfileInvalidationService(profile, false /* create */);
269 ASSERT_TRUE(profile_invalidation_service_); 287 ASSERT_TRUE(profile_invalidation_service_);
270 288
271 // Verify that the device-global invalidation service still exists. 289 // Verify that the device-global invalidation service still exists.
272 EXPECT_TRUE(provider_->GetDeviceInvalidationServiceForTest()); 290 EXPECT_TRUE(provider_->GetDeviceInvalidationServiceForTest());
273 291
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
328 346
329 // No consumers are registered with the 347 // No consumers are registered with the
330 // AffiliatedInvalidationServiceProviderImpl. Verifies that no device-global 348 // AffiliatedInvalidationServiceProviderImpl. Verifies that no device-global
331 // invalidation service is created, whether an affiliated user is logged in or 349 // invalidation service is created, whether an affiliated user is logged in or
332 // not. 350 // not.
333 TEST_F(AffiliatedInvalidationServiceProviderImplTest, NoConsumers) { 351 TEST_F(AffiliatedInvalidationServiceProviderImplTest, NoConsumers) {
334 // Verify that no device-global invalidation service has been created. 352 // Verify that no device-global invalidation service has been created.
335 EXPECT_FALSE(provider_->GetDeviceInvalidationServiceForTest()); 353 EXPECT_FALSE(provider_->GetDeviceInvalidationServiceForTest());
336 354
337 // Log in as an affiliated user. 355 // Log in as an affiliated user.
338 EXPECT_TRUE(LogInAndReturnProfile(kAffiliatedUserID1)); 356 EXPECT_TRUE(LogInAndReturnAffiliatedProfile(kAffiliatedUserID1));
339 357
340 // Verify that no device-global invalidation service has been created. 358 // Verify that no device-global invalidation service has been created.
341 EXPECT_FALSE(provider_->GetDeviceInvalidationServiceForTest()); 359 EXPECT_FALSE(provider_->GetDeviceInvalidationServiceForTest());
342 } 360 }
343 361
344 // Verifies that when no connected invalidation service is available for use, 362 // Verifies that when no connected invalidation service is available for use,
345 // none is made available to consumers. 363 // none is made available to consumers.
346 TEST_F(AffiliatedInvalidationServiceProviderImplTest, 364 TEST_F(AffiliatedInvalidationServiceProviderImplTest,
347 NoInvalidationServiceAvailable) { 365 NoInvalidationServiceAvailable) {
348 // Register a consumer. Verify that the consumer is not called back 366 // Register a consumer. Verify that the consumer is not called back
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
499 // Verify that a device-global invalidation service has been created. 517 // Verify that a device-global invalidation service has been created.
500 EXPECT_TRUE(provider_->GetDeviceInvalidationServiceForTest()); 518 EXPECT_TRUE(provider_->GetDeviceInvalidationServiceForTest());
501 519
502 // Log in as a first affiliated user and indicate that the per-profile 520 // Log in as a first affiliated user and indicate that the per-profile
503 // invalidation service for this user connected. Verify that this invalidation 521 // invalidation service for this user connected. Verify that this invalidation
504 // service is made available to the |consumer_| and the device-global 522 // service is made available to the |consumer_| and the device-global
505 // invalidation service is destroyed. 523 // invalidation service is destroyed.
506 LogInAsAffiliatedUserAndConnectInvalidationService(); 524 LogInAsAffiliatedUserAndConnectInvalidationService();
507 525
508 // Log in as a second affiliated user. 526 // Log in as a second affiliated user.
509 Profile* second_profile = LogInAndReturnProfile(kAffiliatedUserID2); 527 Profile* second_profile = LogInAndReturnAffiliatedProfile(kAffiliatedUserID2);
510 EXPECT_TRUE(second_profile); 528 EXPECT_TRUE(second_profile);
511 529
512 // Verify that the device-global invalidation service still does not exist. 530 // Verify that the device-global invalidation service still does not exist.
513 EXPECT_FALSE(provider_->GetDeviceInvalidationServiceForTest()); 531 EXPECT_FALSE(provider_->GetDeviceInvalidationServiceForTest());
514 532
515 // Verify that a per-profile invalidation service for the second user has been 533 // Verify that a per-profile invalidation service for the second user has been
516 // created. 534 // created.
517 invalidation::FakeInvalidationService* second_profile_invalidation_service = 535 invalidation::FakeInvalidationService* second_profile_invalidation_service =
518 GetProfileInvalidationService(second_profile, false /* create */); 536 GetProfileInvalidationService(second_profile, false /* create */);
519 ASSERT_TRUE(second_profile_invalidation_service); 537 ASSERT_TRUE(second_profile_invalidation_service);
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
598 // invalidation service is available for use anymore. 616 // invalidation service is available for use anymore.
599 EXPECT_EQ(0, consumer_->GetAndClearInvalidationServiceSetCount()); 617 EXPECT_EQ(0, consumer_->GetAndClearInvalidationServiceSetCount());
600 provider_->Shutdown(); 618 provider_->Shutdown();
601 EXPECT_EQ(1, consumer_->GetAndClearInvalidationServiceSetCount()); 619 EXPECT_EQ(1, consumer_->GetAndClearInvalidationServiceSetCount());
602 EXPECT_EQ(nullptr, consumer_->GetInvalidationService()); 620 EXPECT_EQ(nullptr, consumer_->GetInvalidationService());
603 621
604 // Verify that the device-global invalidation service still does not exist. 622 // Verify that the device-global invalidation service still does not exist.
605 EXPECT_FALSE(provider_->GetDeviceInvalidationServiceForTest()); 623 EXPECT_FALSE(provider_->GetDeviceInvalidationServiceForTest());
606 624
607 // Log in as a second affiliated user. 625 // Log in as a second affiliated user.
608 Profile* second_profile = LogInAndReturnProfile(kAffiliatedUserID2); 626 Profile* second_profile = LogInAndReturnAffiliatedProfile(kAffiliatedUserID2);
609 EXPECT_TRUE(second_profile); 627 EXPECT_TRUE(second_profile);
610 628
611 // Verify that the device-global invalidation service still does not exist. 629 // Verify that the device-global invalidation service still does not exist.
612 EXPECT_FALSE(provider_->GetDeviceInvalidationServiceForTest()); 630 EXPECT_FALSE(provider_->GetDeviceInvalidationServiceForTest());
613 631
614 // Create a per-profile invalidation service for the second user. 632 // Create a per-profile invalidation service for the second user.
615 invalidation::FakeInvalidationService* second_profile_invalidation_service = 633 invalidation::FakeInvalidationService* second_profile_invalidation_service =
616 GetProfileInvalidationService(second_profile, true /* create */); 634 GetProfileInvalidationService(second_profile, true /* create */);
617 ASSERT_TRUE(second_profile_invalidation_service); 635 ASSERT_TRUE(second_profile_invalidation_service);
618 636
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
652 EXPECT_EQ(0, consumer_->GetAndClearInvalidationServiceSetCount()); 670 EXPECT_EQ(0, consumer_->GetAndClearInvalidationServiceSetCount());
653 provider_->Shutdown(); 671 provider_->Shutdown();
654 EXPECT_EQ(1, consumer_->GetAndClearInvalidationServiceSetCount()); 672 EXPECT_EQ(1, consumer_->GetAndClearInvalidationServiceSetCount());
655 EXPECT_EQ(nullptr, consumer_->GetInvalidationService()); 673 EXPECT_EQ(nullptr, consumer_->GetInvalidationService());
656 674
657 // Verify that the device-global invalidation service has been destroyed. 675 // Verify that the device-global invalidation service has been destroyed.
658 EXPECT_FALSE(provider_->GetDeviceInvalidationServiceForTest()); 676 EXPECT_FALSE(provider_->GetDeviceInvalidationServiceForTest());
659 } 677 }
660 678
661 } // namespace policy 679 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698