diff options
author | Artem Strygin <art-snake@yandex-team.ru> | 2018-06-27 18:15:10 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-06-27 18:15:10 +0000 |
commit | 20eca1e383b7dce69cd791d42bda3558a3966301 (patch) | |
tree | d3fded7303e8326d3883ca51b6bed2ad2438b6da /core/fpdfapi/parser/cpdf_document_unittest.cpp | |
parent | 00ba8bbea0ff57d6f11257736408e530e54ef642 (diff) | |
download | pdfium-20eca1e383b7dce69cd791d42bda3558a3966301.tar.xz |
Rework of loading of CPDF_Document.
Improve CPDF_Document interface.
Fix relationship between CPDF_Document and CPDF_Parser.
This CL changes CPDF_Document to internally create the CPDF_Parser
and removes the need for the CPDF_Parser to know about the CPDF_Document.
Change-Id: Iec7aef19575c90f30b9a6c919dfd4f4417e4caf2
Reviewed-on: https://pdfium-review.googlesource.com/35630
Commit-Queue: Art Snake <art-snake@yandex-team.ru>
Reviewed-by: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'core/fpdfapi/parser/cpdf_document_unittest.cpp')
-rw-r--r-- | core/fpdfapi/parser/cpdf_document_unittest.cpp | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/core/fpdfapi/parser/cpdf_document_unittest.cpp b/core/fpdfapi/parser/cpdf_document_unittest.cpp index 522aa65fc9..c64da6382a 100644 --- a/core/fpdfapi/parser/cpdf_document_unittest.cpp +++ b/core/fpdfapi/parser/cpdf_document_unittest.cpp @@ -49,7 +49,7 @@ std::unique_ptr<CPDF_Dictionary> CreateNumberedPage(size_t number) { class CPDF_TestDocumentForPages : public CPDF_Document { public: - CPDF_TestDocumentForPages() : CPDF_Document(nullptr) { + CPDF_TestDocumentForPages() : CPDF_Document() { // Set up test auto zeroToTwo = pdfium::MakeUnique<CPDF_Array>(); zeroToTwo->AddNew<CPDF_Reference>( @@ -101,7 +101,7 @@ class CPDF_TestDocumentForPages : public CPDF_Document { class CPDF_TestDocumentWithPageWithoutPageNum : public CPDF_Document { public: - CPDF_TestDocumentWithPageWithoutPageNum() : CPDF_Document(nullptr) { + CPDF_TestDocumentWithPageWithoutPageNum() : CPDF_Document() { // Set up test auto allPages = pdfium::MakeUnique<CPDF_Array>(); allPages->AddNew<CPDF_Reference>( @@ -132,7 +132,7 @@ class TestLinearized : public CPDF_LinearizedHeader { class CPDF_TestDocPagesWithoutKids : public CPDF_Document { public: - CPDF_TestDocPagesWithoutKids() : CPDF_Document(nullptr) { + CPDF_TestDocPagesWithoutKids() : CPDF_Document() { CPDF_Dictionary* pagesDict = NewIndirect<CPDF_Dictionary>(); pagesDict->SetNewFor<CPDF_Name>("Type", "Pages"); pagesDict->SetNewFor<CPDF_Number>("Count", 3); @@ -143,6 +143,11 @@ class CPDF_TestDocPagesWithoutKids : public CPDF_Document { } }; +class CPDF_TestDocumentAllowSetParser : public CPDF_Document { + public: + using CPDF_Document::SetParser; +}; + } // namespace class cpdf_document_test : public testing::Test { @@ -222,8 +227,9 @@ TEST_F(cpdf_document_test, UseCachedPageObjNumIfHaveNotPagesDict) { auto linearized = pdfium::MakeUnique<TestLinearized>(dict.get()); auto parser = pdfium::MakeUnique<CPDF_Parser>(); parser->SetLinearizedHeader(std::move(linearized)); - CPDF_Document document(std::move(parser)); - document.LoadDoc(); + CPDF_TestDocumentAllowSetParser document; + document.SetParser(std::move(parser)); + document.LoadPages(); ASSERT_EQ(page_count, document.GetPageCount()); CPDF_Object* page_stub = document.NewIndirect<CPDF_Dictionary>(); const uint32_t obj_num = page_stub->GetObjNum(); |