Consistently check page loading succeeds in tests. e.g. VerifySavedRendering(page, ...) starts with DCHECK(page), which means the caller needs to verify the page is a valid handle. Also fix some incorrect comments about closing documents. Change-Id: I5f838b60474c20d6998ff8b62627a9b90707b67b Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/79292 Reviewed-by: Daniel Hosseinian <dhoss@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdfapi/parser/cpdf_security_handler_embeddertest.cpp b/core/fpdfapi/parser/cpdf_security_handler_embeddertest.cpp index 661fb45..57092d5 100644 --- a/core/fpdfapi/parser/cpdf_security_handler_embeddertest.cpp +++ b/core/fpdfapi/parser/cpdf_security_handler_embeddertest.cpp
@@ -184,6 +184,7 @@ for (const auto& test : tests) { ASSERT_TRUE(OpenSavedDocumentWithPassword(test.password)); FPDF_PAGE page = LoadSavedPage(0); + ASSERT_TRUE(page); VerifySavedRendering(page, 612, 792, kChecksum); EXPECT_EQ(test.permissions, FPDF_GetDocPermissions(saved_document_));
diff --git a/fpdfsdk/fpdf_annot_embeddertest.cpp b/fpdfsdk/fpdf_annot_embeddertest.cpp index 1fea030..c7d8e65 100644 --- a/fpdfsdk/fpdf_annot_embeddertest.cpp +++ b/fpdfsdk/fpdf_annot_embeddertest.cpp
@@ -670,7 +670,7 @@ ASSERT_TRUE(FPDFAnnot_AppendAttachmentPoints(annot.get(), &quadpoints)); } - // Save the document, closing the page and document. + // Save the document and close the page. EXPECT_TRUE(FPDF_SaveAsCopy(document(), this, 0)); UnloadPage(page); @@ -687,6 +687,7 @@ ASSERT_TRUE(OpenSavedDocument()); page = LoadSavedPage(0); + ASSERT_TRUE(page); VerifySavedRendering(page, 612, 792, kChecksum); // Check that the saved document has 2 annotations on the first page @@ -979,7 +980,7 @@ EXPECT_EQ(2, FPDFPage_GetAnnotCount(page)); EXPECT_FALSE(FPDFPage_GetAnnot(page, 2)); - // Save the document, closing the page and document. + // Save the document and close the page. EXPECT_TRUE(FPDF_SaveAsCopy(document(), this, 0)); UnloadPageNoEvents(page); @@ -1143,13 +1144,14 @@ EXPECT_EQ(rect.top, new_rect.top); } - // Save the document, closing the page and document. + // Save the document and close the page. EXPECT_TRUE(FPDF_SaveAsCopy(document(), this, 0)); UnloadPage(page); // Open the saved document. ASSERT_TRUE(OpenSavedDocument()); page = LoadSavedPage(0); + ASSERT_TRUE(page); VerifySavedRendering(page, 595, 842, kMd5NewAnnot); // Check that the document has a correct count of annotations and objects. @@ -1316,7 +1318,7 @@ EXPECT_TRUE(FPDFAnnot_UpdateObject(annot.get(), image_object)); } - // Save the document, closing the page and document. + // Save the document and close the page. EXPECT_TRUE(FPDF_SaveAsCopy(document(), this, 0)); UnloadPage(page); FPDFBitmap_Destroy(image_bitmap); @@ -1469,7 +1471,7 @@ text.get())); } - // Save the document, closing the page and document. + // Save the document and close the page. EXPECT_TRUE(FPDF_SaveAsCopy(document(), this, 0)); UnloadPage(page); @@ -1492,6 +1494,7 @@ // Open the saved annotation. ASSERT_TRUE(OpenSavedDocument()); page = LoadSavedPage(0); + ASSERT_TRUE(page); VerifySavedRendering(page, 595, 842, kMd5); { ScopedFPDFAnnotation new_annot(FPDFPage_GetAnnot(page, 0)); @@ -1651,6 +1654,7 @@ ASSERT_TRUE(OpenSavedDocument()); page = LoadSavedPage(0); + ASSERT_TRUE(page); { ScopedFPDFAnnotation new_annot(FPDFPage_GetAnnot(page, 0));
diff --git a/fpdfsdk/fpdf_edit_embeddertest.cpp b/fpdfsdk/fpdf_edit_embeddertest.cpp index 54b2b74..ae1db92 100644 --- a/fpdfsdk/fpdf_edit_embeddertest.cpp +++ b/fpdfsdk/fpdf_edit_embeddertest.cpp
@@ -709,6 +709,7 @@ // Re-open the file and check the changes were kept in the saved .pdf. ASSERT_TRUE(OpenSavedDocument()); FPDF_PAGE saved_page = LoadSavedPage(0); + ASSERT_TRUE(saved_page); EXPECT_EQ(2, FPDFPage_CountObjects(saved_page)); { ScopedFPDFBitmap page_bitmap = RenderPage(saved_page); @@ -1095,6 +1096,7 @@ // Re-open the file and check the prime marks are not there anymore. ASSERT_TRUE(OpenSavedDocument()); FPDF_PAGE saved_page = LoadSavedPage(0); + ASSERT_TRUE(saved_page); EXPECT_EQ(11, FPDFPage_CountObjects(saved_page)); { @@ -1152,6 +1154,7 @@ // Re-open the file and check the prime marks are not there anymore. ASSERT_TRUE(OpenSavedDocument()); FPDF_PAGE saved_page = LoadSavedPage(0); + ASSERT_TRUE(saved_page); CheckMarkCounts(saved_page, 1, kExpectedObjectCount, 0, 4, 9, 1); @@ -1208,6 +1211,7 @@ // Re-open the file and check the "Factor" parameters are still gone. ASSERT_TRUE(OpenSavedDocument()); FPDF_PAGE saved_page = LoadSavedPage(0); + ASSERT_TRUE(saved_page); size_t square_count = 0; for (int i = 0; i < kExpectedObjectCount; ++i) { @@ -1267,6 +1271,7 @@ ASSERT_TRUE(OpenSavedDocument()); FPDF_PAGE saved_page = LoadSavedPage(0); + ASSERT_TRUE(saved_page); CheckMarkCounts(saved_page, 2, 18, 8, 3, 9, 1); @@ -1298,6 +1303,7 @@ ASSERT_TRUE(OpenSavedDocument()); FPDF_PAGE saved_page = LoadSavedPage(0); + ASSERT_TRUE(saved_page); CheckMarkCounts(saved_page, 2, 18, 8, 3, 9, 1); @@ -1329,6 +1335,7 @@ // Re-open the file and check the page object count is still 1. ASSERT_TRUE(OpenSavedDocument()); FPDF_PAGE saved_page = LoadSavedPage(0); + ASSERT_TRUE(saved_page); EXPECT_EQ(1, FPDFPage_CountObjects(saved_page)); CloseSavedPage(saved_page); CloseSavedDocument(); @@ -1378,6 +1385,7 @@ // Re-open the file and check the page object count is still 2. ASSERT_TRUE(OpenSavedDocument()); FPDF_PAGE saved_page = LoadSavedPage(0); + ASSERT_TRUE(saved_page); EXPECT_EQ(2, FPDFPage_CountObjects(saved_page)); { @@ -1418,6 +1426,7 @@ // Re-open the file and check the page object count is still 2. ASSERT_TRUE(OpenSavedDocument()); FPDF_PAGE saved_page = LoadSavedPage(0); + ASSERT_TRUE(saved_page); EXPECT_EQ(2, FPDFPage_CountObjects(saved_page)); { @@ -1537,6 +1546,7 @@ // content stream 1 was removed. ASSERT_TRUE(OpenSavedDocument()); FPDF_PAGE saved_page = LoadSavedPage(0); + ASSERT_TRUE(saved_page); // Content stream 0: page objects 0-14. // Content stream 1: page object 15. @@ -1603,6 +1613,7 @@ // Re-open the file and check the page object count is still 0. ASSERT_TRUE(OpenSavedDocument()); FPDF_PAGE saved_page = LoadSavedPage(0); + ASSERT_TRUE(saved_page); EXPECT_EQ(0, FPDFPage_CountObjects(saved_page)); { @@ -1660,6 +1671,7 @@ // Re-open the file and check the page object count is still 0. ASSERT_TRUE(OpenSavedDocument()); FPDF_PAGE saved_page = LoadSavedPage(0); + ASSERT_TRUE(saved_page); ASSERT_EQ(1, FPDFPage_CountObjects(saved_page)); page_object = FPDFPage_GetObject(saved_page, 0); @@ -1722,6 +1734,7 @@ // Re-open the file and check the page object count is still 0. ASSERT_TRUE(OpenSavedDocument()); FPDF_PAGE saved_page = LoadSavedPage(0); + ASSERT_TRUE(saved_page); ASSERT_EQ(1, FPDFPage_CountObjects(saved_page)); page_object = FPDFPage_GetObject(saved_page, 0); @@ -1777,6 +1790,7 @@ // Re-open the file and check the page object count is still 0. ASSERT_TRUE(OpenSavedDocument()); FPDF_PAGE saved_page = LoadSavedPage(0); + ASSERT_TRUE(saved_page); EXPECT_EQ(0, FPDFPage_CountObjects(saved_page)); { @@ -1812,6 +1826,7 @@ // Re-open the file and check the page object count is still 3. ASSERT_TRUE(OpenSavedDocument()); FPDF_PAGE saved_page = LoadSavedPage(0); + ASSERT_TRUE(saved_page); EXPECT_EQ(3, FPDFPage_CountObjects(saved_page)); CloseSavedPage(saved_page); CloseSavedDocument(); @@ -1845,6 +1860,7 @@ // Re-open the file and check the page object count is still 3. ASSERT_TRUE(OpenSavedDocument()); FPDF_PAGE saved_page = LoadSavedPage(0); + ASSERT_TRUE(saved_page); EXPECT_EQ(3, FPDFPage_CountObjects(saved_page)); CloseSavedPage(saved_page); CloseSavedDocument(); @@ -1891,6 +1907,7 @@ // Re-open the file and check the rectangle added is still there. ASSERT_TRUE(OpenSavedDocument()); FPDF_PAGE saved_page = LoadSavedPage(0); + ASSERT_TRUE(saved_page); EXPECT_EQ(kOriginalObjectCount + 1, FPDFPage_CountObjects(saved_page)); { ScopedFPDFBitmap page_bitmap = RenderPage(saved_page); @@ -1919,6 +1936,7 @@ // rest is intact. ASSERT_TRUE(OpenSavedDocument()); saved_page = LoadSavedPage(0); + ASSERT_TRUE(saved_page); EXPECT_EQ(kOriginalObjectCount, FPDFPage_CountObjects(saved_page)); { ScopedFPDFBitmap page_bitmap = RenderPage(saved_page); @@ -2072,6 +2090,7 @@ ASSERT_TRUE(OpenSavedDocument()); FPDF_PAGE saved_page = LoadSavedPage(0); + ASSERT_TRUE(saved_page); VerifySavedRendering(saved_page, 612, 792, kOriginalChecksum); ClearString(); @@ -3003,6 +3022,7 @@ // Re-open the file and check the new mark is present. ASSERT_TRUE(OpenSavedDocument()); FPDF_PAGE saved_page = LoadSavedPage(0); + ASSERT_TRUE(saved_page); CheckMarkCounts(saved_page, 1, 19, 8, 4, 9, 2); @@ -3045,6 +3065,7 @@ // Re-open the file and check the new mark is present. ASSERT_TRUE(OpenSavedDocument()); FPDF_PAGE saved_page = LoadSavedPage(0); + ASSERT_TRUE(saved_page); { ScopedFPDFBitmap page_bitmap = RenderPage(saved_page); @@ -3107,6 +3128,7 @@ // Re-open the file and cerify "Position" still maps to "End". ASSERT_TRUE(OpenSavedDocument()); FPDF_PAGE saved_page = LoadSavedPage(0); + ASSERT_TRUE(saved_page); CheckMarkCounts(saved_page, 1, kExpectedObjectCount, 8, 4, 9, 1); page_object = FPDFPage_GetObject(saved_page, 18); @@ -3212,6 +3234,7 @@ // Re-open the file and check the changes were kept in the saved .pdf. ASSERT_TRUE(OpenSavedDocument()); FPDF_PAGE saved_page = LoadSavedPage(0); + ASSERT_TRUE(saved_page); EXPECT_EQ(1, FPDFPage_CountObjects(saved_page)); text_object = FPDFPage_GetObject(saved_page, 0);
diff --git a/fpdfsdk/fpdf_editpath_embeddertest.cpp b/fpdfsdk/fpdf_editpath_embeddertest.cpp index 51b4d58..eaf8e63 100644 --- a/fpdfsdk/fpdf_editpath_embeddertest.cpp +++ b/fpdfsdk/fpdf_editpath_embeddertest.cpp
@@ -34,7 +34,7 @@ ASSERT_TRUE(OpenSavedDocument()); page = LoadSavedPage(0); - DCHECK(page); + ASSERT_TRUE(page); for (size_t i = 0; i < kObjectCount; ++i) { FPDF_PAGEOBJECT path = FPDFPage_GetObject(page, i);