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

Unified Diff: chrome/browser/services/gcm/gcm_profile_service_unittest.cc

Issue 207443002: [GCM] Move registration info persistence from extension state store to GCM store (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Patch to land Created 6 years, 9 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
« no previous file with comments | « chrome/browser/services/gcm/gcm_profile_service.cc ('k') | chrome/common/pref_names.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/services/gcm/gcm_profile_service_unittest.cc
diff --git a/chrome/browser/services/gcm/gcm_profile_service_unittest.cc b/chrome/browser/services/gcm/gcm_profile_service_unittest.cc
index 827368ca928dff17ae21eb392fe630fb4581fa52..39bbaf0552d6863eade7e8be8a1e72fc10ddfea8 100644
--- a/chrome/browser/services/gcm/gcm_profile_service_unittest.cc
+++ b/chrome/browser/services/gcm/gcm_profile_service_unittest.cc
@@ -395,26 +395,6 @@ class GCMProfileServiceTestConsumer {
waiter_->SignalCompleted();
}
- bool HasPersistedRegistrationInfo(const std::string& app_id) {
- StateStore* storage = ExtensionSystem::Get(profile())->state_store();
- if (!storage)
- return false;
- has_persisted_registration_info_ = false;
- storage->GetExtensionValue(
- app_id,
- GCMProfileService::GetPersistentRegisterKeyForTesting(),
- base::Bind(
- &GCMProfileServiceTestConsumer::ReadRegistrationInfoFinished,
- base::Unretained(this)));
- waiter_->WaitUntilCompleted();
- return has_persisted_registration_info_;
- }
-
- void ReadRegistrationInfoFinished(scoped_ptr<base::Value> value) {
- has_persisted_registration_info_ = value.get() != NULL;
- waiter_->SignalCompleted();
- }
-
void Send(const std::string& app_id,
const std::string& receiver_id,
const GCMClient::OutgoingMessage& message) {
@@ -461,10 +441,6 @@ class GCMProfileServiceTestConsumer {
return GetGCMProfileService()->gcm_client_ready_;
}
- bool ExistsCachedRegistrationInfo() const {
- return !GetGCMProfileService()->registration_info_map_.empty();
- }
-
bool HasAppHandlers() const {
return !GetGCMProfileService()->app_handlers_.empty();
}
@@ -872,12 +848,13 @@ TEST_F(GCMProfileServiceSingleProfileTest, RegisterAgainWithSameSenderIDs) {
consumer()->clear_registration_result();
// Calling register 2nd time with the same set of sender IDs but different
- // ordering will get back the same registration ID. There is no need to wait
- // since register simply returns the cached registration ID.
+ // ordering will get back the same registration ID.
std::vector<std::string> another_sender_ids;
another_sender_ids.push_back("sender2");
another_sender_ids.push_back("sender1");
consumer()->Register(kTestingAppId, another_sender_ids);
+
+ WaitUntilCompleted();
EXPECT_EQ(expected_registration_id, consumer()->registration_id());
EXPECT_EQ(GCMClient::SUCCESS, consumer()->registration_result());
}
@@ -907,40 +884,6 @@ TEST_F(GCMProfileServiceSingleProfileTest,
EXPECT_EQ(GCMClient::SUCCESS, consumer()->registration_result());
}
-TEST_F(GCMProfileServiceSingleProfileTest, ReadRegistrationFromStateStore) {
- scoped_refptr<Extension> extension(consumer()->CreateExtension());
-
- std::vector<std::string> sender_ids;
- sender_ids.push_back("sender1");
- consumer()->Register(extension->id(), sender_ids);
-
- WaitUntilCompleted();
- EXPECT_FALSE(consumer()->registration_id().empty());
- EXPECT_EQ(GCMClient::SUCCESS, consumer()->registration_result());
- std::string old_registration_id = consumer()->registration_id();
-
- // Clears the results that would be set by the Register callback in
- // preparation to call register 2nd time.
- consumer()->clear_registration_result();
-
- // Register should not reach the server. Forcing GCMClient server error should
- // help catch this.
- consumer()->set_gcm_client_error_simulation(GCMClientMock::FORCE_ERROR);
-
- // Simulate start-up by recreating GCMProfileService.
- consumer()->CreateGCMProfileServiceInstance();
-
- // Simulate start-up by reloading extension.
- consumer()->ReloadExtension(extension);
-
- // This should read the registration info from the extension's state store.
- consumer()->Register(extension->id(), sender_ids);
- PumpIOLoop();
- PumpUILoop();
- EXPECT_EQ(old_registration_id, consumer()->registration_id());
- EXPECT_EQ(GCMClient::SUCCESS, consumer()->registration_result());
-}
-
TEST_F(GCMProfileServiceSingleProfileTest,
GCMClientReadyAfterReadingRegistration) {
scoped_refptr<Extension> extension(consumer()->CreateExtension());
@@ -979,25 +922,6 @@ TEST_F(GCMProfileServiceSingleProfileTest,
EXPECT_EQ(GCMClient::SUCCESS, consumer()->registration_result());
}
-TEST_F(GCMProfileServiceSingleProfileTest,
- PersistedRegistrationInfoRemoveAfterSignOut) {
- std::vector<std::string> sender_ids;
- sender_ids.push_back("sender1");
- consumer()->Register(kTestingAppId, sender_ids);
- WaitUntilCompleted();
-
- // The app id and registration info should be persisted.
- EXPECT_TRUE(profile()->GetPrefs()->HasPrefPath(prefs::kGCMRegisteredAppIDs));
- EXPECT_TRUE(consumer()->HasPersistedRegistrationInfo(kTestingAppId));
-
- consumer()->SignOut();
- PumpUILoop();
-
- // The app id and persisted registration info should be removed.
- EXPECT_FALSE(profile()->GetPrefs()->HasPrefPath(prefs::kGCMRegisteredAppIDs));
- EXPECT_FALSE(consumer()->HasPersistedRegistrationInfo(kTestingAppId));
-}
-
TEST_F(GCMProfileServiceSingleProfileTest, RegisterAfterSignOut) {
// This will trigger check-out.
consumer()->SignOut();
@@ -1021,21 +945,9 @@ TEST_F(GCMProfileServiceSingleProfileTest, UnregisterImplicitly) {
EXPECT_FALSE(consumer()->registration_id().empty());
EXPECT_EQ(GCMClient::SUCCESS, consumer()->registration_result());
- // The registration info should be cached.
- EXPECT_TRUE(consumer()->ExistsCachedRegistrationInfo());
-
- // The registration info should be persisted.
- EXPECT_TRUE(consumer()->HasPersistedRegistrationInfo(extension->id()));
-
// Uninstall the extension.
consumer()->UninstallExtension(extension);
base::MessageLoop::current()->RunUntilIdle();
-
- // The cached registration info should be removed.
- EXPECT_FALSE(consumer()->ExistsCachedRegistrationInfo());
-
- // The persisted registration info should be removed.
- EXPECT_FALSE(consumer()->HasPersistedRegistrationInfo(extension->id()));
}
TEST_F(GCMProfileServiceSingleProfileTest, UnregisterExplicitly) {
@@ -1047,22 +959,10 @@ TEST_F(GCMProfileServiceSingleProfileTest, UnregisterExplicitly) {
EXPECT_FALSE(consumer()->registration_id().empty());
EXPECT_EQ(GCMClient::SUCCESS, consumer()->registration_result());
- // The registration info should be cached.
- EXPECT_TRUE(consumer()->ExistsCachedRegistrationInfo());
-
- // The registration info should be persisted.
- EXPECT_TRUE(consumer()->HasPersistedRegistrationInfo(kTestingAppId));
-
consumer()->Unregister(kTestingAppId);
WaitUntilCompleted();
EXPECT_EQ(GCMClient::SUCCESS, consumer()->unregistration_result());
-
- // The cached registration info should be removed.
- EXPECT_FALSE(consumer()->ExistsCachedRegistrationInfo());
-
- // The persisted registration info should be removed.
- EXPECT_FALSE(consumer()->HasPersistedRegistrationInfo(kTestingAppId));
}
TEST_F(GCMProfileServiceSingleProfileTest,
@@ -1206,50 +1106,6 @@ TEST_F(GCMProfileServiceSingleProfileTest, MessageReceived) {
consumer()->gcm_app_handler()->message().sender_id);
}
-// Flaky on all platforms: http://crbug.com/354803
-TEST_F(GCMProfileServiceSingleProfileTest,
- DISABLED_MessageNotReceivedFromNotRegisteredSender) {
- // Explicitly not registering the sender2 here, so that message gets dropped.
- consumer()->Register(kTestingAppId, ToSenderList("sender1"));
- WaitUntilCompleted();
- GCMClient::IncomingMessage message;
- message.data["key1"] = "value1";
- message.data["key2"] = "value2";
- message.sender_id = "sender2";
- consumer()->GetGCMClient()->ReceiveMessage(kTestingAppId, message);
- PumpUILoop();
- EXPECT_EQ(FakeGCMAppHandler::NO_EVENT,
- consumer()->gcm_app_handler()->received_event());
- consumer()->gcm_app_handler()->clear_results();
-
- // Register for sender2 and try to receive the message again, which should
- // work with no problems.
- consumer()->Register(kTestingAppId, ToSenderList("sender1,sender2"));
- WaitUntilCompleted();
- consumer()->GetGCMClient()->ReceiveMessage(kTestingAppId, message);
- WaitUntilCompleted();
- EXPECT_EQ(FakeGCMAppHandler::MESSAGE_EVENT,
- consumer()->gcm_app_handler()->received_event());
- consumer()->gcm_app_handler()->clear_results();
-
- // Making sure that sender1 can receive the message as well.
- message.sender_id = "sender1";
- consumer()->GetGCMClient()->ReceiveMessage(kTestingAppId, message);
- WaitUntilCompleted();
- EXPECT_EQ(FakeGCMAppHandler::MESSAGE_EVENT,
- consumer()->gcm_app_handler()->received_event());
- consumer()->gcm_app_handler()->clear_results();
-
- // Register for sender1 only and make sure it is not possible to receive the
- // message again from from sender1.
- consumer()->Register(kTestingAppId, ToSenderList("sender2"));
- WaitUntilCompleted();
- consumer()->GetGCMClient()->ReceiveMessage(kTestingAppId, message);
- PumpUILoop();
- EXPECT_EQ(FakeGCMAppHandler::NO_EVENT,
- consumer()->gcm_app_handler()->received_event());
-}
-
TEST_F(GCMProfileServiceSingleProfileTest, MessageWithCollapseKeyReceived) {
consumer()->Register(kTestingAppId, ToSenderList("sender"));
WaitUntilCompleted();
« no previous file with comments | « chrome/browser/services/gcm/gcm_profile_service.cc ('k') | chrome/common/pref_names.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698