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

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

Issue 10920017: [Sync] Generalize StringOrdinal to handle ordinal_in_parent field (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Relax tests Created 8 years, 3 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 "chrome/browser/extensions/extension_prefs_unittest.h" 5 #include "chrome/browser/extensions/extension_prefs_unittest.h"
6 #include "chrome/browser/extensions/extension_sorting.h" 6 #include "chrome/browser/extensions/extension_sorting.h"
7 #include "chrome/common/extensions/extension_manifest_constants.h" 7 #include "chrome/common/extensions/extension_manifest_constants.h"
8 #include "sync/api/string_ordinal.h"
8 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
9 10
10 using extensions::Extension; 11 using extensions::Extension;
11 12
12 namespace keys = extension_manifest_keys; 13 namespace keys = extension_manifest_keys;
13 14
14 class ExtensionSortingTest : public extensions::ExtensionPrefsTest { 15 class ExtensionSortingTest : public extensions::ExtensionPrefsTest {
15 protected: 16 protected:
16 ExtensionSorting* extension_sorting() { 17 ExtensionSorting* extension_sorting() {
17 return prefs()->extension_sorting(); 18 return prefs()->extension_sorting();
18 } 19 }
19 }; 20 };
20 21
21 class ExtensionSortingAppLocation : public ExtensionSortingTest { 22 class ExtensionSortingAppLocation : public ExtensionSortingTest {
22 public: 23 public:
23 virtual void Initialize() OVERRIDE { 24 virtual void Initialize() OVERRIDE {
24 extension_ = prefs_.AddExtension("not_an_app"); 25 extension_ = prefs_.AddExtension("not_an_app");
25 // Non-apps should not have any app launch ordinal or page ordinal. 26 // Non-apps should not have any app launch ordinal or page ordinal.
26 prefs()->OnExtensionInstalled(extension_.get(), Extension::ENABLED, 27 prefs()->OnExtensionInstalled(extension_.get(), Extension::ENABLED,
27 false, StringOrdinal()); 28 false, syncer::StringOrdinal());
28 } 29 }
29 30
30 virtual void Verify() OVERRIDE { 31 virtual void Verify() OVERRIDE {
31 EXPECT_FALSE( 32 EXPECT_FALSE(
32 extension_sorting()->GetAppLaunchOrdinal(extension_->id()).IsValid()); 33 extension_sorting()->GetAppLaunchOrdinal(extension_->id()).IsValid());
33 EXPECT_FALSE( 34 EXPECT_FALSE(
34 extension_sorting()->GetPageOrdinal(extension_->id()).IsValid()); 35 extension_sorting()->GetPageOrdinal(extension_->id()).IsValid());
35 } 36 }
36 37
37 private: 38 private:
38 scoped_refptr<Extension> extension_; 39 scoped_refptr<Extension> extension_;
39 }; 40 };
40 TEST_F(ExtensionSortingAppLocation, ExtensionSortingAppLocation) {} 41 TEST_F(ExtensionSortingAppLocation, ExtensionSortingAppLocation) {}
41 42
42 class ExtensionSortingAppLaunchOrdinal : public ExtensionSortingTest { 43 class ExtensionSortingAppLaunchOrdinal : public ExtensionSortingTest {
43 public: 44 public:
44 virtual void Initialize() OVERRIDE { 45 virtual void Initialize() OVERRIDE {
45 // No extensions yet. 46 // No extensions yet.
46 StringOrdinal page = StringOrdinal::CreateInitialOrdinal(); 47 syncer::StringOrdinal page = syncer::StringOrdinal::CreateInitialOrdinal();
47 EXPECT_TRUE(StringOrdinal::CreateInitialOrdinal().Equal( 48 EXPECT_TRUE(syncer::StringOrdinal::CreateInitialOrdinal().Equals(
48 extension_sorting()->CreateNextAppLaunchOrdinal(page))); 49 extension_sorting()->CreateNextAppLaunchOrdinal(page)));
49 50
50 extension_ = prefs_.AddApp("on_extension_installed"); 51 extension_ = prefs_.AddApp("on_extension_installed");
51 EXPECT_FALSE(prefs()->IsExtensionDisabled(extension_->id())); 52 EXPECT_FALSE(prefs()->IsExtensionDisabled(extension_->id()));
52 prefs()->OnExtensionInstalled(extension_.get(), Extension::ENABLED, 53 prefs()->OnExtensionInstalled(extension_.get(), Extension::ENABLED,
53 false, StringOrdinal()); 54 false, syncer::StringOrdinal());
54 } 55 }
55 56
56 virtual void Verify() OVERRIDE { 57 virtual void Verify() OVERRIDE {
57 StringOrdinal launch_ordinal = 58 syncer::StringOrdinal launch_ordinal =
58 extension_sorting()->GetAppLaunchOrdinal(extension_->id()); 59 extension_sorting()->GetAppLaunchOrdinal(extension_->id());
59 StringOrdinal page_ordinal = StringOrdinal::CreateInitialOrdinal(); 60 syncer::StringOrdinal page_ordinal =
61 syncer::StringOrdinal::CreateInitialOrdinal();
60 62
61 // Extension should have been assigned a valid StringOrdinal. 63 // Extension should have been assigned a valid StringOrdinal.
62 EXPECT_TRUE(launch_ordinal.IsValid()); 64 EXPECT_TRUE(launch_ordinal.IsValid());
63 EXPECT_TRUE(launch_ordinal.LessThan( 65 EXPECT_TRUE(launch_ordinal.LessThan(
64 extension_sorting()->CreateNextAppLaunchOrdinal(page_ordinal))); 66 extension_sorting()->CreateNextAppLaunchOrdinal(page_ordinal)));
65 // Set a new launch ordinal of and verify it comes after. 67 // Set a new launch ordinal of and verify it comes after.
66 extension_sorting()->SetAppLaunchOrdinal( 68 extension_sorting()->SetAppLaunchOrdinal(
67 extension_->id(), 69 extension_->id(),
68 extension_sorting()->CreateNextAppLaunchOrdinal(page_ordinal)); 70 extension_sorting()->CreateNextAppLaunchOrdinal(page_ordinal));
69 StringOrdinal new_launch_ordinal = 71 syncer::StringOrdinal new_launch_ordinal =
70 extension_sorting()->GetAppLaunchOrdinal(extension_->id()); 72 extension_sorting()->GetAppLaunchOrdinal(extension_->id());
71 EXPECT_TRUE(launch_ordinal.LessThan(new_launch_ordinal)); 73 EXPECT_TRUE(launch_ordinal.LessThan(new_launch_ordinal));
72 74
73 // This extension doesn't exist, so it should return an invalid 75 // This extension doesn't exist, so it should return an invalid
74 // StringOrdinal. 76 // StringOrdinal.
75 StringOrdinal invalid_app_launch_ordinal = 77 syncer::StringOrdinal invalid_app_launch_ordinal =
76 extension_sorting()->GetAppLaunchOrdinal("foo"); 78 extension_sorting()->GetAppLaunchOrdinal("foo");
77 EXPECT_FALSE(invalid_app_launch_ordinal.IsValid()); 79 EXPECT_FALSE(invalid_app_launch_ordinal.IsValid());
78 EXPECT_EQ(-1, extension_sorting()->PageStringOrdinalAsInteger( 80 EXPECT_EQ(-1, extension_sorting()->PageStringOrdinalAsInteger(
79 invalid_app_launch_ordinal)); 81 invalid_app_launch_ordinal));
80 82
81 // The second page doesn't have any apps so its next launch ordinal should 83 // The second page doesn't have any apps so its next launch ordinal should
82 // be the first launch ordinal. 84 // be the first launch ordinal.
83 StringOrdinal next_page = page_ordinal.CreateAfter(); 85 syncer::StringOrdinal next_page = page_ordinal.CreateAfter();
84 StringOrdinal next_page_app_launch_ordinal = 86 syncer::StringOrdinal next_page_app_launch_ordinal =
85 extension_sorting()->CreateNextAppLaunchOrdinal(next_page); 87 extension_sorting()->CreateNextAppLaunchOrdinal(next_page);
86 EXPECT_TRUE(next_page_app_launch_ordinal.Equal( 88 EXPECT_TRUE(next_page_app_launch_ordinal.Equals(
87 extension_sorting()->CreateFirstAppLaunchOrdinal(next_page))); 89 extension_sorting()->CreateFirstAppLaunchOrdinal(next_page)));
88 } 90 }
89 91
90 private: 92 private:
91 scoped_refptr<Extension> extension_; 93 scoped_refptr<Extension> extension_;
92 }; 94 };
93 TEST_F(ExtensionSortingAppLaunchOrdinal, ExtensionSortingAppLaunchOrdinal) {} 95 TEST_F(ExtensionSortingAppLaunchOrdinal, ExtensionSortingAppLaunchOrdinal) {}
94 96
95 class ExtensionSortingPageOrdinal : public ExtensionSortingTest { 97 class ExtensionSortingPageOrdinal : public ExtensionSortingTest {
96 public: 98 public:
97 virtual void Initialize() OVERRIDE{ 99 virtual void Initialize() OVERRIDE{
98 extension_ = prefs_.AddApp("page_ordinal"); 100 extension_ = prefs_.AddApp("page_ordinal");
99 // Install with a page preference. 101 // Install with a page preference.
100 first_page_ = StringOrdinal::CreateInitialOrdinal(); 102 first_page_ = syncer::StringOrdinal::CreateInitialOrdinal();
101 prefs()->OnExtensionInstalled(extension_.get(), Extension::ENABLED, 103 prefs()->OnExtensionInstalled(extension_.get(), Extension::ENABLED,
102 false, first_page_); 104 false, first_page_);
103 EXPECT_TRUE(first_page_.Equal( 105 EXPECT_TRUE(first_page_.Equals(
104 extension_sorting()->GetPageOrdinal(extension_->id()))); 106 extension_sorting()->GetPageOrdinal(extension_->id())));
105 EXPECT_EQ(0, extension_sorting()->PageStringOrdinalAsInteger(first_page_)); 107 EXPECT_EQ(0, extension_sorting()->PageStringOrdinalAsInteger(first_page_));
106 108
107 scoped_refptr<Extension> extension2 = prefs_.AddApp("page_ordinal_2"); 109 scoped_refptr<Extension> extension2 = prefs_.AddApp("page_ordinal_2");
108 // Install without any page preference. 110 // Install without any page preference.
109 prefs()->OnExtensionInstalled(extension2.get(), Extension::ENABLED, 111 prefs()->OnExtensionInstalled(extension2.get(), Extension::ENABLED,
110 false, StringOrdinal()); 112 false, syncer::StringOrdinal());
111 EXPECT_TRUE(first_page_.Equal( 113 EXPECT_TRUE(first_page_.Equals(
112 extension_sorting()->GetPageOrdinal(extension2->id()))); 114 extension_sorting()->GetPageOrdinal(extension2->id())));
113 } 115 }
114 virtual void Verify() OVERRIDE { 116 virtual void Verify() OVERRIDE {
115 // Set the page ordinal. 117 // Set the page ordinal.
116 StringOrdinal new_page = first_page_.CreateAfter(); 118 syncer::StringOrdinal new_page = first_page_.CreateAfter();
117 extension_sorting()->SetPageOrdinal(extension_->id(), new_page); 119 extension_sorting()->SetPageOrdinal(extension_->id(), new_page);
118 // Verify the page ordinal. 120 // Verify the page ordinal.
119 EXPECT_TRUE( 121 EXPECT_TRUE(
120 new_page.Equal(extension_sorting()->GetPageOrdinal(extension_->id()))); 122 new_page.Equals(extension_sorting()->GetPageOrdinal(extension_->id())));
121 EXPECT_EQ(1, extension_sorting()->PageStringOrdinalAsInteger(new_page)); 123 EXPECT_EQ(1, extension_sorting()->PageStringOrdinalAsInteger(new_page));
122 124
123 // This extension doesn't exist, so it should return an invalid 125 // This extension doesn't exist, so it should return an invalid
124 // StringOrdinal. 126 // StringOrdinal.
125 EXPECT_FALSE(extension_sorting()->GetPageOrdinal("foo").IsValid()); 127 EXPECT_FALSE(extension_sorting()->GetPageOrdinal("foo").IsValid());
126 } 128 }
127 129
128 private: 130 private:
129 StringOrdinal first_page_; 131 syncer::StringOrdinal first_page_;
130 scoped_refptr<Extension> extension_; 132 scoped_refptr<Extension> extension_;
131 }; 133 };
132 TEST_F(ExtensionSortingPageOrdinal, ExtensionSortingPageOrdinal) {} 134 TEST_F(ExtensionSortingPageOrdinal, ExtensionSortingPageOrdinal) {}
133 135
134 // Ensure that ExtensionSorting is able to properly initialize off a set 136 // Ensure that ExtensionSorting is able to properly initialize off a set
135 // of old page and app launch indices and properly convert them. 137 // of old page and app launch indices and properly convert them.
136 class ExtensionSortingInitialize 138 class ExtensionSortingInitialize
137 : public extensions::ExtensionPrefsPrepopulatedTest { 139 : public extensions::ExtensionPrefsPrepopulatedTest {
138 public: 140 public:
139 ExtensionSortingInitialize() {} 141 ExtensionSortingInitialize() {}
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 // We insert the ids in reserve order so that we have to deal with the 174 // We insert the ids in reserve order so that we have to deal with the
173 // element on the 2nd page before the 1st page is seen. 175 // element on the 2nd page before the 1st page is seen.
174 extensions::ExtensionPrefs::ExtensionIds ids; 176 extensions::ExtensionPrefs::ExtensionIds ids;
175 ids.push_back(ext3_->id()); 177 ids.push_back(ext3_->id());
176 ids.push_back(ext2_->id()); 178 ids.push_back(ext2_->id());
177 ids.push_back(ext1_->id()); 179 ids.push_back(ext1_->id());
178 180
179 prefs()->extension_sorting()->Initialize(ids); 181 prefs()->extension_sorting()->Initialize(ids);
180 } 182 }
181 virtual void Verify() OVERRIDE { 183 virtual void Verify() OVERRIDE {
182 StringOrdinal first_ordinal = StringOrdinal::CreateInitialOrdinal(); 184 syncer::StringOrdinal first_ordinal =
185 syncer::StringOrdinal::CreateInitialOrdinal();
183 ExtensionSorting* extension_sorting = prefs()->extension_sorting(); 186 ExtensionSorting* extension_sorting = prefs()->extension_sorting();
184 187
185 EXPECT_TRUE(first_ordinal.Equal( 188 EXPECT_TRUE(first_ordinal.Equals(
186 extension_sorting->GetAppLaunchOrdinal(ext1_->id()))); 189 extension_sorting->GetAppLaunchOrdinal(ext1_->id())));
187 EXPECT_TRUE(first_ordinal.LessThan( 190 EXPECT_TRUE(first_ordinal.LessThan(
188 extension_sorting->GetAppLaunchOrdinal(ext2_->id()))); 191 extension_sorting->GetAppLaunchOrdinal(ext2_->id())));
189 EXPECT_TRUE(first_ordinal.Equal( 192 EXPECT_TRUE(first_ordinal.Equals(
190 extension_sorting->GetAppLaunchOrdinal(ext3_->id()))); 193 extension_sorting->GetAppLaunchOrdinal(ext3_->id())));
191 194
192 EXPECT_TRUE(first_ordinal.Equal( 195 EXPECT_TRUE(first_ordinal.Equals(
193 extension_sorting->GetPageOrdinal(ext1_->id()))); 196 extension_sorting->GetPageOrdinal(ext1_->id())));
194 EXPECT_TRUE(first_ordinal.Equal( 197 EXPECT_TRUE(first_ordinal.Equals(
195 extension_sorting->GetPageOrdinal(ext2_->id()))); 198 extension_sorting->GetPageOrdinal(ext2_->id())));
196 EXPECT_TRUE(first_ordinal.LessThan( 199 EXPECT_TRUE(first_ordinal.LessThan(
197 extension_sorting->GetPageOrdinal(ext3_->id()))); 200 extension_sorting->GetPageOrdinal(ext3_->id())));
198 } 201 }
199 }; 202 };
200 TEST_F(ExtensionSortingInitialize, ExtensionSortingInitialize) {} 203 TEST_F(ExtensionSortingInitialize, ExtensionSortingInitialize) {}
201 204
202 // Make sure that initialization still works when no extensions are present 205 // Make sure that initialization still works when no extensions are present
203 // (i.e. make sure that the web store icon is still loaded into the map). 206 // (i.e. make sure that the web store icon is still loaded into the map).
204 class ExtensionSortingInitializeWithNoApps 207 class ExtensionSortingInitializeWithNoApps
205 : public extensions::ExtensionPrefsPrepopulatedTest { 208 : public extensions::ExtensionPrefsPrepopulatedTest {
206 public: 209 public:
207 ExtensionSortingInitializeWithNoApps() {} 210 ExtensionSortingInitializeWithNoApps() {}
208 virtual ~ExtensionSortingInitializeWithNoApps() {} 211 virtual ~ExtensionSortingInitializeWithNoApps() {}
209 212
210 virtual void Initialize() OVERRIDE { 213 virtual void Initialize() OVERRIDE {
211 ExtensionSorting* extension_sorting = prefs()->extension_sorting(); 214 ExtensionSorting* extension_sorting = prefs()->extension_sorting();
212 215
213 // Make sure that the web store has valid ordinals. 216 // Make sure that the web store has valid ordinals.
214 StringOrdinal initial_ordinal = StringOrdinal::CreateInitialOrdinal(); 217 syncer::StringOrdinal initial_ordinal =
218 syncer::StringOrdinal::CreateInitialOrdinal();
215 extension_sorting->SetPageOrdinal(extension_misc::kWebStoreAppId, 219 extension_sorting->SetPageOrdinal(extension_misc::kWebStoreAppId,
216 initial_ordinal); 220 initial_ordinal);
217 extension_sorting->SetAppLaunchOrdinal(extension_misc::kWebStoreAppId, 221 extension_sorting->SetAppLaunchOrdinal(extension_misc::kWebStoreAppId,
218 initial_ordinal); 222 initial_ordinal);
219 223
220 extensions::ExtensionPrefs::ExtensionIds ids; 224 extensions::ExtensionPrefs::ExtensionIds ids;
221 extension_sorting->Initialize(ids); 225 extension_sorting->Initialize(ids);
222 } 226 }
223 virtual void Verify() OVERRIDE { 227 virtual void Verify() OVERRIDE {
224 ExtensionSorting* extension_sorting = prefs()->extension_sorting(); 228 ExtensionSorting* extension_sorting = prefs()->extension_sorting();
225 229
226 StringOrdinal page = 230 syncer::StringOrdinal page =
227 extension_sorting->GetPageOrdinal(extension_misc::kWebStoreAppId); 231 extension_sorting->GetPageOrdinal(extension_misc::kWebStoreAppId);
228 EXPECT_TRUE(page.IsValid()); 232 EXPECT_TRUE(page.IsValid());
229 233
230 ExtensionSorting::PageOrdinalMap::iterator page_it = 234 ExtensionSorting::PageOrdinalMap::iterator page_it =
231 extension_sorting->ntp_ordinal_map_.find(page); 235 extension_sorting->ntp_ordinal_map_.find(page);
232 EXPECT_TRUE(page_it != extension_sorting->ntp_ordinal_map_.end()); 236 EXPECT_TRUE(page_it != extension_sorting->ntp_ordinal_map_.end());
233 237
234 StringOrdinal app_launch = 238 syncer::StringOrdinal app_launch =
235 extension_sorting->GetPageOrdinal(extension_misc::kWebStoreAppId); 239 extension_sorting->GetPageOrdinal(extension_misc::kWebStoreAppId);
236 EXPECT_TRUE(app_launch.IsValid()); 240 EXPECT_TRUE(app_launch.IsValid());
237 241
238 ExtensionSorting::AppLaunchOrdinalMap::iterator app_launch_it = 242 ExtensionSorting::AppLaunchOrdinalMap::iterator app_launch_it =
239 page_it->second.find(app_launch); 243 page_it->second.find(app_launch);
240 EXPECT_TRUE(app_launch_it != page_it->second.end()); 244 EXPECT_TRUE(app_launch_it != page_it->second.end());
241 } 245 }
242 }; 246 };
243 TEST_F(ExtensionSortingInitializeWithNoApps, 247 TEST_F(ExtensionSortingInitializeWithNoApps,
244 ExtensionSortingInitializeWithNoApps) {} 248 ExtensionSortingInitializeWithNoApps) {}
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
283 TEST_F(ExtensionSortingMigrateAppIndexInvalid, 287 TEST_F(ExtensionSortingMigrateAppIndexInvalid,
284 ExtensionSortingMigrateAppIndexInvalid) {} 288 ExtensionSortingMigrateAppIndexInvalid) {}
285 289
286 class ExtensionSortingFixNTPCollisionsAllCollide 290 class ExtensionSortingFixNTPCollisionsAllCollide
287 : public extensions::ExtensionPrefsPrepopulatedTest { 291 : public extensions::ExtensionPrefsPrepopulatedTest {
288 public: 292 public:
289 ExtensionSortingFixNTPCollisionsAllCollide() {} 293 ExtensionSortingFixNTPCollisionsAllCollide() {}
290 virtual ~ExtensionSortingFixNTPCollisionsAllCollide() {} 294 virtual ~ExtensionSortingFixNTPCollisionsAllCollide() {}
291 295
292 virtual void Initialize() OVERRIDE { 296 virtual void Initialize() OVERRIDE {
293 repeated_ordinal_ = StringOrdinal::CreateInitialOrdinal(); 297 repeated_ordinal_ = syncer::StringOrdinal::CreateInitialOrdinal();
294 298
295 ExtensionSorting* extension_sorting = prefs()->extension_sorting(); 299 ExtensionSorting* extension_sorting = prefs()->extension_sorting();
296 300
297 extension_sorting->SetAppLaunchOrdinal(ext1_->id(), repeated_ordinal_); 301 extension_sorting->SetAppLaunchOrdinal(ext1_->id(), repeated_ordinal_);
298 extension_sorting->SetPageOrdinal(ext1_->id(), repeated_ordinal_); 302 extension_sorting->SetPageOrdinal(ext1_->id(), repeated_ordinal_);
299 303
300 extension_sorting->SetAppLaunchOrdinal(ext2_->id(), repeated_ordinal_); 304 extension_sorting->SetAppLaunchOrdinal(ext2_->id(), repeated_ordinal_);
301 extension_sorting->SetPageOrdinal(ext2_->id(), repeated_ordinal_); 305 extension_sorting->SetPageOrdinal(ext2_->id(), repeated_ordinal_);
302 306
303 extension_sorting->SetAppLaunchOrdinal(ext3_->id(), repeated_ordinal_); 307 extension_sorting->SetAppLaunchOrdinal(ext3_->id(), repeated_ordinal_);
304 extension_sorting->SetPageOrdinal(ext3_->id(), repeated_ordinal_); 308 extension_sorting->SetPageOrdinal(ext3_->id(), repeated_ordinal_);
305 309
306 extension_sorting->FixNTPOrdinalCollisions(); 310 extension_sorting->FixNTPOrdinalCollisions();
307 } 311 }
308 virtual void Verify() OVERRIDE { 312 virtual void Verify() OVERRIDE {
309 ExtensionSorting* extension_sorting = prefs()->extension_sorting(); 313 ExtensionSorting* extension_sorting = prefs()->extension_sorting();
310 StringOrdinal ext1_app_launch = extension_sorting->GetAppLaunchOrdinal( 314 syncer::StringOrdinal ext1_app_launch =
311 ext1_->id()); 315 extension_sorting->GetAppLaunchOrdinal(ext1_->id());
312 StringOrdinal ext2_app_launch = extension_sorting->GetAppLaunchOrdinal( 316 syncer::StringOrdinal ext2_app_launch =
313 ext2_->id()); 317 extension_sorting->GetAppLaunchOrdinal(ext2_->id());
314 StringOrdinal ext3_app_launch = extension_sorting->GetAppLaunchOrdinal( 318 syncer::StringOrdinal ext3_app_launch =
315 ext3_->id()); 319 extension_sorting->GetAppLaunchOrdinal(ext3_->id());
316 320
317 // The overlapping extensions should have be adjusted so that they are 321 // The overlapping extensions should have be adjusted so that they are
318 // sorted by their id. 322 // sorted by their id.
319 EXPECT_EQ(ext1_->id() < ext2_->id(), 323 EXPECT_EQ(ext1_->id() < ext2_->id(),
320 ext1_app_launch.LessThan(ext2_app_launch)); 324 ext1_app_launch.LessThan(ext2_app_launch));
321 EXPECT_EQ(ext1_->id() < ext3_->id(), 325 EXPECT_EQ(ext1_->id() < ext3_->id(),
322 ext1_app_launch.LessThan(ext3_app_launch)); 326 ext1_app_launch.LessThan(ext3_app_launch));
323 EXPECT_EQ(ext2_->id() < ext3_->id(), 327 EXPECT_EQ(ext2_->id() < ext3_->id(),
324 ext2_app_launch.LessThan(ext3_app_launch)); 328 ext2_app_launch.LessThan(ext3_app_launch));
325 329
326 // The page ordinal should be unchanged. 330 // The page ordinal should be unchanged.
327 EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext1_->id()).Equal( 331 EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext1_->id()).Equals(
328 repeated_ordinal_)); 332 repeated_ordinal_));
329 EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext2_->id()).Equal( 333 EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext2_->id()).Equals(
330 repeated_ordinal_)); 334 repeated_ordinal_));
331 EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext3_->id()).Equal( 335 EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext3_->id()).Equals(
332 repeated_ordinal_)); 336 repeated_ordinal_));
333 } 337 }
334 338
335 private: 339 private:
336 StringOrdinal repeated_ordinal_; 340 syncer::StringOrdinal repeated_ordinal_;
337 }; 341 };
338 TEST_F(ExtensionSortingFixNTPCollisionsAllCollide, 342 TEST_F(ExtensionSortingFixNTPCollisionsAllCollide,
339 ExtensionSortingFixNTPCollisionsAllCollide) {} 343 ExtensionSortingFixNTPCollisionsAllCollide) {}
340 344
341 class ExtensionSortingFixNTPCollisionsSomeCollideAtStart 345 class ExtensionSortingFixNTPCollisionsSomeCollideAtStart
342 : public extensions::ExtensionPrefsPrepopulatedTest { 346 : public extensions::ExtensionPrefsPrepopulatedTest {
343 public: 347 public:
344 ExtensionSortingFixNTPCollisionsSomeCollideAtStart() {} 348 ExtensionSortingFixNTPCollisionsSomeCollideAtStart() {}
345 virtual ~ExtensionSortingFixNTPCollisionsSomeCollideAtStart() {} 349 virtual ~ExtensionSortingFixNTPCollisionsSomeCollideAtStart() {}
346 350
347 virtual void Initialize() OVERRIDE { 351 virtual void Initialize() OVERRIDE {
348 first_ordinal_ = StringOrdinal::CreateInitialOrdinal(); 352 first_ordinal_ = syncer::StringOrdinal::CreateInitialOrdinal();
349 StringOrdinal second_ordinal = first_ordinal_.CreateAfter(); 353 syncer::StringOrdinal second_ordinal = first_ordinal_.CreateAfter();
350 354
351 ExtensionSorting* extension_sorting = prefs()->extension_sorting(); 355 ExtensionSorting* extension_sorting = prefs()->extension_sorting();
352 356
353 // Have the first two extension in the same position, with a third 357 // Have the first two extension in the same position, with a third
354 // (non-colliding) extension after. 358 // (non-colliding) extension after.
355 359
356 extension_sorting->SetAppLaunchOrdinal(ext1_->id(), first_ordinal_); 360 extension_sorting->SetAppLaunchOrdinal(ext1_->id(), first_ordinal_);
357 extension_sorting->SetPageOrdinal(ext1_->id(), first_ordinal_); 361 extension_sorting->SetPageOrdinal(ext1_->id(), first_ordinal_);
358 362
359 extension_sorting->SetAppLaunchOrdinal(ext2_->id(), first_ordinal_); 363 extension_sorting->SetAppLaunchOrdinal(ext2_->id(), first_ordinal_);
360 extension_sorting->SetPageOrdinal(ext2_->id(), first_ordinal_); 364 extension_sorting->SetPageOrdinal(ext2_->id(), first_ordinal_);
361 365
362 extension_sorting->SetAppLaunchOrdinal(ext3_->id(), second_ordinal); 366 extension_sorting->SetAppLaunchOrdinal(ext3_->id(), second_ordinal);
363 extension_sorting->SetPageOrdinal(ext3_->id(), first_ordinal_); 367 extension_sorting->SetPageOrdinal(ext3_->id(), first_ordinal_);
364 368
365 extension_sorting->FixNTPOrdinalCollisions(); 369 extension_sorting->FixNTPOrdinalCollisions();
366 } 370 }
367 virtual void Verify() OVERRIDE { 371 virtual void Verify() OVERRIDE {
368 ExtensionSorting* extension_sorting = prefs()->extension_sorting(); 372 ExtensionSorting* extension_sorting = prefs()->extension_sorting();
369 StringOrdinal ext1_app_launch = extension_sorting->GetAppLaunchOrdinal( 373 syncer::StringOrdinal ext1_app_launch =
370 ext1_->id()); 374 extension_sorting->GetAppLaunchOrdinal(ext1_->id());
371 StringOrdinal ext2_app_launch = extension_sorting->GetAppLaunchOrdinal( 375 syncer::StringOrdinal ext2_app_launch =
372 ext2_->id()); 376 extension_sorting->GetAppLaunchOrdinal(ext2_->id());
373 StringOrdinal ext3_app_launch = extension_sorting->GetAppLaunchOrdinal( 377 syncer::StringOrdinal ext3_app_launch =
374 ext3_->id()); 378 extension_sorting->GetAppLaunchOrdinal(ext3_->id());
375 379
376 // The overlapping extensions should have be adjusted so that they are 380 // The overlapping extensions should have be adjusted so that they are
377 // sorted by their id, but they both should be before ext3, which wasn't 381 // sorted by their id, but they both should be before ext3, which wasn't
378 // overlapping. 382 // overlapping.
379 EXPECT_EQ(ext1_->id() < ext2_->id(), 383 EXPECT_EQ(ext1_->id() < ext2_->id(),
380 ext1_app_launch.LessThan(ext2_app_launch)); 384 ext1_app_launch.LessThan(ext2_app_launch));
381 EXPECT_TRUE(ext1_app_launch.LessThan(ext3_app_launch)); 385 EXPECT_TRUE(ext1_app_launch.LessThan(ext3_app_launch));
382 EXPECT_TRUE(ext2_app_launch.LessThan(ext3_app_launch)); 386 EXPECT_TRUE(ext2_app_launch.LessThan(ext3_app_launch));
383 387
384 // The page ordinal should be unchanged. 388 // The page ordinal should be unchanged.
385 EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext1_->id()).Equal( 389 EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext1_->id()).Equals(
386 first_ordinal_)); 390 first_ordinal_));
387 EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext2_->id()).Equal( 391 EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext2_->id()).Equals(
388 first_ordinal_)); 392 first_ordinal_));
389 EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext3_->id()).Equal( 393 EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext3_->id()).Equals(
390 first_ordinal_)); 394 first_ordinal_));
391 } 395 }
392 396
393 private: 397 private:
394 StringOrdinal first_ordinal_; 398 syncer::StringOrdinal first_ordinal_;
395 }; 399 };
396 TEST_F(ExtensionSortingFixNTPCollisionsSomeCollideAtStart, 400 TEST_F(ExtensionSortingFixNTPCollisionsSomeCollideAtStart,
397 ExtensionSortingFixNTPCollisionsSomeCollideAtStart) {} 401 ExtensionSortingFixNTPCollisionsSomeCollideAtStart) {}
398 402
399 class ExtensionSortingFixNTPCollisionsSomeCollideAtEnd 403 class ExtensionSortingFixNTPCollisionsSomeCollideAtEnd
400 : public extensions::ExtensionPrefsPrepopulatedTest { 404 : public extensions::ExtensionPrefsPrepopulatedTest {
401 public: 405 public:
402 ExtensionSortingFixNTPCollisionsSomeCollideAtEnd() {} 406 ExtensionSortingFixNTPCollisionsSomeCollideAtEnd() {}
403 virtual ~ExtensionSortingFixNTPCollisionsSomeCollideAtEnd() {} 407 virtual ~ExtensionSortingFixNTPCollisionsSomeCollideAtEnd() {}
404 408
405 virtual void Initialize() OVERRIDE { 409 virtual void Initialize() OVERRIDE {
406 first_ordinal_ = StringOrdinal::CreateInitialOrdinal(); 410 first_ordinal_ = syncer::StringOrdinal::CreateInitialOrdinal();
407 StringOrdinal second_ordinal = first_ordinal_.CreateAfter(); 411 syncer::StringOrdinal second_ordinal = first_ordinal_.CreateAfter();
408 412
409 ExtensionSorting* extension_sorting = prefs()->extension_sorting(); 413 ExtensionSorting* extension_sorting = prefs()->extension_sorting();
410 414
411 // Have the first extension in a non-colliding position, followed by two 415 // Have the first extension in a non-colliding position, followed by two
412 // two extension in the same position. 416 // two extension in the same position.
413 417
414 extension_sorting->SetAppLaunchOrdinal(ext1_->id(), first_ordinal_); 418 extension_sorting->SetAppLaunchOrdinal(ext1_->id(), first_ordinal_);
415 extension_sorting->SetPageOrdinal(ext1_->id(), first_ordinal_); 419 extension_sorting->SetPageOrdinal(ext1_->id(), first_ordinal_);
416 420
417 extension_sorting->SetAppLaunchOrdinal(ext2_->id(), second_ordinal); 421 extension_sorting->SetAppLaunchOrdinal(ext2_->id(), second_ordinal);
418 extension_sorting->SetPageOrdinal(ext2_->id(), first_ordinal_); 422 extension_sorting->SetPageOrdinal(ext2_->id(), first_ordinal_);
419 423
420 extension_sorting->SetAppLaunchOrdinal(ext3_->id(), second_ordinal); 424 extension_sorting->SetAppLaunchOrdinal(ext3_->id(), second_ordinal);
421 extension_sorting->SetPageOrdinal(ext3_->id(), first_ordinal_); 425 extension_sorting->SetPageOrdinal(ext3_->id(), first_ordinal_);
422 426
423 extension_sorting->FixNTPOrdinalCollisions(); 427 extension_sorting->FixNTPOrdinalCollisions();
424 } 428 }
425 virtual void Verify() OVERRIDE { 429 virtual void Verify() OVERRIDE {
426 ExtensionSorting* extension_sorting = prefs()->extension_sorting(); 430 ExtensionSorting* extension_sorting = prefs()->extension_sorting();
427 StringOrdinal ext1_app_launch = extension_sorting->GetAppLaunchOrdinal( 431 syncer::StringOrdinal ext1_app_launch =
428 ext1_->id()); 432 extension_sorting->GetAppLaunchOrdinal(ext1_->id());
429 StringOrdinal ext2_app_launch = extension_sorting->GetAppLaunchOrdinal( 433 syncer::StringOrdinal ext2_app_launch =
430 ext2_->id()); 434 extension_sorting->GetAppLaunchOrdinal(ext2_->id());
431 StringOrdinal ext3_app_launch = extension_sorting->GetAppLaunchOrdinal( 435 syncer::StringOrdinal ext3_app_launch =
432 ext3_->id()); 436 extension_sorting->GetAppLaunchOrdinal(ext3_->id());
433 437
434 // The overlapping extensions should have be adjusted so that they are 438 // The overlapping extensions should have be adjusted so that they are
435 // sorted by their id, but they both should be after ext1, which wasn't 439 // sorted by their id, but they both should be after ext1, which wasn't
436 // overlapping. 440 // overlapping.
437 EXPECT_TRUE(ext1_app_launch.LessThan(ext2_app_launch)); 441 EXPECT_TRUE(ext1_app_launch.LessThan(ext2_app_launch));
438 EXPECT_TRUE(ext1_app_launch.LessThan(ext3_app_launch)); 442 EXPECT_TRUE(ext1_app_launch.LessThan(ext3_app_launch));
439 EXPECT_EQ(ext2_->id() < ext3_->id(), 443 EXPECT_EQ(ext2_->id() < ext3_->id(),
440 ext2_app_launch.LessThan(ext3_app_launch)); 444 ext2_app_launch.LessThan(ext3_app_launch));
441 445
442 // The page ordinal should be unchanged. 446 // The page ordinal should be unchanged.
443 EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext1_->id()).Equal( 447 EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext1_->id()).Equals(
444 first_ordinal_)); 448 first_ordinal_));
445 EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext2_->id()).Equal( 449 EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext2_->id()).Equals(
446 first_ordinal_)); 450 first_ordinal_));
447 EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext3_->id()).Equal( 451 EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext3_->id()).Equals(
448 first_ordinal_)); 452 first_ordinal_));
449 } 453 }
450 454
451 private: 455 private:
452 StringOrdinal first_ordinal_; 456 syncer::StringOrdinal first_ordinal_;
453 }; 457 };
454 TEST_F(ExtensionSortingFixNTPCollisionsSomeCollideAtEnd, 458 TEST_F(ExtensionSortingFixNTPCollisionsSomeCollideAtEnd,
455 ExtensionSortingFixNTPCollisionsSomeCollideAtEnd) {} 459 ExtensionSortingFixNTPCollisionsSomeCollideAtEnd) {}
456 460
457 class ExtensionSortingFixNTPCollisionsTwoCollisions 461 class ExtensionSortingFixNTPCollisionsTwoCollisions
458 : public extensions::ExtensionPrefsPrepopulatedTest { 462 : public extensions::ExtensionPrefsPrepopulatedTest {
459 public: 463 public:
460 ExtensionSortingFixNTPCollisionsTwoCollisions() {} 464 ExtensionSortingFixNTPCollisionsTwoCollisions() {}
461 virtual ~ExtensionSortingFixNTPCollisionsTwoCollisions() {} 465 virtual ~ExtensionSortingFixNTPCollisionsTwoCollisions() {}
462 466
463 virtual void Initialize() OVERRIDE { 467 virtual void Initialize() OVERRIDE {
464 first_ordinal_ = StringOrdinal::CreateInitialOrdinal(); 468 first_ordinal_ = syncer::StringOrdinal::CreateInitialOrdinal();
465 StringOrdinal second_ordinal = first_ordinal_.CreateAfter(); 469 syncer::StringOrdinal second_ordinal = first_ordinal_.CreateAfter();
466 470
467 ExtensionSorting* extension_sorting = prefs()->extension_sorting(); 471 ExtensionSorting* extension_sorting = prefs()->extension_sorting();
468 472
469 // Have two extensions colliding, followed by two more colliding extensions. 473 // Have two extensions colliding, followed by two more colliding extensions.
470 extension_sorting->SetAppLaunchOrdinal(ext1_->id(), first_ordinal_); 474 extension_sorting->SetAppLaunchOrdinal(ext1_->id(), first_ordinal_);
471 extension_sorting->SetPageOrdinal(ext1_->id(), first_ordinal_); 475 extension_sorting->SetPageOrdinal(ext1_->id(), first_ordinal_);
472 476
473 extension_sorting->SetAppLaunchOrdinal(ext2_->id(), first_ordinal_); 477 extension_sorting->SetAppLaunchOrdinal(ext2_->id(), first_ordinal_);
474 extension_sorting->SetPageOrdinal(ext2_->id(), first_ordinal_); 478 extension_sorting->SetPageOrdinal(ext2_->id(), first_ordinal_);
475 479
476 extension_sorting->SetAppLaunchOrdinal(ext3_->id(), second_ordinal); 480 extension_sorting->SetAppLaunchOrdinal(ext3_->id(), second_ordinal);
477 extension_sorting->SetPageOrdinal(ext3_->id(), first_ordinal_); 481 extension_sorting->SetPageOrdinal(ext3_->id(), first_ordinal_);
478 482
479 extension_sorting->SetAppLaunchOrdinal(ext4_->id(), second_ordinal); 483 extension_sorting->SetAppLaunchOrdinal(ext4_->id(), second_ordinal);
480 extension_sorting->SetPageOrdinal(ext4_->id(), first_ordinal_); 484 extension_sorting->SetPageOrdinal(ext4_->id(), first_ordinal_);
481 485
482 extension_sorting->FixNTPOrdinalCollisions(); 486 extension_sorting->FixNTPOrdinalCollisions();
483 } 487 }
484 virtual void Verify() OVERRIDE { 488 virtual void Verify() OVERRIDE {
485 ExtensionSorting* extension_sorting = prefs()->extension_sorting(); 489 ExtensionSorting* extension_sorting = prefs()->extension_sorting();
486 StringOrdinal ext1_app_launch = extension_sorting->GetAppLaunchOrdinal( 490 syncer::StringOrdinal ext1_app_launch =
487 ext1_->id()); 491 extension_sorting->GetAppLaunchOrdinal(ext1_->id());
488 StringOrdinal ext2_app_launch = extension_sorting->GetAppLaunchOrdinal( 492 syncer::StringOrdinal ext2_app_launch =
489 ext2_->id()); 493 extension_sorting->GetAppLaunchOrdinal(ext2_->id());
490 StringOrdinal ext3_app_launch = extension_sorting->GetAppLaunchOrdinal( 494 syncer::StringOrdinal ext3_app_launch =
491 ext3_->id()); 495 extension_sorting->GetAppLaunchOrdinal(ext3_->id());
492 StringOrdinal ext4_app_launch = extension_sorting->GetAppLaunchOrdinal( 496 syncer::StringOrdinal ext4_app_launch =
493 ext4_->id()); 497 extension_sorting->GetAppLaunchOrdinal(ext4_->id());
494 498
495 // The overlapping extensions should have be adjusted so that they are 499 // The overlapping extensions should have be adjusted so that they are
496 // sorted by their id, with |ext1| and |ext2| appearing before |ext3| and 500 // sorted by their id, with |ext1| and |ext2| appearing before |ext3| and
497 // |ext4|. 501 // |ext4|.
498 EXPECT_TRUE(ext1_app_launch.LessThan(ext3_app_launch)); 502 EXPECT_TRUE(ext1_app_launch.LessThan(ext3_app_launch));
499 EXPECT_TRUE(ext1_app_launch.LessThan(ext4_app_launch)); 503 EXPECT_TRUE(ext1_app_launch.LessThan(ext4_app_launch));
500 EXPECT_TRUE(ext2_app_launch.LessThan(ext3_app_launch)); 504 EXPECT_TRUE(ext2_app_launch.LessThan(ext3_app_launch));
501 EXPECT_TRUE(ext2_app_launch.LessThan(ext4_app_launch)); 505 EXPECT_TRUE(ext2_app_launch.LessThan(ext4_app_launch));
502 506
503 EXPECT_EQ(ext1_->id() < ext2_->id(), 507 EXPECT_EQ(ext1_->id() < ext2_->id(),
504 ext1_app_launch.LessThan(ext2_app_launch)); 508 ext1_app_launch.LessThan(ext2_app_launch));
505 EXPECT_EQ(ext3_->id() < ext4_->id(), 509 EXPECT_EQ(ext3_->id() < ext4_->id(),
506 ext3_app_launch.LessThan(ext4_app_launch)); 510 ext3_app_launch.LessThan(ext4_app_launch));
507 511
508 // The page ordinal should be unchanged. 512 // The page ordinal should be unchanged.
509 EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext1_->id()).Equal( 513 EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext1_->id()).Equals(
510 first_ordinal_)); 514 first_ordinal_));
511 EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext2_->id()).Equal( 515 EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext2_->id()).Equals(
512 first_ordinal_)); 516 first_ordinal_));
513 EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext3_->id()).Equal( 517 EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext3_->id()).Equals(
514 first_ordinal_)); 518 first_ordinal_));
515 EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext4_->id()).Equal( 519 EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext4_->id()).Equals(
516 first_ordinal_)); 520 first_ordinal_));
517 } 521 }
518 522
519 private: 523 private:
520 StringOrdinal first_ordinal_; 524 syncer::StringOrdinal first_ordinal_;
521 }; 525 };
522 TEST_F(ExtensionSortingFixNTPCollisionsTwoCollisions, 526 TEST_F(ExtensionSortingFixNTPCollisionsTwoCollisions,
523 ExtensionSortingFixNTPCollisionsTwoCollisions) {} 527 ExtensionSortingFixNTPCollisionsTwoCollisions) {}
524 528
525 class ExtensionSortingEnsureValidOrdinals : 529 class ExtensionSortingEnsureValidOrdinals :
526 public extensions::ExtensionPrefsPrepopulatedTest { 530 public extensions::ExtensionPrefsPrepopulatedTest {
527 public : 531 public :
528 ExtensionSortingEnsureValidOrdinals() {} 532 ExtensionSortingEnsureValidOrdinals() {}
529 ~ExtensionSortingEnsureValidOrdinals() {} 533 ~ExtensionSortingEnsureValidOrdinals() {}
530 534
531 virtual void Initialize() {} 535 virtual void Initialize() {}
532 virtual void Verify() { 536 virtual void Verify() {
533 ExtensionSorting* extension_sorting = prefs()->extension_sorting(); 537 ExtensionSorting* extension_sorting = prefs()->extension_sorting();
534 538
535 // Give ext1 invalid ordinals and then check that EnsureValidOridnals fixes 539 // Give ext1 invalid ordinals and then check that EnsureValidOrdinals fixes
536 // them. 540 // them.
537 extension_sorting->SetAppLaunchOrdinal(ext1_->id(), StringOrdinal()); 541 extension_sorting->SetAppLaunchOrdinal(ext1_->id(),
538 extension_sorting->SetPageOrdinal(ext1_->id(), StringOrdinal()); 542 syncer::StringOrdinal());
543 extension_sorting->SetPageOrdinal(ext1_->id(), syncer::StringOrdinal());
539 544
540 extension_sorting->EnsureValidOrdinals(ext1_->id()); 545 extension_sorting->EnsureValidOrdinals(ext1_->id());
541 546
542 EXPECT_TRUE(extension_sorting->GetAppLaunchOrdinal(ext1_->id()).IsValid()); 547 EXPECT_TRUE(extension_sorting->GetAppLaunchOrdinal(ext1_->id()).IsValid());
543 EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext1_->id()).IsValid()); 548 EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext1_->id()).IsValid());
544 } 549 }
545 }; 550 };
546 TEST_F(ExtensionSortingEnsureValidOrdinals, 551 TEST_F(ExtensionSortingEnsureValidOrdinals,
547 ExtensionSortingEnsureValidOrdinals) {} 552 ExtensionSortingEnsureValidOrdinals) {}
548 553
549 class ExtensionSortingPageOrdinalMapping : 554 class ExtensionSortingPageOrdinalMapping :
550 public extensions::ExtensionPrefsPrepopulatedTest { 555 public extensions::ExtensionPrefsPrepopulatedTest {
551 public: 556 public:
552 ExtensionSortingPageOrdinalMapping() {} 557 ExtensionSortingPageOrdinalMapping() {}
553 virtual ~ExtensionSortingPageOrdinalMapping() {} 558 virtual ~ExtensionSortingPageOrdinalMapping() {}
554 559
555 virtual void Initialize() {} 560 virtual void Initialize() {}
556 virtual void Verify() { 561 virtual void Verify() {
557 std::string ext_1 = "ext_1"; 562 std::string ext_1 = "ext_1";
558 std::string ext_2 = "ext_2"; 563 std::string ext_2 = "ext_2";
559 564
560 ExtensionSorting* extension_sorting = prefs()->extension_sorting(); 565 ExtensionSorting* extension_sorting = prefs()->extension_sorting();
561 StringOrdinal first_ordinal = StringOrdinal::CreateInitialOrdinal(); 566 syncer::StringOrdinal first_ordinal =
567 syncer::StringOrdinal::CreateInitialOrdinal();
562 568
563 // Ensure attempting to removing a mapping with an invalid page doesn't 569 // Ensure attempting to removing a mapping with an invalid page doesn't
564 // modify the map. 570 // modify the map.
565 EXPECT_TRUE(extension_sorting->ntp_ordinal_map_.empty()); 571 EXPECT_TRUE(extension_sorting->ntp_ordinal_map_.empty());
566 extension_sorting->RemoveOrdinalMapping( 572 extension_sorting->RemoveOrdinalMapping(
567 ext_1, first_ordinal, first_ordinal); 573 ext_1, first_ordinal, first_ordinal);
568 EXPECT_TRUE(extension_sorting->ntp_ordinal_map_.empty()); 574 EXPECT_TRUE(extension_sorting->ntp_ordinal_map_.empty());
569 575
570 // Add new mappings. 576 // Add new mappings.
571 extension_sorting->AddOrdinalMapping(ext_1, first_ordinal, first_ordinal); 577 extension_sorting->AddOrdinalMapping(ext_1, first_ordinal, first_ordinal);
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
615 simple_dict.SetString(keys::kApp, "true"); 621 simple_dict.SetString(keys::kApp, "true");
616 simple_dict.SetString(keys::kLaunchLocalPath, "fake.html"); 622 simple_dict.SetString(keys::kLaunchLocalPath, "fake.html");
617 623
618 std::string error; 624 std::string error;
619 app1_scoped_ = Extension::Create( 625 app1_scoped_ = Extension::Create(
620 prefs_.temp_dir().AppendASCII("app1_"), Extension::EXTERNAL_PREF, 626 prefs_.temp_dir().AppendASCII("app1_"), Extension::EXTERNAL_PREF,
621 simple_dict, Extension::NO_FLAGS, &error); 627 simple_dict, Extension::NO_FLAGS, &error);
622 prefs()->OnExtensionInstalled(app1_scoped_.get(), 628 prefs()->OnExtensionInstalled(app1_scoped_.get(),
623 Extension::ENABLED, 629 Extension::ENABLED,
624 false, 630 false,
625 StringOrdinal()); 631 syncer::StringOrdinal());
626 632
627 app2_scoped_ = Extension::Create( 633 app2_scoped_ = Extension::Create(
628 prefs_.temp_dir().AppendASCII("app2_"), Extension::EXTERNAL_PREF, 634 prefs_.temp_dir().AppendASCII("app2_"), Extension::EXTERNAL_PREF,
629 simple_dict, Extension::NO_FLAGS, &error); 635 simple_dict, Extension::NO_FLAGS, &error);
630 prefs()->OnExtensionInstalled(app2_scoped_.get(), 636 prefs()->OnExtensionInstalled(app2_scoped_.get(),
631 Extension::ENABLED, 637 Extension::ENABLED,
632 false, 638 false,
633 StringOrdinal()); 639 syncer::StringOrdinal());
634 640
635 app1_ = app1_scoped_.get(); 641 app1_ = app1_scoped_.get();
636 app2_ = app2_scoped_.get(); 642 app2_ = app2_scoped_.get();
637 } 643 }
638 virtual ~ExtensionSortingPreinstalledAppsBase() {} 644 virtual ~ExtensionSortingPreinstalledAppsBase() {}
639 645
640 protected: 646 protected:
641 // Weak references, for convenience. 647 // Weak references, for convenience.
642 Extension* app1_; 648 Extension* app1_;
643 Extension* app2_; 649 Extension* app2_;
644 650
645 private: 651 private:
646 scoped_refptr<Extension> app1_scoped_; 652 scoped_refptr<Extension> app1_scoped_;
647 scoped_refptr<Extension> app2_scoped_; 653 scoped_refptr<Extension> app2_scoped_;
648 }; 654 };
649 655
650 class ExtensionSortingGetMinOrMaxAppLaunchOrdinalsOnPage : 656 class ExtensionSortingGetMinOrMaxAppLaunchOrdinalsOnPage :
651 public ExtensionSortingPreinstalledAppsBase { 657 public ExtensionSortingPreinstalledAppsBase {
652 public: 658 public:
653 ExtensionSortingGetMinOrMaxAppLaunchOrdinalsOnPage() {} 659 ExtensionSortingGetMinOrMaxAppLaunchOrdinalsOnPage() {}
654 virtual ~ExtensionSortingGetMinOrMaxAppLaunchOrdinalsOnPage() {} 660 virtual ~ExtensionSortingGetMinOrMaxAppLaunchOrdinalsOnPage() {}
655 661
656 virtual void Initialize() OVERRIDE {} 662 virtual void Initialize() OVERRIDE {}
657 virtual void Verify() OVERRIDE { 663 virtual void Verify() OVERRIDE {
658 StringOrdinal page = StringOrdinal::CreateInitialOrdinal(); 664 syncer::StringOrdinal page = syncer::StringOrdinal::CreateInitialOrdinal();
659 ExtensionSorting* extension_sorting = prefs()->extension_sorting(); 665 ExtensionSorting* extension_sorting = prefs()->extension_sorting();
660 666
661 StringOrdinal min = extension_sorting->GetMinOrMaxAppLaunchOrdinalsOnPage( 667 syncer::StringOrdinal min =
662 page, 668 extension_sorting->GetMinOrMaxAppLaunchOrdinalsOnPage(
663 ExtensionSorting::MIN_ORDINAL); 669 page,
664 StringOrdinal max = extension_sorting->GetMinOrMaxAppLaunchOrdinalsOnPage( 670 ExtensionSorting::MIN_ORDINAL);
665 page, 671 syncer::StringOrdinal max =
666 ExtensionSorting::MAX_ORDINAL); 672 extension_sorting->GetMinOrMaxAppLaunchOrdinalsOnPage(
673 page,
674 ExtensionSorting::MAX_ORDINAL);
667 EXPECT_TRUE(min.IsValid()); 675 EXPECT_TRUE(min.IsValid());
668 EXPECT_TRUE(max.IsValid()); 676 EXPECT_TRUE(max.IsValid());
669 EXPECT_TRUE(min.LessThan(max)); 677 EXPECT_TRUE(min.LessThan(max));
670 678
671 // Ensure that the min and max values aren't set for empty pages. 679 // Ensure that the min and max values aren't set for empty pages.
672 min = StringOrdinal(); 680 min = syncer::StringOrdinal();
673 max = StringOrdinal(); 681 max = syncer::StringOrdinal();
674 StringOrdinal empty_page = page.CreateAfter(); 682 syncer::StringOrdinal empty_page = page.CreateAfter();
675 EXPECT_FALSE(min.IsValid()); 683 EXPECT_FALSE(min.IsValid());
676 EXPECT_FALSE(max.IsValid()); 684 EXPECT_FALSE(max.IsValid());
677 min = extension_sorting->GetMinOrMaxAppLaunchOrdinalsOnPage( 685 min = extension_sorting->GetMinOrMaxAppLaunchOrdinalsOnPage(
678 empty_page, 686 empty_page,
679 ExtensionSorting::MIN_ORDINAL); 687 ExtensionSorting::MIN_ORDINAL);
680 max = extension_sorting->GetMinOrMaxAppLaunchOrdinalsOnPage( 688 max = extension_sorting->GetMinOrMaxAppLaunchOrdinalsOnPage(
681 empty_page, 689 empty_page,
682 ExtensionSorting::MAX_ORDINAL); 690 ExtensionSorting::MAX_ORDINAL);
683 EXPECT_FALSE(min.IsValid()); 691 EXPECT_FALSE(min.IsValid());
684 EXPECT_FALSE(max.IsValid()); 692 EXPECT_FALSE(max.IsValid());
685 } 693 }
686 }; 694 };
687 TEST_F(ExtensionSortingGetMinOrMaxAppLaunchOrdinalsOnPage, 695 TEST_F(ExtensionSortingGetMinOrMaxAppLaunchOrdinalsOnPage,
688 ExtensionSortingGetMinOrMaxAppLaunchOrdinalsOnPage) {} 696 ExtensionSortingGetMinOrMaxAppLaunchOrdinalsOnPage) {}
689 697
690 // Make sure that empty pages aren't removed from the integer to ordinal 698 // Make sure that empty pages aren't removed from the integer to ordinal
691 // mapping. See http://www.crbug.com/109802 for details. 699 // mapping. See http://www.crbug.com/109802 for details.
692 class ExtensionSortingKeepEmptyStringOrdinalPages : 700 class ExtensionSortingKeepEmptyStringOrdinalPages :
693 public ExtensionSortingPreinstalledAppsBase { 701 public ExtensionSortingPreinstalledAppsBase {
694 public: 702 public:
695 ExtensionSortingKeepEmptyStringOrdinalPages() {} 703 ExtensionSortingKeepEmptyStringOrdinalPages() {}
696 virtual ~ExtensionSortingKeepEmptyStringOrdinalPages() {} 704 virtual ~ExtensionSortingKeepEmptyStringOrdinalPages() {}
697 705
698 virtual void Initialize() { 706 virtual void Initialize() {
699 ExtensionSorting* extension_sorting = prefs()->extension_sorting(); 707 ExtensionSorting* extension_sorting = prefs()->extension_sorting();
700 708
701 StringOrdinal first_page = StringOrdinal::CreateInitialOrdinal(); 709 syncer::StringOrdinal first_page =
710 syncer::StringOrdinal::CreateInitialOrdinal();
702 extension_sorting->SetPageOrdinal(app1_->id(), first_page); 711 extension_sorting->SetPageOrdinal(app1_->id(), first_page);
703 EXPECT_EQ(0, extension_sorting->PageStringOrdinalAsInteger(first_page)); 712 EXPECT_EQ(0, extension_sorting->PageStringOrdinalAsInteger(first_page));
704 713
705 last_page_ = first_page.CreateAfter(); 714 last_page_ = first_page.CreateAfter();
706 extension_sorting->SetPageOrdinal(app2_->id(), last_page_); 715 extension_sorting->SetPageOrdinal(app2_->id(), last_page_);
707 EXPECT_EQ(1, extension_sorting->PageStringOrdinalAsInteger(last_page_)); 716 EXPECT_EQ(1, extension_sorting->PageStringOrdinalAsInteger(last_page_));
708 717
709 // Move the second app to create an empty page. 718 // Move the second app to create an empty page.
710 extension_sorting->SetPageOrdinal(app2_->id(), first_page); 719 extension_sorting->SetPageOrdinal(app2_->id(), first_page);
711 EXPECT_EQ(0, extension_sorting->PageStringOrdinalAsInteger(first_page)); 720 EXPECT_EQ(0, extension_sorting->PageStringOrdinalAsInteger(first_page));
712 } 721 }
713 virtual void Verify() { 722 virtual void Verify() {
714 ExtensionSorting* extension_sorting = prefs()->extension_sorting(); 723 ExtensionSorting* extension_sorting = prefs()->extension_sorting();
715 724
716 // Move the second app to a new empty page at the end, skipping over 725 // Move the second app to a new empty page at the end, skipping over
717 // the current empty page. 726 // the current empty page.
718 last_page_ = last_page_.CreateAfter(); 727 last_page_ = last_page_.CreateAfter();
719 extension_sorting->SetPageOrdinal(app2_->id(), last_page_); 728 extension_sorting->SetPageOrdinal(app2_->id(), last_page_);
720 EXPECT_EQ(2, extension_sorting->PageStringOrdinalAsInteger(last_page_)); 729 EXPECT_EQ(2, extension_sorting->PageStringOrdinalAsInteger(last_page_));
721 EXPECT_TRUE( 730 EXPECT_TRUE(
722 last_page_.Equal(extension_sorting->PageIntegerAsStringOrdinal(2))); 731 last_page_.Equals(extension_sorting->PageIntegerAsStringOrdinal(2)));
723 } 732 }
724 733
725 private: 734 private:
726 StringOrdinal last_page_; 735 syncer::StringOrdinal last_page_;
727 }; 736 };
728 TEST_F(ExtensionSortingKeepEmptyStringOrdinalPages, 737 TEST_F(ExtensionSortingKeepEmptyStringOrdinalPages,
729 ExtensionSortingKeepEmptyStringOrdinalPages) {} 738 ExtensionSortingKeepEmptyStringOrdinalPages) {}
730 739
731 class ExtensionSortingMakesFillerOrdinals : 740 class ExtensionSortingMakesFillerOrdinals :
732 public ExtensionSortingPreinstalledAppsBase { 741 public ExtensionSortingPreinstalledAppsBase {
733 public: 742 public:
734 ExtensionSortingMakesFillerOrdinals() {} 743 ExtensionSortingMakesFillerOrdinals() {}
735 virtual ~ExtensionSortingMakesFillerOrdinals() {} 744 virtual ~ExtensionSortingMakesFillerOrdinals() {}
736 745
737 virtual void Initialize() { 746 virtual void Initialize() {
738 ExtensionSorting* extension_sorting = prefs()->extension_sorting(); 747 ExtensionSorting* extension_sorting = prefs()->extension_sorting();
739 748
740 StringOrdinal first_page = StringOrdinal::CreateInitialOrdinal(); 749 syncer::StringOrdinal first_page =
750 syncer::StringOrdinal::CreateInitialOrdinal();
741 extension_sorting->SetPageOrdinal(app1_->id(), first_page); 751 extension_sorting->SetPageOrdinal(app1_->id(), first_page);
742 EXPECT_EQ(0, extension_sorting->PageStringOrdinalAsInteger(first_page)); 752 EXPECT_EQ(0, extension_sorting->PageStringOrdinalAsInteger(first_page));
743 } 753 }
744 virtual void Verify() { 754 virtual void Verify() {
745 ExtensionSorting* extension_sorting = prefs()->extension_sorting(); 755 ExtensionSorting* extension_sorting = prefs()->extension_sorting();
746 756
747 // Because the UI can add an unlimited number of empty pages without an app 757 // Because the UI can add an unlimited number of empty pages without an app
748 // on them, this test simulates dropping of an app on the 1st and 4th empty 758 // on them, this test simulates dropping of an app on the 1st and 4th empty
749 // pages (3rd and 6th pages by index) to ensure we don't crash and that 759 // pages (3rd and 6th pages by index) to ensure we don't crash and that
750 // filler ordinals are created as needed. See: http://crbug.com/122214 760 // filler ordinals are created as needed. See: http://crbug.com/122214
751 StringOrdinal page_three = extension_sorting->PageIntegerAsStringOrdinal(2); 761 syncer::StringOrdinal page_three =
762 extension_sorting->PageIntegerAsStringOrdinal(2);
752 extension_sorting->SetPageOrdinal(app1_->id(), page_three); 763 extension_sorting->SetPageOrdinal(app1_->id(), page_three);
753 EXPECT_EQ(2, extension_sorting->PageStringOrdinalAsInteger(page_three)); 764 EXPECT_EQ(2, extension_sorting->PageStringOrdinalAsInteger(page_three));
754 765
755 StringOrdinal page_six = extension_sorting->PageIntegerAsStringOrdinal(5); 766 syncer::StringOrdinal page_six =
767 extension_sorting->PageIntegerAsStringOrdinal(5);
756 extension_sorting->SetPageOrdinal(app1_->id(), page_six); 768 extension_sorting->SetPageOrdinal(app1_->id(), page_six);
757 EXPECT_EQ(5, extension_sorting->PageStringOrdinalAsInteger(page_six)); 769 EXPECT_EQ(5, extension_sorting->PageStringOrdinalAsInteger(page_six));
758 } 770 }
759 }; 771 };
760 TEST_F(ExtensionSortingMakesFillerOrdinals, 772 TEST_F(ExtensionSortingMakesFillerOrdinals,
761 ExtensionSortingMakesFillerOrdinals) {} 773 ExtensionSortingMakesFillerOrdinals) {}
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_sorting.cc ('k') | chrome/browser/extensions/extension_sync_data.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698