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

Side by Side Diff: chrome/browser/sync/profile_sync_service_session_unittest.cc

Issue 9978017: [Sync] - Upload the callstacks for errors so that the line number of error is in callstack. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 8 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <map> 5 #include <map>
6 #include <string> 6 #include <string>
7 7
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/bind_helpers.h" 9 #include "base/bind_helpers.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 1001 matching lines...) Expand 10 before | Expand all | Expand 10 after
1012 TEST_F(ProfileSyncServiceSessionTest, DISABLED_MissingHeaderAndTab) { 1012 TEST_F(ProfileSyncServiceSessionTest, DISABLED_MissingHeaderAndTab) {
1013 AddTab(browser(), GURL("http://foo1")); 1013 AddTab(browser(), GURL("http://foo1"));
1014 NavigateAndCommitActiveTab(GURL("http://foo2")); 1014 NavigateAndCommitActiveTab(GURL("http://foo2"));
1015 AddTab(browser(), GURL("http://bar1")); 1015 AddTab(browser(), GURL("http://bar1"));
1016 NavigateAndCommitActiveTab(GURL("http://bar2")); 1016 NavigateAndCommitActiveTab(GURL("http://bar2"));
1017 CreateRootHelper create_root(this); 1017 CreateRootHelper create_root(this);
1018 ASSERT_TRUE(StartSyncService(create_root.callback(), false)); 1018 ASSERT_TRUE(StartSyncService(create_root.callback(), false));
1019 SyncError error; 1019 SyncError error;
1020 std::string local_tag = model_associator_->GetCurrentMachineTag(); 1020 std::string local_tag = model_associator_->GetCurrentMachineTag();
1021 1021
1022 ASSERT_TRUE(model_associator_->DisassociateModels(&error)); 1022 error = model_associator_->DisassociateModels();
1023 ASSERT_FALSE(error.IsSet());
1023 { 1024 {
1024 // Create a sync node with the local tag but neither header nor tab field. 1025 // Create a sync node with the local tag but neither header nor tab field.
1025 sync_api::WriteTransaction trans(FROM_HERE, sync_service_->GetUserShare()); 1026 sync_api::WriteTransaction trans(FROM_HERE, sync_service_->GetUserShare());
1026 sync_api::ReadNode root(&trans); 1027 sync_api::ReadNode root(&trans);
1027 root.InitByTagLookup(syncable::ModelTypeToRootTag(syncable::SESSIONS)); 1028 root.InitByTagLookup(syncable::ModelTypeToRootTag(syncable::SESSIONS));
1028 sync_api::WriteNode extra_header(&trans); 1029 sync_api::WriteNode extra_header(&trans);
1029 ASSERT_TRUE(extra_header.InitUniqueByCreation(syncable::SESSIONS, 1030 ASSERT_TRUE(extra_header.InitUniqueByCreation(syncable::SESSIONS,
1030 root, "new_tag")); 1031 root, "new_tag"));
1031 sync_pb::SessionSpecifics specifics; 1032 sync_pb::SessionSpecifics specifics;
1032 specifics.set_session_tag(local_tag); 1033 specifics.set_session_tag(local_tag);
1033 extra_header.SetSessionSpecifics(specifics); 1034 extra_header.SetSessionSpecifics(specifics);
1034 } 1035 }
1035 ASSERT_TRUE(model_associator_->AssociateModels(&error)); 1036
1037 error = model_associator_->AssociateModels();
1036 ASSERT_FALSE(error.IsSet()); 1038 ASSERT_FALSE(error.IsSet());
1037 } 1039 }
1038 1040
1039 // TODO(jhorwich): Re-enable when crbug.com/121487 addressed 1041 // TODO(jhorwich): Re-enable when crbug.com/121487 addressed
1040 TEST_F(ProfileSyncServiceSessionTest, DISABLED_MultipleHeaders) { 1042 TEST_F(ProfileSyncServiceSessionTest, DISABLED_MultipleHeaders) {
1041 AddTab(browser(), GURL("http://foo1")); 1043 AddTab(browser(), GURL("http://foo1"));
1042 NavigateAndCommitActiveTab(GURL("http://foo2")); 1044 NavigateAndCommitActiveTab(GURL("http://foo2"));
1043 AddTab(browser(), GURL("http://bar1")); 1045 AddTab(browser(), GURL("http://bar1"));
1044 NavigateAndCommitActiveTab(GURL("http://bar2")); 1046 NavigateAndCommitActiveTab(GURL("http://bar2"));
1045 CreateRootHelper create_root(this); 1047 CreateRootHelper create_root(this);
1046 ASSERT_TRUE(StartSyncService(create_root.callback(), false)); 1048 ASSERT_TRUE(StartSyncService(create_root.callback(), false));
1047 SyncError error; 1049 SyncError error;
1048 std::string local_tag = model_associator_->GetCurrentMachineTag(); 1050 std::string local_tag = model_associator_->GetCurrentMachineTag();
1049 1051
1050 ASSERT_TRUE(model_associator_->DisassociateModels(&error)); 1052 error = model_associator_->DisassociateModels();
1053 ASSERT_FALSE(error.IsSet());
1051 { 1054 {
1052 // Create another sync node with a header field and the local tag. 1055 // Create another sync node with a header field and the local tag.
1053 sync_api::WriteTransaction trans(FROM_HERE, sync_service_->GetUserShare()); 1056 sync_api::WriteTransaction trans(FROM_HERE, sync_service_->GetUserShare());
1054 sync_api::ReadNode root(&trans); 1057 sync_api::ReadNode root(&trans);
1055 root.InitByTagLookup(syncable::ModelTypeToRootTag(syncable::SESSIONS)); 1058 root.InitByTagLookup(syncable::ModelTypeToRootTag(syncable::SESSIONS));
1056 sync_api::WriteNode extra_header(&trans); 1059 sync_api::WriteNode extra_header(&trans);
1057 ASSERT_TRUE(extra_header.InitUniqueByCreation(syncable::SESSIONS, 1060 ASSERT_TRUE(extra_header.InitUniqueByCreation(syncable::SESSIONS,
1058 root, local_tag + "_")); 1061 root, local_tag + "_"));
1059 sync_pb::SessionSpecifics specifics; 1062 sync_pb::SessionSpecifics specifics;
1060 specifics.set_session_tag(local_tag); 1063 specifics.set_session_tag(local_tag);
1061 specifics.mutable_header(); 1064 specifics.mutable_header();
1062 extra_header.SetSessionSpecifics(specifics); 1065 extra_header.SetSessionSpecifics(specifics);
1063 } 1066 }
1064 ASSERT_TRUE(model_associator_->AssociateModels(&error)); 1067 error = model_associator_->AssociateModels();
1065 ASSERT_FALSE(error.IsSet()); 1068 ASSERT_FALSE(error.IsSet());
1066 } 1069 }
1067 1070
1068 // TODO(jhorwich): Re-enable when crbug.com/121487 addressed 1071 // TODO(jhorwich): Re-enable when crbug.com/121487 addressed
1069 TEST_F(ProfileSyncServiceSessionTest, DISABLED_CorruptedForeign) { 1072 TEST_F(ProfileSyncServiceSessionTest, DISABLED_CorruptedForeign) {
1070 AddTab(browser(), GURL("http://foo1")); 1073 AddTab(browser(), GURL("http://foo1"));
1071 NavigateAndCommitActiveTab(GURL("http://foo2")); 1074 NavigateAndCommitActiveTab(GURL("http://foo2"));
1072 AddTab(browser(), GURL("http://bar1")); 1075 AddTab(browser(), GURL("http://bar1"));
1073 NavigateAndCommitActiveTab(GURL("http://bar2")); 1076 NavigateAndCommitActiveTab(GURL("http://bar2"));
1074 CreateRootHelper create_root(this); 1077 CreateRootHelper create_root(this);
1075 ASSERT_TRUE(StartSyncService(create_root.callback(), false)); 1078 ASSERT_TRUE(StartSyncService(create_root.callback(), false));
1076 SyncError error; 1079 SyncError error;
1077 1080
1078 ASSERT_TRUE(model_associator_->DisassociateModels(&error)); 1081 error = model_associator_->DisassociateModels();
1082 ASSERT_FALSE(error.IsSet());
1079 { 1083 {
1080 // Create another sync node with neither header nor tab field and a foreign 1084 // Create another sync node with neither header nor tab field and a foreign
1081 // tag. 1085 // tag.
1082 std::string foreign_tag = "foreign_tag"; 1086 std::string foreign_tag = "foreign_tag";
1083 sync_api::WriteTransaction trans(FROM_HERE, sync_service_->GetUserShare()); 1087 sync_api::WriteTransaction trans(FROM_HERE, sync_service_->GetUserShare());
1084 sync_api::ReadNode root(&trans); 1088 sync_api::ReadNode root(&trans);
1085 root.InitByTagLookup(syncable::ModelTypeToRootTag(syncable::SESSIONS)); 1089 root.InitByTagLookup(syncable::ModelTypeToRootTag(syncable::SESSIONS));
1086 sync_api::WriteNode extra_header(&trans); 1090 sync_api::WriteNode extra_header(&trans);
1087 ASSERT_TRUE(extra_header.InitUniqueByCreation(syncable::SESSIONS, 1091 ASSERT_TRUE(extra_header.InitUniqueByCreation(syncable::SESSIONS,
1088 root, foreign_tag)); 1092 root, foreign_tag));
1089 sync_pb::SessionSpecifics specifics; 1093 sync_pb::SessionSpecifics specifics;
1090 specifics.set_session_tag(foreign_tag); 1094 specifics.set_session_tag(foreign_tag);
1091 extra_header.SetSessionSpecifics(specifics); 1095 extra_header.SetSessionSpecifics(specifics);
1092 } 1096 }
1093 ASSERT_TRUE(model_associator_->AssociateModels(&error)); 1097 error = model_associator_->AssociateModels();
1094 ASSERT_FALSE(error.IsSet()); 1098 ASSERT_FALSE(error.IsSet());
1095 } 1099 }
1096 1100
1097 // TODO(jhorwich): Re-enable when crbug.com/121487 addressed 1101 // TODO(jhorwich): Re-enable when crbug.com/121487 addressed
1098 TEST_F(ProfileSyncServiceSessionTest, DISABLED_MissingLocalTabNode) { 1102 TEST_F(ProfileSyncServiceSessionTest, DISABLED_MissingLocalTabNode) {
1099 AddTab(browser(), GURL("http://foo1")); 1103 AddTab(browser(), GURL("http://foo1"));
1100 NavigateAndCommitActiveTab(GURL("http://foo2")); 1104 NavigateAndCommitActiveTab(GURL("http://foo2"));
1101 AddTab(browser(), GURL("http://bar1")); 1105 AddTab(browser(), GURL("http://bar1"));
1102 NavigateAndCommitActiveTab(GURL("http://bar2")); 1106 NavigateAndCommitActiveTab(GURL("http://bar2"));
1103 CreateRootHelper create_root(this); 1107 CreateRootHelper create_root(this);
1104 ASSERT_TRUE(StartSyncService(create_root.callback(), false)); 1108 ASSERT_TRUE(StartSyncService(create_root.callback(), false));
1105 std::string local_tag = model_associator_->GetCurrentMachineTag(); 1109 std::string local_tag = model_associator_->GetCurrentMachineTag();
1106 SyncError error; 1110 SyncError error;
1107 1111
1108 ASSERT_TRUE(model_associator_->DisassociateModels(&error)); 1112 error = model_associator_->DisassociateModels();
1113 ASSERT_FALSE(error.IsSet());
1109 { 1114 {
1110 // Delete the first sync tab node. 1115 // Delete the first sync tab node.
1111 std::string tab_tag = SessionModelAssociator::TabIdToTag(local_tag, 0); 1116 std::string tab_tag = SessionModelAssociator::TabIdToTag(local_tag, 0);
1112 1117
1113 sync_api::WriteTransaction trans(FROM_HERE, sync_service_->GetUserShare()); 1118 sync_api::WriteTransaction trans(FROM_HERE, sync_service_->GetUserShare());
1114 sync_api::ReadNode root(&trans); 1119 sync_api::ReadNode root(&trans);
1115 root.InitByTagLookup(syncable::ModelTypeToRootTag(syncable::SESSIONS)); 1120 root.InitByTagLookup(syncable::ModelTypeToRootTag(syncable::SESSIONS));
1116 sync_api::WriteNode tab_node(&trans); 1121 sync_api::WriteNode tab_node(&trans);
1117 ASSERT_TRUE(tab_node.InitByClientTagLookup(syncable::SESSIONS, tab_tag)); 1122 ASSERT_TRUE(tab_node.InitByClientTagLookup(syncable::SESSIONS, tab_tag));
1118 tab_node.Remove(); 1123 tab_node.Remove();
1119 } 1124 }
1120 ASSERT_TRUE(model_associator_->AssociateModels(&error)); 1125 error = model_associator_->AssociateModels();
1121 ASSERT_FALSE(error.IsSet()); 1126 ASSERT_FALSE(error.IsSet());
1122 1127
1123 // Add some more tabs to ensure we don't conflict with the pre-existing tab 1128 // Add some more tabs to ensure we don't conflict with the pre-existing tab
1124 // node. 1129 // node.
1125 AddTab(browser(), GURL("http://baz1")); 1130 AddTab(browser(), GURL("http://baz1"));
1126 AddTab(browser(), GURL("http://baz2")); 1131 AddTab(browser(), GURL("http://baz2"));
1127 } 1132 }
1128 1133
1129 } // namespace browser_sync 1134 } // namespace browser_sync
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698