aboutsummaryrefslogtreecommitdiff
path: root/icing/result/result-state-manager_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'icing/result/result-state-manager_test.cc')
-rw-r--r--icing/result/result-state-manager_test.cc390
1 files changed, 239 insertions, 151 deletions
diff --git a/icing/result/result-state-manager_test.cc b/icing/result/result-state-manager_test.cc
index ce4589b..38d67e8 100644
--- a/icing/result/result-state-manager_test.cc
+++ b/icing/result/result-state-manager_test.cc
@@ -198,8 +198,7 @@ TEST_F(ResultStateManagerTest, ShouldCacheAndRetrieveFirstPageOnePage) {
std::move(scored_document_hits), /*is_descending=*/true);
ResultStateManager result_state_manager(
- /*max_total_hits=*/std::numeric_limits<int>::max(), document_store(),
- clock());
+ /*max_total_hits=*/std::numeric_limits<int>::max(), document_store());
ICING_ASSERT_OK_AND_ASSIGN(
PageResultInfo page_result_info,
@@ -207,7 +206,8 @@ TEST_F(ResultStateManagerTest, ShouldCacheAndRetrieveFirstPageOnePage) {
std::move(ranker), /*parent_adjustment_info=*/nullptr,
/*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/10, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
EXPECT_THAT(page_result_info.first, Eq(kInvalidNextPageToken));
@@ -243,8 +243,7 @@ TEST_F(ResultStateManagerTest, ShouldCacheAndRetrieveFirstPageMultiplePages) {
std::move(scored_document_hits), /*is_descending=*/true);
ResultStateManager result_state_manager(
- /*max_total_hits=*/std::numeric_limits<int>::max(), document_store(),
- clock());
+ /*max_total_hits=*/std::numeric_limits<int>::max(), document_store());
// First page, 2 results
ICING_ASSERT_OK_AND_ASSIGN(
@@ -253,7 +252,8 @@ TEST_F(ResultStateManagerTest, ShouldCacheAndRetrieveFirstPageMultiplePages) {
std::move(ranker), /*parent_adjustment_info=*/nullptr,
/*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/2, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
EXPECT_THAT(page_result_info1.first, Not(Eq(kInvalidNextPageToken)));
ASSERT_THAT(page_result_info1.second.results, SizeIs(2));
EXPECT_THAT(page_result_info1.second.results.at(0).document(),
@@ -266,7 +266,8 @@ TEST_F(ResultStateManagerTest, ShouldCacheAndRetrieveFirstPageMultiplePages) {
// Second page, 2 results
ICING_ASSERT_OK_AND_ASSIGN(
PageResultInfo page_result_info2,
- result_state_manager.GetNextPage(next_page_token, result_retriever()));
+ result_state_manager.GetNextPage(next_page_token, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
EXPECT_THAT(page_result_info2.first, Eq(next_page_token));
ASSERT_THAT(page_result_info2.second.results, SizeIs(2));
EXPECT_THAT(page_result_info2.second.results.at(0).document(),
@@ -277,7 +278,8 @@ TEST_F(ResultStateManagerTest, ShouldCacheAndRetrieveFirstPageMultiplePages) {
// Third page, 1 result
ICING_ASSERT_OK_AND_ASSIGN(
PageResultInfo page_result_info3,
- result_state_manager.GetNextPage(next_page_token, result_retriever()));
+ result_state_manager.GetNextPage(next_page_token, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
EXPECT_THAT(page_result_info3.first, Eq(kInvalidNextPageToken));
ASSERT_THAT(page_result_info3.second.results, SizeIs(1));
EXPECT_THAT(page_result_info3.second.results.at(0).document(),
@@ -285,28 +287,28 @@ TEST_F(ResultStateManagerTest, ShouldCacheAndRetrieveFirstPageMultiplePages) {
// No results
EXPECT_THAT(
- result_state_manager.GetNextPage(next_page_token, result_retriever()),
+ result_state_manager.GetNextPage(next_page_token, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()),
StatusIs(libtextclassifier3::StatusCode::NOT_FOUND));
}
TEST_F(ResultStateManagerTest, NullRankerShouldReturnError) {
ResultStateManager result_state_manager(
- /*max_total_hits=*/std::numeric_limits<int>::max(), document_store(),
- clock());
+ /*max_total_hits=*/std::numeric_limits<int>::max(), document_store());
EXPECT_THAT(
result_state_manager.CacheAndRetrieveFirstPage(
/*ranker=*/nullptr, /*parent_adjustment_info=*/nullptr,
/*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()),
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()),
StatusIs(libtextclassifier3::StatusCode::INVALID_ARGUMENT));
}
TEST_F(ResultStateManagerTest, EmptyRankerShouldReturnEmptyFirstPage) {
ResultStateManager result_state_manager(
- /*max_total_hits=*/std::numeric_limits<int>::max(), document_store(),
- clock());
+ /*max_total_hits=*/std::numeric_limits<int>::max(), document_store());
ICING_ASSERT_OK_AND_ASSIGN(
PageResultInfo page_result_info,
result_state_manager.CacheAndRetrieveFirstPage(
@@ -315,7 +317,8 @@ TEST_F(ResultStateManagerTest, EmptyRankerShouldReturnEmptyFirstPage) {
std::vector<ScoredDocumentHit>(), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
EXPECT_THAT(page_result_info.first, Eq(kInvalidNextPageToken));
EXPECT_THAT(page_result_info.second.results, IsEmpty());
@@ -331,8 +334,7 @@ TEST_F(ResultStateManagerTest, ShouldAllowEmptyFirstPage) {
{document_id2, kSectionIdMaskNone, /*score=*/1}};
ResultStateManager result_state_manager(
- /*max_total_hits=*/std::numeric_limits<int>::max(), document_store(),
- clock());
+ /*max_total_hits=*/std::numeric_limits<int>::max(), document_store());
// Create a ResultSpec that limits "namespace" to 0 results.
ResultSpecProto result_spec =
@@ -352,7 +354,8 @@ TEST_F(ResultStateManagerTest, ShouldAllowEmptyFirstPage) {
PriorityQueueScoredDocumentHitsRanker<ScoredDocumentHit>>(
std::move(scored_document_hits), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
- result_spec, document_store(), result_retriever()));
+ result_spec, document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
// If the first page has no result, then it should be the last page.
EXPECT_THAT(page_result_info.first, Eq(kInvalidNextPageToken));
EXPECT_THAT(page_result_info.second.results, IsEmpty());
@@ -374,8 +377,7 @@ TEST_F(ResultStateManagerTest, ShouldAllowEmptyLastPage) {
{document_id4, kSectionIdMaskNone, /*score=*/1}};
ResultStateManager result_state_manager(
- /*max_total_hits=*/std::numeric_limits<int>::max(), document_store(),
- clock());
+ /*max_total_hits=*/std::numeric_limits<int>::max(), document_store());
// Create a ResultSpec that limits "namespace" to 2 results.
ResultSpecProto result_spec =
@@ -395,7 +397,8 @@ TEST_F(ResultStateManagerTest, ShouldAllowEmptyLastPage) {
PriorityQueueScoredDocumentHitsRanker<ScoredDocumentHit>>(
std::move(scored_document_hits), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
- result_spec, document_store(), result_retriever()));
+ result_spec, document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
EXPECT_THAT(page_result_info1.first, Not(Eq(kInvalidNextPageToken)));
ASSERT_THAT(page_result_info1.second.results, SizeIs(2));
EXPECT_THAT(page_result_info1.second.results.at(0).document(),
@@ -409,7 +412,8 @@ TEST_F(ResultStateManagerTest, ShouldAllowEmptyLastPage) {
// limiter, so we should get an empty page.
ICING_ASSERT_OK_AND_ASSIGN(
PageResultInfo page_result_info2,
- result_state_manager.GetNextPage(next_page_token, result_retriever()));
+ result_state_manager.GetNextPage(next_page_token, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
EXPECT_THAT(page_result_info2.first, Eq(kInvalidNextPageToken));
EXPECT_THAT(page_result_info2.second.results, IsEmpty());
}
@@ -422,8 +426,7 @@ TEST_F(ResultStateManagerTest,
{/*document_id=*/3, /*document_id=*/4, /*document_id=*/5});
ResultStateManager result_state_manager(
- /*max_total_hits=*/std::numeric_limits<int>::max(), document_store(),
- clock());
+ /*max_total_hits=*/std::numeric_limits<int>::max(), document_store());
SectionRestrictQueryTermsMap query_terms;
SearchSpecProto search_spec;
@@ -444,7 +447,7 @@ TEST_F(ResultStateManagerTest,
result_spec, &schema_store(),
query_terms),
/*child_adjustment_info=*/nullptr, result_spec, document_store(),
- result_retriever()));
+ result_retriever(), clock()->GetSystemTimeMilliseconds()));
ASSERT_THAT(page_result_info1.first, Not(Eq(kInvalidNextPageToken)));
// Set time as 1hr1s and add state 2.
@@ -460,7 +463,7 @@ TEST_F(ResultStateManagerTest,
result_spec, &schema_store(),
query_terms),
/*child_adjustment_info=*/nullptr, result_spec, document_store(),
- result_retriever()));
+ result_retriever(), clock()->GetSystemTimeMilliseconds()));
// Calling CacheAndRetrieveFirstPage() on state 2 should invalidate the
// expired state 1 internally.
@@ -470,8 +473,9 @@ TEST_F(ResultStateManagerTest,
// CacheAndRetrieveFirstPage() instead of the following GetNextPage().
clock()->SetSystemTimeMilliseconds(1000);
// page_result_info1's token (page_result_info1.first) shouldn't be found.
- EXPECT_THAT(result_state_manager.GetNextPage(page_result_info1.first,
- result_retriever()),
+ EXPECT_THAT(result_state_manager.GetNextPage(
+ page_result_info1.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()),
StatusIs(libtextclassifier3::StatusCode::NOT_FOUND));
}
@@ -483,8 +487,7 @@ TEST_F(ResultStateManagerTest,
{/*document_id=*/3, /*document_id=*/4, /*document_id=*/5});
ResultStateManager result_state_manager(
- /*max_total_hits=*/std::numeric_limits<int>::max(), document_store(),
- clock());
+ /*max_total_hits=*/std::numeric_limits<int>::max(), document_store());
// Set time as 1s and add state 1.
clock()->SetSystemTimeMilliseconds(1000);
@@ -496,7 +499,8 @@ TEST_F(ResultStateManagerTest,
std::move(scored_document_hits1), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ASSERT_THAT(page_result_info1.first, Not(Eq(kInvalidNextPageToken)));
// Set time as 2s and add state 2.
@@ -509,7 +513,8 @@ TEST_F(ResultStateManagerTest,
std::move(scored_document_hits2), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ASSERT_THAT(page_result_info2.first, Not(Eq(kInvalidNextPageToken)));
// 1. Set time as 1hr1s.
@@ -520,14 +525,16 @@ TEST_F(ResultStateManagerTest,
// page_result_info2's token (page_result_info2.first) should be found
ICING_ASSERT_OK_AND_ASSIGN(page_result_info2,
result_state_manager.GetNextPage(
- page_result_info2.first, result_retriever()));
+ page_result_info2.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
// We test the behavior by setting time back to 2s, to make sure the
// invalidation of state 1 was done by the previous GetNextPage() instead of
// the following GetNextPage().
clock()->SetSystemTimeMilliseconds(2000);
// page_result_info1's token (page_result_info1.first) shouldn't be found.
- EXPECT_THAT(result_state_manager.GetNextPage(page_result_info1.first,
- result_retriever()),
+ EXPECT_THAT(result_state_manager.GetNextPage(
+ page_result_info1.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()),
StatusIs(libtextclassifier3::StatusCode::NOT_FOUND));
}
@@ -539,8 +546,7 @@ TEST_F(ResultStateManagerTest,
{/*document_id=*/3, /*document_id=*/4, /*document_id=*/5});
ResultStateManager result_state_manager(
- /*max_total_hits=*/std::numeric_limits<int>::max(), document_store(),
- clock());
+ /*max_total_hits=*/std::numeric_limits<int>::max(), document_store());
// Set time as 1s and add state.
clock()->SetSystemTimeMilliseconds(1000);
@@ -552,15 +558,17 @@ TEST_F(ResultStateManagerTest,
std::move(scored_document_hits1), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ASSERT_THAT(page_result_info.first, Not(Eq(kInvalidNextPageToken)));
// 1. Set time as 1hr1s.
// 2. Then calling GetNextPage() on the state shouldn't get anything.
clock()->SetSystemTimeMilliseconds(kDefaultResultStateTtlInMs + 1000);
// page_result_info's token (page_result_info.first) shouldn't be found.
- EXPECT_THAT(result_state_manager.GetNextPage(page_result_info.first,
- result_retriever()),
+ EXPECT_THAT(result_state_manager.GetNextPage(
+ page_result_info.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()),
StatusIs(libtextclassifier3::StatusCode::NOT_FOUND));
}
@@ -587,8 +595,7 @@ TEST_F(ResultStateManagerTest, ShouldInvalidateOneToken) {
{document_id6, kSectionIdMaskNone, /*score=*/1}};
ResultStateManager result_state_manager(
- /*max_total_hits=*/std::numeric_limits<int>::max(), document_store(),
- clock());
+ /*max_total_hits=*/std::numeric_limits<int>::max(), document_store());
ICING_ASSERT_OK_AND_ASSIGN(
PageResultInfo page_result_info1,
@@ -598,7 +605,8 @@ TEST_F(ResultStateManagerTest, ShouldInvalidateOneToken) {
std::move(scored_document_hits1), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ICING_ASSERT_OK_AND_ASSIGN(
PageResultInfo page_result_info2,
@@ -608,20 +616,23 @@ TEST_F(ResultStateManagerTest, ShouldInvalidateOneToken) {
std::move(scored_document_hits2), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
// Invalidate first result state by the token.
result_state_manager.InvalidateResultState(page_result_info1.first);
// page_result_info1's token (page_result_info1.first) shouldn't be found
- EXPECT_THAT(result_state_manager.GetNextPage(page_result_info1.first,
- result_retriever()),
+ EXPECT_THAT(result_state_manager.GetNextPage(
+ page_result_info1.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()),
StatusIs(libtextclassifier3::StatusCode::NOT_FOUND));
// page_result_info2's token (page_result_info2.first) should still exist
ICING_ASSERT_OK_AND_ASSIGN(page_result_info2,
result_state_manager.GetNextPage(
- page_result_info2.first, result_retriever()));
+ page_result_info2.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
// Should get docs.
ASSERT_THAT(page_result_info2.second.results, SizeIs(1));
EXPECT_THAT(page_result_info2.second.results.at(0).document(),
@@ -635,8 +646,7 @@ TEST_F(ResultStateManagerTest, ShouldInvalidateAllTokens) {
{/*document_id=*/3, /*document_id=*/4, /*document_id=*/5});
ResultStateManager result_state_manager(
- /*max_total_hits=*/std::numeric_limits<int>::max(), document_store(),
- clock());
+ /*max_total_hits=*/std::numeric_limits<int>::max(), document_store());
ICING_ASSERT_OK_AND_ASSIGN(
PageResultInfo page_result_info1,
@@ -646,7 +656,8 @@ TEST_F(ResultStateManagerTest, ShouldInvalidateAllTokens) {
std::move(scored_document_hits1), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ICING_ASSERT_OK_AND_ASSIGN(
PageResultInfo page_result_info2,
@@ -656,18 +667,21 @@ TEST_F(ResultStateManagerTest, ShouldInvalidateAllTokens) {
std::move(scored_document_hits2), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
result_state_manager.InvalidateAllResultStates();
// page_result_info1's token (page_result_info1.first) shouldn't be found
- EXPECT_THAT(result_state_manager.GetNextPage(page_result_info1.first,
- result_retriever()),
+ EXPECT_THAT(result_state_manager.GetNextPage(
+ page_result_info1.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()),
StatusIs(libtextclassifier3::StatusCode::NOT_FOUND));
// page_result_info2's token (page_result_info2.first) shouldn't be found
- EXPECT_THAT(result_state_manager.GetNextPage(page_result_info2.first,
- result_retriever()),
+ EXPECT_THAT(result_state_manager.GetNextPage(
+ page_result_info2.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()),
StatusIs(libtextclassifier3::StatusCode::NOT_FOUND));
}
@@ -680,7 +694,7 @@ TEST_F(ResultStateManagerTest, ShouldRemoveOldestResultState) {
AddScoredDocuments({/*document_id=*/4, /*document_id=*/5});
ResultStateManager result_state_manager(/*max_total_hits=*/2,
- document_store(), clock());
+ document_store());
ICING_ASSERT_OK_AND_ASSIGN(
PageResultInfo page_result_info1,
@@ -690,7 +704,8 @@ TEST_F(ResultStateManagerTest, ShouldRemoveOldestResultState) {
std::move(scored_document_hits1), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ICING_ASSERT_OK_AND_ASSIGN(
PageResultInfo page_result_info2,
@@ -700,7 +715,8 @@ TEST_F(ResultStateManagerTest, ShouldRemoveOldestResultState) {
std::move(scored_document_hits2), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
// Adding state 3 should cause state 1 to be removed.
ICING_ASSERT_OK_AND_ASSIGN(
@@ -711,22 +727,26 @@ TEST_F(ResultStateManagerTest, ShouldRemoveOldestResultState) {
std::move(scored_document_hits3), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
- EXPECT_THAT(result_state_manager.GetNextPage(page_result_info1.first,
- result_retriever()),
+ EXPECT_THAT(result_state_manager.GetNextPage(
+ page_result_info1.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()),
StatusIs(libtextclassifier3::StatusCode::NOT_FOUND));
ICING_ASSERT_OK_AND_ASSIGN(page_result_info2,
result_state_manager.GetNextPage(
- page_result_info2.first, result_retriever()));
+ page_result_info2.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ASSERT_THAT(page_result_info2.second.results, SizeIs(1));
EXPECT_THAT(page_result_info2.second.results.at(0).document(),
EqualsProto(document_protos2.at(1)));
ICING_ASSERT_OK_AND_ASSIGN(page_result_info3,
result_state_manager.GetNextPage(
- page_result_info3.first, result_retriever()));
+ page_result_info3.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ASSERT_THAT(page_result_info3.second.results, SizeIs(1));
EXPECT_THAT(page_result_info3.second.results.at(0).document(),
EqualsProto(document_protos3.at(1)));
@@ -747,7 +767,7 @@ TEST_F(ResultStateManagerTest,
// result set of 2 hits. So each result will take up one hit of our three hit
// budget.
ResultStateManager result_state_manager(/*max_total_hits=*/3,
- document_store(), clock());
+ document_store());
ICING_ASSERT_OK_AND_ASSIGN(
PageResultInfo page_result_info1,
@@ -757,7 +777,8 @@ TEST_F(ResultStateManagerTest,
std::move(scored_document_hits1), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ICING_ASSERT_OK_AND_ASSIGN(
PageResultInfo page_result_info2,
@@ -767,7 +788,8 @@ TEST_F(ResultStateManagerTest,
std::move(scored_document_hits2), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ICING_ASSERT_OK_AND_ASSIGN(
PageResultInfo page_result_info3,
@@ -777,7 +799,8 @@ TEST_F(ResultStateManagerTest,
std::move(scored_document_hits3), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
// Invalidates state 2, so that the number of hits current cached should be
// decremented to 2.
@@ -796,29 +819,34 @@ TEST_F(ResultStateManagerTest,
std::move(scored_document_hits4), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ICING_ASSERT_OK_AND_ASSIGN(page_result_info1,
result_state_manager.GetNextPage(
- page_result_info1.first, result_retriever()));
+ page_result_info1.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ASSERT_THAT(page_result_info1.second.results, SizeIs(1));
EXPECT_THAT(page_result_info1.second.results.at(0).document(),
EqualsProto(document_protos1.at(1)));
- EXPECT_THAT(result_state_manager.GetNextPage(page_result_info2.first,
- result_retriever()),
+ EXPECT_THAT(result_state_manager.GetNextPage(
+ page_result_info2.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()),
StatusIs(libtextclassifier3::StatusCode::NOT_FOUND));
ICING_ASSERT_OK_AND_ASSIGN(page_result_info3,
result_state_manager.GetNextPage(
- page_result_info3.first, result_retriever()));
+ page_result_info3.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ASSERT_THAT(page_result_info3.second.results, SizeIs(1));
EXPECT_THAT(page_result_info3.second.results.at(0).document(),
EqualsProto(document_protos3.at(1)));
ICING_ASSERT_OK_AND_ASSIGN(page_result_info4,
result_state_manager.GetNextPage(
- page_result_info4.first, result_retriever()));
+ page_result_info4.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ASSERT_THAT(page_result_info4.second.results, SizeIs(1));
EXPECT_THAT(page_result_info4.second.results.at(0).document(),
EqualsProto(document_protos4.at(1)));
@@ -839,7 +867,7 @@ TEST_F(ResultStateManagerTest,
// result set of 2 hits. So each result will take up one hit of our three hit
// budget.
ResultStateManager result_state_manager(/*max_total_hits=*/3,
- document_store(), clock());
+ document_store());
ICING_ASSERT_OK_AND_ASSIGN(
PageResultInfo page_result_info1,
@@ -849,7 +877,8 @@ TEST_F(ResultStateManagerTest,
std::move(scored_document_hits1), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ICING_ASSERT_OK_AND_ASSIGN(
PageResultInfo page_result_info2,
@@ -859,7 +888,8 @@ TEST_F(ResultStateManagerTest,
std::move(scored_document_hits2), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ICING_ASSERT_OK_AND_ASSIGN(
PageResultInfo page_result_info3,
@@ -869,7 +899,8 @@ TEST_F(ResultStateManagerTest,
std::move(scored_document_hits3), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
// Invalidates all states so that the current hit count will be 0.
result_state_manager.InvalidateAllResultStates();
@@ -892,7 +923,8 @@ TEST_F(ResultStateManagerTest,
std::move(scored_document_hits4), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ICING_ASSERT_OK_AND_ASSIGN(
PageResultInfo page_result_info5,
@@ -902,7 +934,8 @@ TEST_F(ResultStateManagerTest,
std::move(scored_document_hits5), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ICING_ASSERT_OK_AND_ASSIGN(
PageResultInfo page_result_info6,
@@ -912,37 +945,44 @@ TEST_F(ResultStateManagerTest,
std::move(scored_document_hits6), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
- EXPECT_THAT(result_state_manager.GetNextPage(page_result_info1.first,
- result_retriever()),
+ EXPECT_THAT(result_state_manager.GetNextPage(
+ page_result_info1.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()),
StatusIs(libtextclassifier3::StatusCode::NOT_FOUND));
- EXPECT_THAT(result_state_manager.GetNextPage(page_result_info2.first,
- result_retriever()),
+ EXPECT_THAT(result_state_manager.GetNextPage(
+ page_result_info2.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()),
StatusIs(libtextclassifier3::StatusCode::NOT_FOUND));
- EXPECT_THAT(result_state_manager.GetNextPage(page_result_info3.first,
- result_retriever()),
+ EXPECT_THAT(result_state_manager.GetNextPage(
+ page_result_info3.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()),
StatusIs(libtextclassifier3::StatusCode::NOT_FOUND));
ICING_ASSERT_OK_AND_ASSIGN(page_result_info4,
result_state_manager.GetNextPage(
- page_result_info4.first, result_retriever()));
+ page_result_info4.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ASSERT_THAT(page_result_info4.second.results, SizeIs(1));
EXPECT_THAT(page_result_info4.second.results.at(0).document(),
EqualsProto(document_protos4.at(1)));
ICING_ASSERT_OK_AND_ASSIGN(page_result_info5,
result_state_manager.GetNextPage(
- page_result_info5.first, result_retriever()));
+ page_result_info5.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ASSERT_THAT(page_result_info5.second.results, SizeIs(1));
EXPECT_THAT(page_result_info5.second.results.at(0).document(),
EqualsProto(document_protos5.at(1)));
ICING_ASSERT_OK_AND_ASSIGN(page_result_info6,
result_state_manager.GetNextPage(
- page_result_info6.first, result_retriever()));
+ page_result_info6.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ASSERT_THAT(page_result_info6.second.results, SizeIs(1));
EXPECT_THAT(page_result_info6.second.results.at(0).document(),
EqualsProto(document_protos6.at(1)));
@@ -964,7 +1004,7 @@ TEST_F(
// result set of 2 hits. So each result will take up one hit of our three hit
// budget.
ResultStateManager result_state_manager(/*max_total_hits=*/3,
- document_store(), clock());
+ document_store());
ICING_ASSERT_OK_AND_ASSIGN(
PageResultInfo page_result_info1,
@@ -974,7 +1014,8 @@ TEST_F(
std::move(scored_document_hits1), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ICING_ASSERT_OK_AND_ASSIGN(
PageResultInfo page_result_info2,
@@ -984,7 +1025,8 @@ TEST_F(
std::move(scored_document_hits2), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ICING_ASSERT_OK_AND_ASSIGN(
PageResultInfo page_result_info3,
@@ -994,7 +1036,8 @@ TEST_F(
std::move(scored_document_hits3), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
// Invalidates state 2, so that the number of hits current cached should be
// decremented to 2.
@@ -1013,7 +1056,8 @@ TEST_F(
std::move(scored_document_hits4), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
// If invalidating result state 2 correctly decremented the current hit count
// to 2 and adding state 4 correctly incremented it to 3, then adding this
@@ -1028,33 +1072,39 @@ TEST_F(
std::move(scored_document_hits5), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
- EXPECT_THAT(result_state_manager.GetNextPage(page_result_info1.first,
- result_retriever()),
+ EXPECT_THAT(result_state_manager.GetNextPage(
+ page_result_info1.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()),
StatusIs(libtextclassifier3::StatusCode::NOT_FOUND));
- EXPECT_THAT(result_state_manager.GetNextPage(page_result_info2.first,
- result_retriever()),
+ EXPECT_THAT(result_state_manager.GetNextPage(
+ page_result_info2.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()),
StatusIs(libtextclassifier3::StatusCode::NOT_FOUND));
ICING_ASSERT_OK_AND_ASSIGN(page_result_info3,
result_state_manager.GetNextPage(
- page_result_info3.first, result_retriever()));
+ page_result_info3.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ASSERT_THAT(page_result_info3.second.results, SizeIs(1));
EXPECT_THAT(page_result_info3.second.results.at(0).document(),
EqualsProto(document_protos3.at(1)));
ICING_ASSERT_OK_AND_ASSIGN(page_result_info4,
result_state_manager.GetNextPage(
- page_result_info4.first, result_retriever()));
+ page_result_info4.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ASSERT_THAT(page_result_info4.second.results, SizeIs(1));
EXPECT_THAT(page_result_info4.second.results.at(0).document(),
EqualsProto(document_protos4.at(1)));
ICING_ASSERT_OK_AND_ASSIGN(page_result_info5,
result_state_manager.GetNextPage(
- page_result_info5.first, result_retriever()));
+ page_result_info5.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ASSERT_THAT(page_result_info5.second.results, SizeIs(1));
EXPECT_THAT(page_result_info5.second.results.at(0).document(),
EqualsProto(document_protos5.at(1)));
@@ -1074,7 +1124,7 @@ TEST_F(ResultStateManagerTest, GetNextPageShouldDecreaseCurrentHitsCount) {
// result set of 2 hits. So each result will take up one hit of our three hit
// budget.
ResultStateManager result_state_manager(/*max_total_hits=*/3,
- document_store(), clock());
+ document_store());
ICING_ASSERT_OK_AND_ASSIGN(
PageResultInfo page_result_info1,
@@ -1084,7 +1134,8 @@ TEST_F(ResultStateManagerTest, GetNextPageShouldDecreaseCurrentHitsCount) {
std::move(scored_document_hits1), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ICING_ASSERT_OK_AND_ASSIGN(
PageResultInfo page_result_info2,
@@ -1094,7 +1145,8 @@ TEST_F(ResultStateManagerTest, GetNextPageShouldDecreaseCurrentHitsCount) {
std::move(scored_document_hits2), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ICING_ASSERT_OK_AND_ASSIGN(
PageResultInfo page_result_info3,
@@ -1104,13 +1156,15 @@ TEST_F(ResultStateManagerTest, GetNextPageShouldDecreaseCurrentHitsCount) {
std::move(scored_document_hits3), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
// GetNextPage for result state 1 should return its result and decrement the
// number of cached hits to 2.
ICING_ASSERT_OK_AND_ASSIGN(page_result_info1,
result_state_manager.GetNextPage(
- page_result_info1.first, result_retriever()));
+ page_result_info1.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ASSERT_THAT(page_result_info1.second.results, SizeIs(1));
EXPECT_THAT(page_result_info1.second.results.at(0).document(),
EqualsProto(document_protos1.at(1)));
@@ -1128,29 +1182,34 @@ TEST_F(ResultStateManagerTest, GetNextPageShouldDecreaseCurrentHitsCount) {
std::move(scored_document_hits4), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
- EXPECT_THAT(result_state_manager.GetNextPage(page_result_info1.first,
- result_retriever()),
+ EXPECT_THAT(result_state_manager.GetNextPage(
+ page_result_info1.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()),
StatusIs(libtextclassifier3::StatusCode::NOT_FOUND));
ICING_ASSERT_OK_AND_ASSIGN(page_result_info2,
result_state_manager.GetNextPage(
- page_result_info2.first, result_retriever()));
+ page_result_info2.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ASSERT_THAT(page_result_info2.second.results, SizeIs(1));
EXPECT_THAT(page_result_info2.second.results.at(0).document(),
EqualsProto(document_protos2.at(1)));
ICING_ASSERT_OK_AND_ASSIGN(page_result_info3,
result_state_manager.GetNextPage(
- page_result_info3.first, result_retriever()));
+ page_result_info3.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ASSERT_THAT(page_result_info3.second.results, SizeIs(1));
EXPECT_THAT(page_result_info3.second.results.at(0).document(),
EqualsProto(document_protos3.at(1)));
ICING_ASSERT_OK_AND_ASSIGN(page_result_info4,
result_state_manager.GetNextPage(
- page_result_info4.first, result_retriever()));
+ page_result_info4.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ASSERT_THAT(page_result_info4.second.results, SizeIs(1));
EXPECT_THAT(page_result_info4.second.results.at(0).document(),
EqualsProto(document_protos4.at(1)));
@@ -1171,7 +1230,7 @@ TEST_F(ResultStateManagerTest,
// result set of 2 hits. So each result will take up one hit of our three hit
// budget.
ResultStateManager result_state_manager(/*max_total_hits=*/3,
- document_store(), clock());
+ document_store());
ICING_ASSERT_OK_AND_ASSIGN(
PageResultInfo page_result_info1,
@@ -1181,7 +1240,8 @@ TEST_F(ResultStateManagerTest,
std::move(scored_document_hits1), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ICING_ASSERT_OK_AND_ASSIGN(
PageResultInfo page_result_info2,
@@ -1191,7 +1251,8 @@ TEST_F(ResultStateManagerTest,
std::move(scored_document_hits2), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ICING_ASSERT_OK_AND_ASSIGN(
PageResultInfo page_result_info3,
@@ -1201,13 +1262,15 @@ TEST_F(ResultStateManagerTest,
std::move(scored_document_hits3), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
// GetNextPage for result state 1 should return its result and decrement the
// number of cached hits to 2.
ICING_ASSERT_OK_AND_ASSIGN(page_result_info1,
result_state_manager.GetNextPage(
- page_result_info1.first, result_retriever()));
+ page_result_info1.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ASSERT_THAT(page_result_info1.second.results, SizeIs(1));
EXPECT_THAT(page_result_info1.second.results.at(0).document(),
EqualsProto(document_protos1.at(1)));
@@ -1225,7 +1288,8 @@ TEST_F(ResultStateManagerTest,
std::move(scored_document_hits4), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
// If retrieving the next page for result state 1 correctly decremented the
// current hit count to 2 and adding state 4 correctly incremented it to 3,
@@ -1240,33 +1304,39 @@ TEST_F(ResultStateManagerTest,
std::move(scored_document_hits5), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
- EXPECT_THAT(result_state_manager.GetNextPage(page_result_info1.first,
- result_retriever()),
+ EXPECT_THAT(result_state_manager.GetNextPage(
+ page_result_info1.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()),
StatusIs(libtextclassifier3::StatusCode::NOT_FOUND));
- EXPECT_THAT(result_state_manager.GetNextPage(page_result_info2.first,
- result_retriever()),
+ EXPECT_THAT(result_state_manager.GetNextPage(
+ page_result_info2.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()),
StatusIs(libtextclassifier3::StatusCode::NOT_FOUND));
ICING_ASSERT_OK_AND_ASSIGN(page_result_info3,
result_state_manager.GetNextPage(
- page_result_info3.first, result_retriever()));
+ page_result_info3.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ASSERT_THAT(page_result_info3.second.results, SizeIs(1));
EXPECT_THAT(page_result_info3.second.results.at(0).document(),
EqualsProto(document_protos3.at(1)));
ICING_ASSERT_OK_AND_ASSIGN(page_result_info4,
result_state_manager.GetNextPage(
- page_result_info4.first, result_retriever()));
+ page_result_info4.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ASSERT_THAT(page_result_info4.second.results, SizeIs(1));
EXPECT_THAT(page_result_info4.second.results.at(0).document(),
EqualsProto(document_protos4.at(1)));
ICING_ASSERT_OK_AND_ASSIGN(page_result_info5,
result_state_manager.GetNextPage(
- page_result_info5.first, result_retriever()));
+ page_result_info5.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ASSERT_THAT(page_result_info5.second.results, SizeIs(1));
EXPECT_THAT(page_result_info5.second.results.at(0).document(),
EqualsProto(document_protos5.at(1)));
@@ -1284,7 +1354,7 @@ TEST_F(ResultStateManagerTest,
// CacheAndRetrieveFirstPage). Each result state has a page size of 1. So 3
// hits will remain cached.
ResultStateManager result_state_manager(/*max_total_hits=*/4,
- document_store(), clock());
+ document_store());
ICING_ASSERT_OK_AND_ASSIGN(
PageResultInfo page_result_info1,
@@ -1294,7 +1364,8 @@ TEST_F(ResultStateManagerTest,
std::move(scored_document_hits1), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ICING_ASSERT_OK_AND_ASSIGN(
PageResultInfo page_result_info2,
@@ -1304,7 +1375,8 @@ TEST_F(ResultStateManagerTest,
std::move(scored_document_hits2), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
// Add a result state that is larger than the entire budget. This should
// result in all previous result states being evicted, the first hit from
@@ -1321,23 +1393,27 @@ TEST_F(ResultStateManagerTest,
std::move(scored_document_hits3), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
EXPECT_THAT(page_result_info3.first, Not(Eq(kInvalidNextPageToken)));
// GetNextPage for result state 1 and 2 should return NOT_FOUND.
- EXPECT_THAT(result_state_manager.GetNextPage(page_result_info1.first,
- result_retriever()),
+ EXPECT_THAT(result_state_manager.GetNextPage(
+ page_result_info1.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()),
StatusIs(libtextclassifier3::StatusCode::NOT_FOUND));
- EXPECT_THAT(result_state_manager.GetNextPage(page_result_info2.first,
- result_retriever()),
+ EXPECT_THAT(result_state_manager.GetNextPage(
+ page_result_info2.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()),
StatusIs(libtextclassifier3::StatusCode::NOT_FOUND));
// Only the next four results in state 3 should be retrievable.
uint64_t next_page_token3 = page_result_info3.first;
ICING_ASSERT_OK_AND_ASSIGN(
page_result_info3,
- result_state_manager.GetNextPage(next_page_token3, result_retriever()));
+ result_state_manager.GetNextPage(next_page_token3, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
EXPECT_THAT(page_result_info3.first, Eq(next_page_token3));
ASSERT_THAT(page_result_info3.second.results, SizeIs(1));
EXPECT_THAT(page_result_info3.second.results.at(0).document(),
@@ -1345,7 +1421,8 @@ TEST_F(ResultStateManagerTest,
ICING_ASSERT_OK_AND_ASSIGN(
page_result_info3,
- result_state_manager.GetNextPage(next_page_token3, result_retriever()));
+ result_state_manager.GetNextPage(next_page_token3, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
EXPECT_THAT(page_result_info3.first, Eq(next_page_token3));
ASSERT_THAT(page_result_info3.second.results, SizeIs(1));
EXPECT_THAT(page_result_info3.second.results.at(0).document(),
@@ -1353,7 +1430,8 @@ TEST_F(ResultStateManagerTest,
ICING_ASSERT_OK_AND_ASSIGN(
page_result_info3,
- result_state_manager.GetNextPage(next_page_token3, result_retriever()));
+ result_state_manager.GetNextPage(next_page_token3, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
EXPECT_THAT(page_result_info3.first, Eq(next_page_token3));
ASSERT_THAT(page_result_info3.second.results, SizeIs(1));
EXPECT_THAT(page_result_info3.second.results.at(0).document(),
@@ -1361,7 +1439,8 @@ TEST_F(ResultStateManagerTest,
ICING_ASSERT_OK_AND_ASSIGN(
page_result_info3,
- result_state_manager.GetNextPage(next_page_token3, result_retriever()));
+ result_state_manager.GetNextPage(next_page_token3, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
// The final document should have been dropped because it exceeded the budget,
// so the next page token of the second last round should be
// kInvalidNextPageToken.
@@ -1372,7 +1451,8 @@ TEST_F(ResultStateManagerTest,
// Double check that next_page_token3 is not retrievable anymore.
EXPECT_THAT(
- result_state_manager.GetNextPage(next_page_token3, result_retriever()),
+ result_state_manager.GetNextPage(next_page_token3, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()),
StatusIs(libtextclassifier3::StatusCode::NOT_FOUND));
}
@@ -1385,7 +1465,7 @@ TEST_F(ResultStateManagerTest,
/*document_id=*/3, /*document_id=*/4, /*document_id=*/5});
ResultStateManager result_state_manager(/*max_total_hits=*/4,
- document_store(), clock());
+ document_store());
ICING_ASSERT_OK_AND_ASSIGN(
PageResultInfo page_result_info1,
@@ -1395,7 +1475,8 @@ TEST_F(ResultStateManagerTest,
std::move(scored_document_hits1), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
// Add a result state. Because state2 + state1 is larger than the budget,
// state1 should be evicted.
@@ -1409,16 +1490,19 @@ TEST_F(ResultStateManagerTest,
std::move(scored_document_hits2), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
// state1 should have been evicted and state2 should still be retrievable.
- EXPECT_THAT(result_state_manager.GetNextPage(page_result_info1.first,
- result_retriever()),
+ EXPECT_THAT(result_state_manager.GetNextPage(
+ page_result_info1.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()),
StatusIs(libtextclassifier3::StatusCode::NOT_FOUND));
ICING_ASSERT_OK_AND_ASSIGN(page_result_info2,
result_state_manager.GetNextPage(
- page_result_info2.first, result_retriever()));
+ page_result_info2.first, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ASSERT_THAT(page_result_info2.second.results, SizeIs(1));
EXPECT_THAT(page_result_info2.second.results.at(0).document(),
EqualsProto(document_protos2.at(1)));
@@ -1434,7 +1518,7 @@ TEST_F(ResultStateManagerTest,
/*document_id=*/3, /*document_id=*/4});
ResultStateManager result_state_manager(/*max_total_hits=*/4,
- document_store(), clock());
+ document_store());
// The 5 input scored document hits will not be truncated. The first page of
// two hits will be returned immediately and the other three hits will fit
@@ -1447,7 +1531,8 @@ TEST_F(ResultStateManagerTest,
std::move(scored_document_hits), /*is_descending=*/true),
/*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr,
CreateResultSpec(/*num_per_page=*/2, ResultSpecProto::NAMESPACE),
- document_store(), result_retriever()));
+ document_store(), result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
// First page, 2 results
ASSERT_THAT(page_result_info1.second.results, SizeIs(2));
@@ -1461,7 +1546,8 @@ TEST_F(ResultStateManagerTest,
// Second page, 2 results.
ICING_ASSERT_OK_AND_ASSIGN(
PageResultInfo page_result_info2,
- result_state_manager.GetNextPage(next_page_token, result_retriever()));
+ result_state_manager.GetNextPage(next_page_token, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ASSERT_THAT(page_result_info2.second.results, SizeIs(2));
EXPECT_THAT(page_result_info2.second.results.at(0).document(),
EqualsProto(document_protos.at(2)));
@@ -1471,14 +1557,16 @@ TEST_F(ResultStateManagerTest,
// Third page, 1 result.
ICING_ASSERT_OK_AND_ASSIGN(
PageResultInfo page_result_info3,
- result_state_manager.GetNextPage(next_page_token, result_retriever()));
+ result_state_manager.GetNextPage(next_page_token, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()));
ASSERT_THAT(page_result_info3.second.results, SizeIs(1));
EXPECT_THAT(page_result_info3.second.results.at(0).document(),
EqualsProto(document_protos.at(4)));
// Fourth page, 0 results.
EXPECT_THAT(
- result_state_manager.GetNextPage(next_page_token, result_retriever()),
+ result_state_manager.GetNextPage(next_page_token, result_retriever(),
+ clock()->GetSystemTimeMilliseconds()),
StatusIs(libtextclassifier3::StatusCode::NOT_FOUND));
}