| Index: chrome/browser/extensions/extension_sorting_unittest.cc | 
| =================================================================== | 
| --- chrome/browser/extensions/extension_sorting_unittest.cc	(revision 132527) | 
| +++ chrome/browser/extensions/extension_sorting_unittest.cc	(working copy) | 
| @@ -685,7 +685,7 @@ | 
| TEST_F(ExtensionSortingGetMinOrMaxAppLaunchOrdinalsOnPage, | 
| ExtensionSortingGetMinOrMaxAppLaunchOrdinalsOnPage) {} | 
|  | 
| -// Make sure that empty pages aren't removes from the integer to ordinal | 
| +// Make sure that empty pages aren't removed from the integer to ordinal | 
| // mapping. See http://www.crbug.com/109802 for details. | 
| class ExtensionSortingKeepEmptyStringOrdinalPages : | 
| public ExtensionSortingPreinstalledAppsBase { | 
| @@ -725,3 +725,35 @@ | 
| }; | 
| TEST_F(ExtensionSortingKeepEmptyStringOrdinalPages, | 
| ExtensionSortingKeepEmptyStringOrdinalPages) {} | 
| + | 
| +class ExtensionSortingMakesFillerOrdinals : | 
| +    public ExtensionSortingPreinstalledAppsBase { | 
| + public: | 
| +  ExtensionSortingMakesFillerOrdinals() {} | 
| +  virtual ~ExtensionSortingMakesFillerOrdinals() {} | 
| + | 
| +  virtual void Initialize() { | 
| +    ExtensionSorting* extension_sorting = prefs()->extension_sorting(); | 
| + | 
| +    StringOrdinal first_page = StringOrdinal::CreateInitialOrdinal(); | 
| +    extension_sorting->SetPageOrdinal(app1_->id(), first_page); | 
| +    EXPECT_EQ(0, extension_sorting->PageStringOrdinalAsInteger(first_page)); | 
| +  } | 
| +  virtual void Verify() { | 
| +    ExtensionSorting* extension_sorting = prefs()->extension_sorting(); | 
| + | 
| +    // Because the UI can add an unlimited number of empty pages without an app | 
| +    // on them, this test simulates dropping of an app on the 1st and 4th empty | 
| +    // pages (3rd and 6th pages by index) to ensure we don't crash and that | 
| +    // filler ordinals are created as needed. See: http://crbug.com/122214 | 
| +    StringOrdinal page_three = extension_sorting->PageIntegerAsStringOrdinal(2); | 
| +    extension_sorting->SetPageOrdinal(app1_->id(), page_three); | 
| +    EXPECT_EQ(2, extension_sorting->PageStringOrdinalAsInteger(page_three)); | 
| + | 
| +    StringOrdinal page_six = extension_sorting->PageIntegerAsStringOrdinal(5); | 
| +    extension_sorting->SetPageOrdinal(app1_->id(), page_six); | 
| +    EXPECT_EQ(5, extension_sorting->PageStringOrdinalAsInteger(page_six)); | 
| +  } | 
| +}; | 
| +TEST_F(ExtensionSortingMakesFillerOrdinals, | 
| +       ExtensionSortingMakesFillerOrdinals) {} | 
|  |