Index: chrome/browser/download/download_query_unittest.cc |
diff --git a/chrome/browser/download/download_query_unittest.cc b/chrome/browser/download/download_query_unittest.cc |
index fb382a7b4ba81ce783593d2d8cc1bac262de5520..c01ce774dc84ae213d3be73cbf67d885c5b3882c 100644 |
--- a/chrome/browser/download/download_query_unittest.cc |
+++ b/chrome/browser/download/download_query_unittest.cc |
@@ -133,10 +133,41 @@ TEST_F(DownloadQueryTest, DownloadQueryLimit) { |
SWITCH3(_index, _col1, _ret1, _col2, _ret2, \ |
SWITCH2(_index, _col3, _ret3, _default)) |
+TEST_F(DownloadQueryTest, DownloadQuery_QueryFilter) { |
+ FilePath match_filename(FILE_PATH_LITERAL("query")); |
+ FilePath fail_filename(FILE_PATH_LITERAL("fail")); |
+ GURL fail_url("http://example.com/fail"); |
+ GURL match_url("http://query.com/query"); |
+ scoped_ptr<base::Value> query_str(base::Value::CreateStringValue("query")); |
+ static const size_t kNumItems = 4; |
+ CreateMocks(kNumItems); |
+ for (size_t i = 0; i < kNumItems; ++i) { |
+ if (i != 0) |
+ EXPECT_CALL(mock(i), GetId()).WillOnce(Return(i)); |
+ EXPECT_CALL(mock(i), GetTargetFilePath()) |
+ .WillRepeatedly(ReturnRef((i & 1) ? match_filename : fail_filename)); |
+ EXPECT_CALL(mock(i), GetOriginalUrl()) |
+ .WillRepeatedly(ReturnRef((i & 2) ? match_url : fail_url)); |
+ EXPECT_CALL(mock(i), GetBrowserContext()).WillRepeatedly(Return( |
+ static_cast<content::BrowserContext*>(NULL))); |
+ } |
+ query()->AddFilter(DownloadQuery::FILTER_QUERY, *query_str.get()); |
+ Search(); |
+ ASSERT_EQ(3U, results()->size()); |
+ EXPECT_EQ(1, results()->at(0)->GetId()); |
+ EXPECT_EQ(2, results()->at(1)->GetId()); |
+ EXPECT_EQ(3, results()->at(2)->GetId()); |
+ |
+ // TODO(phajdan.jr): Also test these strings: |
+ // "/\xe4\xbd\xa0\xe5\xa5\xbd\xe4\xbd\xa0\xe5\xa5\xbd", |
+ // L"/\x4f60\x597d\x4f60\x597d", |
+ // "/%E4%BD%A0%E5%A5%BD%E4%BD%A0%E5%A5%BD" |
+} |
+ |
TEST_F(DownloadQueryTest, DownloadQueryAllFilters) { |
// Set up mocks such that only mock(0) matches all filters, and every other |
// mock fails a different filter (or two for GREATER/LESS filters). |
- static const size_t kNumItems = 19; |
+ static const size_t kNumItems = 18; |
CreateMocks(kNumItems); |
FilePath refail_filename(FILE_PATH_LITERAL("z")); |
FilePath fail_filename(FILE_PATH_LITERAL("fail")); |
@@ -162,7 +193,8 @@ TEST_F(DownloadQueryTest, DownloadQueryAllFilters) { |
EXPECT_CALL(mock(i), GetSafetyState()).WillRepeatedly(Return(SWITCH2(i, |
2, DownloadItem::DANGEROUS, |
DownloadItem::DANGEROUS_BUT_VALIDATED))); |
- EXPECT_CALL(mock(i), GetFullPath()).WillRepeatedly(ReturnRef(SWITCH3(i, |
+ EXPECT_CALL(mock(i), GetTargetFilePath()) |
+ .WillRepeatedly(ReturnRef(SWITCH3(i, |
3, refail_filename, |
4, fail_filename, |
match_filename))); |
@@ -172,28 +204,26 @@ TEST_F(DownloadQueryTest, DownloadQueryAllFilters) { |
EXPECT_CALL(mock(i), IsPaused()).WillRepeatedly(Return(SWITCH2(i, |
6, false, |
true))); |
- EXPECT_CALL(mock(i), MatchesQuery(_)).WillRepeatedly(Return(SWITCH2(i, |
- 7, false, |
- true))); |
EXPECT_CALL(mock(i), GetStartTime()).WillRepeatedly(Return(SWITCH4(i, |
- 8, base::Time::FromTimeT(1), |
- 9, base::Time::FromTimeT(4), |
- 10, base::Time::FromTimeT(3), |
- base::Time::FromTimeT(2)))); |
+ 7, base::Time::FromTimeT(1), |
+ 8, base::Time::FromTimeT(4), |
+ 9, base::Time::FromTimeT(3), |
+ base::Time::FromTimeT(2)))); |
EXPECT_CALL(mock(i), GetTotalBytes()).WillRepeatedly(Return(SWITCH4(i, |
- 11, 1, |
- 12, 4, |
- 13, 3, |
+ 10, 1, |
+ 11, 4, |
+ 12, 3, |
2))); |
EXPECT_CALL(mock(i), GetOriginalUrl()).WillRepeatedly(ReturnRef(SWITCH3(i, |
- 14, refail_url, |
- 15, fail_url, |
+ 13, refail_url, |
+ 14, fail_url, |
match_url))); |
+ // 15 is AddFilter(Bind(IdNotEqual, 15)) |
EXPECT_CALL(mock(i), GetState()).WillRepeatedly(Return(SWITCH2(i, |
- 17, DownloadItem::CANCELLED, |
+ 16, DownloadItem::CANCELLED, |
DownloadItem::IN_PROGRESS))); |
EXPECT_CALL(mock(i), GetDangerType()).WillRepeatedly(Return(SWITCH2(i, |
- 18, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE, |
+ 17, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE, |
content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS))); |
} |
for (size_t i = 0; i < kNumItems; ++i) { |
@@ -207,23 +237,22 @@ TEST_F(DownloadQueryTest, DownloadQueryAllFilters) { |
match_filename.value().c_str()); break; |
case 5: AddFilter(DownloadQuery::FILTER_MIME, "text"); break; |
case 6: AddFilter(DownloadQuery::FILTER_PAUSED, true); break; |
- case 7: AddFilter(DownloadQuery::FILTER_QUERY, ""); break; |
- case 8: AddFilter(DownloadQuery::FILTER_STARTED_AFTER, 1000); break; |
- case 9: AddFilter(DownloadQuery::FILTER_STARTED_BEFORE, 4000); |
+ case 7: AddFilter(DownloadQuery::FILTER_STARTED_AFTER, 1000); break; |
+ case 8: AddFilter(DownloadQuery::FILTER_STARTED_BEFORE, 4000); |
break; |
- case 10: AddFilter(DownloadQuery::FILTER_START_TIME, 2000); break; |
- case 11: AddFilter(DownloadQuery::FILTER_TOTAL_BYTES_GREATER, 1); |
+ case 9: AddFilter(DownloadQuery::FILTER_START_TIME, 2000); break; |
+ case 10: AddFilter(DownloadQuery::FILTER_TOTAL_BYTES_GREATER, 1); |
break; |
- case 12: AddFilter(DownloadQuery::FILTER_TOTAL_BYTES_LESS, 4); |
+ case 11: AddFilter(DownloadQuery::FILTER_TOTAL_BYTES_LESS, 4); |
break; |
- case 13: AddFilter(DownloadQuery::FILTER_TOTAL_BYTES, 2); break; |
- case 14: AddFilter(DownloadQuery::FILTER_URL_REGEX, "example"); |
+ case 12: AddFilter(DownloadQuery::FILTER_TOTAL_BYTES, 2); break; |
+ case 13: AddFilter(DownloadQuery::FILTER_URL_REGEX, "example"); |
break; |
- case 15: AddFilter(DownloadQuery::FILTER_URL, |
+ case 14: AddFilter(DownloadQuery::FILTER_URL, |
match_url.spec().c_str()); break; |
- case 16: CHECK(query()->AddFilter(base::Bind(&IdNotEqual, 16))); break; |
- case 17: query()->AddFilter(DownloadItem::IN_PROGRESS); break; |
- case 18: query()->AddFilter(content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS); |
+ case 15: CHECK(query()->AddFilter(base::Bind(&IdNotEqual, 15))); break; |
+ case 16: query()->AddFilter(DownloadItem::IN_PROGRESS); break; |
+ case 17: query()->AddFilter(content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS); |
break; |
default: NOTREACHED(); break; |
} |
@@ -283,15 +312,15 @@ TEST_F(DownloadQueryTest, DownloadQuerySortDangerAccepted) { |
TEST_F(DownloadQueryTest, DownloadQuerySortFilename) { |
CreateMocks(2); |
- FilePath a_filename(FILE_PATH_LITERAL("a")); |
- FilePath b_filename(FILE_PATH_LITERAL("b")); |
- EXPECT_CALL(mock(0), GetFullPath()).WillRepeatedly(ReturnRef(b_filename)); |
- EXPECT_CALL(mock(1), GetFullPath()).WillRepeatedly(ReturnRef(a_filename)); |
+ FilePath a_path(FILE_PATH_LITERAL("a")); |
+ FilePath b_path(FILE_PATH_LITERAL("b")); |
+ EXPECT_CALL(mock(0), GetTargetFilePath()).WillRepeatedly(ReturnRef(b_path)); |
+ EXPECT_CALL(mock(1), GetTargetFilePath()).WillRepeatedly(ReturnRef(a_path)); |
query()->AddSorter( |
DownloadQuery::SORT_FILENAME, DownloadQuery::ASCENDING); |
Search(); |
- EXPECT_EQ(a_filename, results()->at(0)->GetFullPath()); |
- EXPECT_EQ(b_filename, results()->at(1)->GetFullPath()); |
+ EXPECT_EQ(a_path, results()->at(0)->GetTargetFilePath()); |
+ EXPECT_EQ(b_path, results()->at(1)->GetTargetFilePath()); |
} |
TEST_F(DownloadQueryTest, DownloadQuerySortMime) { |