summaryrefslogtreecommitdiff
path: root/core/fpdfapi/parser/cpdf_hint_tables_unittest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/fpdfapi/parser/cpdf_hint_tables_unittest.cpp')
-rw-r--r--core/fpdfapi/parser/cpdf_hint_tables_unittest.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/core/fpdfapi/parser/cpdf_hint_tables_unittest.cpp b/core/fpdfapi/parser/cpdf_hint_tables_unittest.cpp
index e45722950e..3d98196093 100644
--- a/core/fpdfapi/parser/cpdf_hint_tables_unittest.cpp
+++ b/core/fpdfapi/parser/cpdf_hint_tables_unittest.cpp
@@ -67,3 +67,32 @@ TEST_F(CPDF_HintTablesTest, Load) {
ASSERT_FALSE(
hint_tables->GetPagePos(2, &page_start, &page_length, &page_obj_num));
}
+
+TEST_F(CPDF_HintTablesTest, PageInfos) {
+ auto data_avail = MakeDataAvailFromFile("feature_linearized_loading.pdf");
+ ASSERT_EQ(CPDF_DataAvail::DocAvailStatus::DataAvailable,
+ data_avail->IsDocAvail(nullptr));
+
+ const CPDF_HintTables* hint_tables = data_avail->GetHintTables();
+ ASSERT_TRUE(hint_tables);
+ ASSERT_EQ(2u, hint_tables->PageInfos().size());
+
+ EXPECT_EQ(5u, hint_tables->PageInfos()[0].objects_count());
+ EXPECT_EQ(777, hint_tables->PageInfos()[0].page_offset());
+ EXPECT_EQ(4328u, hint_tables->PageInfos()[0].page_length());
+ EXPECT_EQ(39u, hint_tables->PageInfos()[0].start_obj_num());
+ ASSERT_EQ(2u, hint_tables->PageInfos()[0].Identifiers().size());
+
+ EXPECT_EQ(0u, hint_tables->PageInfos()[0].Identifiers()[0]);
+ EXPECT_EQ(0u, hint_tables->PageInfos()[0].Identifiers()[1]);
+
+ EXPECT_EQ(3u, hint_tables->PageInfos()[1].objects_count());
+ EXPECT_EQ(5105, hint_tables->PageInfos()[1].page_offset());
+ EXPECT_EQ(767u, hint_tables->PageInfos()[1].page_length());
+ EXPECT_EQ(1u, hint_tables->PageInfos()[1].start_obj_num());
+ ASSERT_EQ(3u, hint_tables->PageInfos()[1].Identifiers().size());
+
+ EXPECT_EQ(2u, hint_tables->PageInfos()[1].Identifiers()[0]);
+ EXPECT_EQ(5u, hint_tables->PageInfos()[1].Identifiers()[1]);
+ EXPECT_EQ(3u, hint_tables->PageInfos()[1].Identifiers()[2]);
+}