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

Unified Diff: chrome/browser/ui/app_list/apps_model_builder_unittest.cc

Issue 10957048: app_list: Use NTP ordering in ExtensionSorting to sort apps. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/app_list/apps_model_builder.cc ('k') | chrome/browser/ui/app_list/extension_app_item.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/app_list/apps_model_builder_unittest.cc
diff --git a/chrome/browser/ui/app_list/apps_model_builder_unittest.cc b/chrome/browser/ui/app_list/apps_model_builder_unittest.cc
index fe9d21f60622e46d69666f71cc2bfb889c812bcb..a3e6b2b1f66d0b7d50c030a5a9380788645cc2ad 100644
--- a/chrome/browser/ui/app_list/apps_model_builder_unittest.cc
+++ b/chrome/browser/ui/app_list/apps_model_builder_unittest.cc
@@ -8,23 +8,17 @@
#include "base/file_path.h"
#include "base/memory/scoped_ptr.h"
-#include "base/stl_util.h"
#include "chrome/browser/extensions/extension_service_unittest.h"
+#include "chrome/browser/extensions/extension_sorting.h"
#include "chrome/test/base/testing_profile.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/app_list/app_list_item_model.h"
namespace {
-class TestAppListItemModel : public app_list::AppListItemModel {
- public:
- explicit TestAppListItemModel(const std::string& title) {
- SetTitle(title);
- }
-
- private:
- DISALLOW_COPY_AND_ASSIGN(TestAppListItemModel);
-};
+const char kHostedAppId[] = "dceacbkfkmllgmjmbhgkpjegnodmildf";
+const char kPackagedApp1Id[] = "emfkafnhnpcmabnnkckkchdilgeoekbo";
+const char kPackagedApp2Id[] = "jlklkagmeajbjiobondfhiekepofmljl";
// Get a string of all apps in |model| joined with ','.
std::string GetModelContent(app_list::AppListModel::Apps* model) {
@@ -43,70 +37,97 @@ class AppsModelBuilderTest : public ExtensionServiceTestBase {
public:
AppsModelBuilderTest() {}
virtual ~AppsModelBuilderTest() {}
-};
-
-TEST_F(AppsModelBuilderTest, GetExtensionApps) {
- // Load "app_list" extensions test profile. The test profile has 4 extensions:
- // 1 dummy extension, 2 packaged extension apps and 1 hosted extension app.
- FilePath source_install_dir = data_dir_
- .AppendASCII("app_list")
- .AppendASCII("Extensions");
- FilePath pref_path = source_install_dir
- .DirName()
- .AppendASCII("Preferences");
- InitializeInstalledExtensionService(pref_path, source_install_dir);
- service_->Init();
- // There should be 4 extensions in the test profile.
- const ExtensionSet* extensions = service_->extensions();
- ASSERT_EQ(static_cast<size_t>(4), extensions->size());
-
- AppsModelBuilder builder(profile_.get(), NULL, NULL);
+ virtual void SetUp() OVERRIDE {
+ // Load "app_list" extensions test profile.
+ // The test profile has 4 extensions:
+ // 1 dummy extension, 2 packaged extension apps and 1 hosted extension app.
+ FilePath source_install_dir = data_dir_
+ .AppendASCII("app_list")
+ .AppendASCII("Extensions");
+ FilePath pref_path = source_install_dir
+ .DirName()
+ .AppendASCII("Preferences");
+ InitializeInstalledExtensionService(pref_path, source_install_dir);
+ service_->Init();
+
+ // There should be 4 extensions in the test profile.
+ const ExtensionSet* extensions = service_->extensions();
+ ASSERT_EQ(static_cast<size_t>(4), extensions->size());
+ }
+};
- AppsModelBuilder::Apps apps;
- builder.GetExtensionApps(&apps);
+TEST_F(AppsModelBuilderTest, Build) {
+ scoped_ptr<app_list::AppListModel::Apps> model(
+ new app_list::AppListModel::Apps);
+ AppsModelBuilder builder(profile_.get(), model.get(), NULL);
+ builder.Build();
// The apps list would have 3 extension apps in the profile.
- EXPECT_EQ(static_cast<size_t>(3), apps.size());
- EXPECT_EQ("Hosted App", apps[0]->title());
- EXPECT_EQ("Packaged App 1", apps[1]->title());
- EXPECT_EQ("Packaged App 2", apps[2]->title());
-
- STLDeleteElements(&apps);
+ EXPECT_EQ(std::string("Packaged App 1,Packaged App 2,Hosted App"),
+ GetModelContent(model.get()));
}
-TEST_F(AppsModelBuilderTest, SortAndPopulateModel) {
- const char* kInput[] = {
- "CB", "Ca", "B", "a",
- };
- const char* kExpected = "a,B,Ca,CB";
-
+TEST_F(AppsModelBuilderTest, DisableAndEnable) {
scoped_ptr<app_list::AppListModel::Apps> model(
new app_list::AppListModel::Apps);
+ AppsModelBuilder builder(profile_.get(), model.get(), NULL);
+ builder.Build();
- AppsModelBuilder::Apps apps;
- for (size_t i = 0; i < arraysize(kInput); ++i)
- apps.push_back(new TestAppListItemModel(kInput[i]));
+ service_->DisableExtension(kHostedAppId,
+ extensions::Extension::DISABLE_NONE);
+ EXPECT_EQ(std::string("Packaged App 1,Packaged App 2"),
+ GetModelContent(model.get()));
- AppsModelBuilder builder(profile_.get(), model.get(), NULL);
- builder.SortAndPopulateModel(apps);
+ service_->EnableExtension(kHostedAppId);
+ EXPECT_EQ(std::string("Packaged App 1,Packaged App 2,Hosted App"),
+ GetModelContent(model.get()));
+}
- EXPECT_EQ(kExpected, GetModelContent(model.get()));
+TEST_F(AppsModelBuilderTest, OrdinalPrefsChange) {
+ scoped_ptr<app_list::AppListModel::Apps> model(
+ new app_list::AppListModel::Apps);
+ AppsModelBuilder builder(profile_.get(), model.get(), NULL);
+ builder.Build();
+
+ ExtensionSorting* sorting = service_->extension_prefs()->extension_sorting();
+
+ syncer::StringOrdinal package_app_page =
+ sorting->GetPageOrdinal(kPackagedApp1Id);
+ sorting->SetPageOrdinal(kHostedAppId, package_app_page.CreateBefore());
+ EXPECT_EQ(std::string("Hosted App,Packaged App 1,Packaged App 2"),
+ GetModelContent(model.get()));
+
+ syncer::StringOrdinal app1_ordinal =
+ sorting->GetAppLaunchOrdinal(kPackagedApp1Id);
+ syncer::StringOrdinal app2_ordinal =
+ sorting->GetAppLaunchOrdinal(kPackagedApp2Id);
+ sorting->SetPageOrdinal(kHostedAppId, package_app_page);
+ sorting->SetAppLaunchOrdinal(kHostedAppId,
+ app1_ordinal.CreateBetween(app2_ordinal));
+ EXPECT_EQ(std::string("Packaged App 1,Hosted App,Packaged App 2"),
+ GetModelContent(model.get()));
}
-TEST_F(AppsModelBuilderTest, InsertItemByTitle) {
+TEST_F(AppsModelBuilderTest, OnExtensionMoved) {
scoped_ptr<app_list::AppListModel::Apps> model(
new app_list::AppListModel::Apps);
AppsModelBuilder builder(profile_.get(), model.get(), NULL);
+ builder.Build();
- const char* kInput[] = {
- "CB", "Ca", "B", "a", "z", "D"
- };
- const char* kExpected = "a,B,Ca,CB,D,z";
+ ExtensionSorting* sorting = service_->extension_prefs()->extension_sorting();
+ sorting->SetPageOrdinal(kHostedAppId,
+ sorting->GetPageOrdinal(kPackagedApp1Id));
- for (size_t i = 0; i < arraysize(kInput); ++i)
- builder.InsertItemByTitle(new TestAppListItemModel(kInput[i]));
+ service_->OnExtensionMoved(kHostedAppId, kPackagedApp1Id, kPackagedApp2Id);
+ EXPECT_EQ(std::string("Packaged App 1,Hosted App,Packaged App 2"),
+ GetModelContent(model.get()));
- EXPECT_EQ(kExpected, GetModelContent(model.get()));
-}
+ service_->OnExtensionMoved(kHostedAppId, kPackagedApp2Id, std::string());
+ EXPECT_EQ(std::string("Packaged App 1,Packaged App 2,Hosted App"),
+ GetModelContent(model.get()));
+ service_->OnExtensionMoved(kHostedAppId, std::string(), kPackagedApp1Id);
+ EXPECT_EQ(std::string("Hosted App,Packaged App 1,Packaged App 2"),
+ GetModelContent(model.get()));
+}
« no previous file with comments | « chrome/browser/ui/app_list/apps_model_builder.cc ('k') | chrome/browser/ui/app_list/extension_app_item.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698