| Index: ui/app_list/app_list_model_unittest.cc
|
| diff --git a/ui/app_list/app_list_model_unittest.cc b/ui/app_list/app_list_model_unittest.cc
|
| deleted file mode 100644
|
| index c113ecafd6dc591d620a6d7f9572b854b5eb416b..0000000000000000000000000000000000000000
|
| --- a/ui/app_list/app_list_model_unittest.cc
|
| +++ /dev/null
|
| @@ -1,517 +0,0 @@
|
| -// Copyright 2013 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "ui/app_list/app_list_model.h"
|
| -
|
| -#include <map>
|
| -#include <string>
|
| -
|
| -#include "base/command_line.h"
|
| -#include "base/strings/utf_string_conversions.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -#include "ui/app_list/app_list_folder_item.h"
|
| -#include "ui/app_list/app_list_item.h"
|
| -#include "ui/app_list/app_list_model_observer.h"
|
| -#include "ui/app_list/app_list_switches.h"
|
| -#include "ui/app_list/test/app_list_test_model.h"
|
| -#include "ui/base/models/list_model_observer.h"
|
| -
|
| -namespace app_list {
|
| -
|
| -namespace {
|
| -
|
| -class TestObserver : public AppListModelObserver {
|
| - public:
|
| - TestObserver()
|
| - : status_changed_count_(0),
|
| - items_added_(0),
|
| - items_removed_(0),
|
| - items_updated_(0) {
|
| - }
|
| - ~TestObserver() override {}
|
| -
|
| - // AppListModelObserver
|
| - void OnAppListModelStatusChanged() override { ++status_changed_count_; }
|
| -
|
| - void OnAppListItemAdded(AppListItem* item) override { items_added_++; }
|
| -
|
| - void OnAppListItemWillBeDeleted(AppListItem* item) override {
|
| - items_removed_++;
|
| - }
|
| -
|
| - void OnAppListItemUpdated(AppListItem* item) override { items_updated_++; }
|
| -
|
| - int status_changed_count() const { return status_changed_count_; }
|
| - size_t items_added() { return items_added_; }
|
| - size_t items_removed() { return items_removed_; }
|
| - size_t items_updated() { return items_updated_; }
|
| -
|
| - void ResetCounts() {
|
| - status_changed_count_ = 0;
|
| - items_added_ = 0;
|
| - items_removed_ = 0;
|
| - items_updated_ = 0;
|
| - }
|
| -
|
| - private:
|
| - int status_changed_count_;
|
| - size_t items_added_;
|
| - size_t items_removed_;
|
| - size_t items_updated_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(TestObserver);
|
| -};
|
| -
|
| -} // namespace
|
| -
|
| -class AppListModelTest : public testing::Test {
|
| - public:
|
| - AppListModelTest() {}
|
| - virtual ~AppListModelTest() {}
|
| -
|
| - // testing::Test overrides:
|
| - virtual void SetUp() override {
|
| - model_.AddObserver(&observer_);
|
| - }
|
| - virtual void TearDown() override {
|
| - model_.RemoveObserver(&observer_);
|
| - }
|
| -
|
| - protected:
|
| - bool ItemObservedByFolder(AppListFolderItem* folder,
|
| - AppListItem* item) {
|
| - return item->observers_.HasObserver(folder);
|
| - }
|
| -
|
| - std::string GetItemListContents(AppListItemList* item_list) {
|
| - std::string s;
|
| - for (size_t i = 0; i < item_list->item_count(); ++i) {
|
| - if (i != 0)
|
| - s += ",";
|
| - s += item_list->item_at(i)->id();
|
| - }
|
| - return s;
|
| - }
|
| -
|
| - std::string GetModelContents() {
|
| - return GetItemListContents(model_.top_level_item_list());
|
| - }
|
| -
|
| - test::AppListTestModel model_;
|
| - TestObserver observer_;
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(AppListModelTest);
|
| -};
|
| -
|
| -TEST_F(AppListModelTest, SetStatus) {
|
| - EXPECT_EQ(AppListModel::STATUS_NORMAL, model_.status());
|
| - model_.SetStatus(AppListModel::STATUS_SYNCING);
|
| - EXPECT_EQ(1, observer_.status_changed_count());
|
| - EXPECT_EQ(AppListModel::STATUS_SYNCING, model_.status());
|
| - model_.SetStatus(AppListModel::STATUS_NORMAL);
|
| - EXPECT_EQ(2, observer_.status_changed_count());
|
| - // Set the same status, no change is expected.
|
| - model_.SetStatus(AppListModel::STATUS_NORMAL);
|
| - EXPECT_EQ(2, observer_.status_changed_count());
|
| -}
|
| -
|
| -TEST_F(AppListModelTest, AppsObserver) {
|
| - const size_t num_apps = 2;
|
| - model_.PopulateApps(num_apps);
|
| - EXPECT_EQ(num_apps, observer_.items_added());
|
| -}
|
| -
|
| -TEST_F(AppListModelTest, ModelGetItem) {
|
| - const size_t num_apps = 2;
|
| - model_.PopulateApps(num_apps);
|
| - AppListItem* item0 = model_.top_level_item_list()->item_at(0);
|
| - ASSERT_TRUE(item0);
|
| - EXPECT_EQ(model_.GetItemName(0), item0->id());
|
| - AppListItem* item1 = model_.top_level_item_list()->item_at(1);
|
| - ASSERT_TRUE(item1);
|
| - EXPECT_EQ(model_.GetItemName(1), item1->id());
|
| -}
|
| -
|
| -TEST_F(AppListModelTest, ModelFindItem) {
|
| - const size_t num_apps = 2;
|
| - model_.PopulateApps(num_apps);
|
| - std::string item_name0 = model_.GetItemName(0);
|
| - AppListItem* item0 = model_.FindItem(item_name0);
|
| - ASSERT_TRUE(item0);
|
| - EXPECT_EQ(item_name0, item0->id());
|
| - std::string item_name1 = model_.GetItemName(1);
|
| - AppListItem* item1 = model_.FindItem(item_name1);
|
| - ASSERT_TRUE(item1);
|
| - EXPECT_EQ(item_name1, item1->id());
|
| -}
|
| -
|
| -TEST_F(AppListModelTest, SetItemPosition) {
|
| - const size_t num_apps = 2;
|
| - model_.PopulateApps(num_apps);
|
| - // Adding another item will add it to the end.
|
| - model_.CreateAndAddItem("Added Item 1");
|
| - ASSERT_EQ(num_apps + 1, model_.top_level_item_list()->item_count());
|
| - EXPECT_EQ("Added Item 1",
|
| - model_.top_level_item_list()->item_at(num_apps)->id());
|
| - // Add an item between items 0 and 1.
|
| - AppListItem* item0 = model_.top_level_item_list()->item_at(0);
|
| - ASSERT_TRUE(item0);
|
| - AppListItem* item1 = model_.top_level_item_list()->item_at(1);
|
| - ASSERT_TRUE(item1);
|
| - AppListItem* item2 = model_.CreateItem("Added Item 2");
|
| - model_.AddItem(item2);
|
| - EXPECT_EQ("Item 0,Item 1,Added Item 1,Added Item 2", GetModelContents());
|
| - model_.SetItemPosition(
|
| - item2, item0->position().CreateBetween(item1->position()));
|
| - EXPECT_EQ(num_apps + 2, model_.top_level_item_list()->item_count());
|
| - EXPECT_EQ(num_apps + 2, observer_.items_added());
|
| - EXPECT_EQ("Item 0,Added Item 2,Item 1,Added Item 1", GetModelContents());
|
| -}
|
| -
|
| -TEST_F(AppListModelTest, ModelMoveItem) {
|
| - const size_t num_apps = 3;
|
| - model_.PopulateApps(num_apps);
|
| - // Adding another item will add it to the end.
|
| - model_.CreateAndAddItem("Inserted Item");
|
| - ASSERT_EQ(num_apps + 1, model_.top_level_item_list()->item_count());
|
| - // Move it to the position 1.
|
| - observer_.ResetCounts();
|
| - model_.top_level_item_list()->MoveItem(num_apps, 1);
|
| - EXPECT_EQ(1u, observer_.items_updated());
|
| - EXPECT_EQ("Item 0,Inserted Item,Item 1,Item 2", GetModelContents());
|
| -}
|
| -
|
| -TEST_F(AppListModelTest, ModelRemoveItem) {
|
| - const size_t num_apps = 4;
|
| - model_.PopulateApps(num_apps);
|
| - // Remove an item in the middle.
|
| - model_.DeleteItem(model_.GetItemName(1));
|
| - EXPECT_EQ(num_apps - 1, model_.top_level_item_list()->item_count());
|
| - EXPECT_EQ(1u, observer_.items_removed());
|
| - EXPECT_EQ("Item 0,Item 2,Item 3", GetModelContents());
|
| - // Remove the first item in the list.
|
| - model_.DeleteItem(model_.GetItemName(0));
|
| - EXPECT_EQ(num_apps - 2, model_.top_level_item_list()->item_count());
|
| - EXPECT_EQ(2u, observer_.items_removed());
|
| - EXPECT_EQ("Item 2,Item 3", GetModelContents());
|
| - // Remove the last item in the list.
|
| - model_.DeleteItem(model_.GetItemName(num_apps - 1));
|
| - EXPECT_EQ(num_apps - 3, model_.top_level_item_list()->item_count());
|
| - EXPECT_EQ(3u, observer_.items_removed());
|
| - EXPECT_EQ("Item 2", GetModelContents());
|
| -}
|
| -
|
| -TEST_F(AppListModelTest, AppOrder) {
|
| - const size_t num_apps = 5;
|
| - model_.PopulateApps(num_apps);
|
| - // Ensure order is preserved.
|
| - for (size_t i = 1; i < num_apps; ++i) {
|
| - EXPECT_TRUE(
|
| - model_.top_level_item_list()->item_at(i)->position().GreaterThan(
|
| - model_.top_level_item_list()->item_at(i - 1)->position()));
|
| - }
|
| - // Move an app
|
| - model_.top_level_item_list()->MoveItem(num_apps - 1, 1);
|
| - // Ensure order is preserved.
|
| - for (size_t i = 1; i < num_apps; ++i) {
|
| - EXPECT_TRUE(
|
| - model_.top_level_item_list()->item_at(i)->position().GreaterThan(
|
| - model_.top_level_item_list()->item_at(i - 1)->position()));
|
| - }
|
| -}
|
| -
|
| -class AppListModelFolderTest : public AppListModelTest {
|
| - public:
|
| - AppListModelFolderTest() {
|
| - model_.SetFoldersEnabled(true);
|
| - }
|
| - virtual ~AppListModelFolderTest() {}
|
| -
|
| - // testing::Test overrides:
|
| - virtual void SetUp() override {
|
| - AppListModelTest::SetUp();
|
| - }
|
| - virtual void TearDown() override {
|
| - AppListModelTest::TearDown();
|
| - }
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(AppListModelFolderTest);
|
| -};
|
| -
|
| -TEST_F(AppListModelFolderTest, FolderItem) {
|
| - AppListFolderItem* folder =
|
| - new AppListFolderItem("folder1", AppListFolderItem::FOLDER_TYPE_NORMAL);
|
| - const size_t num_folder_apps = 8;
|
| - const size_t num_observed_apps = 4;
|
| - model_.AddItem(folder);
|
| - for (int i = 0; static_cast<size_t>(i) < num_folder_apps; ++i) {
|
| - std::string name = model_.GetItemName(i);
|
| - model_.AddItemToFolder(model_.CreateItem(name), folder->id());
|
| - }
|
| - ASSERT_EQ(num_folder_apps, folder->item_list()->item_count());
|
| - // Check that items 0 and 3 are observed.
|
| - EXPECT_TRUE(ItemObservedByFolder(
|
| - folder, folder->item_list()->item_at(0)));
|
| - EXPECT_TRUE(ItemObservedByFolder(
|
| - folder, folder->item_list()->item_at(num_observed_apps - 1)));
|
| - // Check that item 4 is not observed.
|
| - EXPECT_FALSE(ItemObservedByFolder(
|
| - folder, folder->item_list()->item_at(num_observed_apps)));
|
| - folder->item_list()->MoveItem(num_observed_apps, 0);
|
| - // Confirm that everything was moved where expected.
|
| - EXPECT_EQ(model_.GetItemName(num_observed_apps),
|
| - folder->item_list()->item_at(0)->id());
|
| - EXPECT_EQ(model_.GetItemName(0),
|
| - folder->item_list()->item_at(1)->id());
|
| - EXPECT_EQ(model_.GetItemName(num_observed_apps - 1),
|
| - folder->item_list()->item_at(num_observed_apps)->id());
|
| - // Check that items 0 and 3 are observed.
|
| - EXPECT_TRUE(ItemObservedByFolder(
|
| - folder, folder->item_list()->item_at(0)));
|
| - EXPECT_TRUE(ItemObservedByFolder(
|
| - folder, folder->item_list()->item_at(num_observed_apps - 1)));
|
| - // Check that item 4 is not observed.
|
| - EXPECT_FALSE(ItemObservedByFolder(
|
| - folder, folder->item_list()->item_at(num_observed_apps)));
|
| -}
|
| -
|
| -TEST_F(AppListModelFolderTest, MergeItems) {
|
| - model_.PopulateApps(3);
|
| - ASSERT_EQ(3u, model_.top_level_item_list()->item_count());
|
| - AppListItem* item0 = model_.top_level_item_list()->item_at(0);
|
| - AppListItem* item1 = model_.top_level_item_list()->item_at(1);
|
| - AppListItem* item2 = model_.top_level_item_list()->item_at(2);
|
| -
|
| - // Merge an item onto a non-existent target.
|
| - EXPECT_EQ(std::string(), model_.MergeItems("nonexistent", item0->id()));
|
| - ASSERT_EQ(3u, model_.top_level_item_list()->item_count());
|
| -
|
| - // Merge a non-existent item onto a target.
|
| - EXPECT_EQ(std::string(), model_.MergeItems(item0->id(), "nonexistent"));
|
| - ASSERT_EQ(3u, model_.top_level_item_list()->item_count());
|
| -
|
| - // Merge an item onto itself (should have no effect). This should not be
|
| - // possible, but there have been bugs in the past that made it possible (see
|
| - // http://crbug.com/415530), so it should be handled correctly.
|
| - EXPECT_EQ(std::string(), model_.MergeItems(item0->id(), item0->id()));
|
| - ASSERT_EQ(3u, model_.top_level_item_list()->item_count());
|
| -
|
| - // Merge two items.
|
| - std::string folder1_id = model_.MergeItems(item0->id(), item1->id());
|
| - ASSERT_EQ(2u, model_.top_level_item_list()->item_count()); // Folder + 1 item
|
| - AppListFolderItem* folder1_item = model_.FindFolderItem(folder1_id);
|
| - ASSERT_TRUE(folder1_item);
|
| - EXPECT_EQ("Item 0,Item 1", GetItemListContents(folder1_item->item_list()));
|
| -
|
| - // Merge an item onto an item that is already in a folder (should have no
|
| - // effect). This should not be possible, but it should be handled correctly
|
| - // if it does happen.
|
| - EXPECT_EQ(std::string(), model_.MergeItems(item1->id(), item2->id()));
|
| - ASSERT_EQ(2u, model_.top_level_item_list()->item_count()); // Folder + 1 item
|
| - EXPECT_EQ("Item 0,Item 1", GetItemListContents(folder1_item->item_list()));
|
| -
|
| - // Merge an item from the new folder into the third item.
|
| - std::string folder2_id = model_.MergeItems(item2->id(), item1->id());
|
| - ASSERT_EQ(2u, model_.top_level_item_list()->item_count()); // 2 folders
|
| - AppListFolderItem* folder2_item = model_.FindFolderItem(folder2_id);
|
| - EXPECT_EQ("Item 0", GetItemListContents(folder1_item->item_list()));
|
| - EXPECT_EQ("Item 2,Item 1", GetItemListContents(folder2_item->item_list()));
|
| -
|
| - // Merge the remaining item to the new folder, ensure it is added to the end.
|
| - std::string folder_id = model_.MergeItems(folder2_id, item0->id());
|
| - EXPECT_EQ(folder2_id, folder_id);
|
| - EXPECT_EQ("Item 2,Item 1,Item 0",
|
| - GetItemListContents(folder2_item->item_list()));
|
| -
|
| - // The empty folder should be deleted.
|
| - folder1_item = model_.FindFolderItem(folder1_id);
|
| - EXPECT_FALSE(folder1_item);
|
| - EXPECT_EQ(1u, model_.top_level_item_list()->item_count()); // 1 folder
|
| -}
|
| -
|
| -TEST_F(AppListModelFolderTest, AddItemToFolder) {
|
| - AppListFolderItem* folder =
|
| - new AppListFolderItem("folder1", AppListFolderItem::FOLDER_TYPE_NORMAL);
|
| - model_.AddItem(folder);
|
| - AppListItem* item0 = new AppListItem("Item 0");
|
| - model_.AddItemToFolder(item0, folder->id());
|
| - ASSERT_EQ(1u, model_.top_level_item_list()->item_count());
|
| - AppListFolderItem* folder_item = model_.FindFolderItem(folder->id());
|
| - ASSERT_TRUE(folder_item);
|
| - ASSERT_EQ(1u, folder_item->item_list()->item_count());
|
| - EXPECT_EQ(item0, folder_item->item_list()->item_at(0));
|
| - EXPECT_EQ(folder->id(), item0->folder_id());
|
| -}
|
| -
|
| -TEST_F(AppListModelFolderTest, MoveItemToFolder) {
|
| - AppListFolderItem* folder =
|
| - new AppListFolderItem("folder1", AppListFolderItem::FOLDER_TYPE_NORMAL);
|
| - model_.AddItem(folder);
|
| - AppListItem* item0 = new AppListItem("Item 0");
|
| - AppListItem* item1 = new AppListItem("Item 1");
|
| - model_.AddItem(item0);
|
| - model_.AddItem(item1);
|
| - ASSERT_EQ(3u, model_.top_level_item_list()->item_count());
|
| - // Move item0 and item1 to folder.
|
| - std::string folder_id = folder->id();
|
| - model_.MoveItemToFolder(item0, folder_id);
|
| - model_.MoveItemToFolder(item1, folder_id);
|
| - AppListFolderItem* folder_item = model_.FindFolderItem(folder_id);
|
| - ASSERT_TRUE(folder_item);
|
| - EXPECT_EQ(folder_id, item0->folder_id());
|
| - EXPECT_EQ(folder_id, item1->folder_id());
|
| - EXPECT_EQ("Item 0,Item 1", GetItemListContents(folder_item->item_list()));
|
| - // Move item0 out of folder.
|
| - model_.MoveItemToFolder(item0, "");
|
| - EXPECT_EQ("", item0->folder_id());
|
| - folder_item = model_.FindFolderItem(folder_id);
|
| - ASSERT_TRUE(folder_item);
|
| - // Move item1 out of folder, folder should be deleted.
|
| - model_.MoveItemToFolder(item1, "");
|
| - EXPECT_EQ("", item1->folder_id());
|
| - folder_item = model_.FindFolderItem(folder_id);
|
| - EXPECT_FALSE(folder_item);
|
| -}
|
| -
|
| -TEST_F(AppListModelFolderTest, MoveItemToFolderAt) {
|
| - model_.AddItem(new AppListItem("Item 0"));
|
| - model_.AddItem(new AppListItem("Item 1"));
|
| - AppListFolderItem* folder1 = static_cast<AppListFolderItem*>(model_.AddItem(
|
| - new AppListFolderItem("folder1", AppListFolderItem::FOLDER_TYPE_NORMAL)));
|
| - model_.AddItem(new AppListItem("Item 2"));
|
| - model_.AddItem(new AppListItem("Item 3"));
|
| - ASSERT_EQ(5u, model_.top_level_item_list()->item_count());
|
| - EXPECT_EQ("Item 0,Item 1,folder1,Item 2,Item 3", GetModelContents());
|
| - // Move Item 1 to folder1, then Item 2 before Item 1.
|
| - model_.MoveItemToFolderAt(model_.top_level_item_list()->item_at(1),
|
| - folder1->id(),
|
| - syncer::StringOrdinal());
|
| - EXPECT_EQ("Item 0,folder1,Item 2,Item 3", GetModelContents());
|
| - model_.MoveItemToFolderAt(model_.top_level_item_list()->item_at(2),
|
| - folder1->id(),
|
| - folder1->item_list()->item_at(0)->position());
|
| - EXPECT_EQ("Item 2,Item 1", GetItemListContents(folder1->item_list()));
|
| - EXPECT_EQ("Item 0,folder1,Item 3", GetModelContents());
|
| - // Move Item 2 out of folder to before folder.
|
| - model_.MoveItemToFolderAt(
|
| - folder1->item_list()->item_at(0), "", folder1->position());
|
| - EXPECT_EQ("Item 0,Item 2,folder1,Item 3", GetModelContents());
|
| - // Move remaining folder item, (Item 1) out of folder to folder position.
|
| - ASSERT_EQ(1u, folder1->item_list()->item_count());
|
| - model_.MoveItemToFolderAt(
|
| - folder1->item_list()->item_at(0), "", folder1->position());
|
| - EXPECT_EQ("Item 0,Item 2,Item 1,Item 3", GetModelContents());
|
| -}
|
| -
|
| -TEST_F(AppListModelFolderTest, MoveItemFromFolderToFolder) {
|
| - AppListFolderItem* folder0 =
|
| - new AppListFolderItem("folder0", AppListFolderItem::FOLDER_TYPE_NORMAL);
|
| - AppListFolderItem* folder1 =
|
| - new AppListFolderItem("folder1", AppListFolderItem::FOLDER_TYPE_NORMAL);
|
| - model_.AddItem(folder0);
|
| - model_.AddItem(folder1);
|
| - EXPECT_EQ("folder0,folder1", GetModelContents());
|
| - AppListItem* item0 = new AppListItem("Item 0");
|
| - AppListItem* item1 = new AppListItem("Item 1");
|
| - model_.AddItemToFolder(item0, folder0->id());
|
| - model_.AddItemToFolder(item1, folder0->id());
|
| - EXPECT_EQ(folder0->id(), item0->folder_id());
|
| - EXPECT_EQ(folder0->id(), item1->folder_id());
|
| - EXPECT_EQ("Item 0,Item 1", GetItemListContents(folder0->item_list()));
|
| -
|
| - // Move item0 from folder0 to folder1.
|
| - model_.MoveItemToFolder(item0, folder1->id());
|
| - ASSERT_EQ(1u, folder0->item_list()->item_count());
|
| - ASSERT_EQ(1u, folder1->item_list()->item_count());
|
| - EXPECT_EQ(folder1->id(), item0->folder_id());
|
| - EXPECT_EQ("Item 1", GetItemListContents(folder0->item_list()));
|
| - EXPECT_EQ("Item 0", GetItemListContents(folder1->item_list()));
|
| -
|
| - // Move item1 from folder0 to folder1. folder0 should get deleted.
|
| - model_.MoveItemToFolder(item1, folder1->id());
|
| - ASSERT_EQ(1u, model_.top_level_item_list()->item_count());
|
| - ASSERT_EQ(2u, folder1->item_list()->item_count());
|
| - EXPECT_EQ(folder1->id(), item1->folder_id());
|
| - EXPECT_EQ("Item 0,Item 1", GetItemListContents(folder1->item_list()));
|
| -
|
| - // Move item1 to a non-existant folder2 which should get created.
|
| - model_.MoveItemToFolder(item1, "folder2");
|
| - ASSERT_EQ(2u, model_.top_level_item_list()->item_count());
|
| - ASSERT_EQ(1u, folder1->item_list()->item_count());
|
| - EXPECT_EQ("folder2", item1->folder_id());
|
| - AppListFolderItem* folder2 = model_.FindFolderItem("folder2");
|
| - ASSERT_TRUE(folder2);
|
| -}
|
| -
|
| -TEST_F(AppListModelFolderTest, FindItemInFolder) {
|
| - AppListFolderItem* folder =
|
| - new AppListFolderItem("folder1", AppListFolderItem::FOLDER_TYPE_NORMAL);
|
| - EXPECT_TRUE(folder);
|
| - model_.AddItem(folder);
|
| - std::string folder_id = folder->id();
|
| - AppListItem* item0 = new AppListItem("Item 0");
|
| - model_.AddItemToFolder(item0, folder_id);
|
| - AppListItem* found_item = model_.FindItem(item0->id());
|
| - ASSERT_EQ(item0, found_item);
|
| - EXPECT_EQ(folder_id, found_item->folder_id());
|
| -}
|
| -
|
| -TEST_F(AppListModelFolderTest, OemFolder) {
|
| - AppListFolderItem* folder =
|
| - new AppListFolderItem("folder1", AppListFolderItem::FOLDER_TYPE_OEM);
|
| - model_.AddItem(folder);
|
| - std::string folder_id = folder->id();
|
| -
|
| - // Should not be able to move to an OEM folder with MergeItems.
|
| - AppListItem* item0 = new AppListItem("Item 0");
|
| - model_.AddItem(item0);
|
| - syncer::StringOrdinal item0_pos = item0->position();
|
| - std::string new_folder = model_.MergeItems(folder_id, item0->id());
|
| - EXPECT_EQ("", new_folder);
|
| - EXPECT_EQ("", item0->folder_id());
|
| - EXPECT_TRUE(item0->position().Equals(item0_pos));
|
| -
|
| - // Should not be able to move from an OEM folder with MoveItemToFolderAt.
|
| - AppListItem* item1 = new AppListItem("Item 1");
|
| - model_.AddItemToFolder(item1, folder_id);
|
| - syncer::StringOrdinal item1_pos = item1->position();
|
| - bool move_res = model_.MoveItemToFolderAt(item1, "", syncer::StringOrdinal());
|
| - EXPECT_FALSE(move_res);
|
| - EXPECT_TRUE(item1->position().Equals(item1_pos));
|
| -}
|
| -
|
| -TEST_F(AppListModelFolderTest, DisableFolders) {
|
| - // Set up a folder with two items and an OEM folder with one item.
|
| - AppListFolderItem* folder =
|
| - new AppListFolderItem("folder1", AppListFolderItem::FOLDER_TYPE_NORMAL);
|
| - model_.AddItem(folder);
|
| - std::string folder_id = folder->id();
|
| - AppListItem* item0 = new AppListItem("Item 0");
|
| - model_.AddItemToFolder(item0, folder_id);
|
| - AppListItem* item1 = new AppListItem("Item 1");
|
| - model_.AddItemToFolder(item1, folder_id);
|
| - AppListFolderItem* folder_item = model_.FindFolderItem(folder_id);
|
| - ASSERT_TRUE(folder_item);
|
| - EXPECT_EQ(2u, folder_item->item_list()->item_count());
|
| - AppListFolderItem* oem_folder =
|
| - new AppListFolderItem("oem_folder", AppListFolderItem::FOLDER_TYPE_OEM);
|
| - model_.AddItem(oem_folder);
|
| - AppListItem* oem_item = new AppListItem("OEM Item");
|
| - std::string oem_folder_id = oem_folder->id();
|
| - model_.AddItemToFolder(oem_item, oem_folder_id);
|
| - EXPECT_EQ("folder1,oem_folder", GetModelContents());
|
| -
|
| - // Disable folders. Ensure non-oem folder is removed.
|
| - model_.SetFoldersEnabled(false);
|
| - ASSERT_FALSE(model_.FindFolderItem(folder_id));
|
| - ASSERT_TRUE(model_.FindFolderItem(oem_folder_id));
|
| - EXPECT_EQ("Item 0,Item 1,oem_folder", GetModelContents());
|
| -
|
| - // Ensure folder creation fails.
|
| - EXPECT_EQ(std::string(), model_.MergeItems(item0->id(), item1->id()));
|
| -}
|
| -
|
| -} // namespace app_list
|
|
|