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

Side by Side Diff: chrome/browser/extensions/extension_sync_data_unittest.cc

Issue 9460047: sync: remove use of protobuf extensions in protocol to reduce static init overhead. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fred's review Created 8 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) 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 #include "chrome/browser/extensions/extension_sync_data.h" 5 #include "chrome/browser/extensions/extension_sync_data.h"
6 6
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "base/version.h" 8 #include "base/version.h"
9 #include "chrome/browser/sync/protocol/app_specifics.pb.h" 9 #include "chrome/browser/sync/protocol/app_specifics.pb.h"
10 #include "chrome/browser/sync/protocol/extension_specifics.pb.h" 10 #include "chrome/browser/sync/protocol/extension_specifics.pb.h"
11 #include "chrome/browser/sync/protocol/sync.pb.h"
11 #include "googleurl/src/gurl.h" 12 #include "googleurl/src/gurl.h"
12 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
13 14
14 namespace { 15 namespace {
15 16
16 #if defined(OS_WIN) 17 #if defined(OS_WIN)
17 const FilePath::CharType kExtensionFilePath[] = FILE_PATH_LITERAL("c:\\foo"); 18 const FilePath::CharType kExtensionFilePath[] = FILE_PATH_LITERAL("c:\\foo");
18 #elif defined(OS_POSIX) 19 #elif defined(OS_POSIX)
19 const FilePath::CharType kExtensionFilePath[] = FILE_PATH_LITERAL("/foo"); 20 const FilePath::CharType kExtensionFilePath[] = FILE_PATH_LITERAL("/foo");
20 #endif 21 #endif
21 22
22 const char kValidId[] = "abcdefghijklmnopabcdefghijklmnop"; 23 const char kValidId[] = "abcdefghijklmnopabcdefghijklmnop";
23 const char kValidVersion[] = "0.0.0.0"; 24 const char kValidVersion[] = "0.0.0.0";
24 const char kVersion1[] = "1.0.0.1"; 25 const char kVersion1[] = "1.0.0.1";
25 const char kVersion2[] = "1.0.1.0"; 26 const char kVersion2[] = "1.0.1.0";
26 const char kVersion3[] = "1.1.0.0"; 27 const char kVersion3[] = "1.1.0.0";
27 const char kValidUpdateUrl1[] = 28 const char kValidUpdateUrl1[] =
28 "http://clients2.google.com/service/update2/crx"; 29 "http://clients2.google.com/service/update2/crx";
29 const char kValidUpdateUrl2[] = 30 const char kValidUpdateUrl2[] =
30 "https://clients2.google.com/service/update2/crx"; 31 "https://clients2.google.com/service/update2/crx";
31 const char kName[] = "MyExtension"; 32 const char kName[] = "MyExtension";
32 const char kName2[] = "MyExtension2"; 33 const char kName2[] = "MyExtension2";
33 const char kOAuthClientId[] = "1234abcd"; 34 const char kOAuthClientId[] = "1234abcd";
34 35
35 class ExtensionSyncDataTest : public testing::Test { 36 class ExtensionSyncDataTest : public testing::Test {
36 }; 37 };
37 38
38 TEST_F(ExtensionSyncDataTest, SyncDataToExtensionSyncDataForExtension) { 39 TEST_F(ExtensionSyncDataTest, SyncDataToExtensionSyncDataForExtension) {
39 sync_pb::EntitySpecifics entity; 40 sync_pb::EntitySpecifics entity;
40 sync_pb::ExtensionSpecifics* extension_specifics = 41 sync_pb::ExtensionSpecifics* extension_specifics = entity.mutable_extension();
41 entity.MutableExtension(sync_pb::extension);
42 extension_specifics->set_id(kValidId); 42 extension_specifics->set_id(kValidId);
43 extension_specifics->set_update_url(kValidUpdateUrl2); 43 extension_specifics->set_update_url(kValidUpdateUrl2);
44 extension_specifics->set_enabled(false); 44 extension_specifics->set_enabled(false);
45 extension_specifics->set_incognito_enabled(true); 45 extension_specifics->set_incognito_enabled(true);
46 extension_specifics->set_version(kVersion1); 46 extension_specifics->set_version(kVersion1);
47 extension_specifics->set_name(kName); 47 extension_specifics->set_name(kName);
48 SyncData sync_data = 48 SyncData sync_data =
49 SyncData::CreateLocalData("sync_tag", "non_unique_title", entity); 49 SyncData::CreateLocalData("sync_tag", "non_unique_title", entity);
50 50
51 ExtensionSyncData extension_sync_data(sync_data); 51 ExtensionSyncData extension_sync_data(sync_data);
52 EXPECT_EQ(extension_specifics->id(), extension_sync_data.id()); 52 EXPECT_EQ(extension_specifics->id(), extension_sync_data.id());
53 EXPECT_EQ(extension_specifics->version(), 53 EXPECT_EQ(extension_specifics->version(),
54 extension_sync_data.version().GetString()); 54 extension_sync_data.version().GetString());
55 EXPECT_EQ(extension_specifics->update_url(), 55 EXPECT_EQ(extension_specifics->update_url(),
56 extension_sync_data.update_url().spec()); 56 extension_sync_data.update_url().spec());
57 EXPECT_EQ(extension_specifics->enabled(), extension_sync_data.enabled()); 57 EXPECT_EQ(extension_specifics->enabled(), extension_sync_data.enabled());
58 EXPECT_EQ(extension_specifics->incognito_enabled(), 58 EXPECT_EQ(extension_specifics->incognito_enabled(),
59 extension_sync_data.incognito_enabled()); 59 extension_sync_data.incognito_enabled());
60 EXPECT_EQ(extension_specifics->name(), extension_sync_data.name()); 60 EXPECT_EQ(extension_specifics->name(), extension_sync_data.name());
61 EXPECT_FALSE(extension_sync_data.uninstalled()); 61 EXPECT_FALSE(extension_sync_data.uninstalled());
62 } 62 }
63 63
64 TEST_F(ExtensionSyncDataTest, ExtensionSyncDataToSyncDataForExtension) { 64 TEST_F(ExtensionSyncDataTest, ExtensionSyncDataToSyncDataForExtension) {
65 sync_pb::EntitySpecifics entity; 65 sync_pb::EntitySpecifics entity;
66 sync_pb::ExtensionSpecifics* input_extension = 66 sync_pb::ExtensionSpecifics* input_extension = entity.mutable_extension();
67 entity.MutableExtension(sync_pb::extension);
68 input_extension->set_id(kValidId); 67 input_extension->set_id(kValidId);
69 input_extension->set_update_url(kValidUpdateUrl2); 68 input_extension->set_update_url(kValidUpdateUrl2);
70 input_extension->set_enabled(true); 69 input_extension->set_enabled(true);
71 input_extension->set_incognito_enabled(false); 70 input_extension->set_incognito_enabled(false);
72 input_extension->set_version(kVersion1); 71 input_extension->set_version(kVersion1);
73 input_extension->set_name(kName); 72 input_extension->set_name(kName);
74 SyncData sync_data = 73 SyncData sync_data =
75 SyncData::CreateLocalData("sync_tag", "non_unique_title", entity); 74 SyncData::CreateLocalData("sync_tag", "non_unique_title", entity);
76 ExtensionSyncData extension_sync_data(sync_data); 75 ExtensionSyncData extension_sync_data(sync_data);
77 76
78 SyncData output_sync_data = extension_sync_data.GetSyncData(); 77 SyncData output_sync_data = extension_sync_data.GetSyncData();
79 const sync_pb::ExtensionSpecifics& output_specifics = 78 const sync_pb::ExtensionSpecifics& output_specifics =
80 output_sync_data.GetSpecifics().GetExtension(sync_pb::extension); 79 output_sync_data.GetSpecifics().extension();
81 EXPECT_EQ(extension_sync_data.id(), output_specifics.id()); 80 EXPECT_EQ(extension_sync_data.id(), output_specifics.id());
82 EXPECT_EQ(extension_sync_data.update_url().spec(), 81 EXPECT_EQ(extension_sync_data.update_url().spec(),
83 output_specifics.update_url()); 82 output_specifics.update_url());
84 EXPECT_EQ(extension_sync_data.enabled(), output_specifics.enabled()); 83 EXPECT_EQ(extension_sync_data.enabled(), output_specifics.enabled());
85 EXPECT_EQ(extension_sync_data.incognito_enabled(), 84 EXPECT_EQ(extension_sync_data.incognito_enabled(),
86 output_specifics.incognito_enabled()); 85 output_specifics.incognito_enabled());
87 EXPECT_EQ(extension_sync_data.version().GetString(), 86 EXPECT_EQ(extension_sync_data.version().GetString(),
88 output_specifics.version()); 87 output_specifics.version());
89 EXPECT_EQ(extension_sync_data.name(), output_specifics.name()); 88 EXPECT_EQ(extension_sync_data.name(), output_specifics.name());
90 } 89 }
91 90
92 TEST_F(ExtensionSyncDataTest, SyncDataToExtensionSyncDataForApp) { 91 TEST_F(ExtensionSyncDataTest, SyncDataToExtensionSyncDataForApp) {
93 sync_pb::EntitySpecifics entity; 92 sync_pb::EntitySpecifics entity;
94 sync_pb::AppSpecifics* app_specifics = entity.MutableExtension(sync_pb::app); 93 sync_pb::AppSpecifics* app_specifics = entity.mutable_app();
95 app_specifics->set_app_launch_ordinal( 94 app_specifics->set_app_launch_ordinal(
96 StringOrdinal::CreateInitialOrdinal().ToString()); 95 StringOrdinal::CreateInitialOrdinal().ToString());
97 app_specifics->set_page_ordinal( 96 app_specifics->set_page_ordinal(
98 StringOrdinal::CreateInitialOrdinal().ToString()); 97 StringOrdinal::CreateInitialOrdinal().ToString());
99 98
100 sync_pb::ExtensionSpecifics* extension_specifics = 99 sync_pb::ExtensionSpecifics* extension_specifics =
101 app_specifics->mutable_extension(); 100 app_specifics->mutable_extension();
102 extension_specifics->set_id(kValidId); 101 extension_specifics->set_id(kValidId);
103 extension_specifics->set_update_url(kValidUpdateUrl2); 102 extension_specifics->set_update_url(kValidUpdateUrl2);
104 extension_specifics->set_enabled(false); 103 extension_specifics->set_enabled(false);
(...skipping 23 matching lines...) Expand all
128 EXPECT_EQ(extension_specifics->name(), extension_sync_data.name()); 127 EXPECT_EQ(extension_specifics->name(), extension_sync_data.name());
129 EXPECT_FALSE(extension_sync_data.uninstalled()); 128 EXPECT_FALSE(extension_sync_data.uninstalled());
130 EXPECT_EQ(notif_settings->oauth_client_id(), 129 EXPECT_EQ(notif_settings->oauth_client_id(),
131 extension_sync_data.notifications_client_id()); 130 extension_sync_data.notifications_client_id());
132 EXPECT_EQ(notif_settings->disabled(), 131 EXPECT_EQ(notif_settings->disabled(),
133 extension_sync_data.notifications_disabled()); 132 extension_sync_data.notifications_disabled());
134 } 133 }
135 134
136 TEST_F(ExtensionSyncDataTest, ExtensionSyncDataToSyncDataForApp) { 135 TEST_F(ExtensionSyncDataTest, ExtensionSyncDataToSyncDataForApp) {
137 sync_pb::EntitySpecifics entity; 136 sync_pb::EntitySpecifics entity;
138 sync_pb::AppSpecifics* input_specifics = entity.MutableExtension( 137 sync_pb::AppSpecifics* input_specifics = entity.mutable_app();
139 sync_pb::app);
140 input_specifics->set_app_launch_ordinal( 138 input_specifics->set_app_launch_ordinal(
141 StringOrdinal::CreateInitialOrdinal().ToString()); 139 StringOrdinal::CreateInitialOrdinal().ToString());
142 input_specifics->set_page_ordinal( 140 input_specifics->set_page_ordinal(
143 StringOrdinal::CreateInitialOrdinal().ToString()); 141 StringOrdinal::CreateInitialOrdinal().ToString());
144 142
145 sync_pb::ExtensionSpecifics* input_extension = 143 sync_pb::ExtensionSpecifics* input_extension =
146 input_specifics->mutable_extension(); 144 input_specifics->mutable_extension();
147 input_extension->set_id(kValidId); 145 input_extension->set_id(kValidId);
148 input_extension->set_update_url(kValidUpdateUrl2); 146 input_extension->set_update_url(kValidUpdateUrl2);
149 input_extension->set_enabled(true); 147 input_extension->set_enabled(true);
150 input_extension->set_incognito_enabled(false); 148 input_extension->set_incognito_enabled(false);
151 input_extension->set_version(kVersion1); 149 input_extension->set_version(kVersion1);
152 input_extension->set_name(kName); 150 input_extension->set_name(kName);
153 sync_pb::AppNotificationSettings* notif_settings = 151 sync_pb::AppNotificationSettings* notif_settings =
154 input_specifics->mutable_notification_settings(); 152 input_specifics->mutable_notification_settings();
155 notif_settings->set_oauth_client_id(kOAuthClientId); 153 notif_settings->set_oauth_client_id(kOAuthClientId);
156 notif_settings->set_disabled(true); 154 notif_settings->set_disabled(true);
157 SyncData sync_data = 155 SyncData sync_data =
158 SyncData::CreateLocalData("sync_tag", "non_unique_title", entity); 156 SyncData::CreateLocalData("sync_tag", "non_unique_title", entity);
159 ExtensionSyncData extension_sync_data(sync_data); 157 ExtensionSyncData extension_sync_data(sync_data);
160 158
161 SyncData output_sync_data = extension_sync_data.GetSyncData(); 159 SyncData output_sync_data = extension_sync_data.GetSyncData();
162 EXPECT_TRUE(sync_data.GetSpecifics().HasExtension(sync_pb::app)); 160 EXPECT_TRUE(sync_data.GetSpecifics().has_app());
163 const sync_pb::AppSpecifics& output_specifics = 161 const sync_pb::AppSpecifics& output_specifics =
164 output_sync_data.GetSpecifics().GetExtension(sync_pb::app); 162 output_sync_data.GetSpecifics().app();
165 EXPECT_EQ(input_specifics->SerializeAsString(), 163 EXPECT_EQ(input_specifics->SerializeAsString(),
166 output_specifics.SerializeAsString()); 164 output_specifics.SerializeAsString());
167 } 165 }
168 166
169 // Ensures that invalid StringOrdinals don't break ExtensionSyncData. 167 // Ensures that invalid StringOrdinals don't break ExtensionSyncData.
170 TEST_F(ExtensionSyncDataTest, ExtensionSyncDataInvalidOrdinal) { 168 TEST_F(ExtensionSyncDataTest, ExtensionSyncDataInvalidOrdinal) {
171 sync_pb::EntitySpecifics entity; 169 sync_pb::EntitySpecifics entity;
172 sync_pb::AppSpecifics* app_specifics = entity.MutableExtension(sync_pb::app); 170 sync_pb::AppSpecifics* app_specifics = entity.mutable_app();
173 // Set the ordinals as invalid. 171 // Set the ordinals as invalid.
174 app_specifics->set_app_launch_ordinal(""); 172 app_specifics->set_app_launch_ordinal("");
175 app_specifics->set_page_ordinal(""); 173 app_specifics->set_page_ordinal("");
176 174
177 sync_pb::ExtensionSpecifics* extension_specifics = 175 sync_pb::ExtensionSpecifics* extension_specifics =
178 app_specifics->mutable_extension(); 176 app_specifics->mutable_extension();
179 extension_specifics->set_id(kValidId); 177 extension_specifics->set_id(kValidId);
180 extension_specifics->set_update_url(kValidUpdateUrl2); 178 extension_specifics->set_update_url(kValidUpdateUrl2);
181 extension_specifics->set_enabled(false); 179 extension_specifics->set_enabled(false);
182 extension_specifics->set_incognito_enabled(true); 180 extension_specifics->set_incognito_enabled(true);
183 extension_specifics->set_version(kVersion1); 181 extension_specifics->set_version(kVersion1);
184 extension_specifics->set_name(kName); 182 extension_specifics->set_name(kName);
185 sync_pb::AppNotificationSettings* notif_settings = 183 sync_pb::AppNotificationSettings* notif_settings =
186 app_specifics->mutable_notification_settings(); 184 app_specifics->mutable_notification_settings();
187 notif_settings->set_oauth_client_id(kOAuthClientId); 185 notif_settings->set_oauth_client_id(kOAuthClientId);
188 notif_settings->set_disabled(true); 186 notif_settings->set_disabled(true);
189 SyncData sync_data = 187 SyncData sync_data =
190 SyncData::CreateLocalData("sync_tag", "non_unique_title", entity); 188 SyncData::CreateLocalData("sync_tag", "non_unique_title", entity);
191 189
192 ExtensionSyncData extension_sync_data(sync_data); 190 ExtensionSyncData extension_sync_data(sync_data);
193 191
194 // Try loading the synced data back out, there should be no problems. 192 // Try loading the synced data back out, there should be no problems.
195 extension_sync_data.PopulateAppSpecifics(app_specifics); 193 extension_sync_data.PopulateAppSpecifics(app_specifics);
196 } 194 }
197 195
198 } // namespace 196 } // namespace
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_sync_data.cc ('k') | chrome/browser/extensions/settings/setting_sync_data.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698