diff options
Diffstat (limited to 'athena/test/test_app_model_builder.cc')
-rw-r--r-- | athena/test/test_app_model_builder.cc | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/athena/test/test_app_model_builder.cc b/athena/test/test_app_model_builder.cc new file mode 100644 index 0000000000..f7db8a0abe --- /dev/null +++ b/athena/test/test_app_model_builder.cc @@ -0,0 +1,107 @@ +// Copyright 2014 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 "athena/test/test_app_model_builder.h" + +#include "ui/app_list/app_list_item.h" +#include "ui/app_list/app_list_model.h" + +namespace athena { + +namespace { + +const int kIconSize = 64; + +class DummyItem : public app_list::AppListItem { + public: + enum Type { + DUMMY_MAIL, + DUMMY_CALENDAR, + DUMMY_VIDEO, + DUMMY_MUSIC, + DUMMY_CONTACT, + LAST_TYPE, + }; + + static std::string GetTitle(Type type) { + switch (type) { + case DUMMY_MAIL: + return "mail"; + case DUMMY_CALENDAR: + return "calendar"; + case DUMMY_VIDEO: + return "video"; + case DUMMY_MUSIC: + return "music"; + case DUMMY_CONTACT: + return "contact"; + case LAST_TYPE: + break; + } + NOTREACHED(); + return ""; + } + + static std::string GetId(Type type) { + return std::string("id-") + GetTitle(type); + } + + explicit DummyItem(Type type) + : app_list::AppListItem(GetId(type)), + type_(type) { + SetIcon(GetIcon(), false /* has_shadow */); + SetName(GetTitle(type_)); + } + + private: + gfx::ImageSkia GetIcon() const { + SkColor color = SK_ColorWHITE; + switch (type_) { + case DUMMY_MAIL: + color = SK_ColorRED; + break; + case DUMMY_CALENDAR: + color = SK_ColorBLUE; + break; + case DUMMY_VIDEO: + color = SK_ColorGREEN; + break; + case DUMMY_MUSIC: + color = SK_ColorYELLOW; + break; + case DUMMY_CONTACT: + color = SK_ColorCYAN; + break; + case LAST_TYPE: + NOTREACHED(); + break; + } + SkBitmap bitmap; + bitmap.setConfig(SkBitmap::kARGB_8888_Config, kIconSize, kIconSize); + bitmap.allocPixels(); + bitmap.eraseColor(color); + return gfx::ImageSkia::CreateFrom1xBitmap(bitmap); + } + + Type type_; + + DISALLOW_COPY_AND_ASSIGN(DummyItem); +}; + +} // namespace + +TestAppModelBuilder::TestAppModelBuilder() { +} + +TestAppModelBuilder::~TestAppModelBuilder() { +} + +void TestAppModelBuilder::PopulateApps(app_list::AppListModel* model) { + for (int i = 0; i < static_cast<int>(DummyItem::LAST_TYPE); ++i) { + model->AddItem(scoped_ptr<app_list::AppListItem>( + new DummyItem(static_cast<DummyItem::Type>(i)))); + } +} + +} // namespace athena |