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

Side by Side Diff: chrome/browser/download/download_query_unittest.cc

Issue 2092963002: downloads.query: parse numerical query properties as double, not int. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add one more edge case test Created 4 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chrome/browser/download/download_query.h" 5 #include "chrome/browser/download/download_query.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <limits> 10 #include <limits>
(...skipping 20 matching lines...) Expand all
31 using base::Value; 31 using base::Value;
32 using content::DownloadItem; 32 using content::DownloadItem;
33 typedef DownloadQuery::DownloadVector DownloadVector; 33 typedef DownloadQuery::DownloadVector DownloadVector;
34 34
35 namespace { 35 namespace {
36 36
37 static const int kSomeKnownTime = 1355864160; 37 static const int kSomeKnownTime = 1355864160;
38 static const char kSomeKnownTime8601[] = "2012-12-18T20:56:0"; 38 static const char kSomeKnownTime8601[] = "2012-12-18T20:56:0";
39 static const char k8601Suffix[] = ".000Z"; 39 static const char k8601Suffix[] = ".000Z";
40 40
41 static const int64_t kEightGB = 1LL << 33;
42 static const int64_t kSixteenGB = 1LL << 34;
43 static const double kEightGBDouble = 8.0 * (1LL << 30);
44 static const double kNineGBDouble = 9.0 * (1LL << 30);
45
41 bool IdNotEqual(uint32_t not_id, const DownloadItem& item) { 46 bool IdNotEqual(uint32_t not_id, const DownloadItem& item) {
42 return item.GetId() != not_id; 47 return item.GetId() != not_id;
43 } 48 }
44 49
45 bool AlwaysReturn(bool result, const DownloadItem& item) { 50 bool AlwaysReturn(bool result, const DownloadItem& item) {
46 return result; 51 return result;
47 } 52 }
48 53
49 } // anonymous namespace 54 } // anonymous namespace
50 55
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 107
103 DISALLOW_COPY_AND_ASSIGN(DownloadQueryTest); 108 DISALLOW_COPY_AND_ASSIGN(DownloadQueryTest);
104 }; 109 };
105 110
106 template<> void DownloadQueryTest::AddFilter( 111 template<> void DownloadQueryTest::AddFilter(
107 DownloadQuery::FilterType name, bool cpp_value) { 112 DownloadQuery::FilterType name, bool cpp_value) {
108 std::unique_ptr<base::Value> value(new base::FundamentalValue(cpp_value)); 113 std::unique_ptr<base::Value> value(new base::FundamentalValue(cpp_value));
109 CHECK(query_.AddFilter(name, *value.get())); 114 CHECK(query_.AddFilter(name, *value.get()));
110 } 115 }
111 116
112 template<> void DownloadQueryTest::AddFilter( 117 template <>
113 DownloadQuery::FilterType name, int cpp_value) { 118 void DownloadQueryTest::AddFilter(DownloadQuery::FilterType name,
119 double cpp_value) {
114 std::unique_ptr<base::Value> value(new base::FundamentalValue(cpp_value)); 120 std::unique_ptr<base::Value> value(new base::FundamentalValue(cpp_value));
115 CHECK(query_.AddFilter(name, *value.get())); 121 CHECK(query_.AddFilter(name, *value.get()));
116 } 122 }
117 123
118 template<> void DownloadQueryTest::AddFilter( 124 template<> void DownloadQueryTest::AddFilter(
119 DownloadQuery::FilterType name, const char* cpp_value) { 125 DownloadQuery::FilterType name, const char* cpp_value) {
120 CHECK(query_.AddFilter(name, base::StringValue(cpp_value))); 126 CHECK(query_.AddFilter(name, base::StringValue(cpp_value)));
121 } 127 }
122 128
123 template<> void DownloadQueryTest::AddFilter( 129 template<> void DownloadQueryTest::AddFilter(
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
322 TEST_F(DownloadQueryTest, DownloadQueryTest_FilterCallback) { 328 TEST_F(DownloadQueryTest, DownloadQueryTest_FilterCallback) {
323 CreateMocks(2); 329 CreateMocks(2);
324 CHECK(query()->AddFilter(base::Bind(&IdNotEqual, 1))); 330 CHECK(query()->AddFilter(base::Bind(&IdNotEqual, 1)));
325 ExpectStandardFilterResults(); 331 ExpectStandardFilterResults();
326 } 332 }
327 333
328 TEST_F(DownloadQueryTest, DownloadQueryTest_FilterBytesReceived) { 334 TEST_F(DownloadQueryTest, DownloadQueryTest_FilterBytesReceived) {
329 CreateMocks(2); 335 CreateMocks(2);
330 EXPECT_CALL(mock(0), GetReceivedBytes()).WillRepeatedly(Return(0)); 336 EXPECT_CALL(mock(0), GetReceivedBytes()).WillRepeatedly(Return(0));
331 EXPECT_CALL(mock(1), GetReceivedBytes()).WillRepeatedly(Return(1)); 337 EXPECT_CALL(mock(1), GetReceivedBytes()).WillRepeatedly(Return(1));
332 AddFilter(DownloadQuery::FILTER_BYTES_RECEIVED, 0); 338 AddFilter(DownloadQuery::FILTER_BYTES_RECEIVED, 0.0);
333 ExpectStandardFilterResults(); 339 ExpectStandardFilterResults();
334 } 340 }
335 341
336 TEST_F(DownloadQueryTest, DownloadQueryTest_SortBytesReceived) { 342 TEST_F(DownloadQueryTest, DownloadQueryTest_SortBytesReceived) {
337 CreateMocks(2); 343 CreateMocks(2);
338 EXPECT_CALL(mock(0), GetReceivedBytes()).WillRepeatedly(Return(0)); 344 EXPECT_CALL(mock(0), GetReceivedBytes()).WillRepeatedly(Return(0));
339 EXPECT_CALL(mock(1), GetReceivedBytes()).WillRepeatedly(Return(1)); 345 EXPECT_CALL(mock(1), GetReceivedBytes()).WillRepeatedly(Return(1));
340 query()->AddSorter(DownloadQuery::SORT_BYTES_RECEIVED, 346 query()->AddSorter(DownloadQuery::SORT_BYTES_RECEIVED,
341 DownloadQuery::DESCENDING); 347 DownloadQuery::DESCENDING);
342 ExpectSortInverted(); 348 ExpectSortInverted();
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
495 TEST_F(DownloadQueryTest, DownloadQueryTest_SortEndTime) { 501 TEST_F(DownloadQueryTest, DownloadQueryTest_SortEndTime) {
496 CreateMocks(2); 502 CreateMocks(2);
497 EXPECT_CALL(mock(0), GetEndTime()).WillRepeatedly(Return( 503 EXPECT_CALL(mock(0), GetEndTime()).WillRepeatedly(Return(
498 base::Time::FromTimeT(kSomeKnownTime + 2))); 504 base::Time::FromTimeT(kSomeKnownTime + 2)));
499 EXPECT_CALL(mock(1), GetEndTime()).WillRepeatedly(Return( 505 EXPECT_CALL(mock(1), GetEndTime()).WillRepeatedly(Return(
500 base::Time::FromTimeT(kSomeKnownTime + 4))); 506 base::Time::FromTimeT(kSomeKnownTime + 4)));
501 query()->AddSorter(DownloadQuery::SORT_END_TIME, DownloadQuery::DESCENDING); 507 query()->AddSorter(DownloadQuery::SORT_END_TIME, DownloadQuery::DESCENDING);
502 ExpectSortInverted(); 508 ExpectSortInverted();
503 } 509 }
504 510
505 TEST_F(DownloadQueryTest, DownloadQueryTest_FilterTotalBytesGreater) { 511 TEST_F(DownloadQueryTest, DownloadQueryTest_FilterTotalBytesGreater1) {
506 CreateMocks(2); 512 CreateMocks(2);
507 EXPECT_CALL(mock(0), GetTotalBytes()).WillRepeatedly(Return(2)); 513 EXPECT_CALL(mock(0), GetTotalBytes()).WillRepeatedly(Return(2));
508 EXPECT_CALL(mock(1), GetTotalBytes()).WillRepeatedly(Return(1)); 514 EXPECT_CALL(mock(1), GetTotalBytes()).WillRepeatedly(Return(1));
509 AddFilter(DownloadQuery::FILTER_TOTAL_BYTES_GREATER, 1); 515 AddFilter(DownloadQuery::FILTER_TOTAL_BYTES_GREATER, 1.0);
510 ExpectStandardFilterResults(); 516 ExpectStandardFilterResults();
511 } 517 }
512 518
513 TEST_F(DownloadQueryTest, DownloadQueryTest_FilterTotalBytesLess) { 519 TEST_F(DownloadQueryTest, DownloadQueryTest_FilterTotalBytesGreater2) {
520 CreateMocks(2);
521 EXPECT_CALL(mock(0), GetTotalBytes()).WillRepeatedly(Return(2));
522 EXPECT_CALL(mock(1), GetTotalBytes()).WillRepeatedly(Return(1));
523 AddFilter(DownloadQuery::FILTER_TOTAL_BYTES_GREATER, 1.2);
524 ExpectStandardFilterResults();
525 }
526
527 TEST_F(DownloadQueryTest, DownloadQueryTest_FilterTotalBytesGreater3) {
528 CreateMocks(2);
529 EXPECT_CALL(mock(0), GetTotalBytes()).WillRepeatedly(Return(kSixteenGB));
530 EXPECT_CALL(mock(1), GetTotalBytes()).WillRepeatedly(Return(kEightGB));
531 AddFilter(DownloadQuery::FILTER_TOTAL_BYTES_GREATER, kNineGBDouble);
532 ExpectStandardFilterResults();
533 }
534
535 TEST_F(DownloadQueryTest, DownloadQueryTest_FilterTotalBytesGreater4) {
536 CreateMocks(2);
537 EXPECT_CALL(mock(0), GetTotalBytes()).WillRepeatedly(Return(kSixteenGB));
538 EXPECT_CALL(mock(1), GetTotalBytes()).WillRepeatedly(Return(kEightGB));
539 AddFilter(DownloadQuery::FILTER_TOTAL_BYTES_GREATER, kEightGBDouble + 1.0);
540 ExpectStandardFilterResults();
541 }
542
543 TEST_F(DownloadQueryTest, DownloadQueryTest_FilterTotalBytesLess1) {
514 CreateMocks(2); 544 CreateMocks(2);
515 EXPECT_CALL(mock(0), GetTotalBytes()).WillRepeatedly(Return(2)); 545 EXPECT_CALL(mock(0), GetTotalBytes()).WillRepeatedly(Return(2));
516 EXPECT_CALL(mock(1), GetTotalBytes()).WillRepeatedly(Return(4)); 546 EXPECT_CALL(mock(1), GetTotalBytes()).WillRepeatedly(Return(4));
517 AddFilter(DownloadQuery::FILTER_TOTAL_BYTES_LESS, 4); 547 AddFilter(DownloadQuery::FILTER_TOTAL_BYTES_LESS, 4.0);
518 ExpectStandardFilterResults(); 548 ExpectStandardFilterResults();
519 } 549 }
520 550
521 TEST_F(DownloadQueryTest, DownloadQueryTest_FilterTotalBytes) { 551 TEST_F(DownloadQueryTest, DownloadQueryTest_FilterTotalBytesLess2) {
552 CreateMocks(2);
553 EXPECT_CALL(mock(0), GetTotalBytes()).WillRepeatedly(Return(1));
554 EXPECT_CALL(mock(1), GetTotalBytes()).WillRepeatedly(Return(2));
555 AddFilter(DownloadQuery::FILTER_TOTAL_BYTES_LESS, 1.2);
556 ExpectStandardFilterResults();
557 }
558
559 TEST_F(DownloadQueryTest, DownloadQueryTest_FilterTotalBytesLess3) {
560 CreateMocks(2);
561 EXPECT_CALL(mock(0), GetTotalBytes()).WillRepeatedly(Return(kEightGB));
562 EXPECT_CALL(mock(1), GetTotalBytes()).WillRepeatedly(Return(kSixteenGB));
563 AddFilter(DownloadQuery::FILTER_TOTAL_BYTES_LESS, kEightGBDouble + 1.0);
564 ExpectStandardFilterResults();
565 }
566
567 TEST_F(DownloadQueryTest, DownloadQueryTest_FilterTotalBytesLess4) {
568 CreateMocks(2);
569 EXPECT_CALL(mock(0), GetTotalBytes()).WillRepeatedly(Return(kEightGB));
570 EXPECT_CALL(mock(1), GetTotalBytes()).WillRepeatedly(Return(kSixteenGB));
571 AddFilter(DownloadQuery::FILTER_TOTAL_BYTES_LESS, kNineGBDouble);
572 ExpectStandardFilterResults();
573 }
574
575 TEST_F(DownloadQueryTest, DownloadQueryTest_FilterTotalBytes1) {
522 CreateMocks(2); 576 CreateMocks(2);
523 EXPECT_CALL(mock(0), GetTotalBytes()).WillRepeatedly(Return(2)); 577 EXPECT_CALL(mock(0), GetTotalBytes()).WillRepeatedly(Return(2));
524 EXPECT_CALL(mock(1), GetTotalBytes()).WillRepeatedly(Return(4)); 578 EXPECT_CALL(mock(1), GetTotalBytes()).WillRepeatedly(Return(4));
525 AddFilter(DownloadQuery::FILTER_TOTAL_BYTES, 2); 579 AddFilter(DownloadQuery::FILTER_TOTAL_BYTES, 2.0);
526 ExpectStandardFilterResults(); 580 ExpectStandardFilterResults();
527 } 581 }
528 582
583 TEST_F(DownloadQueryTest, DownloadQueryTest_FilterTotalBytes2) {
584 CreateMocks(2);
585 EXPECT_CALL(mock(0), GetTotalBytes()).WillRepeatedly(Return(1));
586 EXPECT_CALL(mock(1), GetTotalBytes()).WillRepeatedly(Return(2));
587 AddFilter(DownloadQuery::FILTER_TOTAL_BYTES, 1.0);
588 ExpectStandardFilterResults();
589 }
590
591 TEST_F(DownloadQueryTest, DownloadQueryTest_FilterTotalBytes3) {
592 CreateMocks(2);
593 EXPECT_CALL(mock(0), GetTotalBytes()).WillRepeatedly(Return(kEightGB));
594 EXPECT_CALL(mock(1), GetTotalBytes()).WillRepeatedly(Return(kSixteenGB));
595 AddFilter(DownloadQuery::FILTER_TOTAL_BYTES, kEightGBDouble);
596 ExpectStandardFilterResults();
597 }
598
529 TEST_F(DownloadQueryTest, DownloadQueryTest_SortTotalBytes) { 599 TEST_F(DownloadQueryTest, DownloadQueryTest_SortTotalBytes) {
530 CreateMocks(2); 600 CreateMocks(2);
531 EXPECT_CALL(mock(0), GetTotalBytes()).WillRepeatedly(Return(2)); 601 EXPECT_CALL(mock(0), GetTotalBytes()).WillRepeatedly(Return(2));
532 EXPECT_CALL(mock(1), GetTotalBytes()).WillRepeatedly(Return(4)); 602 EXPECT_CALL(mock(1), GetTotalBytes()).WillRepeatedly(Return(4));
533 query()->AddSorter(DownloadQuery::SORT_TOTAL_BYTES, 603 query()->AddSorter(DownloadQuery::SORT_TOTAL_BYTES,
534 DownloadQuery::DESCENDING); 604 DownloadQuery::DESCENDING);
535 ExpectSortInverted(); 605 ExpectSortInverted();
536 } 606 }
537 607
538 TEST_F(DownloadQueryTest, DownloadQueryTest_FilterState) { 608 TEST_F(DownloadQueryTest, DownloadQueryTest_FilterState) {
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
610 base::Time start = base::Time::Now(); 680 base::Time start = base::Time::Now();
611 Search(); 681 Search();
612 base::Time end = base::Time::Now(); 682 base::Time end = base::Time::Now();
613 double nanos = (end - start).InMillisecondsF() * 1000.0 * 1000.0; 683 double nanos = (end - start).InMillisecondsF() * 1000.0 * 1000.0;
614 double nanos_per_item = nanos / static_cast<double>(kNumItems); 684 double nanos_per_item = nanos / static_cast<double>(kNumItems);
615 double nanos_per_item_per_filter = nanos_per_item 685 double nanos_per_item_per_filter = nanos_per_item
616 / static_cast<double>(kNumFilters); 686 / static_cast<double>(kNumFilters);
617 std::cout << "Search took " << nanos_per_item_per_filter 687 std::cout << "Search took " << nanos_per_item_per_filter
618 << " nanoseconds per item per filter.\n"; 688 << " nanoseconds per item per filter.\n";
619 } 689 }
OLDNEW
« no previous file with comments | « chrome/browser/download/download_query.cc ('k') | chrome/browser/extensions/api/downloads/downloads_api_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698