Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2411)

Unified Diff: chrome/browser/ui/app_list/search/app_search_provider_unittest.cc

Issue 379333005: Allow AppSearchProvider to provide recommendations. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: const Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/app_list/search/app_search_provider_unittest.cc
diff --git a/chrome/browser/ui/app_list/search/app_search_provider_unittest.cc b/chrome/browser/ui/app_list/search/app_search_provider_unittest.cc
index faaae0d960de8c2553244aea0cf54ae84a1c6e23..f1349ac9378e39ee3d007bad0ac91836a6fd01cb 100644
--- a/chrome/browser/ui/app_list/search/app_search_provider_unittest.cc
+++ b/chrome/browser/ui/app_list/search/app_search_provider_unittest.cc
@@ -14,6 +14,7 @@
#include "chrome/browser/ui/app_list/search/chrome_search_result.h"
#include "chrome/common/chrome_constants.h"
#include "chrome/test/base/testing_profile.h"
+#include "extensions/browser/extension_prefs.h"
#include "extensions/browser/uninstall_reason.h"
#include "extensions/common/extension_set.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -21,6 +22,12 @@
namespace app_list {
namespace test {
+const base::Time kTestCurrentTime = base::Time::FromInternalValue(1000);
+
+bool MoreRelevant(const SearchResult* result1, const SearchResult* result2) {
+ return result1->relevance() > result2->relevance();
+}
+
class AppSearchProviderTest : public AppListTestBase {
public:
AppSearchProviderTest() {}
@@ -34,16 +41,21 @@ class AppSearchProviderTest : public AppListTestBase {
}
std::string RunQuery(const std::string& query) {
- app_search_->Start(base::UTF8ToUTF16(query));
- app_search_->Stop();
+ app_search_->StartImpl(kTestCurrentTime, base::UTF8ToUTF16(query));
+
+ // Sort results by relevance.
+ std::vector<SearchResult*> sorted_results;
+ std::copy(app_search_->results().begin(),
+ app_search_->results().end(),
+ std::back_inserter(sorted_results));
+ std::sort(sorted_results.begin(), sorted_results.end(), &MoreRelevant);
std::string result_str;
- const SearchProvider::Results& results = app_search_->results();
- for (size_t i = 0; i < results.size(); ++i) {
+ for (size_t i = 0; i < sorted_results.size(); ++i) {
if (!result_str.empty())
result_str += ',';
- result_str += base::UTF16ToUTF8(results[i]->title());
+ result_str += base::UTF16ToUTF8(sorted_results[i]->title());
}
return result_str;
}
@@ -55,7 +67,6 @@ class AppSearchProviderTest : public AppListTestBase {
};
TEST_F(AppSearchProviderTest, Basic) {
- EXPECT_EQ("", RunQuery(""));
EXPECT_EQ("", RunQuery("!@#$-,-_"));
EXPECT_EQ("", RunQuery("unmatched query"));
@@ -93,5 +104,20 @@ TEST_F(AppSearchProviderTest, Uninstall) {
base::RunLoop().RunUntilIdle();
}
+TEST_F(AppSearchProviderTest, FetchRecommendations) {
+ extensions::ExtensionPrefs* prefs =
+ extensions::ExtensionPrefs::Get(profile_.get());
+
+ prefs->SetLastLaunchTime(kHostedAppId, base::Time::FromInternalValue(20));
+ prefs->SetLastLaunchTime(kPackagedApp1Id, base::Time::FromInternalValue(10));
+ prefs->SetLastLaunchTime(kPackagedApp2Id, base::Time::FromInternalValue(0));
+ EXPECT_EQ("Hosted App,Packaged App 1,Packaged App 2", RunQuery(""));
+
+ prefs->SetLastLaunchTime(kHostedAppId, base::Time::FromInternalValue(0));
+ prefs->SetLastLaunchTime(kPackagedApp1Id, base::Time::FromInternalValue(10));
+ prefs->SetLastLaunchTime(kPackagedApp2Id, base::Time::FromInternalValue(20));
+ EXPECT_EQ("Packaged App 2,Packaged App 1,Hosted App", RunQuery(""));
+}
+
} // namespace test
} // namespace app_list
« no previous file with comments | « chrome/browser/ui/app_list/search/app_search_provider.cc ('k') | chrome/browser/ui/app_list/search/search_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698