OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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) {} |
OLD | NEW |