summaryrefslogtreecommitdiff
path: root/core/fpdfapi/parser/cpdf_parser_embeddertest.cpp
diff options
context:
space:
mode:
authorArtem Strygin <art-snake@yandex-team.ru>2017-10-02 22:08:44 +0300
committerChromium commit bot <commit-bot@chromium.org>2017-10-04 15:41:16 +0000
commita5fc8975c865dc3cc90de8ff46ca13fb46c13391 (patch)
tree36b38e781140fc31eeec8a55d85299911117ac2b /core/fpdfapi/parser/cpdf_parser_embeddertest.cpp
parent4db6e37b18648dfe2c94b672276c7bf6554fd9d4 (diff)
downloadpdfium-a5fc8975c865dc3cc90de8ff46ca13fb46c13391.tar.xz
Unify parsing of cross ref table v4.
We can use 'Prev' value of first-page cross-reference table trailer for load main cross-reference table, instead of 'T' value of Linearized header (Offset of first entry in main cross-reference table). This is better solution, because this is allow us check entry count in main cross-ref table and unify loading of main cross-ref table with loading methods of non linearized document. See PDF specification: http://wwwimages.adobe.com/content/dam/Adobe/en/devnet/pdf/pdfs/PDF32000_2008.pdf#678 (page 678, Example 3/part 3) Change-Id: I59dcf3c73a0fb561221ded78e827e40535dbd717 Reviewed-on: https://pdfium-review.googlesource.com/13810 Commit-Queue: Art Snake <art-snake@yandex-team.ru> Reviewed-by: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'core/fpdfapi/parser/cpdf_parser_embeddertest.cpp')
-rw-r--r--core/fpdfapi/parser/cpdf_parser_embeddertest.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/core/fpdfapi/parser/cpdf_parser_embeddertest.cpp b/core/fpdfapi/parser/cpdf_parser_embeddertest.cpp
index 99bc2c2d42..6aa3e2785a 100644
--- a/core/fpdfapi/parser/cpdf_parser_embeddertest.cpp
+++ b/core/fpdfapi/parser/cpdf_parser_embeddertest.cpp
@@ -57,3 +57,19 @@ TEST_F(CPDFParserEmbeddertest, Bug_602650) {
TEST_F(CPDFParserEmbeddertest, Bug_757705) {
EXPECT_TRUE(OpenDocument("bug_757705.pdf"));
}
+
+TEST_F(CPDFParserEmbeddertest, LoadMainCrossRefTable) {
+ EXPECT_TRUE(OpenDocument("feature_linearized_loading.pdf", nullptr, true));
+ // To check that main cross ref table is loaded correctly,will be enough to
+ // check that the second page was correctly loaded. Because it is contains
+ // crossrefs for second page.
+ EXPECT_EQ(2, GetPageCount());
+ FPDF_PAGE page = LoadPage(1);
+ EXPECT_NE(nullptr, page);
+ FPDF_TEXTPAGE text_page = FPDFText_LoadPage(page);
+ EXPECT_NE(nullptr, text_page);
+ // The page should not be blank.
+ EXPECT_LT(0, FPDFText_CountChars(text_page));
+ FPDFText_ClosePage(text_page);
+ UnloadPage(page);
+}