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

Side by Side Diff: chrome/browser/extensions/api/gcm/gcm_apitest.cc

Issue 270873002: Extract GCMClient data types into separate gcm_types.h (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Reupload Created 6 years, 7 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 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/prefs/pref_service.h" 5 #include "base/prefs/pref_service.h"
6 #include "base/run_loop.h" 6 #include "base/run_loop.h"
7 #include "chrome/browser/extensions/api/gcm/gcm_api.h" 7 #include "chrome/browser/extensions/api/gcm/gcm_api.h"
8 #include "chrome/browser/extensions/extension_apitest.h" 8 #include "chrome/browser/extensions/extension_apitest.h"
9 #include "chrome/browser/extensions/extension_gcm_app_handler.h" 9 #include "chrome/browser/extensions/extension_gcm_app_handler.h"
10 #include "chrome/browser/profiles/profile.h" 10 #include "chrome/browser/profiles/profile.h"
11 #include "chrome/browser/services/gcm/fake_gcm_profile_service.h" 11 #include "chrome/browser/services/gcm/fake_gcm_profile_service.h"
12 #include "chrome/browser/services/gcm/gcm_client_factory.h" 12 #include "chrome/browser/services/gcm/gcm_client_factory.h"
13 #include "chrome/browser/services/gcm/gcm_profile_service_factory.h" 13 #include "chrome/browser/services/gcm/gcm_profile_service_factory.h"
14 #include "chrome/common/chrome_switches.h" 14 #include "chrome/common/chrome_switches.h"
15 #include "chrome/common/pref_names.h" 15 #include "chrome/common/pref_names.h"
16 #include "chrome/test/base/ui_test_utils.h" 16 #include "chrome/test/base/ui_test_utils.h"
17 17
18 namespace { 18 namespace {
19 19
20 const char kEventsExtension[] = "gcm/events"; 20 const char kEventsExtension[] = "gcm/events";
21 21
22 gcm::GCMClient::SendErrorDetails CreateErrorDetails( 22 gcm::SendErrorDetails CreateErrorDetails(
23 const std::string& message_id, 23 const std::string& message_id,
24 const gcm::GCMClient::Result result, 24 const gcm::Result result,
25 const std::string& total_messages) { 25 const std::string& total_messages) {
26 gcm::GCMClient::SendErrorDetails error; 26 gcm::SendErrorDetails error;
27 error.message_id = message_id; 27 error.message_id = message_id;
28 error.result = result; 28 error.result = result;
29 error.additional_data["expectedMessageId"] = message_id; 29 error.additional_data["expectedMessageId"] = message_id;
30 switch (result) { 30 switch (result) {
31 case gcm::GCMClient::ASYNC_OPERATION_PENDING: 31 case gcm::RESULT_ASYNC_OPERATION_PENDING:
32 error.additional_data["expectedErrorMessage"] = 32 error.additional_data["expectedErrorMessage"] =
33 "Asynchronous operation is pending."; 33 "Asynchronous operation is pending.";
34 break; 34 break;
35 case gcm::GCMClient::SERVER_ERROR: 35 case gcm::RESULT_SERVER_ERROR:
36 error.additional_data["expectedErrorMessage"] = "Server error occurred."; 36 error.additional_data["expectedErrorMessage"] = "Server error occurred.";
37 break; 37 break;
38 case gcm::GCMClient::NETWORK_ERROR: 38 case gcm::RESULT_NETWORK_ERROR:
39 error.additional_data["expectedErrorMessage"] = "Network error occurred."; 39 error.additional_data["expectedErrorMessage"] = "Network error occurred.";
40 break; 40 break;
41 case gcm::GCMClient::TTL_EXCEEDED: 41 case gcm::RESULT_TTL_EXCEEDED:
42 error.additional_data["expectedErrorMessage"] = "Time-to-live exceeded."; 42 error.additional_data["expectedErrorMessage"] = "Time-to-live exceeded.";
43 break; 43 break;
44 case gcm::GCMClient::UNKNOWN_ERROR: 44 case gcm::RESULT_UNKNOWN_ERROR:
45 default: // Default case is the same as UNKNOWN_ERROR 45 default: // Default case is the same as UNKNOWN_ERROR
46 error.additional_data["expectedErrorMessage"] = "Unknown error occurred."; 46 error.additional_data["expectedErrorMessage"] = "Unknown error occurred.";
47 break; 47 break;
48 } 48 }
49 error.additional_data["totalMessages"] = total_messages; 49 error.additional_data["totalMessages"] = total_messages;
50 return error; 50 return error;
51 } 51 }
52 52
53 } // namespace 53 } // namespace
54 54
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 125
126 const std::vector<std::string>& sender_ids = 126 const std::vector<std::string>& sender_ids =
127 service()->last_registered_sender_ids(); 127 service()->last_registered_sender_ids();
128 EXPECT_TRUE(std::find(sender_ids.begin(), sender_ids.end(), "Sender1") != 128 EXPECT_TRUE(std::find(sender_ids.begin(), sender_ids.end(), "Sender1") !=
129 sender_ids.end()); 129 sender_ids.end());
130 EXPECT_TRUE(std::find(sender_ids.begin(), sender_ids.end(), "Sender2") != 130 EXPECT_TRUE(std::find(sender_ids.begin(), sender_ids.end(), "Sender2") !=
131 sender_ids.end()); 131 sender_ids.end());
132 } 132 }
133 133
134 IN_PROC_BROWSER_TEST_F(GcmApiTest, Unregister) { 134 IN_PROC_BROWSER_TEST_F(GcmApiTest, Unregister) {
135 service()->AddExpectedUnregisterResponse(gcm::GCMClient::SUCCESS); 135 service()->AddExpectedUnregisterResponse(gcm::RESULT_SUCCESS);
136 service()->AddExpectedUnregisterResponse(gcm::GCMClient::SERVER_ERROR); 136 service()->AddExpectedUnregisterResponse(gcm::RESULT_SERVER_ERROR);
137 137
138 ASSERT_TRUE(RunExtensionTest("gcm/functions/unregister")); 138 ASSERT_TRUE(RunExtensionTest("gcm/functions/unregister"));
139 } 139 }
140 140
141 IN_PROC_BROWSER_TEST_F(GcmApiTest, SendValidation) { 141 IN_PROC_BROWSER_TEST_F(GcmApiTest, SendValidation) {
142 ASSERT_TRUE(RunExtensionTest("gcm/functions/send")); 142 ASSERT_TRUE(RunExtensionTest("gcm/functions/send"));
143 } 143 }
144 144
145 IN_PROC_BROWSER_TEST_F(GcmApiTest, SendMessageData) { 145 IN_PROC_BROWSER_TEST_F(GcmApiTest, SendMessageData) {
146 StartCollecting(); 146 StartCollecting();
147 ASSERT_TRUE(RunExtensionTest("gcm/functions/send_message_data")); 147 ASSERT_TRUE(RunExtensionTest("gcm/functions/send_message_data"));
148 148
149 EXPECT_EQ("destination-id", service()->last_receiver_id()); 149 EXPECT_EQ("destination-id", service()->last_receiver_id());
150 const gcm::GCMClient::OutgoingMessage& message = 150 const gcm::OutgoingMessage& message =
151 service()->last_sent_message(); 151 service()->last_sent_message();
152 gcm::GCMClient::MessageData::const_iterator iter; 152 gcm::MessageData::const_iterator iter;
153 153
154 EXPECT_TRUE((iter = message.data.find("key1")) != message.data.end()); 154 EXPECT_TRUE((iter = message.data.find("key1")) != message.data.end());
155 EXPECT_EQ("value1", iter->second); 155 EXPECT_EQ("value1", iter->second);
156 156
157 EXPECT_TRUE((iter = message.data.find("key2")) != message.data.end()); 157 EXPECT_TRUE((iter = message.data.find("key2")) != message.data.end());
158 EXPECT_EQ("value2", iter->second); 158 EXPECT_EQ("value2", iter->second);
159 } 159 }
160 160
161 IN_PROC_BROWSER_TEST_F(GcmApiTest, OnMessagesDeleted) { 161 IN_PROC_BROWSER_TEST_F(GcmApiTest, OnMessagesDeleted) {
162 ResultCatcher catcher; 162 ResultCatcher catcher;
(...skipping 11 matching lines...) Expand all
174 IN_PROC_BROWSER_TEST_F(GcmApiTest, OnMessage) { 174 IN_PROC_BROWSER_TEST_F(GcmApiTest, OnMessage) {
175 ResultCatcher catcher; 175 ResultCatcher catcher;
176 catcher.RestrictToProfile(profile()); 176 catcher.RestrictToProfile(profile());
177 177
178 const extensions::Extension* extension = 178 const extensions::Extension* extension =
179 LoadTestExtension(kEventsExtension, "on_message.html"); 179 LoadTestExtension(kEventsExtension, "on_message.html");
180 ASSERT_TRUE(extension); 180 ASSERT_TRUE(extension);
181 181
182 extensions::ExtensionGCMAppHandler app_handler(profile()); 182 extensions::ExtensionGCMAppHandler app_handler(profile());
183 183
184 gcm::GCMClient::IncomingMessage message; 184 gcm::IncomingMessage message;
185 message.data["property1"] = "value1"; 185 message.data["property1"] = "value1";
186 message.data["property2"] = "value2"; 186 message.data["property2"] = "value2";
187 // First message is sent without a collapse key. 187 // First message is sent without a collapse key.
188 app_handler.OnMessage(extension->id(), message); 188 app_handler.OnMessage(extension->id(), message);
189 189
190 // Second message carries the same data and a collapse key. 190 // Second message carries the same data and a collapse key.
191 message.collapse_key = "collapseKeyValue"; 191 message.collapse_key = "collapseKeyValue";
192 app_handler.OnMessage(extension->id(), message); 192 app_handler.OnMessage(extension->id(), message);
193 193
194 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); 194 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
195 } 195 }
196 196
197 IN_PROC_BROWSER_TEST_F(GcmApiTest, OnSendError) { 197 IN_PROC_BROWSER_TEST_F(GcmApiTest, OnSendError) {
198 ResultCatcher catcher; 198 ResultCatcher catcher;
199 catcher.RestrictToProfile(profile()); 199 catcher.RestrictToProfile(profile());
200 200
201 const extensions::Extension* extension = 201 const extensions::Extension* extension =
202 LoadTestExtension(kEventsExtension, "on_send_error.html"); 202 LoadTestExtension(kEventsExtension, "on_send_error.html");
203 ASSERT_TRUE(extension); 203 ASSERT_TRUE(extension);
204 204
205 std::string total_expected_messages = "5"; 205 std::string total_expected_messages = "5";
206 extensions::ExtensionGCMAppHandler app_handler(profile()); 206 extensions::ExtensionGCMAppHandler app_handler(profile());
207 app_handler.OnSendError( 207 app_handler.OnSendError(
208 extension->id(), 208 extension->id(),
209 CreateErrorDetails("error_message_1", 209 CreateErrorDetails("error_message_1",
210 gcm::GCMClient::ASYNC_OPERATION_PENDING, 210 gcm::RESULT_ASYNC_OPERATION_PENDING,
211 total_expected_messages)); 211 total_expected_messages));
212 app_handler.OnSendError( 212 app_handler.OnSendError(
213 extension->id(), 213 extension->id(),
214 CreateErrorDetails("error_message_2", 214 CreateErrorDetails("error_message_2",
215 gcm::GCMClient::SERVER_ERROR, 215 gcm::RESULT_SERVER_ERROR,
216 total_expected_messages)); 216 total_expected_messages));
217 app_handler.OnSendError( 217 app_handler.OnSendError(
218 extension->id(), 218 extension->id(),
219 CreateErrorDetails("error_message_3", 219 CreateErrorDetails("error_message_3",
220 gcm::GCMClient::NETWORK_ERROR, 220 gcm::RESULT_NETWORK_ERROR,
221 total_expected_messages)); 221 total_expected_messages));
222 app_handler.OnSendError( 222 app_handler.OnSendError(
223 extension->id(), 223 extension->id(),
224 CreateErrorDetails("error_message_4", 224 CreateErrorDetails("error_message_4",
225 gcm::GCMClient::UNKNOWN_ERROR, 225 gcm::RESULT_UNKNOWN_ERROR,
226 total_expected_messages)); 226 total_expected_messages));
227 app_handler.OnSendError( 227 app_handler.OnSendError(
228 extension->id(), 228 extension->id(),
229 CreateErrorDetails("error_message_5", 229 CreateErrorDetails("error_message_5",
230 gcm::GCMClient::TTL_EXCEEDED, 230 gcm::RESULT_TTL_EXCEEDED,
231 total_expected_messages)); 231 total_expected_messages));
232 232
233 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); 233 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
234 } 234 }
235 235
236 IN_PROC_BROWSER_TEST_F(GcmApiTest, Incognito) { 236 IN_PROC_BROWSER_TEST_F(GcmApiTest, Incognito) {
237 ResultCatcher catcher; 237 ResultCatcher catcher;
238 catcher.RestrictToProfile(profile()); 238 catcher.RestrictToProfile(profile());
239 ResultCatcher incognito_catcher; 239 ResultCatcher incognito_catcher;
240 incognito_catcher.RestrictToProfile(profile()->GetOffTheRecordProfile()); 240 incognito_catcher.RestrictToProfile(profile()->GetOffTheRecordProfile());
241 241
242 ASSERT_TRUE(RunExtensionTestIncognito("gcm/functions/incognito")); 242 ASSERT_TRUE(RunExtensionTestIncognito("gcm/functions/incognito"));
243 243
244 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); 244 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
245 EXPECT_TRUE(incognito_catcher.GetNextResult()) << incognito_catcher.message(); 245 EXPECT_TRUE(incognito_catcher.GetNextResult()) << incognito_catcher.message();
246 } 246 }
247 247
248 } // namespace extensions 248 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/api/gcm/gcm_api.cc ('k') | chrome/browser/extensions/extension_gcm_app_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698