Stop using m_SavedPage in embedder tests.

Change-Id: Id53f57085fecfe331c8cbfa6bb372b5ea5044442
Reviewed-on: https://pdfium-review.googlesource.com/18332
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
diff --git a/core/fpdfapi/parser/cpdf_security_handler_embeddertest.cpp b/core/fpdfapi/parser/cpdf_security_handler_embeddertest.cpp
index 91e625a..834ed8c 100644
--- a/core/fpdfapi/parser/cpdf_security_handler_embeddertest.cpp
+++ b/core/fpdfapi/parser/cpdf_security_handler_embeddertest.cpp
@@ -81,11 +81,11 @@
 
   for (const auto& test : tests) {
     OpenSavedDocument(test.password);
-    LoadSavedPage();
-    VerifySavedRendering(612, 792, md5);
+    FPDF_PAGE page = LoadSavedPage(0);
+    VerifySavedRendering(page, 612, 792, md5);
     EXPECT_EQ(test.permissions, FPDF_GetDocPermissions(m_SavedDocument));
 
-    CloseSavedPage();
+    CloseSavedPage(page);
     CloseSavedDocument();
   }
 }
diff --git a/fpdfsdk/fpdfannot_embeddertest.cpp b/fpdfsdk/fpdfannot_embeddertest.cpp
index c49e77b..dce6582 100644
--- a/fpdfsdk/fpdfannot_embeddertest.cpp
+++ b/fpdfsdk/fpdfannot_embeddertest.cpp
@@ -286,15 +286,15 @@
   const char md5[] = "dba153419f67b7c0c0e3d22d3e8910d5";
 
   OpenSavedDocument();
-  LoadSavedPage();
-  VerifySavedRendering(612, 792, md5);
+  page = LoadSavedPage(0);
+  VerifySavedRendering(page, 612, 792, md5);
 
   // Check that the saved document has 2 annotations on the first page
-  EXPECT_EQ(2, FPDFPage_GetAnnotCount(m_SavedPage));
+  EXPECT_EQ(2, FPDFPage_GetAnnotCount(page));
 
   // Check that the second annotation is an underline annotation and verify
   // its quadpoints.
-  FPDF_ANNOTATION new_annot = FPDFPage_GetAnnot(m_SavedPage, 1);
+  FPDF_ANNOTATION new_annot = FPDFPage_GetAnnot(page, 1);
   ASSERT_TRUE(new_annot);
   EXPECT_EQ(FPDF_ANNOT_UNDERLINE, FPDFAnnot_GetSubtype(new_annot));
   FS_QUADPOINTSF new_quadpoints;
@@ -306,7 +306,7 @@
 
   FPDFPage_CloseAnnot(new_annot);
 
-  CloseSavedPage();
+  CloseSavedPage(page);
   CloseSavedDocument();
 }
 
@@ -591,12 +591,12 @@
 
   // Open the saved document.
   OpenSavedDocument();
-  LoadSavedPage();
-  VerifySavedRendering(595, 842, md5_new_annot);
+  page = LoadSavedPage(0);
+  VerifySavedRendering(page, 595, 842, md5_new_annot);
 
   // Check that the document has a correct count of annotations and objects.
-  EXPECT_EQ(3, FPDFPage_GetAnnotCount(m_SavedPage));
-  annot = FPDFPage_GetAnnot(m_SavedPage, 2);
+  EXPECT_EQ(3, FPDFPage_GetAnnotCount(page));
+  annot = FPDFPage_GetAnnot(page, 2);
   ASSERT_TRUE(annot);
   EXPECT_EQ(1, FPDFAnnot_GetObjectCount(annot));
 
@@ -608,7 +608,7 @@
   EXPECT_EQ(rect.top, new_rect.top);
 
   FPDFPage_CloseAnnot(annot);
-  CloseSavedPage();
+  CloseSavedPage(page);
   CloseSavedDocument();
 }
 
@@ -870,9 +870,9 @@
   const char md5[] = "c96ee1f316d7f5a1b154de9f9d467f01";
 #endif
   OpenSavedDocument();
