summaryrefslogtreecommitdiff
path: root/core/fpdfapi/parser/cpdf_document_unittest.cpp
diff options
context:
space:
mode:
authorArtem Strygin <art-snake@yandex-team.ru>2018-06-27 18:15:10 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-06-27 18:15:10 +0000
commit20eca1e383b7dce69cd791d42bda3558a3966301 (patch)
treed3fded7303e8326d3883ca51b6bed2ad2438b6da /core/fpdfapi/parser/cpdf_document_unittest.cpp
parent00ba8bbea0ff57d6f11257736408e530e54ef642 (diff)
downloadpdfium-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.cpp16
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();