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/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_profile_service_factory.h" | 12 #include "chrome/browser/services/gcm/gcm_profile_service_factory.h" |
13 #include "chrome/common/chrome_switches.h" | 13 #include "chrome/common/chrome_switches.h" |
14 #include "chrome/common/pref_names.h" | 14 #include "chrome/common/pref_names.h" |
15 #include "chrome/test/base/ui_test_utils.h" | 15 #include "chrome/test/base/ui_test_utils.h" |
| 16 #include "extensions/test/result_catcher.h" |
| 17 |
| 18 using extensions::ResultCatcher; |
16 | 19 |
17 namespace { | 20 namespace { |
18 | 21 |
19 const char kEventsExtension[] = "gcm/events"; | 22 const char kEventsExtension[] = "gcm/events"; |
20 | 23 |
21 gcm::GCMClient::SendErrorDetails CreateErrorDetails( | 24 gcm::GCMClient::SendErrorDetails CreateErrorDetails( |
22 const std::string& message_id, | 25 const std::string& message_id, |
23 const gcm::GCMClient::Result result, | 26 const gcm::GCMClient::Result result, |
24 const std::string& total_messages) { | 27 const std::string& total_messages) { |
25 gcm::GCMClient::SendErrorDetails error; | 28 gcm::GCMClient::SendErrorDetails error; |
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
166 EXPECT_EQ("destination-id", service()->last_receiver_id()); | 169 EXPECT_EQ("destination-id", service()->last_receiver_id()); |
167 const gcm::GCMClient::OutgoingMessage& message = | 170 const gcm::GCMClient::OutgoingMessage& message = |
168 service()->last_sent_message(); | 171 service()->last_sent_message(); |
169 gcm::GCMClient::MessageData::const_iterator iter; | 172 gcm::GCMClient::MessageData::const_iterator iter; |
170 | 173 |
171 EXPECT_EQ(2419200, message.time_to_live); | 174 EXPECT_EQ(2419200, message.time_to_live); |
172 } | 175 } |
173 | 176 |
174 IN_PROC_BROWSER_TEST_F(GcmApiTest, OnMessagesDeleted) { | 177 IN_PROC_BROWSER_TEST_F(GcmApiTest, OnMessagesDeleted) { |
175 ResultCatcher catcher; | 178 ResultCatcher catcher; |
176 catcher.RestrictToProfile(profile()); | 179 catcher.RestrictToBrowserContext(profile()); |
177 | 180 |
178 const extensions::Extension* extension = | 181 const extensions::Extension* extension = |
179 LoadTestExtension(kEventsExtension, "on_messages_deleted.html"); | 182 LoadTestExtension(kEventsExtension, "on_messages_deleted.html"); |
180 ASSERT_TRUE(extension); | 183 ASSERT_TRUE(extension); |
181 | 184 |
182 extensions::ExtensionGCMAppHandler app_handler(profile()); | 185 extensions::ExtensionGCMAppHandler app_handler(profile()); |
183 app_handler.OnMessagesDeleted(extension->id()); | 186 app_handler.OnMessagesDeleted(extension->id()); |
184 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); | 187 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
185 } | 188 } |
186 | 189 |
187 IN_PROC_BROWSER_TEST_F(GcmApiTest, OnMessage) { | 190 IN_PROC_BROWSER_TEST_F(GcmApiTest, OnMessage) { |
188 ResultCatcher catcher; | 191 ResultCatcher catcher; |
189 catcher.RestrictToProfile(profile()); | 192 catcher.RestrictToBrowserContext(profile()); |
190 | 193 |
191 const extensions::Extension* extension = | 194 const extensions::Extension* extension = |
192 LoadTestExtension(kEventsExtension, "on_message.html"); | 195 LoadTestExtension(kEventsExtension, "on_message.html"); |
193 ASSERT_TRUE(extension); | 196 ASSERT_TRUE(extension); |
194 | 197 |
195 extensions::ExtensionGCMAppHandler app_handler(profile()); | 198 extensions::ExtensionGCMAppHandler app_handler(profile()); |
196 | 199 |
197 gcm::GCMClient::IncomingMessage message; | 200 gcm::GCMClient::IncomingMessage message; |
198 message.data["property1"] = "value1"; | 201 message.data["property1"] = "value1"; |
199 message.data["property2"] = "value2"; | 202 message.data["property2"] = "value2"; |
200 // First message is sent without a collapse key. | 203 // First message is sent without a collapse key. |
201 app_handler.OnMessage(extension->id(), message); | 204 app_handler.OnMessage(extension->id(), message); |
202 | 205 |
203 // Second message carries the same data and a collapse key. | 206 // Second message carries the same data and a collapse key. |
204 message.collapse_key = "collapseKeyValue"; | 207 message.collapse_key = "collapseKeyValue"; |
205 app_handler.OnMessage(extension->id(), message); | 208 app_handler.OnMessage(extension->id(), message); |
206 | 209 |
207 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); | 210 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
208 } | 211 } |
209 | 212 |
210 IN_PROC_BROWSER_TEST_F(GcmApiTest, OnSendError) { | 213 IN_PROC_BROWSER_TEST_F(GcmApiTest, OnSendError) { |
211 ResultCatcher catcher; | 214 ResultCatcher catcher; |
212 catcher.RestrictToProfile(profile()); | 215 catcher.RestrictToBrowserContext(profile()); |
213 | 216 |
214 const extensions::Extension* extension = | 217 const extensions::Extension* extension = |
215 LoadTestExtension(kEventsExtension, "on_send_error.html"); | 218 LoadTestExtension(kEventsExtension, "on_send_error.html"); |
216 ASSERT_TRUE(extension); | 219 ASSERT_TRUE(extension); |
217 | 220 |
218 std::string total_expected_messages = "5"; | 221 std::string total_expected_messages = "5"; |
219 extensions::ExtensionGCMAppHandler app_handler(profile()); | 222 extensions::ExtensionGCMAppHandler app_handler(profile()); |
220 app_handler.OnSendError( | 223 app_handler.OnSendError( |
221 extension->id(), | 224 extension->id(), |
222 CreateErrorDetails("error_message_1", | 225 CreateErrorDetails("error_message_1", |
(...skipping 18 matching lines...) Expand all Loading... |
241 extension->id(), | 244 extension->id(), |
242 CreateErrorDetails("error_message_5", | 245 CreateErrorDetails("error_message_5", |
243 gcm::GCMClient::TTL_EXCEEDED, | 246 gcm::GCMClient::TTL_EXCEEDED, |
244 total_expected_messages)); | 247 total_expected_messages)); |
245 | 248 |
246 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); | 249 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
247 } | 250 } |
248 | 251 |
249 IN_PROC_BROWSER_TEST_F(GcmApiTest, Incognito) { | 252 IN_PROC_BROWSER_TEST_F(GcmApiTest, Incognito) { |
250 ResultCatcher catcher; | 253 ResultCatcher catcher; |
251 catcher.RestrictToProfile(profile()); | 254 catcher.RestrictToBrowserContext(profile()); |
252 ResultCatcher incognito_catcher; | 255 ResultCatcher incognito_catcher; |
253 incognito_catcher.RestrictToProfile(profile()->GetOffTheRecordProfile()); | 256 incognito_catcher.RestrictToBrowserContext( |
| 257 profile()->GetOffTheRecordProfile()); |
254 | 258 |
255 ASSERT_TRUE(RunExtensionTestIncognito("gcm/functions/incognito")); | 259 ASSERT_TRUE(RunExtensionTestIncognito("gcm/functions/incognito")); |
256 | 260 |
257 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); | 261 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
258 EXPECT_TRUE(incognito_catcher.GetNextResult()) << incognito_catcher.message(); | 262 EXPECT_TRUE(incognito_catcher.GetNextResult()) << incognito_catcher.message(); |
259 } | 263 } |
260 | 264 |
261 } // namespace extensions | 265 } // namespace extensions |
OLD | NEW |