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_view_delegate.h"
6
7#include <string>
8
9#include "base/callback.h"
10#include "base/files/file_path.h"
11#include "ui/app_list/app_list_model.h"
12#include "ui/app_list/app_list_switches.h"
13#include "ui/app_list/app_list_view_delegate_observer.h"
14#include "ui/app_list/test/app_list_test_model.h"
15#include "ui/gfx/image/image_skia.h"
16
17namespace app_list {
18namespace test {
19
20AppListTestViewDelegate::AppListTestViewDelegate()
21    : dismiss_count_(0),
22      toggle_speech_recognition_count_(0),
23      open_search_result_count_(0),
24      next_profile_app_count_(0),
25      model_(new AppListTestModel),
26      speech_ui_(SPEECH_RECOGNITION_OFF) {
27  model_->SetFoldersEnabled(true);
28}
29
30AppListTestViewDelegate::~AppListTestViewDelegate() {}
31
32int AppListTestViewDelegate::GetToggleSpeechRecognitionCountAndReset() {
33  int count = toggle_speech_recognition_count_;
34  toggle_speech_recognition_count_ = 0;
35  return count;
36}
37
38bool AppListTestViewDelegate::ForceNativeDesktop() const {
39  return false;
40}
41
42void AppListTestViewDelegate::SetProfileByPath(
43    const base::FilePath& profile_path) {
44  ReplaceTestModel(next_profile_app_count_);
45}
46
47AppListModel* AppListTestViewDelegate::GetModel() {
48  return model_.get();
49}
50
51SpeechUIModel* AppListTestViewDelegate::GetSpeechUI() {
52  return &speech_ui_;
53}
54
55void AppListTestViewDelegate::GetShortcutPathForApp(
56    const std::string& app_id,
57    const base::Callback<void(const base::FilePath&)>& callback) {
58  callback.Run(base::FilePath());
59}
60
61void AppListTestViewDelegate::OpenSearchResult(SearchResult* result,
62                                               bool auto_launch,
63                                               int event_flags) {
64  const AppListModel::SearchResults* results = model_->results();
65  for (size_t i = 0; i < results->item_count(); ++i) {
66    if (results->GetItemAt(i) == result) {
67      open_search_result_counts_[i]++;
68      break;
69    }
70  }
71  ++open_search_result_count_;
72}
73
74base::TimeDelta AppListTestViewDelegate::GetAutoLaunchTimeout() {
75  return auto_launch_timeout_;
76}
77
78void AppListTestViewDelegate::AutoLaunchCanceled() {
79  auto_launch_timeout_ = base::TimeDelta();
80}
81
82void AppListTestViewDelegate::Dismiss() {
83  ++dismiss_count_;
84}
85
86void AppListTestViewDelegate::ToggleSpeechRecognition() {
87  ++toggle_speech_recognition_count_;
88}
89
90gfx::ImageSkia AppListTestViewDelegate::GetWindowIcon() {
91  return gfx::ImageSkia();
92}
93
94#if defined(TOOLKIT_VIEWS)
95views::View* AppListTestViewDelegate::CreateStartPageWebView(
96    const gfx::Size& size) {
97  return NULL;
98}
99#endif
100
101bool AppListTestViewDelegate::IsSpeechRecognitionEnabled() {
102  return false;
103}
104
105const AppListViewDelegate::Users& AppListTestViewDelegate::GetUsers() const {
106  return users_;
107}
108
109bool AppListTestViewDelegate::ShouldCenterWindow() const {
110  return app_list::switches::IsCenteredAppListEnabled();
111}
112
113void AppListTestViewDelegate::ReplaceTestModel(int item_count) {
114  model_.reset(new AppListTestModel);
115  model_->PopulateApps(item_count);
116}
117
118void AppListTestViewDelegate::AddObserver(
119    AppListViewDelegateObserver* observer) {
120  observers_.AddObserver(observer);
121}
122
123void AppListTestViewDelegate::RemoveObserver(
124    AppListViewDelegateObserver* observer) {
125  observers_.RemoveObserver(observer);
126}
127
128}  // namespace test
129}  // namespace app_list
130