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

Side by Side Diff: chrome/browser/sync/engine/syncapi_unittest.cc

Issue 7033043: [Sync] Speed up sync node browser/search in about:sync (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 6 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 // Unit tests for the SyncApi. Note that a lot of the underlying 5 // Unit tests for the SyncApi. Note that a lot of the underlying
6 // functionality is provided by the Syncable layer, which has its own 6 // functionality is provided by the Syncable layer, which has its own
7 // unit tests. We'll test SyncApi specific things in this harness. 7 // unit tests. We'll test SyncApi specific things in this harness.
8 8
9 #include <map> 9 #include <map>
10 10
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after
381 EXPECT_TRUE(password_node.InitByClientTagLookup(syncable::PASSWORDS, 381 EXPECT_TRUE(password_node.InitByClientTagLookup(syncable::PASSWORDS,
382 "foo")); 382 "foo"));
383 const sync_pb::PasswordSpecificsData& data = 383 const sync_pb::PasswordSpecificsData& data =
384 password_node.GetPasswordSpecifics(); 384 password_node.GetPasswordSpecifics();
385 EXPECT_EQ("secret", data.password_value()); 385 EXPECT_EQ("secret", data.password_value());
386 } 386 }
387 } 387 }
388 388
389 namespace { 389 namespace {
390 390
391 void CheckNodeValue(const BaseNode& node, const DictionaryValue& value) { 391 void CheckNodeValue(const BaseNode& node, const DictionaryValue& value,
392 bool is_detailed) {
392 ExpectInt64Value(node.GetId(), value, "id"); 393 ExpectInt64Value(node.GetId(), value, "id");
393 ExpectInt64Value(node.GetModificationTime(), value, "modificationTime");
394 ExpectInt64Value(node.GetParentId(), value, "parentId");
395 { 394 {
396 bool is_folder = false; 395 bool is_folder = false;
397 EXPECT_TRUE(value.GetBoolean("isFolder", &is_folder)); 396 EXPECT_TRUE(value.GetBoolean("isFolder", &is_folder));
398 EXPECT_EQ(node.GetIsFolder(), is_folder); 397 EXPECT_EQ(node.GetIsFolder(), is_folder);
399 } 398 }
400 ExpectDictStringValue(WideToUTF8(node.GetTitle()), value, "title"); 399 ExpectDictStringValue(WideToUTF8(node.GetTitle()), value, "title");
401 { 400 {
402 ModelType expected_model_type = node.GetModelType(); 401 ModelType expected_model_type = node.GetModelType();
403 std::string type_str; 402 std::string type_str;
404 EXPECT_TRUE(value.GetString("type", &type_str)); 403 EXPECT_TRUE(value.GetString("type", &type_str));
405 if (expected_model_type >= syncable::FIRST_REAL_MODEL_TYPE) { 404 if (expected_model_type >= syncable::FIRST_REAL_MODEL_TYPE) {
406 ModelType model_type = 405 ModelType model_type =
407 syncable::ModelTypeFromString(type_str); 406 syncable::ModelTypeFromString(type_str);
408 EXPECT_EQ(expected_model_type, model_type); 407 EXPECT_EQ(expected_model_type, model_type);
409 } else if (expected_model_type == syncable::TOP_LEVEL_FOLDER) { 408 } else if (expected_model_type == syncable::TOP_LEVEL_FOLDER) {
410 EXPECT_EQ("Top-level folder", type_str); 409 EXPECT_EQ("Top-level folder", type_str);
411 } else if (expected_model_type == syncable::UNSPECIFIED) { 410 } else if (expected_model_type == syncable::UNSPECIFIED) {
412 EXPECT_EQ("Unspecified", type_str); 411 EXPECT_EQ("Unspecified", type_str);
413 } else { 412 } else {
414 ADD_FAILURE(); 413 ADD_FAILURE();
415 } 414 }
416 } 415 }
417 ExpectInt64Value(node.GetExternalId(), value, "externalId"); 416 if (is_detailed) {
418 ExpectInt64Value(node.GetPredecessorId(), value, "predecessorId"); 417 ExpectInt64Value(node.GetParentId(), value, "parentId");
419 ExpectInt64Value(node.GetSuccessorId(), value, "successorId"); 418 ExpectInt64Value(node.GetModificationTime(), value, "modificationTime");
420 ExpectInt64Value(node.GetFirstChildId(), value, "firstChildId"); 419 ExpectInt64Value(node.GetExternalId(), value, "externalId");
421 { 420 ExpectInt64Value(node.GetPredecessorId(), value, "predecessorId");
422 scoped_ptr<DictionaryValue> expected_entry(node.GetEntry()->ToValue()); 421 ExpectInt64Value(node.GetSuccessorId(), value, "successorId");
423 Value* entry = NULL; 422 ExpectInt64Value(node.GetFirstChildId(), value, "firstChildId");
424 EXPECT_TRUE(value.Get("entry", &entry)); 423 {
425 EXPECT_TRUE(Value::Equals(entry, expected_entry.get())); 424 scoped_ptr<DictionaryValue> expected_entry(node.GetEntry()->ToValue());
425 Value* entry = NULL;
426 EXPECT_TRUE(value.Get("entry", &entry));
427 EXPECT_TRUE(Value::Equals(entry, expected_entry.get()));
428 }
429 EXPECT_EQ(11u, value.size());
430 } else {
431 EXPECT_EQ(4u, value.size());
426 } 432 }
427 EXPECT_EQ(11u, value.size());
428 } 433 }
429 434
430 } // namespace 435 } // namespace
431 436
432 TEST_F(SyncApiTest, BaseNodeToValue) { 437 TEST_F(SyncApiTest, BaseNodeGetSummaryAsValue) {
433 ReadTransaction trans(test_user_share_.user_share()); 438 ReadTransaction trans(test_user_share_.user_share());
434 ReadNode node(&trans); 439 ReadNode node(&trans);
435 node.InitByRootLookup(); 440 node.InitByRootLookup();
436 scoped_ptr<DictionaryValue> value(node.ToValue()); 441 scoped_ptr<DictionaryValue> details(node.GetSummaryAsValue());
437 if (value.get()) { 442 if (details.get()) {
438 CheckNodeValue(node, *value); 443 CheckNodeValue(node, *details, false);
439 } else { 444 } else {
440 ADD_FAILURE(); 445 ADD_FAILURE();
441 } 446 }
447 }
448
449 TEST_F(SyncApiTest, BaseNodeGetDetailsAsValue) {
450 ReadTransaction trans(test_user_share_.user_share());
451 ReadNode node(&trans);
452 node.InitByRootLookup();
453 scoped_ptr<DictionaryValue> details(node.GetDetailsAsValue());
454 if (details.get()) {
455 CheckNodeValue(node, *details, true);
456 } else {
457 ADD_FAILURE();
458 }
442 } 459 }
443 460
444 namespace { 461 namespace {
445 462
446 void ExpectChangeRecordActionValue(SyncManager::ChangeRecord::Action 463 void ExpectChangeRecordActionValue(SyncManager::ChangeRecord::Action
447 expected_value, 464 expected_value,
448 const DictionaryValue& value, 465 const DictionaryValue& value,
449 const std::string& key) { 466 const std::string& key) {
450 std::string str_value; 467 std::string str_value;
451 EXPECT_TRUE(value.GetString(key, &str_value)); 468 EXPECT_TRUE(value.GetString(key, &str_value));
(...skipping 14 matching lines...) Expand all
466 } 483 }
467 484
468 void CheckNonDeleteChangeRecordValue(const SyncManager::ChangeRecord& record, 485 void CheckNonDeleteChangeRecordValue(const SyncManager::ChangeRecord& record,
469 const DictionaryValue& value, 486 const DictionaryValue& value,
470 BaseTransaction* trans) { 487 BaseTransaction* trans) {
471 EXPECT_NE(SyncManager::ChangeRecord::ACTION_DELETE, record.action); 488 EXPECT_NE(SyncManager::ChangeRecord::ACTION_DELETE, record.action);
472 ExpectChangeRecordActionValue(record.action, value, "action"); 489 ExpectChangeRecordActionValue(record.action, value, "action");
473 { 490 {
474 ReadNode node(trans); 491 ReadNode node(trans);
475 EXPECT_TRUE(node.InitByIdLookup(record.id)); 492 EXPECT_TRUE(node.InitByIdLookup(record.id));
476 scoped_ptr<DictionaryValue> expected_node_value(node.ToValue()); 493 scoped_ptr<DictionaryValue> expected_details(node.GetDetailsAsValue());
477 ExpectDictDictionaryValue(*expected_node_value, value, "node"); 494 ExpectDictDictionaryValue(*expected_details, value, "node");
478 } 495 }
479 } 496 }
480 497
481 void CheckDeleteChangeRecordValue(const SyncManager::ChangeRecord& record, 498 void CheckDeleteChangeRecordValue(const SyncManager::ChangeRecord& record,
482 const DictionaryValue& value) { 499 const DictionaryValue& value) {
483 EXPECT_EQ(SyncManager::ChangeRecord::ACTION_DELETE, record.action); 500 EXPECT_EQ(SyncManager::ChangeRecord::ACTION_DELETE, record.action);
484 ExpectChangeRecordActionValue(record.action, value, "action"); 501 ExpectChangeRecordActionValue(record.action, value, "action");
485 DictionaryValue* node_value = NULL; 502 DictionaryValue* node_value = NULL;
486 EXPECT_TRUE(value.GetDictionary("node", &node_value)); 503 EXPECT_TRUE(value.GetDictionary("node", &node_value));
487 if (node_value) { 504 if (node_value) {
(...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after
830 // dropped. 847 // dropped.
831 { 848 {
832 StrictMock<MockJsEventHandler> event_handler; 849 StrictMock<MockJsEventHandler> event_handler;
833 js_backend->ProcessMessage("unknownMessage", 850 js_backend->ProcessMessage("unknownMessage",
834 kNoArgs, &event_handler); 851 kNoArgs, &event_handler);
835 js_backend->ProcessMessage("getNotificationState", 852 js_backend->ProcessMessage("getNotificationState",
836 kNoArgs, &event_handler); 853 kNoArgs, &event_handler);
837 } 854 }
838 } 855 }
839 856
840 TEST_F(SyncManagerTest, ProcessMessageGetRootNode) { 857 TEST_F(SyncManagerTest, ProcessMessageGetRootNodeDetails) {
841 const JsArgList kNoArgs; 858 const JsArgList kNoArgs;
842 859
843 browser_sync::JsBackend* js_backend = sync_manager_.GetJsBackend(); 860 browser_sync::JsBackend* js_backend = sync_manager_.GetJsBackend();
844 861
845 StrictMock<MockJsEventHandler> event_handler; 862 StrictMock<MockJsEventHandler> event_handler;
846 StrictMock<MockJsEventRouter> event_router; 863 StrictMock<MockJsEventRouter> event_router;
847 864
848 JsArgList return_args; 865 JsArgList return_args;
849 866
850 EXPECT_CALL(event_router, 867 EXPECT_CALL(event_router,
851 RouteJsMessageReply("getRootNode", _, &event_handler)) 868 RouteJsMessageReply("getRootNodeDetails", _, &event_handler))
852 .WillOnce(SaveArg<1>(&return_args)); 869 .WillOnce(SaveArg<1>(&return_args));
853 870
854 js_backend->SetParentJsEventRouter(&event_router); 871 js_backend->SetParentJsEventRouter(&event_router);
855 872
856 // Should trigger the reply. 873 // Should trigger the reply.
857 js_backend->ProcessMessage("getRootNode", kNoArgs, &event_handler); 874 js_backend->ProcessMessage("getRootNodeDetails", kNoArgs, &event_handler);
858 875
859 EXPECT_EQ(1u, return_args.Get().GetSize()); 876 EXPECT_EQ(1u, return_args.Get().GetSize());
860 DictionaryValue* node_info = NULL; 877 DictionaryValue* node_info = NULL;
861 EXPECT_TRUE(return_args.Get().GetDictionary(0, &node_info)); 878 EXPECT_TRUE(return_args.Get().GetDictionary(0, &node_info));
862 if (node_info) { 879 if (node_info) {
863 ReadTransaction trans(sync_manager_.GetUserShare()); 880 ReadTransaction trans(sync_manager_.GetUserShare());
864 ReadNode node(&trans); 881 ReadNode node(&trans);
865 node.InitByRootLookup(); 882 node.InitByRootLookup();
866 CheckNodeValue(node, *node_info); 883 CheckNodeValue(node, *node_info, true);
867 } else { 884 } else {
868 ADD_FAILURE(); 885 ADD_FAILURE();
869 } 886 }
870 887
871 js_backend->RemoveParentJsEventRouter(); 888 js_backend->RemoveParentJsEventRouter();
872 } 889 }
873 890
874 void CheckGetNodesByIdReturnArgs(const SyncManager& sync_manager, 891 void CheckGetNodesByIdReturnArgs(const SyncManager& sync_manager,
875 const JsArgList& return_args, 892 const JsArgList& return_args,
876 int64 id) { 893 int64 id,
894 bool is_detailed) {
877 EXPECT_EQ(1u, return_args.Get().GetSize()); 895 EXPECT_EQ(1u, return_args.Get().GetSize());
878 ListValue* nodes = NULL; 896 ListValue* nodes = NULL;
879 ASSERT_TRUE(return_args.Get().GetList(0, &nodes)); 897 ASSERT_TRUE(return_args.Get().GetList(0, &nodes));
880 ASSERT_TRUE(nodes); 898 ASSERT_TRUE(nodes);
881 EXPECT_EQ(1u, nodes->GetSize()); 899 EXPECT_EQ(1u, nodes->GetSize());
882 DictionaryValue* node_info = NULL; 900 DictionaryValue* node_info = NULL;
883 EXPECT_TRUE(nodes->GetDictionary(0, &node_info)); 901 EXPECT_TRUE(nodes->GetDictionary(0, &node_info));
884 ASSERT_TRUE(node_info); 902 ASSERT_TRUE(node_info);
885 ReadTransaction trans(sync_manager.GetUserShare()); 903 ReadTransaction trans(sync_manager.GetUserShare());
886 ReadNode node(&trans); 904 ReadNode node(&trans);
887 node.InitByIdLookup(id); 905 node.InitByIdLookup(id);
888 CheckNodeValue(node, *node_info); 906 CheckNodeValue(node, *node_info, is_detailed);
889 } 907 }
890 908
891 TEST_F(SyncManagerTest, ProcessMessageGetNodesById) { 909 class SyncManagerGetNodesByIdTest : public SyncManagerTest {
892 int64 child_id = 910 protected:
893 MakeNode(sync_manager_.GetUserShare(), syncable::BOOKMARKS, "testtag"); 911 virtual ~SyncManagerGetNodesByIdTest() {}
894 912
913 void RunGetNodesByIdTest(const char* message_name, bool is_detailed) {
914 int64 child_id =
915 MakeNode(sync_manager_.GetUserShare(),
916 syncable::BOOKMARKS, "testtag");
917
918 browser_sync::JsBackend* js_backend = sync_manager_.GetJsBackend();
919
920 StrictMock<MockJsEventHandler> event_handler;
921 StrictMock<MockJsEventRouter> event_router;
922
923 JsArgList return_args;
924
925 EXPECT_CALL(event_router,
926 RouteJsMessageReply(message_name, _, &event_handler))
927 .Times(2).WillRepeatedly(SaveArg<1>(&return_args));
928
929 js_backend->SetParentJsEventRouter(&event_router);
930
931 // Should trigger the reply.
932 {
933 ListValue args;
934 ListValue* ids = new ListValue();
935 args.Append(ids);
936 ids->Append(Value::CreateStringValue("1"));
lipalani1 2011/06/02 18:51:52 shouldnt this be child_id?
akalin 2011/06/02 22:13:33 It should be the id of the root, actually. Refact
937 js_backend->ProcessMessage(message_name,
938 JsArgList(&args), &event_handler);
939 }
940
941 CheckGetNodesByIdReturnArgs(sync_manager_, return_args, 1, is_detailed);
942
943 // Should trigger another reply.
944 {
945 ListValue args;
946 ListValue* ids = new ListValue();
947 args.Append(ids);
948 ids->Append(Value::CreateStringValue(base::Int64ToString(child_id)));
949 js_backend->ProcessMessage(message_name,
950 JsArgList(&args), &event_handler);
951 }
952
953 CheckGetNodesByIdReturnArgs(sync_manager_, return_args, child_id,
954 is_detailed);
955
956 js_backend->RemoveParentJsEventRouter();
957 }
958
959 void RunGetNodesByIdFailureTest(const char* message_name) {
960 browser_sync::JsBackend* js_backend = sync_manager_.GetJsBackend();
961
962 StrictMock<MockJsEventHandler> event_handler;
963 StrictMock<MockJsEventRouter> event_router;
964
965 ListValue empty_list_args;
966 empty_list_args.Append(new ListValue());
967
968 EXPECT_CALL(event_router,
969 RouteJsMessageReply(message_name,
970 HasArgsAsList(empty_list_args),
971 &event_handler))
972 .Times(6);
973
974 js_backend->SetParentJsEventRouter(&event_router);
975
976 {
977 ListValue args;
978 js_backend->ProcessMessage(message_name,
979 JsArgList(&args), &event_handler);
980 }
981
982 {
983 ListValue args;
984 args.Append(new ListValue());
985 js_backend->ProcessMessage(message_name,
986 JsArgList(&args), &event_handler);
987 }
988
989 {
990 ListValue args;
991 ListValue* ids = new ListValue();
992 args.Append(ids);
993 ids->Append(Value::CreateStringValue(""));
994 js_backend->ProcessMessage(message_name,
995 JsArgList(&args), &event_handler);
996 }
997
998 {
999 ListValue args;
1000 ListValue* ids = new ListValue();
1001 args.Append(ids);
1002 ids->Append(Value::CreateStringValue("nonsense"));
1003 js_backend->ProcessMessage(message_name,
1004 JsArgList(&args), &event_handler);
1005 }
1006
1007 {
1008 ListValue args;
1009 ListValue* ids = new ListValue();
1010 args.Append(ids);
1011 ids->Append(Value::CreateStringValue("0"));
1012 js_backend->ProcessMessage(message_name,
1013 JsArgList(&args), &event_handler);
1014 }
1015
1016 {
1017 ListValue args;
1018 ListValue* ids = new ListValue();
1019 args.Append(ids);
1020 ids->Append(Value::CreateStringValue("9999"));
1021 js_backend->ProcessMessage(message_name,
1022 JsArgList(&args), &event_handler);
1023 }
1024
1025 js_backend->RemoveParentJsEventRouter();
1026 }
1027 };
1028
1029 TEST_F(SyncManagerGetNodesByIdTest, GetNodeSummariesById) {
1030 RunGetNodesByIdTest("getNodeSummariesById", false);
1031 }
1032
1033 TEST_F(SyncManagerGetNodesByIdTest, GetNodeDetailsById) {
1034 RunGetNodesByIdTest("getNodeDetailsById", true);
1035 }
1036
1037 TEST_F(SyncManagerGetNodesByIdTest, GetNodeSummariesByIdFailure) {
1038 RunGetNodesByIdFailureTest("getNodeSummariesById");
1039 }
1040
1041 TEST_F(SyncManagerGetNodesByIdTest, GetNodeDetailsByIdFailure) {
1042 RunGetNodesByIdFailureTest("getNodeDetailsById");
1043 }
1044
1045 TEST_F(SyncManagerTest, GetChildNodeIds) {
895 browser_sync::JsBackend* js_backend = sync_manager_.GetJsBackend(); 1046 browser_sync::JsBackend* js_backend = sync_manager_.GetJsBackend();
896 1047
897 StrictMock<MockJsEventHandler> event_handler; 1048 StrictMock<MockJsEventHandler> event_handler;
898 StrictMock<MockJsEventRouter> event_router;
899
900 JsArgList return_args;
901
902 EXPECT_CALL(event_router,
903 RouteJsMessageReply("getNodesById", _, &event_handler))
904 .Times(2).WillRepeatedly(SaveArg<1>(&return_args));
905
906 js_backend->SetParentJsEventRouter(&event_router);
907
908 // Should trigger the reply.
909 {
910 ListValue args;
911 ListValue* ids = new ListValue();
912 args.Append(ids);
913 ids->Append(Value::CreateStringValue("1"));
914 js_backend->ProcessMessage("getNodesById",
915 JsArgList(&args), &event_handler);
916 }
917
918 CheckGetNodesByIdReturnArgs(sync_manager_, return_args, 1);
919
920 // Should trigger another reply.
921 {
922 ListValue args;
923 ListValue* ids = new ListValue();
924 args.Append(ids);
925 ids->Append(Value::CreateStringValue(base::Int64ToString(child_id)));
926 js_backend->ProcessMessage("getNodesById",
927 JsArgList(&args), &event_handler);
928 }
929
930 CheckGetNodesByIdReturnArgs(sync_manager_, return_args, child_id);
931
932 js_backend->RemoveParentJsEventRouter();
933 }
934
935 TEST_F(SyncManagerTest, ProcessMessageGetNodesByIdFailure) {
936 browser_sync::JsBackend* js_backend = sync_manager_.GetJsBackend();
937
938 StrictMock<MockJsEventHandler> event_handler;
939 StrictMock<MockJsEventRouter> event_router;
940
941 ListValue empty_list_args;
942 empty_list_args.Append(new ListValue());
943
944 EXPECT_CALL(event_router,
945 RouteJsMessageReply("getNodesById",
946 HasArgsAsList(empty_list_args),
947 &event_handler))
948 .Times(6);
949
950 js_backend->SetParentJsEventRouter(&event_router);
951
952 {
953 ListValue args;
954 js_backend->ProcessMessage("getNodesById",
955 JsArgList(&args), &event_handler);
956 }
957
958 {
959 ListValue args;
960 args.Append(new ListValue());
961 js_backend->ProcessMessage("getNodesById",
962 JsArgList(&args), &event_handler);
963 }
964
965 {
966 ListValue args;
967 ListValue* ids = new ListValue();
968 args.Append(ids);
969 ids->Append(Value::CreateStringValue(""));
970 js_backend->ProcessMessage("getNodesById",
971 JsArgList(&args), &event_handler);
972 }
973
974 {
975 ListValue args;
976 ListValue* ids = new ListValue();
977 args.Append(ids);
978 ids->Append(Value::CreateStringValue("nonsense"));
979 js_backend->ProcessMessage("getNodesById",
980 JsArgList(&args), &event_handler);
981 }
982
983 {
984 ListValue args;
985 ListValue* ids = new ListValue();
986 args.Append(ids);
987 ids->Append(Value::CreateStringValue("0"));
988 js_backend->ProcessMessage("getNodesById",
989 JsArgList(&args), &event_handler);
990 }
991
992 {
993 ListValue args;
994 ListValue* ids = new ListValue();
995 args.Append(ids);
996 ids->Append(Value::CreateStringValue("9999"));
997 js_backend->ProcessMessage("getNodesById",
998 JsArgList(&args), &event_handler);
999 }
1000
1001 js_backend->RemoveParentJsEventRouter();
1002 }
1003
1004 TEST_F(SyncManagerTest, ProcessMessageGetChildNodeIds) {
1005 browser_sync::JsBackend* js_backend = sync_manager_.GetJsBackend();
1006
1007 StrictMock<MockJsEventHandler> event_handler;
1008 StrictMock<MockJsEventRouter> event_router; 1049 StrictMock<MockJsEventRouter> event_router;
1009 1050
1010 JsArgList return_args; 1051 JsArgList return_args;
1011 1052
1012 EXPECT_CALL(event_router, 1053 EXPECT_CALL(event_router,
1013 RouteJsMessageReply("getChildNodeIds", _, &event_handler)) 1054 RouteJsMessageReply("getChildNodeIds", _, &event_handler))
1014 .Times(1).WillRepeatedly(SaveArg<1>(&return_args)); 1055 .Times(1).WillRepeatedly(SaveArg<1>(&return_args));
1015 1056
1016 js_backend->SetParentJsEventRouter(&event_router); 1057 js_backend->SetParentJsEventRouter(&event_router);
1017 1058
1018 // Should trigger the reply. 1059 // Should trigger the reply.
1019 { 1060 {
1020 ListValue args; 1061 ListValue args;
1021 args.Append(Value::CreateStringValue("1")); 1062 args.Append(Value::CreateStringValue("1"));
1022 js_backend->ProcessMessage("getChildNodeIds", 1063 js_backend->ProcessMessage("getChildNodeIds",
1023 JsArgList(&args), &event_handler); 1064 JsArgList(&args), &event_handler);
1024 } 1065 }
1025 1066
1026 EXPECT_EQ(1u, return_args.Get().GetSize()); 1067 EXPECT_EQ(1u, return_args.Get().GetSize());
1027 ListValue* nodes = NULL; 1068 ListValue* nodes = NULL;
1028 ASSERT_TRUE(return_args.Get().GetList(0, &nodes)); 1069 ASSERT_TRUE(return_args.Get().GetList(0, &nodes));
1029 ASSERT_TRUE(nodes); 1070 ASSERT_TRUE(nodes);
1030 EXPECT_EQ(5u, nodes->GetSize()); 1071 EXPECT_EQ(5u, nodes->GetSize());
1031 1072
1032 js_backend->RemoveParentJsEventRouter(); 1073 js_backend->RemoveParentJsEventRouter();
1033 } 1074 }
1034 1075
1035 TEST_F(SyncManagerTest, ProcessMessageGetChildNodeIdsFailure) { 1076 TEST_F(SyncManagerTest, GetChildNodeIdsFailure) {
1036 browser_sync::JsBackend* js_backend = sync_manager_.GetJsBackend(); 1077 browser_sync::JsBackend* js_backend = sync_manager_.GetJsBackend();
1037 1078
1038 StrictMock<MockJsEventHandler> event_handler; 1079 StrictMock<MockJsEventHandler> event_handler;
1039 StrictMock<MockJsEventRouter> event_router; 1080 StrictMock<MockJsEventRouter> event_router;
1040 1081
1041 ListValue empty_list_args; 1082 ListValue empty_list_args;
1042 empty_list_args.Append(new ListValue()); 1083 empty_list_args.Append(new ListValue());
1043 1084
1044 EXPECT_CALL(event_router, 1085 EXPECT_CALL(event_router,
1045 RouteJsMessageReply("getChildNodeIds", 1086 RouteJsMessageReply("getChildNodeIds",
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1079 { 1120 {
1080 ListValue args; 1121 ListValue args;
1081 args.Append(Value::CreateStringValue("9999")); 1122 args.Append(Value::CreateStringValue("9999"));
1082 js_backend->ProcessMessage("getChildNodeIds", 1123 js_backend->ProcessMessage("getChildNodeIds",
1083 JsArgList(&args), &event_handler); 1124 JsArgList(&args), &event_handler);
1084 } 1125 }
1085 1126
1086 js_backend->RemoveParentJsEventRouter(); 1127 js_backend->RemoveParentJsEventRouter();
1087 } 1128 }
1088 1129
1130 // TODO(akalin): Add unit tests for findNodesContainingString message.
1131
1089 TEST_F(SyncManagerTest, OnNotificationStateChange) { 1132 TEST_F(SyncManagerTest, OnNotificationStateChange) {
1090 InSequence dummy; 1133 InSequence dummy;
1091 StrictMock<MockJsEventRouter> event_router; 1134 StrictMock<MockJsEventRouter> event_router;
1092 1135
1093 DictionaryValue true_details; 1136 DictionaryValue true_details;
1094 true_details.SetBoolean("enabled", true); 1137 true_details.SetBoolean("enabled", true);
1095 DictionaryValue false_details; 1138 DictionaryValue false_details;
1096 false_details.SetBoolean("enabled", false); 1139 false_details.SetBoolean("enabled", false);
1097 1140
1098 EXPECT_CALL(event_router, 1141 EXPECT_CALL(event_router,
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
1235 true /* is encrypted */)); 1278 true /* is encrypted */));
1236 EXPECT_TRUE(syncable::VerifyDataTypeEncryption(trans.GetWrappedTrans(), 1279 EXPECT_TRUE(syncable::VerifyDataTypeEncryption(trans.GetWrappedTrans(),
1237 syncable::THEMES, 1280 syncable::THEMES,
1238 false /* not encrypted */)); 1281 false /* not encrypted */));
1239 } 1282 }
1240 } 1283 }
1241 1284
1242 } // namespace 1285 } // namespace
1243 1286
1244 } // namespace browser_sync 1287 } // namespace browser_sync
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698