Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 <algorithm> | 5 #include <algorithm> |
| 6 #include <map> | 6 #include <map> |
| 7 | 7 |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
| 11 #include "base/prefs/pref_service.h" | 11 #include "base/prefs/pref_service.h" |
| 12 #include "base/run_loop.h" | 12 #include "base/run_loop.h" |
| 13 #include "base/strings/string_tokenizer.h" | |
| 13 #include "chrome/browser/chrome_notification_types.h" | 14 #include "chrome/browser/chrome_notification_types.h" |
| 14 #include "chrome/browser/extensions/state_store.h" | 15 #include "chrome/browser/extensions/state_store.h" |
| 15 #include "chrome/browser/extensions/test_extension_service.h" | 16 #include "chrome/browser/extensions/test_extension_service.h" |
| 16 #include "chrome/browser/extensions/test_extension_system.h" | 17 #include "chrome/browser/extensions/test_extension_system.h" |
| 17 #include "chrome/browser/services/gcm/gcm_client_factory.h" | 18 #include "chrome/browser/services/gcm/gcm_client_factory.h" |
| 18 #include "chrome/browser/services/gcm/gcm_client_mock.h" | 19 #include "chrome/browser/services/gcm/gcm_client_mock.h" |
| 19 #include "chrome/browser/services/gcm/gcm_event_router.h" | 20 #include "chrome/browser/services/gcm/gcm_event_router.h" |
| 20 #include "chrome/browser/services/gcm/gcm_profile_service.h" | 21 #include "chrome/browser/services/gcm/gcm_profile_service.h" |
| 21 #include "chrome/browser/services/gcm/gcm_profile_service_factory.h" | 22 #include "chrome/browser/services/gcm/gcm_profile_service_factory.h" |
| 22 #include "chrome/browser/signin/signin_manager_base.h" | 23 #include "chrome/browser/signin/signin_manager_base.h" |
| (...skipping 509 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 532 } | 533 } |
| 533 | 534 |
| 534 void PumpUILoop() { | 535 void PumpUILoop() { |
| 535 waiter_.PumpUILoop(); | 536 waiter_.PumpUILoop(); |
| 536 } | 537 } |
| 537 | 538 |
| 538 void PumpIOLoop() { | 539 void PumpIOLoop() { |
| 539 waiter_.PumpIOLoop(); | 540 waiter_.PumpIOLoop(); |
| 540 } | 541 } |
| 541 | 542 |
| 543 void RegisterAllSenders(GCMProfileServiceTestConsumer* consumer, | |
|
jianli
2014/03/05 01:33:02
This should be defined in GCMProfileServiceTestCon
fgorski
2014/03/05 19:30:22
Done. I extracted string to vector conversion to a
| |
| 544 const std::string& app_id, | |
| 545 const std::string& sender_ids) { | |
| 546 std::vector<std::string> senders; | |
| 547 base::StringTokenizer tokenizer(sender_ids, ","); | |
| 548 while (tokenizer.GetNext()) | |
| 549 senders.push_back(tokenizer.token()); | |
| 550 consumer->Register(app_id, senders); | |
| 551 WaitUntilCompleted(); | |
| 552 } | |
| 553 | |
| 542 Profile* profile() const { return consumer_->profile(); } | 554 Profile* profile() const { return consumer_->profile(); } |
| 543 GCMProfileServiceTestConsumer* consumer() const { return consumer_.get(); } | 555 GCMProfileServiceTestConsumer* consumer() const { return consumer_.get(); } |
| 544 | 556 |
| 545 protected: | 557 protected: |
| 546 Waiter waiter_; | 558 Waiter waiter_; |
| 547 | 559 |
| 548 private: | 560 private: |
| 549 scoped_ptr<content::TestBrowserThreadBundle> thread_bundle_; | 561 scoped_ptr<content::TestBrowserThreadBundle> thread_bundle_; |
| 550 #if defined(OS_CHROMEOS) | 562 #if defined(OS_CHROMEOS) |
| 551 chromeos::ScopedTestDeviceSettingsService test_device_settings_service_; | 563 chromeos::ScopedTestDeviceSettingsService test_device_settings_service_; |
| (...skipping 465 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1017 EXPECT_EQ(FakeGCMEventRouter::SEND_ERROR_EVENT, | 1029 EXPECT_EQ(FakeGCMEventRouter::SEND_ERROR_EVENT, |
| 1018 consumer()->gcm_event_router()->received_event()); | 1030 consumer()->gcm_event_router()->received_event()); |
| 1019 EXPECT_EQ(kTestingAppId, consumer()->gcm_event_router()->app_id()); | 1031 EXPECT_EQ(kTestingAppId, consumer()->gcm_event_router()->app_id()); |
| 1020 EXPECT_EQ(consumer()->send_message_id(), | 1032 EXPECT_EQ(consumer()->send_message_id(), |
| 1021 consumer()->gcm_event_router()->send_message_id()); | 1033 consumer()->gcm_event_router()->send_message_id()); |
| 1022 EXPECT_NE(GCMClient::SUCCESS, | 1034 EXPECT_NE(GCMClient::SUCCESS, |
| 1023 consumer()->gcm_event_router()->send_result()); | 1035 consumer()->gcm_event_router()->send_result()); |
| 1024 } | 1036 } |
| 1025 | 1037 |
| 1026 TEST_F(GCMProfileServiceSingleProfileTest, MessageReceived) { | 1038 TEST_F(GCMProfileServiceSingleProfileTest, MessageReceived) { |
| 1039 RegisterAllSenders(consumer(), kTestingAppId, "sender"); | |
| 1027 GCMClient::IncomingMessage message; | 1040 GCMClient::IncomingMessage message; |
| 1028 message.data["key1"] = "value1"; | 1041 message.data["key1"] = "value1"; |
| 1029 message.data["key2"] = "value2"; | 1042 message.data["key2"] = "value2"; |
| 1043 message.sender_id = "sender"; | |
| 1030 consumer()->GetGCMClient()->ReceiveMessage(kTestingAppId, message); | 1044 consumer()->GetGCMClient()->ReceiveMessage(kTestingAppId, message); |
| 1031 WaitUntilCompleted(); | 1045 WaitUntilCompleted(); |
| 1032 EXPECT_EQ(FakeGCMEventRouter::MESSAGE_EVENT, | 1046 EXPECT_EQ(FakeGCMEventRouter::MESSAGE_EVENT, |
| 1033 consumer()->gcm_event_router()->received_event()); | 1047 consumer()->gcm_event_router()->received_event()); |
| 1034 EXPECT_EQ(kTestingAppId, consumer()->gcm_event_router()->app_id()); | 1048 EXPECT_EQ(kTestingAppId, consumer()->gcm_event_router()->app_id()); |
| 1035 EXPECT_TRUE(message.data == consumer()->gcm_event_router()->message().data); | 1049 EXPECT_TRUE(message.data == consumer()->gcm_event_router()->message().data); |
| 1036 EXPECT_TRUE(consumer()->gcm_event_router()->message().collapse_key.empty()); | 1050 EXPECT_TRUE(consumer()->gcm_event_router()->message().collapse_key.empty()); |
| 1051 EXPECT_EQ(message.sender_id, | |
| 1052 consumer()->gcm_event_router()->message().sender_id); | |
| 1053 } | |
| 1054 | |
| 1055 TEST_F(GCMProfileServiceSingleProfileTest, | |
| 1056 MessageNotReceivedWhenSenderNotRegistered) { | |
|
jianli
2014/03/05 01:33:02
nit: MessageNotReceivedFromNotRegisteredSender
fgorski
2014/03/05 19:30:22
Done.
| |
| 1057 // Explicitly not registering the sender2 here, so that message gets dropped. | |
| 1058 RegisterAllSenders(consumer(), kTestingAppId, "sender1"); | |
| 1059 GCMClient::IncomingMessage message; | |
| 1060 message.data["key1"] = "value1"; | |
| 1061 message.data["key2"] = "value2"; | |
| 1062 message.sender_id = "sender2"; | |
| 1063 consumer()->GetGCMClient()->ReceiveMessage(kTestingAppId, message); | |
| 1064 PumpUILoop(); | |
| 1065 EXPECT_EQ(FakeGCMEventRouter::NO_EVENT, | |
| 1066 consumer()->gcm_event_router()->received_event()); | |
| 1067 consumer()->gcm_event_router()->clear_results(); | |
| 1068 | |
| 1069 // Register for sender2 and try to receive the message again, which should | |
| 1070 // work with no problems. | |
| 1071 RegisterAllSenders(consumer(), kTestingAppId, "sender1,sender2"); | |
| 1072 consumer()->GetGCMClient()->ReceiveMessage(kTestingAppId, message); | |
| 1073 WaitUntilCompleted(); | |
| 1074 EXPECT_EQ(FakeGCMEventRouter::MESSAGE_EVENT, | |
| 1075 consumer()->gcm_event_router()->received_event()); | |
| 1076 consumer()->gcm_event_router()->clear_results(); | |
| 1077 | |
| 1078 // Making sure that sender1 can receive the message as well. | |
| 1079 message.sender_id = "sender1"; | |
| 1080 consumer()->GetGCMClient()->ReceiveMessage(kTestingAppId, message); | |
| 1081 WaitUntilCompleted(); | |
| 1082 EXPECT_EQ(FakeGCMEventRouter::MESSAGE_EVENT, | |
| 1083 consumer()->gcm_event_router()->received_event()); | |
| 1084 consumer()->gcm_event_router()->clear_results(); | |
| 1085 | |
| 1086 // Register for sender1 only and make sure it is not possible to receive the | |
| 1087 // message again from from sender1. | |
| 1088 RegisterAllSenders(consumer(), kTestingAppId, "sender2"); | |
| 1089 consumer()->GetGCMClient()->ReceiveMessage(kTestingAppId, message); | |
| 1090 PumpUILoop(); | |
| 1091 EXPECT_EQ(FakeGCMEventRouter::NO_EVENT, | |
| 1092 consumer()->gcm_event_router()->received_event()); | |
| 1037 } | 1093 } |
| 1038 | 1094 |
| 1039 TEST_F(GCMProfileServiceSingleProfileTest, MessageWithCollapseKeyReceived) { | 1095 TEST_F(GCMProfileServiceSingleProfileTest, MessageWithCollapseKeyReceived) { |
| 1096 RegisterAllSenders(consumer(), kTestingAppId, "sender"); | |
| 1040 GCMClient::IncomingMessage message; | 1097 GCMClient::IncomingMessage message; |
| 1041 message.data["key1"] = "value1"; | 1098 message.data["key1"] = "value1"; |
| 1042 message.collapse_key = "collapse_key_value"; | 1099 message.collapse_key = "collapse_key_value"; |
| 1100 message.sender_id = "sender"; | |
| 1043 consumer()->GetGCMClient()->ReceiveMessage(kTestingAppId, message); | 1101 consumer()->GetGCMClient()->ReceiveMessage(kTestingAppId, message); |
| 1044 WaitUntilCompleted(); | 1102 WaitUntilCompleted(); |
| 1045 EXPECT_EQ(FakeGCMEventRouter::MESSAGE_EVENT, | 1103 EXPECT_EQ(FakeGCMEventRouter::MESSAGE_EVENT, |
| 1046 consumer()->gcm_event_router()->received_event()); | 1104 consumer()->gcm_event_router()->received_event()); |
| 1047 EXPECT_EQ(kTestingAppId, consumer()->gcm_event_router()->app_id()); | 1105 EXPECT_EQ(kTestingAppId, consumer()->gcm_event_router()->app_id()); |
| 1048 EXPECT_TRUE(message.data == consumer()->gcm_event_router()->message().data); | 1106 EXPECT_TRUE(message.data == consumer()->gcm_event_router()->message().data); |
| 1049 EXPECT_EQ(message.collapse_key, | 1107 EXPECT_EQ(message.collapse_key, |
| 1050 consumer()->gcm_event_router()->message().collapse_key); | 1108 consumer()->gcm_event_router()->message().collapse_key); |
| 1051 } | 1109 } |
| 1052 | 1110 |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1161 message3.data["hello"] = "world"; | 1219 message3.data["hello"] = "world"; |
| 1162 consumer2()->Send(kTestingAppId2, kUserId, message3); | 1220 consumer2()->Send(kTestingAppId2, kUserId, message3); |
| 1163 | 1221 |
| 1164 WaitUntilCompleted(); | 1222 WaitUntilCompleted(); |
| 1165 | 1223 |
| 1166 EXPECT_EQ(consumer2()->send_message_id(), message3.id); | 1224 EXPECT_EQ(consumer2()->send_message_id(), message3.id); |
| 1167 EXPECT_EQ(GCMClient::SUCCESS, consumer()->send_result()); | 1225 EXPECT_EQ(GCMClient::SUCCESS, consumer()->send_result()); |
| 1168 } | 1226 } |
| 1169 | 1227 |
| 1170 TEST_F(GCMProfileServiceMultiProfileTest, MessageReceived) { | 1228 TEST_F(GCMProfileServiceMultiProfileTest, MessageReceived) { |
| 1229 RegisterAllSenders(consumer(), kTestingAppId, "sender"); | |
| 1230 RegisterAllSenders(consumer2(), kTestingAppId, "sender"); | |
| 1231 RegisterAllSenders(consumer2(), kTestingAppId2, "sender2"); | |
| 1232 | |
| 1171 // Trigger an incoming message for an app in one profile. | 1233 // Trigger an incoming message for an app in one profile. |
| 1172 GCMClient::IncomingMessage message; | 1234 GCMClient::IncomingMessage message; |
| 1173 message.data["key1"] = "value1"; | 1235 message.data["key1"] = "value1"; |
| 1174 message.data["key2"] = "value2"; | 1236 message.data["key2"] = "value2"; |
| 1237 message.sender_id = "sender"; | |
| 1175 consumer()->GetGCMClient()->ReceiveMessage(kTestingAppId, message); | 1238 consumer()->GetGCMClient()->ReceiveMessage(kTestingAppId, message); |
| 1176 | 1239 |
| 1177 // Trigger an incoming message for the same app in another profile. | 1240 // Trigger an incoming message for the same app in another profile. |
| 1178 GCMClient::IncomingMessage message2; | 1241 GCMClient::IncomingMessage message2; |
| 1179 message2.data["foo"] = "bar"; | 1242 message2.data["foo"] = "bar"; |
| 1243 message2.sender_id = "sender"; | |
| 1180 consumer2()->GetGCMClient()->ReceiveMessage(kTestingAppId, message2); | 1244 consumer2()->GetGCMClient()->ReceiveMessage(kTestingAppId, message2); |
| 1181 | 1245 |
| 1182 WaitUntilCompleted(); | 1246 WaitUntilCompleted(); |
| 1183 WaitUntilCompleted(); | 1247 WaitUntilCompleted(); |
| 1184 | 1248 |
| 1185 EXPECT_EQ(FakeGCMEventRouter::MESSAGE_EVENT, | 1249 EXPECT_EQ(FakeGCMEventRouter::MESSAGE_EVENT, |
| 1186 consumer()->gcm_event_router()->received_event()); | 1250 consumer()->gcm_event_router()->received_event()); |
| 1187 EXPECT_EQ(kTestingAppId, consumer()->gcm_event_router()->app_id()); | 1251 EXPECT_EQ(kTestingAppId, consumer()->gcm_event_router()->app_id()); |
| 1188 EXPECT_TRUE(message.data == consumer()->gcm_event_router()->message().data); | 1252 EXPECT_TRUE(message.data == consumer()->gcm_event_router()->message().data); |
| 1253 EXPECT_EQ("sender", consumer()->gcm_event_router()->message().sender_id); | |
| 1189 | 1254 |
| 1190 EXPECT_EQ(FakeGCMEventRouter::MESSAGE_EVENT, | 1255 EXPECT_EQ(FakeGCMEventRouter::MESSAGE_EVENT, |
| 1191 consumer2()->gcm_event_router()->received_event()); | 1256 consumer2()->gcm_event_router()->received_event()); |
| 1192 EXPECT_EQ(kTestingAppId, consumer2()->gcm_event_router()->app_id()); | 1257 EXPECT_EQ(kTestingAppId, consumer2()->gcm_event_router()->app_id()); |
| 1193 EXPECT_TRUE(message2.data == consumer2()->gcm_event_router()->message().data); | 1258 EXPECT_TRUE(message2.data == consumer2()->gcm_event_router()->message().data); |
| 1259 EXPECT_EQ("sender", consumer2()->gcm_event_router()->message().sender_id); | |
| 1194 | 1260 |
| 1195 // Trigger another incoming message for a different app in another profile. | 1261 // Trigger another incoming message for a different app in another profile. |
| 1196 GCMClient::IncomingMessage message3; | 1262 GCMClient::IncomingMessage message3; |
| 1197 message3.data["bar1"] = "foo1"; | 1263 message3.data["bar1"] = "foo1"; |
| 1198 message3.data["bar2"] = "foo2"; | 1264 message3.data["bar2"] = "foo2"; |
| 1265 message3.sender_id = "sender2"; | |
| 1199 consumer2()->GetGCMClient()->ReceiveMessage(kTestingAppId2, message3); | 1266 consumer2()->GetGCMClient()->ReceiveMessage(kTestingAppId2, message3); |
| 1200 | 1267 |
| 1201 WaitUntilCompleted(); | 1268 WaitUntilCompleted(); |
| 1202 | 1269 |
| 1203 EXPECT_EQ(FakeGCMEventRouter::MESSAGE_EVENT, | 1270 EXPECT_EQ(FakeGCMEventRouter::MESSAGE_EVENT, |
| 1204 consumer2()->gcm_event_router()->received_event()); | 1271 consumer2()->gcm_event_router()->received_event()); |
| 1205 EXPECT_EQ(kTestingAppId2, consumer2()->gcm_event_router()->app_id()); | 1272 EXPECT_EQ(kTestingAppId2, consumer2()->gcm_event_router()->app_id()); |
| 1206 EXPECT_TRUE(message3.data == consumer2()->gcm_event_router()->message().data); | 1273 EXPECT_TRUE(message3.data == consumer2()->gcm_event_router()->message().data); |
| 1274 EXPECT_EQ("sender2", consumer2()->gcm_event_router()->message().sender_id); | |
| 1207 } | 1275 } |
| 1208 | 1276 |
| 1209 // Test a set of GCM operations on multiple profiles. | 1277 // Test a set of GCM operations on multiple profiles. |
| 1210 // 1) Register 1 app in profile1 and register 2 apps in profile2; | 1278 // 1) Register 1 app in profile1 and register 2 apps in profile2; |
| 1211 // 2) Send a message from profile1; | 1279 // 2) Send a message from profile1; |
| 1212 // 3) Receive a message to an app in profile1 and receive a message for each of | 1280 // 3) Receive a message to an app in profile1 and receive a message for each of |
| 1213 // two apps in profile2; | 1281 // two apps in profile2; |
| 1214 // 4) Send a message foe ach of two apps in profile2; | 1282 // 4) Send a message foe ach of two apps in profile2; |
| 1215 // 5) Sign out of profile1. | 1283 // 5) Sign out of profile1. |
| 1216 // 6) Register/send stops working for profile1; | 1284 // 6) Register/send stops working for profile1; |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1257 | 1325 |
| 1258 WaitUntilCompleted(); | 1326 WaitUntilCompleted(); |
| 1259 | 1327 |
| 1260 EXPECT_EQ(consumer()->send_message_id(), out_message.id); | 1328 EXPECT_EQ(consumer()->send_message_id(), out_message.id); |
| 1261 EXPECT_EQ(GCMClient::SUCCESS, consumer()->send_result()); | 1329 EXPECT_EQ(GCMClient::SUCCESS, consumer()->send_result()); |
| 1262 | 1330 |
| 1263 // Trigger an incoming message for an app in one profile. | 1331 // Trigger an incoming message for an app in one profile. |
| 1264 GCMClient::IncomingMessage in_message; | 1332 GCMClient::IncomingMessage in_message; |
| 1265 in_message.data["in1"] = "in_data1"; | 1333 in_message.data["in1"] = "in_data1"; |
| 1266 in_message.data["in1_2"] = "in_data1_2"; | 1334 in_message.data["in1_2"] = "in_data1_2"; |
| 1335 in_message.sender_id = "sender1"; | |
| 1267 consumer()->GetGCMClient()->ReceiveMessage(kTestingAppId, in_message); | 1336 consumer()->GetGCMClient()->ReceiveMessage(kTestingAppId, in_message); |
| 1268 | 1337 |
| 1269 WaitUntilCompleted(); | 1338 WaitUntilCompleted(); |
| 1270 | 1339 |
| 1271 EXPECT_EQ(FakeGCMEventRouter::MESSAGE_EVENT, | 1340 EXPECT_EQ(FakeGCMEventRouter::MESSAGE_EVENT, |
| 1272 consumer()->gcm_event_router()->received_event()); | 1341 consumer()->gcm_event_router()->received_event()); |
| 1273 EXPECT_EQ(kTestingAppId, consumer()->gcm_event_router()->app_id()); | 1342 EXPECT_EQ(kTestingAppId, consumer()->gcm_event_router()->app_id()); |
| 1274 EXPECT_TRUE( | 1343 EXPECT_TRUE( |
| 1275 in_message.data == consumer()->gcm_event_router()->message().data); | 1344 in_message.data == consumer()->gcm_event_router()->message().data); |
| 1276 | 1345 |
| 1277 // Trigger 2 incoming messages, one for each app respectively, in another | 1346 // Trigger 2 incoming messages, one for each app respectively, in another |
| 1278 // profile. | 1347 // profile. |
| 1279 GCMClient::IncomingMessage in_message2; | 1348 GCMClient::IncomingMessage in_message2; |
| 1280 in_message2.data["in2"] = "in_data2"; | 1349 in_message2.data["in2"] = "in_data2"; |
| 1350 in_message2.sender_id = "sender3"; | |
| 1281 consumer2()->GetGCMClient()->ReceiveMessage(kTestingAppId2, in_message2); | 1351 consumer2()->GetGCMClient()->ReceiveMessage(kTestingAppId2, in_message2); |
| 1282 | 1352 |
| 1283 GCMClient::IncomingMessage in_message3; | 1353 GCMClient::IncomingMessage in_message3; |
| 1284 in_message3.data["in3"] = "in_data3"; | 1354 in_message3.data["in3"] = "in_data3"; |
| 1285 in_message3.data["in3_2"] = "in_data3_2"; | 1355 in_message3.data["in3_2"] = "in_data3_2"; |
| 1356 in_message3.sender_id = "foo"; | |
| 1286 consumer2()->GetGCMClient()->ReceiveMessage(kTestingAppId, in_message3); | 1357 consumer2()->GetGCMClient()->ReceiveMessage(kTestingAppId, in_message3); |
| 1287 | 1358 |
| 1288 consumer2()->gcm_event_router()->clear_results(); | 1359 consumer2()->gcm_event_router()->clear_results(); |
| 1289 WaitUntilCompleted(); | 1360 WaitUntilCompleted(); |
| 1290 | 1361 |
| 1291 EXPECT_EQ(FakeGCMEventRouter::MESSAGE_EVENT, | 1362 EXPECT_EQ(FakeGCMEventRouter::MESSAGE_EVENT, |
| 1292 consumer2()->gcm_event_router()->received_event()); | 1363 consumer2()->gcm_event_router()->received_event()); |
| 1293 EXPECT_EQ(kTestingAppId2, consumer2()->gcm_event_router()->app_id()); | 1364 EXPECT_EQ(kTestingAppId2, consumer2()->gcm_event_router()->app_id()); |
| 1294 EXPECT_TRUE( | 1365 EXPECT_TRUE( |
| 1295 in_message2.data == consumer2()->gcm_event_router()->message().data); | 1366 in_message2.data == consumer2()->gcm_event_router()->message().data); |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1364 consumer2()->gcm_event_router()->received_event()); | 1435 consumer2()->gcm_event_router()->received_event()); |
| 1365 EXPECT_EQ(kTestingAppId, consumer2()->gcm_event_router()->app_id()); | 1436 EXPECT_EQ(kTestingAppId, consumer2()->gcm_event_router()->app_id()); |
| 1366 EXPECT_EQ(consumer2()->send_message_id(), | 1437 EXPECT_EQ(consumer2()->send_message_id(), |
| 1367 consumer2()->gcm_event_router()->send_message_id()); | 1438 consumer2()->gcm_event_router()->send_message_id()); |
| 1368 EXPECT_NE(GCMClient::SUCCESS, | 1439 EXPECT_NE(GCMClient::SUCCESS, |
| 1369 consumer2()->gcm_event_router()->send_result()); | 1440 consumer2()->gcm_event_router()->send_result()); |
| 1370 | 1441 |
| 1371 // Sign in with a different user. | 1442 // Sign in with a different user. |
| 1372 consumer()->SignIn(kTestingUsername3); | 1443 consumer()->SignIn(kTestingUsername3); |
| 1373 | 1444 |
| 1445 // Signing our cleared all registrations, so we need to register again. | |
|
jianli
2014/03/05 01:33:02
nit: out
fgorski
2014/03/05 19:30:22
Done.
| |
| 1446 RegisterAllSenders(consumer(), kTestingAppId, "sender1"); | |
| 1447 | |
| 1374 // Incoming message will go through for the new signed-in user. | 1448 // Incoming message will go through for the new signed-in user. |
| 1375 GCMClient::IncomingMessage in_message5; | 1449 GCMClient::IncomingMessage in_message5; |
| 1376 in_message5.data["in5"] = "in_data5"; | 1450 in_message5.data["in5"] = "in_data5"; |
| 1451 in_message5.sender_id = "sender1"; | |
| 1377 consumer()->GetGCMClient()->ReceiveMessage(kTestingAppId, in_message5); | 1452 consumer()->GetGCMClient()->ReceiveMessage(kTestingAppId, in_message5); |
| 1378 | 1453 |
| 1379 consumer()->gcm_event_router()->clear_results(); | 1454 consumer()->gcm_event_router()->clear_results(); |
| 1380 WaitUntilCompleted(); | 1455 WaitUntilCompleted(); |
| 1381 | 1456 |
| 1382 EXPECT_EQ(FakeGCMEventRouter::MESSAGE_EVENT, | 1457 EXPECT_EQ(FakeGCMEventRouter::MESSAGE_EVENT, |
| 1383 consumer()->gcm_event_router()->received_event()); | 1458 consumer()->gcm_event_router()->received_event()); |
| 1384 EXPECT_TRUE( | 1459 EXPECT_TRUE( |
| 1385 in_message5.data == consumer()->gcm_event_router()->message().data); | 1460 in_message5.data == consumer()->gcm_event_router()->message().data); |
| 1386 } | 1461 } |
| 1387 | 1462 |
| 1388 } // namespace gcm | 1463 } // namespace gcm |
| OLD | NEW |