summaryrefslogtreecommitdiffstats
path: root/chrome/browser/autocomplete/network_action_predictor_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/autocomplete/network_action_predictor_unittest.cc')
-rw-r--r--chrome/browser/autocomplete/network_action_predictor_unittest.cc182
1 files changed, 109 insertions, 73 deletions
diff --git a/chrome/browser/autocomplete/network_action_predictor_unittest.cc b/chrome/browser/autocomplete/network_action_predictor_unittest.cc
index b49bd92..fbca1a2 100644
--- a/chrome/browser/autocomplete/network_action_predictor_unittest.cc
+++ b/chrome/browser/autocomplete/network_action_predictor_unittest.cc
@@ -14,89 +14,125 @@
#include "content/browser/browser_thread.h"
#include "testing/gtest/include/gtest/gtest.h"
-typedef testing::Test NetworkActionPredictorTest;
-
-TEST_F(NetworkActionPredictorTest, RecommendAction) {
- MessageLoop loop(MessageLoop::TYPE_DEFAULT);
- BrowserThread ui_thread(BrowserThread::UI, &loop);
- BrowserThread file_thread(BrowserThread::FILE, &loop);
-
- TestingProfile profile;
- profile.CreateHistoryService(true, false);
- profile.BlockUntilHistoryProcessesPendingRequests();
-
- NetworkActionPredictor predictor(&profile);
-
- HistoryService* history = profile.GetHistoryService(Profile::EXPLICIT_ACCESS);
- CHECK(history);
- history::URLDatabase* url_db = history->InMemoryDatabase();
- CHECK(url_db);
-
- struct TestUrlInfo {
- GURL url;
- string16 title;
- int typed_count;
- int days_from_now;
- string16 user_text;
- NetworkActionPredictor::Action expected_action;
- } test_url_db[] = {
- { GURL("http://www.testsite.com/a.html"),
- ASCIIToUTF16("Test - site - just a test"), 1, 1,
- ASCIIToUTF16("just"),
- NetworkActionPredictor::ACTION_PRERENDER },
- { GURL("http://www.testsite.com/b.html"),
- ASCIIToUTF16("Test - site - just a test"), 0, 1,
- ASCIIToUTF16("just"),
- NetworkActionPredictor::ACTION_PRERENDER },
- { GURL("http://www.testsite.com/c.html"),
- ASCIIToUTF16("Test - site - just a test"), 1, 5,
- ASCIIToUTF16("just"),
- NetworkActionPredictor::ACTION_PRECONNECT },
- { GURL("http://www.testsite.com/d.html"),
- ASCIIToUTF16("Test - site - just a test"), 2, 5,
- ASCIIToUTF16("just"),
- NetworkActionPredictor::ACTION_PRERENDER },
- { GURL("http://www.testsite.com/e.html"),
- ASCIIToUTF16("Test - site - just a test"), 1, 8,
- ASCIIToUTF16("just"),
- NetworkActionPredictor::ACTION_PRECONNECT },
- { GURL("http://www.testsite.com/f.html"),
- ASCIIToUTF16("Test - site - just a test"), 4, 8,
- ASCIIToUTF16("just"),
- NetworkActionPredictor::ACTION_PRERENDER },
- { GURL("http://www.testsite.com/g.html"),
- ASCIIToUTF16("Test - site - just a test"), 1, 12,
- ASCIIToUTF16("just a"),
- NetworkActionPredictor::ACTION_NONE },
- { GURL("http://www.testsite.com/h.html"),
- ASCIIToUTF16("Test - site - just a test"), 2, 21,
- ASCIIToUTF16("just a test"),
- NetworkActionPredictor::ACTION_NONE },
- { GURL("http://www.testsite.com/i.html"),
- ASCIIToUTF16("Test - site - just a test"), 3, 28,
- ASCIIToUTF16("just a test"),
- NetworkActionPredictor::ACTION_NONE }
- };
+namespace {
- for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_url_db); ++i) {
- const base::Time visit_time =
- base::Time::Now() - base::TimeDelta::FromDays(
- test_url_db[i].days_from_now);
+struct TestUrlInfo {
+ GURL url;
+ string16 title;
+ int typed_count;
+ int days_from_now;
+ string16 user_text;
+ NetworkActionPredictor::Action expected_action;
+} test_url_db[] = {
+ { GURL("http://www.testsite.com/a.html"),
+ ASCIIToUTF16("Test - site - just a test"), 1, 1,
+ ASCIIToUTF16("just"),
+ NetworkActionPredictor::ACTION_PRERENDER },
+ { GURL("http://www.testsite.com/b.html"),
+ ASCIIToUTF16("Test - site - just a test"), 0, 1,
+ ASCIIToUTF16("just"),
+ NetworkActionPredictor::ACTION_PRERENDER },
+ { GURL("http://www.testsite.com/c.html"),
+ ASCIIToUTF16("Test - site - just a test"), 1, 5,
+ ASCIIToUTF16("just"),
+ NetworkActionPredictor::ACTION_PRECONNECT },
+ { GURL("http://www.testsite.com/d.html"),
+ ASCIIToUTF16("Test - site - just a test"), 2, 5,
+ ASCIIToUTF16("just"),
+ NetworkActionPredictor::ACTION_PRERENDER },
+ { GURL("http://www.testsite.com/e.html"),
+ ASCIIToUTF16("Test - site - just a test"), 1, 8,
+ ASCIIToUTF16("just"),
+ NetworkActionPredictor::ACTION_PRECONNECT },
+ { GURL("http://www.testsite.com/f.html"),
+ ASCIIToUTF16("Test - site - just a test"), 4, 8,
+ ASCIIToUTF16("just"),
+ NetworkActionPredictor::ACTION_PRERENDER },
+ { GURL("http://www.testsite.com/g.html"),
+ ASCIIToUTF16("Test - site - just a test"), 1, 12,
+ ASCIIToUTF16("just a"),
+ NetworkActionPredictor::ACTION_NONE },
+ { GURL("http://www.testsite.com/h.html"),
+ ASCIIToUTF16("Test - site - just a test"), 2, 21,
+ ASCIIToUTF16("just a test"),
+ NetworkActionPredictor::ACTION_NONE },
+ { GURL("http://www.testsite.com/i.html"),
+ ASCIIToUTF16("Test - site - just a test"), 3, 28,
+ ASCIIToUTF16("just a test"),
+ NetworkActionPredictor::ACTION_NONE }
+};
- history::URLRow row(test_url_db[i].url);
- row.set_title(test_url_db[i].title);
- row.set_typed_count(test_url_db[i].typed_count);
- row.set_last_visit(visit_time);
+} // end namespace
- CHECK(url_db->AddURL(row));
+class NetworkActionPredictorTest : public testing::Test {
+ public:
+ NetworkActionPredictorTest()
+ : loop_(MessageLoop::TYPE_DEFAULT),
+ ui_thread_(BrowserThread::UI, &loop_),
+ file_thread_(BrowserThread::FILE, &loop_),
+ predictor_(&profile_) {
}
+ void SetUp() {
+ profile_.CreateHistoryService(true, false);
+ profile_.BlockUntilHistoryProcessesPendingRequests();
+
+ HistoryService* history =
+ profile_.GetHistoryService(Profile::EXPLICIT_ACCESS);
+ CHECK(history);
+ history::URLDatabase* url_db = history->InMemoryDatabase();
+ CHECK(url_db);
+
+ for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_url_db); ++i) {
+ const base::Time visit_time =
+ base::Time::Now() - base::TimeDelta::FromDays(
+ test_url_db[i].days_from_now);
+
+ history::URLRow row(test_url_db[i].url);
+ row.set_title(test_url_db[i].title);
+ row.set_typed_count(test_url_db[i].typed_count);
+ row.set_last_visit(visit_time);
+
+ CHECK(url_db->AddURL(row));
+ }
+ }
+
+ const NetworkActionPredictor& predictor() const { return predictor_; }
+
+ private:
+ MessageLoop loop_;
+ BrowserThread ui_thread_;
+ BrowserThread file_thread_;
+ TestingProfile profile_;
+ NetworkActionPredictor predictor_;
+};
+
+TEST_F(NetworkActionPredictorTest, RecommendActionURL) {
AutocompleteMatch match;
+ match.type = AutocompleteMatch::HISTORY_URL;
for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_url_db); ++i) {
match.destination_url = GURL(test_url_db[i].url);
EXPECT_EQ(test_url_db[i].expected_action,
- predictor.RecommendAction(test_url_db[i].user_text, match))
+ predictor().RecommendAction(test_url_db[i].user_text, match))
+ << "Unexpected action for " << match.destination_url;
+ }
+}
+
+TEST_F(NetworkActionPredictorTest, RecommendActionSearch) {
+ AutocompleteMatch match;
+ match.type = AutocompleteMatch::SEARCH_WHAT_YOU_TYPED;
+
+ for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_url_db); ++i) {
+ match.destination_url = GURL(test_url_db[i].url);
+ const NetworkActionPredictor::Action expected =
+ (test_url_db[i].expected_action ==
+ NetworkActionPredictor::ACTION_PRERENDER) ?
+ NetworkActionPredictor::ACTION_PRECONNECT :
+ test_url_db[i].expected_action;
+
+ EXPECT_EQ(expected,
+ predictor().RecommendAction(test_url_db[i].user_text, match))
<< "Unexpected action for " << match.destination_url;
}
}