Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(111)

Unified Diff: core/fpdfapi/parser/cpdf_document_unittest.cpp

Issue 2510223002: Make CPDF_Dictionary use unique pointers. (Closed)
Patch Set: rebase Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « core/fpdfapi/parser/cpdf_document.cpp ('k') | core/fpdfapi/parser/cpdf_object_unittest.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: core/fpdfapi/parser/cpdf_document_unittest.cpp
diff --git a/core/fpdfapi/parser/cpdf_document_unittest.cpp b/core/fpdfapi/parser/cpdf_document_unittest.cpp
index df90875c3c586a7e42cb68d88ff27ded4ad7b90f..94cef559f0d46189e718559acf8080e5ee9843a7 100644
--- a/core/fpdfapi/parser/cpdf_document_unittest.cpp
+++ b/core/fpdfapi/parser/cpdf_document_unittest.cpp
@@ -5,13 +5,17 @@
#include "core/fpdfapi/parser/cpdf_document.h"
#include <memory>
+#include <utility>
#include "core/fpdfapi/cpdf_modulemgr.h"
#include "core/fpdfapi/parser/cpdf_array.h"
+#include "core/fpdfapi/parser/cpdf_boolean.h"
#include "core/fpdfapi/parser/cpdf_dictionary.h"
#include "core/fpdfapi/parser/cpdf_linearized_header.h"
+#include "core/fpdfapi/parser/cpdf_number.h"
#include "core/fpdfapi/parser/cpdf_parser.h"
#include "core/fpdfapi/parser/cpdf_reference.h"
+#include "core/fpdfapi/parser/cpdf_string.h"
#include "core/fxcrt/fx_memory.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/base/ptr_util.h"
@@ -23,18 +27,20 @@ CPDF_Dictionary* CreatePageTreeNode(std::unique_ptr<CPDF_Array> kids,
int count) {
CPDF_Array* pUnowned = pDoc->AddIndirectObject(std::move(kids))->AsArray();
CPDF_Dictionary* pageNode = pDoc->NewIndirect<CPDF_Dictionary>();
- pageNode->SetStringFor("Type", "Pages");
- pageNode->SetReferenceFor("Kids", pDoc, pUnowned);
- pageNode->SetIntegerFor("Count", count);
- for (size_t i = 0; i < pUnowned->GetCount(); i++)
- pUnowned->GetDictAt(i)->SetReferenceFor("Parent", pDoc, pageNode);
+ pageNode->SetNewFor<CPDF_String>("Type", "Pages", false);
+ pageNode->SetNewFor<CPDF_Reference>("Kids", pDoc, pUnowned->GetObjNum());
+ pageNode->SetNewFor<CPDF_Number>("Count", count);
+ for (size_t i = 0; i < pUnowned->GetCount(); i++) {
+ pUnowned->GetDictAt(i)->SetNewFor<CPDF_Reference>("Parent", pDoc,
+ pageNode->GetObjNum());
+ }
return pageNode;
}
std::unique_ptr<CPDF_Dictionary> CreateNumberedPage(size_t number) {
auto page = pdfium::MakeUnique<CPDF_Dictionary>();
- page->SetStringFor("Type", "Page");
- page->SetIntegerFor("PageNumbering", number);
+ page->SetNewFor<CPDF_String>("Type", "Page", false);
+ page->SetNewFor<CPDF_Number>("PageNumbering", static_cast<int>(number));
return page;
}
@@ -79,7 +85,8 @@ class CPDF_TestDocumentForPages : public CPDF_Document {
CreatePageTreeNode(std::move(allPages), this, 7);
m_pOwnedRootDict = pdfium::MakeUnique<CPDF_Dictionary>();
- m_pOwnedRootDict->SetReferenceFor("Pages", this, pagesDict);
+ m_pOwnedRootDict->SetNewFor<CPDF_Reference>("Pages", this,
+ pagesDict->GetObjNum());
m_pRootDict = m_pOwnedRootDict.get();
m_PageList.SetSize(7);
}
@@ -102,7 +109,8 @@ class CPDF_TestDocumentWithPageWithoutPageNum : public CPDF_Document {
CPDF_Dictionary* pagesDict =
CreatePageTreeNode(std::move(allPages), this, 3);
m_pOwnedRootDict.reset(new CPDF_Dictionary());
- m_pOwnedRootDict->SetReferenceFor("Pages", this, pagesDict->GetObjNum());
+ m_pOwnedRootDict->SetNewFor<CPDF_Reference>("Pages", this,
+ pagesDict->GetObjNum());
m_pRootDict = m_pOwnedRootDict.get();
m_PageList.SetSize(3);
}
@@ -194,9 +202,9 @@ TEST_F(cpdf_document_test, UseCachedPageObjNumIfHaveNotPagesDict) {
// (case, when hint table is used to page check in CPDF_DataAvail).
CPDF_Document document(pdfium::MakeUnique<CPDF_Parser>());
auto dict = pdfium::MakeUnique<CPDF_Dictionary>();
- dict->SetBooleanFor("Linearized", true);
+ dict->SetNewFor<CPDF_Boolean>("Linearized", true);
const int page_count = 100;
- dict->SetIntegerFor("N", page_count);
+ dict->SetNewFor<CPDF_Number>("N", page_count);
TestLinearized linearized(dict.get());
document.LoadLinearizedDoc(&linearized);
ASSERT_EQ(page_count, document.GetPageCount());
« no previous file with comments | « core/fpdfapi/parser/cpdf_document.cpp ('k') | core/fpdfapi/parser/cpdf_object_unittest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698