app_list_test_model.cc revision a1401311d1ab56c4ed0a474bd38c108f75cb0cd9
1// Copyright 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "ui/app_list/test/app_list_test_model.h" 6 7#include "base/memory/scoped_ptr.h" 8#include "base/strings/stringprintf.h" 9 10namespace app_list { 11namespace test { 12 13// static 14const char AppListTestModel::kItemType[] = "TestItem"; 15 16// AppListTestModel::AppListTestItem 17 18AppListTestModel::AppListTestItem::AppListTestItem( 19 const std::string& id, 20 AppListTestModel* model) 21 : AppListItem(id), 22 model_(model) { 23} 24AppListTestModel::AppListTestItem::~AppListTestItem() { 25} 26 27void AppListTestModel::AppListTestItem::Activate(int event_flags) { 28 model_->ItemActivated(this); 29} 30 31const char* AppListTestModel::AppListTestItem::GetItemType() const { 32 return AppListTestModel::kItemType; 33} 34 35void AppListTestModel::AppListTestItem::SetPosition( 36 const syncer::StringOrdinal& new_position) { 37 set_position(new_position); 38} 39 40// AppListTestModel 41 42AppListTestModel::AppListTestModel() 43 : activate_count_(0), 44 last_activated_(NULL) { 45} 46 47AppListItem* AppListTestModel::AddItem(AppListItem* item) { 48 return AppListModel::AddItem(make_scoped_ptr(item)); 49} 50 51AppListItem* AppListTestModel::AddItemToFolder(AppListItem* item, 52 const std::string& folder_id) { 53 return AppListModel::AddItemToFolder(make_scoped_ptr(item), folder_id); 54} 55 56void AppListTestModel::MoveItemToFolder(AppListItem* item, 57 const std::string& folder_id) { 58 AppListModel::MoveItemToFolder(item, folder_id); 59} 60 61 62std::string AppListTestModel::GetItemName(int id) { 63 return base::StringPrintf("Item %d", id); 64} 65 66void AppListTestModel::PopulateApps(int n) { 67 int start_index = static_cast<int>(top_level_item_list()->item_count()); 68 for (int i = 0; i < n; ++i) 69 CreateAndAddItem(GetItemName(start_index + i)); 70} 71 72void AppListTestModel::PopulateAppWithId(int id) { 73 CreateAndAddItem(GetItemName(id)); 74} 75 76std::string AppListTestModel::GetModelContent() { 77 std::string content; 78 for (size_t i = 0; i < top_level_item_list()->item_count(); ++i) { 79 if (i > 0) 80 content += ','; 81 content += top_level_item_list()->item_at(i)->id(); 82 } 83 return content; 84} 85 86AppListTestModel::AppListTestItem* AppListTestModel::CreateItem( 87 const std::string& id) { 88 AppListTestItem* item = new AppListTestItem(id, this); 89 size_t nitems = top_level_item_list()->item_count(); 90 syncer::StringOrdinal position; 91 if (nitems == 0) { 92 position = syncer::StringOrdinal::CreateInitialOrdinal(); 93 } else { 94 position = 95 top_level_item_list()->item_at(nitems - 1)->position().CreateAfter(); 96 } 97 item->SetPosition(position); 98 SetItemName(item, id); 99 return item; 100} 101 102AppListTestModel::AppListTestItem* AppListTestModel::CreateAndAddItem( 103 const std::string& id) { 104 scoped_ptr<AppListTestItem> test_item(CreateItem(id)); 105 AppListItem* item = AppListModel::AddItem(test_item.PassAs<AppListItem>()); 106 return static_cast<AppListTestItem*>(item); 107} 108void AppListTestModel::HighlightItemAt(int index) { 109 AppListItem* item = top_level_item_list()->item_at(index); 110 item->SetHighlighted(true); 111} 112 113void AppListTestModel::ItemActivated(AppListTestItem* item) { 114 last_activated_ = item; 115 ++activate_count_; 116} 117 118} // namespace test 119} // namespace app_list 120