| 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 |