-  LoadSavedPage();
-  VerifySavedRendering(595, 842, md5);
-  FPDF_ANNOTATION new_annot = FPDFPage_GetAnnot(m_SavedPage, 0);
+  page = LoadSavedPage(0);
+  VerifySavedRendering(page, 595, 842, md5);
+  FPDF_ANNOTATION new_annot = FPDFPage_GetAnnot(page, 0);
 
   // Check that the string value of the modified date is the newly-set value.
   EXPECT_EQ(FPDF_OBJECT_STRING, FPDFAnnot_GetValueType(new_annot, kDateKey));
@@ -886,7 +886,7 @@
                    .c_str());
 
   FPDFPage_CloseAnnot(new_annot);
-  CloseSavedPage();
+  CloseSavedPage(page);
   CloseSavedDocument();
 }
 
diff --git a/fpdfsdk/fpdfedit_embeddertest.cpp b/fpdfsdk/fpdfedit_embeddertest.cpp
index f1f02ff..6cb2771 100644
--- a/fpdfsdk/fpdfedit_embeddertest.cpp
+++ b/fpdfsdk/fpdfedit_embeddertest.cpp
@@ -457,31 +457,31 @@
   UnloadPage(page);
 
   OpenSavedDocument();
-  LoadSavedPage();
-  VerifySavedRendering(612, 792, "ad04e5bd0f471a9a564fb034bd0fb073");
+  page = LoadSavedPage(0);
+  VerifySavedRendering(page, 612, 792, "ad04e5bd0f471a9a564fb034bd0fb073");
 
   ClearString();
   // Add another opaque rectangle on top of the existing content
   FPDF_PAGEOBJECT green_rect = FPDFPageObj_CreateNewRect(150, 700, 25, 50);
   EXPECT_TRUE(FPDFPath_SetFillColor(green_rect, 0, 255, 0, 255));
   EXPECT_TRUE(FPDFPath_SetDrawMode(green_rect, FPDF_FILLMODE_ALTERNATE, 0));
-  FPDFPage_InsertObject(m_SavedPage, green_rect);
+  FPDFPage_InsertObject(page, green_rect);
 
   // Add another transparent rectangle on top of existing content
   FPDF_PAGEOBJECT green_rect2 = FPDFPageObj_CreateNewRect(175, 700, 25, 50);
   EXPECT_TRUE(FPDFPath_SetFillColor(green_rect2, 0, 255, 0, 100));
   EXPECT_TRUE(FPDFPath_SetDrawMode(green_rect2, FPDF_FILLMODE_ALTERNATE, 0));
-  FPDFPage_InsertObject(m_SavedPage, green_rect2);
-  FPDF_BITMAP new_bitmap = RenderPageWithFlags(m_SavedPage, m_SavedForm, 0);
+  FPDFPage_InsertObject(page, green_rect2);
+  FPDF_BITMAP new_bitmap = RenderPageWithFlags(page, m_SavedForm, 0);
   const char last_md5[] = "4b5b00f824620f8c9b8801ebb98e1cdd";
   CompareBitmap(new_bitmap, 612, 792, last_md5);
   FPDFBitmap_Destroy(new_bitmap);
-  EXPECT_TRUE(FPDFPage_GenerateContent(m_SavedPage));
+  EXPECT_TRUE(FPDFPage_GenerateContent(page));
 
   // Now save the result, closing the page and document
   EXPECT_TRUE(FPDF_SaveAsCopy(m_SavedDocument, this, 0));
 
-  CloseSavedPage();
+  CloseSavedPage(page);
   CloseSavedDocument();
 
   // Render the saved result
diff --git a/fpdfsdk/fpdfeditpath_embeddertest.cpp b/fpdfsdk/fpdfeditpath_embeddertest.cpp
index 71af2fa..59e5dbb 100644
--- a/fpdfsdk/fpdfeditpath_embeddertest.cpp
+++ b/fpdfsdk/fpdfeditpath_embeddertest.cpp
@@ -32,7 +32,7 @@
   page = nullptr;
 
   OpenSavedDocument();
-  page = LoadSavedPage();
+  page = LoadSavedPage(0);
   ASSERT(page);
 
   for (size_t i = 0; i < 256; ++i) {
@@ -58,6 +58,6 @@
     EXPECT_EQ(i, a);
   }
 
