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

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

Issue 185133008: [GCM] Only allow the senders that the application is currently registered for (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 9 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 (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
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698