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

Side by Side Diff: chrome/browser/services/gcm/gcm_profile_service_unittest.cc

Issue 330733002: Move IdentityProvider usage from GCMDriverDesktop to GCMProfileService (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Patch Created 6 years, 6 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/services/gcm/gcm_profile_service.h" 5 #include "chrome/browser/services/gcm/gcm_profile_service.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 protected: 52 protected:
53 GCMProfileServiceTest(); 53 GCMProfileServiceTest();
54 virtual ~GCMProfileServiceTest(); 54 virtual ~GCMProfileServiceTest();
55 55
56 // testing::Test: 56 // testing::Test:
57 virtual void SetUp() OVERRIDE; 57 virtual void SetUp() OVERRIDE;
58 virtual void TearDown() OVERRIDE; 58 virtual void TearDown() OVERRIDE;
59 59
60 FakeGCMClient* GetGCMClient() const; 60 FakeGCMClient* GetGCMClient() const;
61 61
62 void CreateGCMProfileService();
63 void SignIn();
64
62 void RegisterAndWaitForCompletion(const std::vector<std::string>& sender_ids); 65 void RegisterAndWaitForCompletion(const std::vector<std::string>& sender_ids);
63 void UnregisterAndWaitForCompletion(); 66 void UnregisterAndWaitForCompletion();
64 void SendAndWaitForCompletion(const GCMClient::OutgoingMessage& message); 67 void SendAndWaitForCompletion(const GCMClient::OutgoingMessage& message);
65 68
66 void RegisterCompleted(const base::Closure& callback, 69 void RegisterCompleted(const base::Closure& callback,
67 const std::string& registration_id, 70 const std::string& registration_id,
68 GCMClient::Result result); 71 GCMClient::Result result);
69 void UnregisterCompleted(const base::Closure& callback, 72 void UnregisterCompleted(const base::Closure& callback,
70 GCMClient::Result result); 73 GCMClient::Result result);
71 void SendCompleted(const base::Closure& callback, 74 void SendCompleted(const base::Closure& callback,
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 FakeGCMClient* GCMProfileServiceTest::GetGCMClient() const { 112 FakeGCMClient* GCMProfileServiceTest::GetGCMClient() const {
110 return static_cast<FakeGCMClient*>( 113 return static_cast<FakeGCMClient*>(
111 gcm_profile_service_->driver()->GetGCMClientForTesting()); 114 gcm_profile_service_->driver()->GetGCMClientForTesting());
112 } 115 }
113 116
114 void GCMProfileServiceTest::SetUp() { 117 void GCMProfileServiceTest::SetUp() {
115 TestingProfile::Builder builder; 118 TestingProfile::Builder builder;
116 builder.AddTestingFactory(SigninManagerFactory::GetInstance(), 119 builder.AddTestingFactory(SigninManagerFactory::GetInstance(),
117 FakeSigninManager::Build); 120 FakeSigninManager::Build);
118 profile_ = builder.Build(); 121 profile_ = builder.Build();
122 }
119 123
124 void GCMProfileServiceTest::TearDown() {
125 gcm_profile_service_->driver()->RemoveAppHandler(kTestAppID);
126 }
127
128 void GCMProfileServiceTest::CreateGCMProfileService() {
120 gcm_profile_service_ = static_cast<GCMProfileService*>( 129 gcm_profile_service_ = static_cast<GCMProfileService*>(
121 GCMProfileServiceFactory::GetInstance()->SetTestingFactoryAndUse( 130 GCMProfileServiceFactory::GetInstance()->SetTestingFactoryAndUse(
122 profile_.get(), 131 profile_.get(),
123 &BuildGCMProfileService)); 132 &BuildGCMProfileService));
124 gcm_profile_service_->driver()->AddAppHandler( 133 gcm_profile_service_->driver()->AddAppHandler(
125 kTestAppID, gcm_app_handler_.get()); 134 kTestAppID, gcm_app_handler_.get());
135 }
126 136
137 void GCMProfileServiceTest::SignIn() {
127 FakeSigninManager* signin_manager = static_cast<FakeSigninManager*>( 138 FakeSigninManager* signin_manager = static_cast<FakeSigninManager*>(
128 SigninManagerFactory::GetInstance()->GetForProfile(profile_.get())); 139 SigninManagerFactory::GetInstance()->GetForProfile(profile_.get()));
129 signin_manager->SignIn(kTestAccountID); 140 signin_manager->SignIn(kTestAccountID);
130 base::RunLoop().RunUntilIdle(); 141 base::RunLoop().RunUntilIdle();
131 } 142 }
132 143
133 void GCMProfileServiceTest::TearDown() {
134 gcm_profile_service_->driver()->RemoveAppHandler(kTestAppID);
135 }
136
137 void GCMProfileServiceTest::RegisterAndWaitForCompletion( 144 void GCMProfileServiceTest::RegisterAndWaitForCompletion(
138 const std::vector<std::string>& sender_ids) { 145 const std::vector<std::string>& sender_ids) {
139 base::RunLoop run_loop; 146 base::RunLoop run_loop;
140 gcm_profile_service_->driver()->Register( 147 gcm_profile_service_->driver()->Register(
141 kTestAppID, 148 kTestAppID,
142 sender_ids, 149 sender_ids,
143 base::Bind(&GCMProfileServiceTest::RegisterCompleted, 150 base::Bind(&GCMProfileServiceTest::RegisterCompleted,
144 base::Unretained(this), 151 base::Unretained(this),
145 run_loop.QuitClosure())); 152 run_loop.QuitClosure()));
146 run_loop.Run(); 153 run_loop.Run();
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 194
188 void GCMProfileServiceTest::SendCompleted( 195 void GCMProfileServiceTest::SendCompleted(
189 const base::Closure& callback, 196 const base::Closure& callback,
190 const std::string& message_id, 197 const std::string& message_id,
191 GCMClient::Result result) { 198 GCMClient::Result result) {
192 send_message_id_ = message_id; 199 send_message_id_ = message_id;
193 send_result_ = result; 200 send_result_ = result;
194 callback.Run(); 201 callback.Run();
195 } 202 }
196 203
204 TEST_F(GCMProfileServiceTest, CreateGCMProfileServiceBeforeSignIn) {
205 CreateGCMProfileService();
206 EXPECT_FALSE(driver()->IsStarted());
207
208 SignIn();
209 EXPECT_TRUE(driver()->IsStarted());
210 }
211
212 TEST_F(GCMProfileServiceTest, CreateGCMProfileServiceAfterSignIn) {
213 SignIn();
214 // Note that we can't check if the GCM is started or not since the
bartfab (slow) 2014/06/13 11:27:21 Nit: s/the GCM/GCM/
jianli 2014/06/13 18:04:48 Done.
215 // GCMProfileService that hosts the GCMDriver is not created yet.
216
217 CreateGCMProfileService();
218 EXPECT_TRUE(driver()->IsStarted());
219 }
220
197 TEST_F(GCMProfileServiceTest, RegisterAndUnregister) { 221 TEST_F(GCMProfileServiceTest, RegisterAndUnregister) {
222 CreateGCMProfileService();
223 SignIn();
224
198 std::vector<std::string> sender_ids; 225 std::vector<std::string> sender_ids;
199 sender_ids.push_back("sender"); 226 sender_ids.push_back("sender");
200 RegisterAndWaitForCompletion(sender_ids); 227 RegisterAndWaitForCompletion(sender_ids);
201 228
202 std::string expected_registration_id = 229 std::string expected_registration_id =
203 FakeGCMClient::GetRegistrationIdFromSenderIds(sender_ids); 230 FakeGCMClient::GetRegistrationIdFromSenderIds(sender_ids);
204 EXPECT_EQ(expected_registration_id, registration_id()); 231 EXPECT_EQ(expected_registration_id, registration_id());
205 EXPECT_EQ(GCMClient::SUCCESS, registration_result()); 232 EXPECT_EQ(GCMClient::SUCCESS, registration_result());
206 233
207 UnregisterAndWaitForCompletion(); 234 UnregisterAndWaitForCompletion();
208 EXPECT_EQ(GCMClient::SUCCESS, unregistration_result()); 235 EXPECT_EQ(GCMClient::SUCCESS, unregistration_result());
209 } 236 }
210 237
211 TEST_F(GCMProfileServiceTest, Send) { 238 TEST_F(GCMProfileServiceTest, Send) {
239 CreateGCMProfileService();
240 SignIn();
241
212 GCMClient::OutgoingMessage message; 242 GCMClient::OutgoingMessage message;
213 message.id = "1"; 243 message.id = "1";
214 message.data["key1"] = "value1"; 244 message.data["key1"] = "value1";
215 SendAndWaitForCompletion( message); 245 SendAndWaitForCompletion( message);
216 246
217 EXPECT_EQ(message.id, send_message_id()); 247 EXPECT_EQ(message.id, send_message_id());
218 EXPECT_EQ(GCMClient::SUCCESS, send_result()); 248 EXPECT_EQ(GCMClient::SUCCESS, send_result());
219 } 249 }
220 250
221 } // namespace gcm 251 } // namespace gcm
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698