-  CloseSavedPage();
+  CloseSavedPage(page);
   CloseSavedDocument();
 }
diff --git a/testing/embedder_test.cpp b/testing/embedder_test.cpp
index 4c29c06..36ee08f 100644
--- a/testing/embedder_test.cpp
+++ b/testing/embedder_test.cpp
@@ -326,7 +326,6 @@
 }
 
 void EmbedderTest::CloseSavedDocument() {
-  ASSERT(!m_SavedPage);
   ASSERT(m_SavedDocument);
 
   FPDFDOC_ExitFormFillEnvironment(m_SavedForm);
@@ -338,39 +337,38 @@
   m_SavedAvail = nullptr;
 }
 
-FPDF_PAGE EmbedderTest::LoadSavedPage() {
+FPDF_PAGE EmbedderTest::LoadSavedPage(int page_number) {
   ASSERT(m_SavedDocument);
 
-  EXPECT_EQ(1, FPDF_GetPageCount(m_SavedDocument));
-  m_SavedPage = FPDF_LoadPage(m_SavedDocument, 0);
+  EXPECT_LT(page_number, FPDF_GetPageCount(m_SavedDocument));
+  FPDF_PAGE page = FPDF_LoadPage(m_SavedDocument, page_number);
 
-  ASSERT(m_SavedPage);
-  return m_SavedPage;
+  ASSERT(page);
+  return page;
 }
 
-void EmbedderTest::CloseSavedPage() {
-  ASSERT(m_SavedPage);
-  FPDF_ClosePage(m_SavedPage);
-  m_SavedPage = nullptr;
+void EmbedderTest::CloseSavedPage(FPDF_PAGE page) {
+  ASSERT(page);
+  FPDF_ClosePage(page);
 }
 
-void EmbedderTest::VerifySavedRendering(int width,
+void EmbedderTest::VerifySavedRendering(FPDF_PAGE page,
+                                        int width,
                                         int height,
                                         const char* md5) {
   ASSERT(m_SavedDocument);
-  ASSERT(m_SavedPage);
+  ASSERT(page);
 
-  FPDF_BITMAP new_bitmap =
-      RenderPageWithFlags(m_SavedPage, m_SavedForm, FPDF_ANNOT);
+  FPDF_BITMAP new_bitmap = RenderPageWithFlags(page, m_SavedForm, FPDF_ANNOT);
   CompareBitmap(new_bitmap, width, height, md5);
   FPDFBitmap_Destroy(new_bitmap);
 }
 
 void EmbedderTest::VerifySavedDocument(int width, int height, const char* md5) {
   OpenSavedDocument();
-  LoadSavedPage();
-  VerifySavedRendering(width, height, md5);
-  CloseSavedPage();
+  FPDF_PAGE page = LoadSavedPage(0);
+  VerifySavedRendering(page, width, height, md5);
+  CloseSavedPage(page);
   CloseSavedDocument();
 }
 
diff --git a/testing/embedder_test.h b/testing/embedder_test.h
index 606472b..df9e837 100644
--- a/testing/embedder_test.h
+++ b/testing/embedder_test.h
@@ -145,9 +145,12 @@
 
   FPDF_DOCUMENT OpenSavedDocument(const char* password = nullptr);
   void CloseSavedDocument();
-  FPDF_PAGE LoadSavedPage();
-  void CloseSavedPage();
-  void VerifySavedRendering(int width, int height, const char* md5);
+  FPDF_PAGE LoadSavedPage(int page_number);
+  void CloseSavedPage(FPDF_PAGE page);
+  void VerifySavedRendering(FPDF_PAGE page,
+                            int width,
+                            int height,
+                            const char* md5);
   void VerifySavedDocument(int width, int height, const char* md5);
 
   void SetWholeFileAvailable();
@@ -168,7 +171,6 @@
   std::map<int, FPDF_PAGE> page_map_;
   std::map<FPDF_PAGE, int> page_reverse_map_;
   FPDF_DOCUMENT m_SavedDocument;
-  FPDF_PAGE m_SavedPage;
   FPDF_FORMHANDLE m_SavedForm;
   FPDF_AVAIL m_SavedAvail;
   FPDF_FILEACCESS saved_file_access_;  // must outlive m_SavedAvail.