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

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

Issue 1871713002: Convert //chrome/browser/extensions from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase and fix header Created 4 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
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 "chrome/browser/extensions/extension_sync_data.h" 5 #include "chrome/browser/extensions/extension_sync_data.h"
6 6
7 #include <memory>
8
7 #include "base/files/file_path.h" 9 #include "base/files/file_path.h"
8 #include "base/memory/scoped_ptr.h"
9 #include "base/version.h" 10 #include "base/version.h"
10 #include "extensions/common/extension.h" 11 #include "extensions/common/extension.h"
11 #include "sync/api/string_ordinal.h" 12 #include "sync/api/string_ordinal.h"
12 #include "sync/protocol/app_specifics.pb.h" 13 #include "sync/protocol/app_specifics.pb.h"
13 #include "sync/protocol/extension_specifics.pb.h" 14 #include "sync/protocol/extension_specifics.pb.h"
14 #include "sync/protocol/sync.pb.h" 15 #include "sync/protocol/sync.pb.h"
15 #include "testing/gtest/include/gtest/gtest.h" 16 #include "testing/gtest/include/gtest/gtest.h"
16 #include "url/gurl.h" 17 #include "url/gurl.h"
17 18
18 namespace extensions { 19 namespace extensions {
19 20
20 namespace { 21 namespace {
21 22
22 const char kValidId[] = "abcdefghijklmnopabcdefghijklmnop"; 23 const char kValidId[] = "abcdefghijklmnopabcdefghijklmnop";
23 const char kVersion[] = "1.0.0.1"; 24 const char kVersion[] = "1.0.0.1";
24 const char kValidUpdateUrl[] = 25 const char kValidUpdateUrl[] =
25 "https://clients2.google.com/service/update2/crx"; 26 "https://clients2.google.com/service/update2/crx";
26 const int kValidDisableReasons = Extension::DISABLE_USER_ACTION; 27 const int kValidDisableReasons = Extension::DISABLE_USER_ACTION;
27 const char kName[] = "MyExtension"; 28 const char kName[] = "MyExtension";
28 29
29 // Serializes a protobuf structure (entity specifics) into an ExtensionSyncData 30 // Serializes a protobuf structure (entity specifics) into an ExtensionSyncData
30 // and back again, and confirms that the input is the same as the output. 31 // and back again, and confirms that the input is the same as the output.
31 void ProtobufToSyncDataEqual(const sync_pb::EntitySpecifics& entity) { 32 void ProtobufToSyncDataEqual(const sync_pb::EntitySpecifics& entity) {
32 syncer::SyncData sync_data = 33 syncer::SyncData sync_data =
33 syncer::SyncData::CreateLocalData("sync_tag", "non_unique_title", entity); 34 syncer::SyncData::CreateLocalData("sync_tag", "non_unique_title", entity);
34 scoped_ptr<ExtensionSyncData> extension_sync_data = 35 std::unique_ptr<ExtensionSyncData> extension_sync_data =
35 ExtensionSyncData::CreateFromSyncData(sync_data); 36 ExtensionSyncData::CreateFromSyncData(sync_data);
36 ASSERT_TRUE(extension_sync_data.get()); 37 ASSERT_TRUE(extension_sync_data.get());
37 syncer::SyncData output_sync_data = extension_sync_data->GetSyncData(); 38 syncer::SyncData output_sync_data = extension_sync_data->GetSyncData();
38 const sync_pb::ExtensionSpecifics& output = 39 const sync_pb::ExtensionSpecifics& output =
39 output_sync_data.GetSpecifics().extension(); 40 output_sync_data.GetSpecifics().extension();
40 const sync_pb::ExtensionSpecifics& input = entity.extension(); 41 const sync_pb::ExtensionSpecifics& input = entity.extension();
41 42
42 // Check for field-by-field quality. It'd be nice if we could use 43 // Check for field-by-field quality. It'd be nice if we could use
43 // AssertionResults here (instead of EXPECT_EQ) so that we could get valid 44 // AssertionResults here (instead of EXPECT_EQ) so that we could get valid
44 // line numbers, but it's not worth the ugliness of the verbose comparison. 45 // line numbers, but it's not worth the ugliness of the verbose comparison.
45 EXPECT_EQ(input.id(), output.id()); 46 EXPECT_EQ(input.id(), output.id());
46 EXPECT_EQ(input.name(), output.name()); 47 EXPECT_EQ(input.name(), output.name());
47 EXPECT_EQ(input.version(), output.version()); 48 EXPECT_EQ(input.version(), output.version());
48 EXPECT_EQ(input.update_url(), output.update_url()); 49 EXPECT_EQ(input.update_url(), output.update_url());
49 EXPECT_EQ(input.enabled(), output.enabled()); 50 EXPECT_EQ(input.enabled(), output.enabled());
50 EXPECT_EQ(input.incognito_enabled(), output.incognito_enabled()); 51 EXPECT_EQ(input.incognito_enabled(), output.incognito_enabled());
51 EXPECT_EQ(input.remote_install(), output.remote_install()); 52 EXPECT_EQ(input.remote_install(), output.remote_install());
52 EXPECT_EQ(input.installed_by_custodian(), output.installed_by_custodian()); 53 EXPECT_EQ(input.installed_by_custodian(), output.installed_by_custodian());
53 EXPECT_EQ(input.has_all_urls_enabled(), output.has_all_urls_enabled()); 54 EXPECT_EQ(input.has_all_urls_enabled(), output.has_all_urls_enabled());
54 if (input.has_all_urls_enabled()) 55 if (input.has_all_urls_enabled())
55 EXPECT_EQ(input.all_urls_enabled(), output.all_urls_enabled()); 56 EXPECT_EQ(input.all_urls_enabled(), output.all_urls_enabled());
56 } 57 }
57 58
58 // Serializes an ExtensionSyncData into a protobuf structure and back again, and 59 // Serializes an ExtensionSyncData into a protobuf structure and back again, and
59 // confirms that the input is the same as the output. 60 // confirms that the input is the same as the output.
60 void SyncDataToProtobufEqual(const ExtensionSyncData& input) { 61 void SyncDataToProtobufEqual(const ExtensionSyncData& input) {
61 syncer::SyncData sync_data = input.GetSyncData(); 62 syncer::SyncData sync_data = input.GetSyncData();
62 scoped_ptr<ExtensionSyncData> output = 63 std::unique_ptr<ExtensionSyncData> output =
63 ExtensionSyncData::CreateFromSyncData(sync_data); 64 ExtensionSyncData::CreateFromSyncData(sync_data);
64 ASSERT_TRUE(output.get()); 65 ASSERT_TRUE(output.get());
65 66
66 EXPECT_EQ(input.id(), output->id()); 67 EXPECT_EQ(input.id(), output->id());
67 EXPECT_EQ(input.uninstalled(), output->uninstalled()); 68 EXPECT_EQ(input.uninstalled(), output->uninstalled());
68 EXPECT_EQ(input.enabled(), output->enabled()); 69 EXPECT_EQ(input.enabled(), output->enabled());
69 EXPECT_EQ(input.incognito_enabled(), output->incognito_enabled()); 70 EXPECT_EQ(input.incognito_enabled(), output->incognito_enabled());
70 EXPECT_EQ(input.remote_install(), output->remote_install()); 71 EXPECT_EQ(input.remote_install(), output->remote_install());
71 EXPECT_EQ(input.installed_by_custodian(), output->installed_by_custodian()); 72 EXPECT_EQ(input.installed_by_custodian(), output->installed_by_custodian());
72 EXPECT_EQ(input.all_urls_enabled(), output->all_urls_enabled()); 73 EXPECT_EQ(input.all_urls_enabled(), output->all_urls_enabled());
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 app_specifics->set_app_launch_ordinal( 168 app_specifics->set_app_launch_ordinal(
168 syncer::StringOrdinal::CreateInitialOrdinal().ToInternalValue()); 169 syncer::StringOrdinal::CreateInitialOrdinal().ToInternalValue());
169 app_specifics->set_page_ordinal( 170 app_specifics->set_page_ordinal(
170 syncer::StringOrdinal::CreateInitialOrdinal().ToInternalValue()); 171 syncer::StringOrdinal::CreateInitialOrdinal().ToInternalValue());
171 172
172 SetRequiredExtensionValues(app_specifics->mutable_extension()); 173 SetRequiredExtensionValues(app_specifics->mutable_extension());
173 174
174 syncer::SyncData sync_data = 175 syncer::SyncData sync_data =
175 syncer::SyncData::CreateLocalData("sync_tag", "non_unique_title", entity); 176 syncer::SyncData::CreateLocalData("sync_tag", "non_unique_title", entity);
176 177
177 scoped_ptr<ExtensionSyncData> app_sync_data = 178 std::unique_ptr<ExtensionSyncData> app_sync_data =
178 ExtensionSyncData::CreateFromSyncData(sync_data); 179 ExtensionSyncData::CreateFromSyncData(sync_data);
179 ASSERT_TRUE(app_sync_data.get()); 180 ASSERT_TRUE(app_sync_data.get());
180 EXPECT_EQ(app_specifics->app_launch_ordinal(), 181 EXPECT_EQ(app_specifics->app_launch_ordinal(),
181 app_sync_data->app_launch_ordinal().ToInternalValue()); 182 app_sync_data->app_launch_ordinal().ToInternalValue());
182 EXPECT_EQ(app_specifics->page_ordinal(), 183 EXPECT_EQ(app_specifics->page_ordinal(),
183 app_sync_data->page_ordinal().ToInternalValue()); 184 app_sync_data->page_ordinal().ToInternalValue());
184 } 185 }
185 186
186 TEST_F(AppSyncDataTest, ExtensionSyncDataToSyncDataForApp) { 187 TEST_F(AppSyncDataTest, ExtensionSyncDataToSyncDataForApp) {
187 sync_pb::EntitySpecifics entity; 188 sync_pb::EntitySpecifics entity;
188 sync_pb::AppSpecifics* input_specifics = entity.mutable_app(); 189 sync_pb::AppSpecifics* input_specifics = entity.mutable_app();
189 input_specifics->set_app_launch_ordinal( 190 input_specifics->set_app_launch_ordinal(
190 syncer::StringOrdinal::CreateInitialOrdinal().ToInternalValue()); 191 syncer::StringOrdinal::CreateInitialOrdinal().ToInternalValue());
191 input_specifics->set_page_ordinal( 192 input_specifics->set_page_ordinal(
192 syncer::StringOrdinal::CreateInitialOrdinal().ToInternalValue()); 193 syncer::StringOrdinal::CreateInitialOrdinal().ToInternalValue());
193 194
194 SetRequiredExtensionValues(input_specifics->mutable_extension()); 195 SetRequiredExtensionValues(input_specifics->mutable_extension());
195 196
196 syncer::SyncData sync_data = 197 syncer::SyncData sync_data =
197 syncer::SyncData::CreateLocalData("sync_tag", "non_unique_title", entity); 198 syncer::SyncData::CreateLocalData("sync_tag", "non_unique_title", entity);
198 scoped_ptr<ExtensionSyncData> app_sync_data = 199 std::unique_ptr<ExtensionSyncData> app_sync_data =
199 ExtensionSyncData::CreateFromSyncData(sync_data); 200 ExtensionSyncData::CreateFromSyncData(sync_data);
200 ASSERT_TRUE(app_sync_data.get()); 201 ASSERT_TRUE(app_sync_data.get());
201 202
202 syncer::SyncData output_sync_data = app_sync_data->GetSyncData(); 203 syncer::SyncData output_sync_data = app_sync_data->GetSyncData();
203 EXPECT_TRUE(sync_data.GetSpecifics().has_app()); 204 EXPECT_TRUE(sync_data.GetSpecifics().has_app());
204 const sync_pb::AppSpecifics& output_specifics = 205 const sync_pb::AppSpecifics& output_specifics =
205 output_sync_data.GetSpecifics().app(); 206 output_sync_data.GetSpecifics().app();
206 EXPECT_EQ(input_specifics->SerializeAsString(), 207 EXPECT_EQ(input_specifics->SerializeAsString(),
207 output_specifics.SerializeAsString()); 208 output_specifics.SerializeAsString());
208 } 209 }
209 210
210 // Ensures that invalid StringOrdinals don't break ExtensionSyncData. 211 // Ensures that invalid StringOrdinals don't break ExtensionSyncData.
211 TEST_F(AppSyncDataTest, ExtensionSyncDataInvalidOrdinal) { 212 TEST_F(AppSyncDataTest, ExtensionSyncDataInvalidOrdinal) {
212 sync_pb::EntitySpecifics entity; 213 sync_pb::EntitySpecifics entity;
213 sync_pb::AppSpecifics* app_specifics = entity.mutable_app(); 214 sync_pb::AppSpecifics* app_specifics = entity.mutable_app();
214 // Set the ordinals as invalid. 215 // Set the ordinals as invalid.
215 app_specifics->set_app_launch_ordinal(""); 216 app_specifics->set_app_launch_ordinal("");
216 app_specifics->set_page_ordinal(""); 217 app_specifics->set_page_ordinal("");
217 218
218 SetRequiredExtensionValues(app_specifics->mutable_extension()); 219 SetRequiredExtensionValues(app_specifics->mutable_extension());
219 220
220 syncer::SyncData sync_data = 221 syncer::SyncData sync_data =
221 syncer::SyncData::CreateLocalData("sync_tag", "non_unique_title", entity); 222 syncer::SyncData::CreateLocalData("sync_tag", "non_unique_title", entity);
222 223
223 // There should be no issue loading the sync data. 224 // There should be no issue loading the sync data.
224 scoped_ptr<ExtensionSyncData> app_sync_data = 225 std::unique_ptr<ExtensionSyncData> app_sync_data =
225 ExtensionSyncData::CreateFromSyncData(sync_data); 226 ExtensionSyncData::CreateFromSyncData(sync_data);
226 ASSERT_TRUE(app_sync_data.get()); 227 ASSERT_TRUE(app_sync_data.get());
227 app_sync_data->GetSyncData(); 228 app_sync_data->GetSyncData();
228 } 229 }
229 230
230 } // namespace extensions 231 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_sync_data.cc ('k') | chrome/browser/extensions/extension_sync_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698