summaryrefslogtreecommitdiff
path: root/core/fpdfapi/parser/cpdf_hint_tables_unittest.cpp
diff options
context:
space:
mode:
authorArtem Strygin <art-snake@yandex-team.ru>2018-06-29 12:56:29 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-06-29 12:56:29 +0000
commitc4642d4ffe8e6d315663119b5317d3a889e59f1a (patch)
tree3d7d5a98c91c1ced90da0b73ac6fa61b3434cc8b /core/fpdfapi/parser/cpdf_hint_tables_unittest.cpp
parent20c3677acc37c959034d6111c0cab2e681b13717 (diff)
downloadpdfium-c4642d4ffe8e6d315663119b5317d3a889e59f1a.tar.xz
Implement CPDF_HintsTable::PageInfo.
Merge page info data from Hints Table into CPDF_HintsTable::PageInfo class. Change-Id: I468996346ee153e3fa8ada6a83770614362d1b92 Reviewed-on: https://pdfium-review.googlesource.com/15813 Commit-Queue: Art Snake <art-snake@yandex-team.ru> Reviewed-by: Lei Zhang <thestig@chromium.org>
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]);
+}