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 |