OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <set> | 5 #include <set> |
6 #include <string> | 6 #include <string> |
7 | 7 |
8 #include "base/memory/scoped_vector.h" | 8 #include "base/memory/scoped_vector.h" |
9 #include "base/strings/string16.h" | 9 #include "base/strings/string16.h" |
10 #include "base/strings/stringprintf.h" | 10 #include "base/strings/stringprintf.h" |
11 #include "base/strings/utf_string_conversions.h" | 11 #include "base/strings/utf_string_conversions.h" |
12 #include "testing/gtest/include/gtest/gtest.h" | 12 #include "testing/gtest/include/gtest/gtest.h" |
13 #include "ui/app_list/app_list_model.h" | 13 #include "ui/app_list/app_list_model.h" |
14 #include "ui/app_list/search/history_types.h" | 14 #include "ui/app_list/search/history_types.h" |
15 #include "ui/app_list/search/mixer.h" | 15 #include "ui/app_list/search/mixer.h" |
16 #include "ui/app_list/search_provider.h" | 16 #include "ui/app_list/search_provider.h" |
17 #include "ui/app_list/search_result.h" | 17 #include "ui/app_list/search_result.h" |
18 | 18 |
19 namespace app_list { | 19 namespace app_list { |
20 namespace test { | 20 namespace test { |
21 | 21 |
| 22 // Maximum number of results to show in each mixer group. |
| 23 const size_t kMaxAppsGroupResults = 4; |
| 24 const size_t kMaxOmniboxResults = 0; // Unlimited. |
| 25 const size_t kMaxWebstoreResults = 2; |
| 26 const size_t kMaxPeopleResults = 2; |
| 27 |
22 class TestSearchResult : public SearchResult { | 28 class TestSearchResult : public SearchResult { |
23 public: | 29 public: |
24 TestSearchResult(const std::string& id, double relevance) | 30 TestSearchResult(const std::string& id, double relevance) |
25 : instance_id_(instantiation_count++) { | 31 : instance_id_(instantiation_count++) { |
26 set_id(id); | 32 set_id(id); |
27 set_title(base::UTF8ToUTF16(id)); | 33 set_title(base::UTF8ToUTF16(id)); |
28 set_relevance(relevance); | 34 set_relevance(relevance); |
29 } | 35 } |
30 ~TestSearchResult() override {} | 36 ~TestSearchResult() override {} |
31 | 37 |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
104 results_.reset(new AppListModel::SearchResults); | 110 results_.reset(new AppListModel::SearchResults); |
105 | 111 |
106 providers_.push_back(new TestSearchProvider("app")); | 112 providers_.push_back(new TestSearchProvider("app")); |
107 providers_.push_back(new TestSearchProvider("omnibox")); | 113 providers_.push_back(new TestSearchProvider("omnibox")); |
108 providers_.push_back(new TestSearchProvider("webstore")); | 114 providers_.push_back(new TestSearchProvider("webstore")); |
109 providers_.push_back(new TestSearchProvider("people")); | 115 providers_.push_back(new TestSearchProvider("people")); |
110 | 116 |
111 is_voice_query_ = false; | 117 is_voice_query_ = false; |
112 | 118 |
113 mixer_.reset(new Mixer(results_.get())); | 119 mixer_.reset(new Mixer(results_.get())); |
114 mixer_->Init(); | 120 |
115 mixer_->AddProviderToGroup(Mixer::MAIN_GROUP, providers_[0]); | 121 size_t apps_group_id = mixer_->AddGroup(kMaxAppsGroupResults, 3.0); |
116 mixer_->AddProviderToGroup(Mixer::OMNIBOX_GROUP, providers_[1]); | 122 size_t omnibox_group_id = mixer_->AddOmniboxGroup(kMaxOmniboxResults, 2.0); |
117 mixer_->AddProviderToGroup(Mixer::WEBSTORE_GROUP, providers_[2]); | 123 size_t webstore_group_id = mixer_->AddGroup(kMaxWebstoreResults, 1.0); |
118 mixer_->AddProviderToGroup(Mixer::PEOPLE_GROUP, providers_[3]); | 124 size_t people_group_id = mixer_->AddGroup(kMaxPeopleResults, 0.0); |
| 125 |
| 126 mixer_->AddProviderToGroup(apps_group_id, providers_[0]); |
| 127 mixer_->AddProviderToGroup(omnibox_group_id, providers_[1]); |
| 128 mixer_->AddProviderToGroup(webstore_group_id, providers_[2]); |
| 129 mixer_->AddProviderToGroup(people_group_id, providers_[3]); |
119 } | 130 } |
120 | 131 |
121 void RunQuery() { | 132 void RunQuery() { |
122 const base::string16 query; | 133 const base::string16 query; |
123 | 134 |
124 for (size_t i = 0; i < providers_.size(); ++i) { | 135 for (size_t i = 0; i < providers_.size(); ++i) { |
125 providers_[i]->Start(is_voice_query_, query); | 136 providers_[i]->Start(is_voice_query_, query); |
126 providers_[i]->Stop(); | 137 providers_[i]->Stop(); |
127 } | 138 } |
128 | 139 |
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
372 EXPECT_EQ(old_ui_result_ids[0], | 383 EXPECT_EQ(old_ui_result_ids[0], |
373 TestSearchResult::GetInstanceId(ui_results.GetItemAt(3))); | 384 TestSearchResult::GetInstanceId(ui_results.GetItemAt(3))); |
374 EXPECT_EQ(old_ui_result_ids[1], | 385 EXPECT_EQ(old_ui_result_ids[1], |
375 TestSearchResult::GetInstanceId(ui_results.GetItemAt(0))); | 386 TestSearchResult::GetInstanceId(ui_results.GetItemAt(0))); |
376 EXPECT_EQ(old_ui_result_ids[2], | 387 EXPECT_EQ(old_ui_result_ids[2], |
377 TestSearchResult::GetInstanceId(ui_results.GetItemAt(2))); | 388 TestSearchResult::GetInstanceId(ui_results.GetItemAt(2))); |
378 } | 389 } |
379 | 390 |
380 } // namespace test | 391 } // namespace test |
381 } // namespace app_list | 392 } // namespace app_list |
OLD | NEW |