Rearrange cpdf_document_test.UseCachedPageObjNumIfHaveNotPagesDict.
Rearrange how the test case structures its linearization dictionary,
parser, and document objects, so the follow-up CL can more easily add to
the linearization dictionary. No behavior changes.
Fix nits along the way.
Change-Id: I70e83165da37595b9e979d7b8b8cb68e77103af1
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/67600
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fpdfapi/parser/cpdf_document_unittest.cpp b/core/fpdfapi/parser/cpdf_document_unittest.cpp
index 3a4c4b1..57b977f 100644
--- a/core/fpdfapi/parser/cpdf_document_unittest.cpp
+++ b/core/fpdfapi/parser/cpdf_document_unittest.cpp
@@ -225,30 +225,37 @@
}
TEST_F(cpdf_document_test, UseCachedPageObjNumIfHaveNotPagesDict) {
- // ObjNum can be added in CPDF_DataAvail::IsPageAvail, and PagesDict
- // can be not exists in this case.
- // (case, when hint table is used to page check in CPDF_DataAvail).
- auto dict = pdfium::MakeRetain<CPDF_Dictionary>();
- dict->SetNewFor<CPDF_Boolean>("Linearized", true);
- const int page_count = 100;
- dict->SetNewFor<CPDF_Number>("N", page_count);
- auto linearized = pdfium::MakeUnique<TestLinearized>(dict.Get());
- auto parser = pdfium::MakeUnique<CPDF_Parser>();
- parser->SetLinearizedHeaderForTesting(std::move(linearized));
+ // ObjNum can be added in CPDF_DataAvail::IsPageAvail(), and PagesDict may not
+ // exist in this case, e.g. when hint table is used to page check in
+ // CPDF_DataAvail.
+ constexpr int kPageCount = 100;
+ constexpr int kTestPageNum = 33;
+
+ auto linearization_dict = pdfium::MakeRetain<CPDF_Dictionary>();
CPDF_TestDocumentAllowSetParser document;
- document.SetParser(std::move(parser));
+
+ {
+ linearization_dict->SetNewFor<CPDF_Boolean>("Linearized", true);
+ linearization_dict->SetNewFor<CPDF_Number>("N", kPageCount);
+
+ auto parser = pdfium::MakeUnique<CPDF_Parser>();
+ parser->SetLinearizedHeaderForTesting(
+ pdfium::MakeUnique<TestLinearized>(linearization_dict.Get()));
+ document.SetParser(std::move(parser));
+ }
+
document.LoadPages();
- ASSERT_EQ(page_count, document.GetPageCount());
+
+ ASSERT_EQ(kPageCount, document.GetPageCount());
CPDF_Object* page_stub = document.NewIndirect<CPDF_Dictionary>();
const uint32_t obj_num = page_stub->GetObjNum();
- const int test_page_num = 33;
- EXPECT_FALSE(document.IsPageLoaded(test_page_num));
- EXPECT_EQ(nullptr, document.GetPageDictionary(test_page_num));
+ EXPECT_FALSE(document.IsPageLoaded(kTestPageNum));
+ EXPECT_EQ(nullptr, document.GetPageDictionary(kTestPageNum));
- document.SetPageObjNum(test_page_num, obj_num);
- EXPECT_TRUE(document.IsPageLoaded(test_page_num));
- EXPECT_EQ(page_stub, document.GetPageDictionary(test_page_num));
+ document.SetPageObjNum(kTestPageNum, obj_num);
+ EXPECT_TRUE(document.IsPageLoaded(kTestPageNum));
+ EXPECT_EQ(page_stub, document.GetPageDictionary(kTestPageNum));
}
TEST_F(cpdf_document_test, CountGreaterThanPageTree) {