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

Side by Side Diff: components/omnibox/browser/in_memory_url_index_unittest.cc

Issue 2702413007: Cleaning up test only variables. (Closed)
Patch Set: Created 3 years, 10 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 <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 7
8 #include <algorithm> 8 #include <algorithm>
9 #include <fstream> 9 #include <fstream>
10 10
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 if ((cursor_position != kInvalid) && 81 if ((cursor_position != kInvalid) &&
82 (cursor_position < lower_string->length()) && (cursor_position > 0)) { 82 (cursor_position < lower_string->length()) && (cursor_position > 0)) {
83 lower_string->insert(cursor_position, base::ASCIIToUTF16(" ")); 83 lower_string->insert(cursor_position, base::ASCIIToUTF16(" "));
84 } 84 }
85 85
86 *lower_terms = base::SplitString(*lower_string, base::kWhitespaceUTF16, 86 *lower_terms = base::SplitString(*lower_string, base::kWhitespaceUTF16,
87 base::KEEP_WHITESPACE, 87 base::KEEP_WHITESPACE,
88 base::SPLIT_WANT_NONEMPTY); 88 base::SPLIT_WANT_NONEMPTY);
89 } 89 }
90 90
91 constexpr size_t kItemsToScoreLimit = 500;
dyaroshev 2017/02/22 22:21:51 Make constants local.
dyaroshev 2017/02/24 01:27:03 Done.
92 constexpr int kLowVisitCount = 20;
93 constexpr int kHighVisitCount = 200;
94 constexpr int kLowTypedCount = 2;
95 constexpr int kHighTypedCount = 100;
96
97 constexpr int kMinRowId = 5000;
98
99 base::Time OldVisitTime() {
Peter Kasting 2017/02/23 01:04:45 Nit: I would make these const temps in the caller
dyaroshev 2017/02/23 01:41:26 I think think that calling now is good because we
dyaroshev 2017/02/24 01:27:03 I've done smth. Is it ok?
100 return base::Time::Now() - base::TimeDelta::FromDays(15);
101 };
102 base::Time RecentVisitTime() {
103 return base::Time::Now() - base::TimeDelta::FromDays(2);
104 };
105
106 HistoryIDSet FillHistoryIDSet(HistoryID min, HistoryID max) {
107 HistoryIDSet res;
108 // All ids are inserted in the end so the implicit hint would work.
109 for (HistoryID id = min; id < max; ++id)
110 res.insert(id);
111 return res;
112 }
113
91 } // namespace 114 } // namespace
92 115
93 // ----------------------------------------------------------------------------- 116 // -----------------------------------------------------------------------------
94 117
95 // Observer class so the unit tests can wait while the cache is being saved. 118 // Observer class so the unit tests can wait while the cache is being saved.
96 class CacheFileSaverObserver : public InMemoryURLIndex::SaveCacheObserver { 119 class CacheFileSaverObserver : public InMemoryURLIndex::SaveCacheObserver {
97 public: 120 public:
98 explicit CacheFileSaverObserver(const base::Closure& task); 121 explicit CacheFileSaverObserver(const base::Closure& task);
99 122
100 bool succeeded() { return succeeded_; } 123 bool succeeded() { return succeeded_; }
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 base::CancelableTaskTracker* GetPrivateDataTracker() const; 176 base::CancelableTaskTracker* GetPrivateDataTracker() const;
154 void ClearPrivateData(); 177 void ClearPrivateData();
155 void set_history_dir(const base::FilePath& dir_path); 178 void set_history_dir(const base::FilePath& dir_path);
156 bool GetCacheFilePath(base::FilePath* file_path) const; 179 bool GetCacheFilePath(base::FilePath* file_path) const;
157 void PostRestoreFromCacheFileTask(); 180 void PostRestoreFromCacheFileTask();
158 void PostSaveToCacheFileTask(); 181 void PostSaveToCacheFileTask();
159 const SchemeSet& scheme_whitelist(); 182 const SchemeSet& scheme_whitelist();
160 183
161 // Pass-through functions to simplify our friendship with URLIndexPrivateData. 184 // Pass-through functions to simplify our friendship with URLIndexPrivateData.
162 bool UpdateURL(const history::URLRow& row); 185 bool UpdateURL(const history::URLRow& row);
186 void AddHistoryEntry(history::URLID row_id,
187 int typed_count,
188 int visit_count,
189 base::Time last_visit);
163 bool DeleteURL(const GURL& url); 190 bool DeleteURL(const GURL& url);
164 191
165 // Data verification helper functions. 192 // Data verification helper functions.
166 void ExpectPrivateDataNotEmpty(const URLIndexPrivateData& data); 193 void ExpectPrivateDataNotEmpty(const URLIndexPrivateData& data);
167 void ExpectPrivateDataEmpty(const URLIndexPrivateData& data); 194 void ExpectPrivateDataEmpty(const URLIndexPrivateData& data);
168 void ExpectPrivateDataEqual(const URLIndexPrivateData& expected, 195 void ExpectPrivateDataEqual(const URLIndexPrivateData& expected,
169 const URLIndexPrivateData& actual); 196 const URLIndexPrivateData& actual);
170 197
171 base::MessageLoop message_loop_; 198 base::MessageLoop message_loop_;
172 base::SequencedWorkerPoolOwner pool_owner_; 199 base::SequencedWorkerPoolOwner pool_owner_;
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 const SchemeSet& InMemoryURLIndexTest::scheme_whitelist() { 246 const SchemeSet& InMemoryURLIndexTest::scheme_whitelist() {
220 return url_index_->scheme_whitelist(); 247 return url_index_->scheme_whitelist();
221 } 248 }
222 249
223 bool InMemoryURLIndexTest::UpdateURL(const history::URLRow& row) { 250 bool InMemoryURLIndexTest::UpdateURL(const history::URLRow& row) {
224 return GetPrivateData()->UpdateURL( 251 return GetPrivateData()->UpdateURL(
225 history_service_.get(), row, url_index_->scheme_whitelist_, 252 history_service_.get(), row, url_index_->scheme_whitelist_,
226 GetPrivateDataTracker()); 253 GetPrivateDataTracker());
227 } 254 }
228 255
256 void InMemoryURLIndexTest::AddHistoryEntry(history::URLID row_id,
257 int typed_count,
258 int visit_count,
259 base::Time last_visit) {
260 history::URLRow new_row(
261 GURL("http://www.fake_url" + std::to_string(row_id) + ".com"), row_id);
262 new_row.set_visit_count(visit_count);
263 new_row.set_typed_count(typed_count);
264 new_row.set_last_visit(last_visit);
265 UpdateURL(std::move(new_row));
266 };
267
229 bool InMemoryURLIndexTest::DeleteURL(const GURL& url) { 268 bool InMemoryURLIndexTest::DeleteURL(const GURL& url) {
230 return GetPrivateData()->DeleteURL(url); 269 return GetPrivateData()->DeleteURL(url);
231 } 270 }
232 271
233 void InMemoryURLIndexTest::SetUp() { 272 void InMemoryURLIndexTest::SetUp() {
234 // We cannot access the database until the backend has been loaded. 273 // We cannot access the database until the backend has been loaded.
235 if (history_dir_.CreateUniqueTempDir()) 274 if (history_dir_.CreateUniqueTempDir())
236 history_service_ = 275 history_service_ =
237 history::CreateHistoryService(history_dir_.GetPath(), true); 276 history::CreateHistoryService(history_dir_.GetPath(), true);
238 ASSERT_TRUE(history_service_); 277 ASSERT_TRUE(history_service_);
(...skipping 464 matching lines...) Expand 10 before | Expand all | Expand 10 after
703 ASCIIToUTF16("atdmt view"), base::string16::npos, kMaxMatches); 742 ASCIIToUTF16("atdmt view"), base::string16::npos, kMaxMatches);
704 EXPECT_EQ(1U, matches.size()); 743 EXPECT_EQ(1U, matches.size());
705 matches = url_index_->HistoryItemsForTerms(ASCIIToUTF16("atdmt.view"), 744 matches = url_index_->HistoryItemsForTerms(ASCIIToUTF16("atdmt.view"),
706 base::string16::npos, kMaxMatches); 745 base::string16::npos, kMaxMatches);
707 EXPECT_EQ(0U, matches.size()); 746 EXPECT_EQ(0U, matches.size());
708 matches = url_index_->HistoryItemsForTerms(ASCIIToUTF16("view.atdmt"), 747 matches = url_index_->HistoryItemsForTerms(ASCIIToUTF16("view.atdmt"),
709 base::string16::npos, kMaxMatches); 748 base::string16::npos, kMaxMatches);
710 EXPECT_EQ(1U, matches.size()); 749 EXPECT_EQ(1U, matches.size());
711 } 750 }
712 751
752 TEST_F(InMemoryURLIndexTest, DontTrimMoreThanLimit) {
Peter Kasting 2017/02/23 01:04:45 Nit: Especially for the second test you add, but r
dyaroshev 2017/02/24 01:27:03 Done?
753 history::URLID row_id = kMinRowId;
754 AddHistoryEntry(row_id, kLowTypedCount, kLowVisitCount, OldVisitTime());
755 for (++row_id; size_t(row_id) < kItemsToScoreLimit - 1; ++row_id) {
Peter Kasting 2017/02/23 01:04:45 I don't think this works right? kMinRowId = 5000
dyaroshev 2017/02/24 01:27:03 Not applicable.
756 AddHistoryEntry(row_id, kLowTypedCount, kLowVisitCount, OldVisitTime());
757 }
dyaroshev 2017/02/22 22:21:51 One extra addition is unnecessary.
Peter Kasting 2017/02/23 01:04:45 Not sure what this is saying. Is it explaining th
dyaroshev 2017/02/23 01:41:26 It's more for me - to avoid extra patches, if I se
Peter Kasting 2017/02/23 01:46:06 OK. I still don't really get the "- 1" in the loo
dyaroshev 2017/02/24 01:27:03 Not applicable.
758
759 auto history_id_set = FillHistoryIDSet(kMinRowId, row_id);
dyaroshev 2017/02/22 22:21:52 Check that all ids are in
760
761 EXPECT_FALSE(GetPrivateData()->TrimHistoryIdsPool(&history_id_set));
762 EXPECT_EQ(size_t(row_id - kMinRowId), history_id_set.size());
763 }
764
765 TEST_F(InMemoryURLIndexTest, TrimByProrities) {
766 int expected_worst = 1;
Peter Kasting 2017/02/23 01:04:45 Nit: I can't instantly tell what this code is doin
dyaroshev 2017/02/24 01:27:03 Rewrote the test.
767 int expected_recent = 2;
768 int expected_visit_count = 3;
769 int expected_typed_count = kItemsToScoreLimit - expected_visit_count -
770 expected_recent - expected_worst;
771
772 const history::URLID last_high_typed_count = kMinRowId + expected_typed_count;
773 const history::URLID last_high_visit_count =
774 last_high_typed_count + expected_visit_count;
775 const history::URLID last_recent = last_high_visit_count + expected_recent;
776 const history::URLID last_worst = last_recent + kItemsToScoreLimit;
777
778 history::URLID row_id = kMinRowId;
779 for (; row_id < last_high_typed_count; ++row_id)
780 AddHistoryEntry(row_id, kHighTypedCount, kLowVisitCount, OldVisitTime());
781
782 for (; row_id < last_high_visit_count; ++row_id)
783 AddHistoryEntry(row_id, kLowTypedCount, kHighVisitCount, OldVisitTime());
784
785 for (; row_id < last_recent; ++row_id)
786 AddHistoryEntry(row_id, kLowTypedCount, kLowVisitCount, RecentVisitTime());
787
788 for (; row_id < last_worst; ++row_id)
789 AddHistoryEntry(row_id, kLowTypedCount, kLowVisitCount, OldVisitTime());
790
791 auto history_id_set = FillHistoryIDSet(kMinRowId, row_id);
792 EXPECT_TRUE(GetPrivateData()->TrimHistoryIdsPool(&history_id_set));
793 EXPECT_EQ(kItemsToScoreLimit, history_id_set.size());
794
795 for (HistoryID id : history_id_set) {
dyaroshev 2017/02/22 22:21:52 We could do the checks more efficiently for the se
796 if (id < last_high_typed_count)
797 --expected_typed_count;
798 else if (id < last_high_visit_count)
799 --expected_visit_count;
800 else if (id < last_recent)
801 --expected_recent;
802 else if (id < last_worst)
803 --expected_worst;
804 }
805
806 EXPECT_EQ(0, expected_typed_count);
807 EXPECT_EQ(0, expected_visit_count);
808 EXPECT_EQ(0, expected_recent);
809 EXPECT_EQ(0, expected_worst);
810 }
811
713 TEST_F(InMemoryURLIndexTest, HugeResultSet) { 812 TEST_F(InMemoryURLIndexTest, HugeResultSet) {
714 // Create a huge set of qualifying history items. 813 // Create a huge set of qualifying history items.
715 for (history::URLID row_id = 5000; row_id < 6000; ++row_id) { 814 for (history::URLID row_id = 5000; row_id < 6000; ++row_id) {
716 history::URLRow new_row(GURL("http://www.brokeandaloneinmanitoba.com/"), 815 history::URLRow new_row(GURL("http://www.brokeandaloneinmanitoba.com/"),
717 row_id); 816 row_id);
718 new_row.set_last_visit(base::Time::Now()); 817 new_row.set_last_visit(base::Time::Now());
719 EXPECT_TRUE(UpdateURL(new_row)); 818 EXPECT_TRUE(UpdateURL(new_row));
720 } 819 }
721 820
722 ScoredHistoryMatches matches = url_index_->HistoryItemsForTerms( 821 ScoredHistoryMatches matches = url_index_->HistoryItemsForTerms(
723 ASCIIToUTF16("b"), base::string16::npos, kMaxMatches); 822 ASCIIToUTF16("b"), base::string16::npos, kMaxMatches);
724 URLIndexPrivateData& private_data(*GetPrivateData());
725 EXPECT_EQ(kMaxMatches, matches.size()); 823 EXPECT_EQ(kMaxMatches, matches.size());
726 // There are 7 matches already in the database.
727 EXPECT_EQ(1008U, private_data.pre_filter_item_count_);
728 EXPECT_EQ(500U, private_data.post_filter_item_count_);
729 EXPECT_EQ(kMaxMatches, private_data.post_scoring_item_count_);
730 } 824 }
731 825
732 TEST_F(InMemoryURLIndexTest, TitleSearch) { 826 TEST_F(InMemoryURLIndexTest, TitleSearch) {
733 // Signal if someone has changed the test DB. 827 // Signal if someone has changed the test DB.
734 EXPECT_EQ(30U, GetPrivateData()->history_info_map_.size()); 828 EXPECT_EQ(30U, GetPrivateData()->history_info_map_.size());
735 829
736 // Ensure title is being searched. 830 // Ensure title is being searched.
737 ScoredHistoryMatches matches = url_index_->HistoryItemsForTerms( 831 ScoredHistoryMatches matches = url_index_->HistoryItemsForTerms(
738 ASCIIToUTF16("MORTGAGE RATE DROPS"), base::string16::npos, kMaxMatches); 832 ASCIIToUTF16("MORTGAGE RATE DROPS"), base::string16::npos, kMaxMatches);
739 ASSERT_EQ(1U, matches.size()); 833 ASSERT_EQ(1U, matches.size());
(...skipping 605 matching lines...) Expand 10 before | Expand all | Expand 10 after
1345 ASSERT_TRUE(GetCacheFilePath(&full_file_path)); 1439 ASSERT_TRUE(GetCacheFilePath(&full_file_path));
1346 std::vector<base::FilePath::StringType> actual_parts; 1440 std::vector<base::FilePath::StringType> actual_parts;
1347 full_file_path.GetComponents(&actual_parts); 1441 full_file_path.GetComponents(&actual_parts);
1348 ASSERT_EQ(expected_parts.size(), actual_parts.size()); 1442 ASSERT_EQ(expected_parts.size(), actual_parts.size());
1349 size_t count = expected_parts.size(); 1443 size_t count = expected_parts.size();
1350 for (size_t i = 0; i < count; ++i) 1444 for (size_t i = 0; i < count; ++i)
1351 EXPECT_EQ(expected_parts[i], actual_parts[i]); 1445 EXPECT_EQ(expected_parts[i], actual_parts[i]);
1352 // Must clear the history_dir_ to satisfy the dtor's DCHECK. 1446 // Must clear the history_dir_ to satisfy the dtor's DCHECK.
1353 set_history_dir(base::FilePath()); 1447 set_history_dir(base::FilePath());
1354 } 1448 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698