Use EmbedderTest::LoadScopedPage() in test files

Convert test cases in cpdfsdk_annotiterator_embeddertest.cpp,
fpdf_save_embeddertest.cpp and fpdf_transformpage_embeddertest.cpp to
use ScopedEmbedderTestPage instead of FPDF_PAGE and load page using
LoadScopedPage() instead of LoadPage().

Bug: 354025368

Signed-off-by: AbdAlRahman Gad <abdobngad@gmail.com>
Change-Id: Ia434b53f19f306f378fded0230716d0edf00fb53
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/123510
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@google.com>
Commit-Queue: Tom Sepez <tsepez@google.com>
diff --git a/fpdfsdk/cpdfsdk_annotiterator_embeddertest.cpp b/fpdfsdk/cpdfsdk_annotiterator_embeddertest.cpp
index e6394f9..bb4167d 100644
--- a/fpdfsdk/cpdfsdk_annotiterator_embeddertest.cpp
+++ b/fpdfsdk/cpdfsdk_annotiterator_embeddertest.cpp
@@ -27,9 +27,9 @@
 
 TEST_F(CPDFSDKAnnotIteratorTest, AnnotIterator) {
   ASSERT_TRUE(OpenDocument("annotiter.pdf"));
-  FPDF_PAGE page0 = LoadPage(0);
-  FPDF_PAGE page1 = LoadPage(1);
-  FPDF_PAGE page2 = LoadPage(2);
+  ScopedEmbedderTestPage page0 = LoadScopedPage(0);
+  ScopedEmbedderTestPage page1 = LoadScopedPage(1);
+  ScopedEmbedderTestPage page2 = LoadScopedPage(2);
   ASSERT_TRUE(page0);
   ASSERT_TRUE(page1);
   ASSERT_TRUE(page2);
@@ -120,7 +120,4 @@
     pAnnot = iter.GetPrevAnnot(pAnnot);
     EXPECT_FALSE(pAnnot);
   }
-  UnloadPage(page2);
-  UnloadPage(page1);
-  UnloadPage(page0);
 }
diff --git a/fpdfsdk/fpdf_save_embeddertest.cpp b/fpdfsdk/fpdf_save_embeddertest.cpp
index 5215100..e404e79 100644
--- a/fpdfsdk/fpdf_save_embeddertest.cpp
+++ b/fpdfsdk/fpdf_save_embeddertest.cpp
@@ -83,7 +83,7 @@
 TEST_F(FPDFSaveEmbedderTest, SaveCopiedDoc) {
   ASSERT_TRUE(OpenDocument("hello_world.pdf"));
 
-  FPDF_PAGE page = LoadPage(0);
+  ScopedEmbedderTestPage page = LoadScopedPage(0);
   EXPECT_TRUE(page);
 
   ScopedFPDFDocument output_doc(FPDF_CreateNewDocument());
@@ -91,23 +91,21 @@
   EXPECT_TRUE(FPDF_ImportPages(output_doc.get(), document(), "1", 0));
   EXPECT_TRUE(FPDF_SaveAsCopy(output_doc.get(), this, 0));
 
-  UnloadPage(page);
 }
 
 TEST_F(FPDFSaveEmbedderTest, Bug42271133) {
   ASSERT_TRUE(OpenDocument("bug_42271133.pdf"));
-  FPDF_PAGE page = LoadPage(0);
+  ScopedEmbedderTestPage page = LoadScopedPage(0);
   ASSERT_TRUE(page);
 
   // Arbitrarily remove the first page object.
-  auto text_object = FPDFPage_GetObject(page, 0);
+  auto text_object = FPDFPage_GetObject(page.get(), 0);
   ASSERT_TRUE(text_object);
-  ASSERT_TRUE(FPDFPage_RemoveObject(page, text_object));
+  ASSERT_TRUE(FPDFPage_RemoveObject(page.get(), text_object));
   FPDFPageObj_Destroy(text_object);
 
   // Regenerate dirty stream and save the document.
-  ASSERT_TRUE(FPDFPage_GenerateContent(page));
-  UnloadPage(page);
+  ASSERT_TRUE(FPDFPage_GenerateContent(page.get()));
   ASSERT_TRUE(FPDF_SaveAsCopy(document(), this, 0));
 
   // Reload saved document.
@@ -137,13 +135,12 @@
 
   ASSERT_TRUE(OpenDocument("linearized.pdf"));
   for (int i = 0; i < kPageCount; ++i) {
-    FPDF_PAGE page = LoadPage(i);
+    ScopedEmbedderTestPage page = LoadScopedPage(i);
     ASSERT_TRUE(page);
-    ScopedFPDFBitmap bitmap = RenderLoadedPage(page);
+    ScopedFPDFBitmap bitmap = RenderLoadedPage(page.get());
     EXPECT_EQ(612, FPDFBitmap_GetWidth(bitmap.get()));
     EXPECT_EQ(792, FPDFBitmap_GetHeight(bitmap.get()));
     original_md5[i] = HashBitmap(bitmap.get());
-    UnloadPage(page);
   }
 
   EXPECT_TRUE(FPDF_SaveAsCopy(document(), this, 0));
@@ -171,15 +168,14 @@
 
 TEST_F(FPDFSaveEmbedderTest, Bug1409) {
   ASSERT_TRUE(OpenDocument("jpx_lzw.pdf"));
-  FPDF_PAGE page = LoadPage(0);
+  ScopedEmbedderTestPage page = LoadScopedPage(0);
   ASSERT_TRUE(page);
-  while (FPDFPage_CountObjects(page) > 0) {
-    ScopedFPDFPageObject object(FPDFPage_GetObject(page, 0));
+  while (FPDFPage_CountObjects(page.get()) > 0) {
+    ScopedFPDFPageObject object(FPDFPage_GetObject(page.get(), 0));
     ASSERT_TRUE(object);
-    ASSERT_TRUE(FPDFPage_RemoveObject(page, object.get()));
+    ASSERT_TRUE(FPDFPage_RemoveObject(page.get(), object.get()));
   }
-  ASSERT_TRUE(FPDFPage_GenerateContent(page));
-  UnloadPage(page);
+  ASSERT_TRUE(FPDFPage_GenerateContent(page.get()));
 
   ASSERT_TRUE(FPDF_SaveAsCopy(document(), this, 0));
 
diff --git a/fpdfsdk/fpdf_transformpage_embeddertest.cpp b/fpdfsdk/fpdf_transformpage_embeddertest.cpp
index 56e66fa..8e932d1 100644
--- a/fpdfsdk/fpdf_transformpage_embeddertest.cpp
+++ b/fpdfsdk/fpdf_transformpage_embeddertest.cpp
@@ -33,19 +33,20 @@
   ASSERT_EQ(4, FPDF_GetPageCount(document()));
 
   {
-    FPDF_PAGE page = LoadPage(1);
+    ScopedEmbedderTestPage page = LoadScopedPage(1);
     ASSERT_TRUE(page);
 
     FS_RECTF mediabox;
-    EXPECT_TRUE(FPDFPage_GetMediaBox(page, &mediabox.left, &mediabox.bottom,
-                                     &mediabox.right, &mediabox.top));
+    EXPECT_TRUE(FPDFPage_GetMediaBox(page.get(), &mediabox.left,
+                                     &mediabox.bottom, &mediabox.right,
+                                     &mediabox.top));
     EXPECT_EQ(-50, mediabox.left);
     EXPECT_EQ(-50, mediabox.bottom);
     EXPECT_EQ(200, mediabox.right);
     EXPECT_EQ(200, mediabox.top);
 
     FS_RECTF cropbox;
-    EXPECT_TRUE(FPDFPage_GetCropBox(page, &cropbox.left, &cropbox.bottom,
+    EXPECT_TRUE(FPDFPage_GetCropBox(page.get(), &cropbox.left, &cropbox.bottom,
                                     &cropbox.right, &cropbox.top));
     EXPECT_EQ(50, cropbox.left);
     EXPECT_EQ(50, cropbox.bottom);
@@ -53,15 +54,16 @@
     EXPECT_EQ(150, cropbox.top);
 
     FS_RECTF bleedbox;
-    EXPECT_TRUE(FPDFPage_GetBleedBox(page, &bleedbox.left, &bleedbox.bottom,
-                                     &bleedbox.right, &bleedbox.top));
+    EXPECT_TRUE(FPDFPage_GetBleedBox(page.get(), &bleedbox.left,
+                                     &bleedbox.bottom, &bleedbox.right,
+                                     &bleedbox.top));
     EXPECT_EQ(0, bleedbox.left);
     EXPECT_EQ(10, bleedbox.bottom);
     EXPECT_EQ(150, bleedbox.right);
     EXPECT_EQ(145, bleedbox.top);
 
     FS_RECTF trimbox;
-    EXPECT_TRUE(FPDFPage_GetTrimBox(page, &trimbox.left, &trimbox.bottom,
+    EXPECT_TRUE(FPDFPage_GetTrimBox(page.get(), &trimbox.left, &trimbox.bottom,
                                     &trimbox.right, &trimbox.top));
     EXPECT_EQ(25, trimbox.left);
     EXPECT_EQ(30, trimbox.bottom);
@@ -69,56 +71,57 @@
     EXPECT_EQ(145, trimbox.top);
 
     FS_RECTF artbox;
-    EXPECT_TRUE(FPDFPage_GetArtBox(page, &artbox.left, &artbox.bottom,
+    EXPECT_TRUE(FPDFPage_GetArtBox(page.get(), &artbox.left, &artbox.bottom,
                                    &artbox.right, &artbox.top));
     EXPECT_EQ(50, artbox.left);
     EXPECT_EQ(60, artbox.bottom);
     EXPECT_EQ(135, artbox.right);
     EXPECT_EQ(140, artbox.top);
-
-    UnloadPage(page);
   }
 
   {
-    FPDF_PAGE page = LoadPage(3);
+    ScopedEmbedderTestPage page = LoadScopedPage(3);
     ASSERT_TRUE(page);
 
     FS_RECTF mediabox;
-    EXPECT_TRUE(FPDFPage_GetMediaBox(page, &mediabox.left, &mediabox.bottom,
-                                     &mediabox.right, &mediabox.top));
+    EXPECT_TRUE(FPDFPage_GetMediaBox(page.get(), &mediabox.left,
+                                     &mediabox.bottom, &mediabox.right,
+                                     &mediabox.top));
     EXPECT_EQ(0, mediabox.left);
     EXPECT_EQ(0, mediabox.bottom);
     EXPECT_EQ(200, mediabox.right);
     EXPECT_EQ(200, mediabox.top);
 
     FS_RECTF cropbox;
-    EXPECT_TRUE(FPDFPage_GetCropBox(page, &cropbox.left, &cropbox.bottom,
+    EXPECT_TRUE(FPDFPage_GetCropBox(page.get(), &cropbox.left, &cropbox.bottom,
                                     &cropbox.right, &cropbox.top));
     EXPECT_EQ(150, cropbox.left);
     EXPECT_EQ(150, cropbox.bottom);
     EXPECT_EQ(60, cropbox.right);
     EXPECT_EQ(60, cropbox.top);
 
-    EXPECT_FALSE(FPDFPage_GetCropBox(page, nullptr, &cropbox.bottom,
+    EXPECT_FALSE(FPDFPage_GetCropBox(page.get(), nullptr, &cropbox.bottom,
                                      &cropbox.right, &cropbox.top));
-    EXPECT_FALSE(FPDFPage_GetCropBox(page, &cropbox.left, nullptr,
+    EXPECT_FALSE(FPDFPage_GetCropBox(page.get(), &cropbox.left, nullptr,
                                      &cropbox.right, &cropbox.top));
-    EXPECT_FALSE(FPDFPage_GetCropBox(page, &cropbox.left, &cropbox.bottom,
+    EXPECT_FALSE(FPDFPage_GetCropBox(page.get(), &cropbox.left, &cropbox.bottom,
                                      nullptr, &cropbox.top));
-    EXPECT_FALSE(FPDFPage_GetCropBox(page, &cropbox.left, &cropbox.bottom,
+    EXPECT_FALSE(FPDFPage_GetCropBox(page.get(), &cropbox.left, &cropbox.bottom,
                                      &cropbox.right, nullptr));
-    EXPECT_FALSE(FPDFPage_GetCropBox(page, nullptr, nullptr, nullptr, nullptr));
+    EXPECT_FALSE(
+        FPDFPage_GetCropBox(page.get(), nullptr, nullptr, nullptr, nullptr));
 
     FS_RECTF bleedbox;
-    EXPECT_TRUE(FPDFPage_GetBleedBox(page, &bleedbox.left, &bleedbox.bottom,
-                                     &bleedbox.right, &bleedbox.top));
+    EXPECT_TRUE(FPDFPage_GetBleedBox(page.get(), &bleedbox.left,
+                                     &bleedbox.bottom, &bleedbox.right,
+                                     &bleedbox.top));
     EXPECT_EQ(160, bleedbox.left);
     EXPECT_EQ(165, bleedbox.bottom);
     EXPECT_EQ(0, bleedbox.right);
     EXPECT_EQ(10, bleedbox.top);
 
     FS_RECTF trimbox;
-    EXPECT_TRUE(FPDFPage_GetTrimBox(page, &trimbox.left, &trimbox.bottom,
+    EXPECT_TRUE(FPDFPage_GetTrimBox(page.get(), &trimbox.left, &trimbox.bottom,
                                     &trimbox.right, &trimbox.top));
     EXPECT_EQ(155, trimbox.left);
     EXPECT_EQ(165, trimbox.bottom);
@@ -126,14 +129,12 @@
     EXPECT_EQ(30, trimbox.top);
 
     FS_RECTF artbox;
-    EXPECT_TRUE(FPDFPage_GetArtBox(page, &artbox.left, &artbox.bottom,
+    EXPECT_TRUE(FPDFPage_GetArtBox(page.get(), &artbox.left, &artbox.bottom,
                                    &artbox.right, &artbox.top));
     EXPECT_EQ(140, artbox.left);
     EXPECT_EQ(145, artbox.bottom);
     EXPECT_EQ(65, artbox.right);
     EXPECT_EQ(70, artbox.top);
-
-    UnloadPage(page);
   }
 }
 
@@ -141,72 +142,65 @@
   ASSERT_TRUE(OpenDocument("hello_world.pdf"));
   ASSERT_EQ(1, FPDF_GetPageCount(document()));
 
-  FPDF_PAGE page = LoadPage(0);
+  ScopedEmbedderTestPage page = LoadScopedPage(0);
   ASSERT_TRUE(page);
 
   FS_RECTF cropbox = {-1.0f, 0.0f, 3.0f, -2.0f};
-  EXPECT_FALSE(FPDFPage_GetCropBox(page, &cropbox.left, &cropbox.bottom,
+  EXPECT_FALSE(FPDFPage_GetCropBox(page.get(), &cropbox.left, &cropbox.bottom,
                                    &cropbox.right, &cropbox.top));
   EXPECT_EQ(-1.0f, cropbox.left);
   EXPECT_EQ(-2.0f, cropbox.bottom);
   EXPECT_EQ(3.0f, cropbox.right);
   EXPECT_EQ(0.0f, cropbox.top);
-
-  UnloadPage(page);
 }
 
 TEST_F(FPDFTransformEmbedderTest, NoBleedBox) {
   ASSERT_TRUE(OpenDocument("hello_world.pdf"));
   ASSERT_EQ(1, FPDF_GetPageCount(document()));
 
-  FPDF_PAGE page = LoadPage(0);
+  ScopedEmbedderTestPage page = LoadScopedPage(0);
   ASSERT_TRUE(page);
 
   FS_RECTF bleedbox = {-1.0f, 10.f, 3.0f, -1.0f};
-  EXPECT_FALSE(FPDFPage_GetBleedBox(page, &bleedbox.left, &bleedbox.bottom,
-                                    &bleedbox.right, &bleedbox.top));
+  EXPECT_FALSE(FPDFPage_GetBleedBox(page.get(), &bleedbox.left,
+                                    &bleedbox.bottom, &bleedbox.right,
+                                    &bleedbox.top));
   EXPECT_EQ(-1.0f, bleedbox.left);
   EXPECT_EQ(-1.0f, bleedbox.bottom);
   EXPECT_EQ(3.0f, bleedbox.right);
   EXPECT_EQ(10.0f, bleedbox.top);
-
-  UnloadPage(page);
 }
 
 TEST_F(FPDFTransformEmbedderTest, NoTrimBox) {
   ASSERT_TRUE(OpenDocument("hello_world.pdf"));
   ASSERT_EQ(1, FPDF_GetPageCount(document()));
 
-  FPDF_PAGE page = LoadPage(0);
+  ScopedEmbedderTestPage page = LoadScopedPage(0);
   ASSERT_TRUE(page);
 
   FS_RECTF trimbox = {-11.0f, 0.0f, 3.0f, -10.0f};
-  EXPECT_FALSE(FPDFPage_GetTrimBox(page, &trimbox.left, &trimbox.bottom,
+  EXPECT_FALSE(FPDFPage_GetTrimBox(page.get(), &trimbox.left, &trimbox.bottom,
                                    &trimbox.right, &trimbox.top));
   EXPECT_EQ(-11.0f, trimbox.left);
   EXPECT_EQ(-10.0f, trimbox.bottom);
   EXPECT_EQ(3.0f, trimbox.right);
   EXPECT_EQ(0.0f, trimbox.top);
-
-  UnloadPage(page);
 }
 
 TEST_F(FPDFTransformEmbedderTest, NoArtBox) {
   ASSERT_TRUE(OpenDocument("hello_world.pdf"));
   ASSERT_EQ(1, FPDF_GetPageCount(document()));
 
-  FPDF_PAGE page = LoadPage(0);
+  ScopedEmbedderTestPage page = LoadScopedPage(0);
   ASSERT_TRUE(page);
 
   FS_RECTF artbox = {-1.0f, 0.0f, 3.0f, -1.0f};
-  EXPECT_FALSE(FPDFPage_GetArtBox(page, &artbox.left, &artbox.bottom,
+  EXPECT_FALSE(FPDFPage_GetArtBox(page.get(), &artbox.left, &artbox.bottom,
                                   &artbox.right, &artbox.top));
   EXPECT_EQ(-1.0f, artbox.left);
   EXPECT_EQ(-1.0f, artbox.bottom);
   EXPECT_EQ(3.0f, artbox.right);
   EXPECT_EQ(0.0f, artbox.top);
-
-  UnloadPage(page);
 }
 
 TEST_F(FPDFTransformEmbedderTest, SetCropBox) {
@@ -218,45 +212,45 @@
   }();
   {
     ASSERT_TRUE(OpenDocument("rectangles.pdf"));
-    FPDF_PAGE page = LoadPage(0);
+    ScopedEmbedderTestPage page = LoadScopedPage(0);
     ASSERT_TRUE(page);
 
     {
       // Render the page as is.
       FS_RECTF cropbox;
-      EXPECT_FALSE(FPDFPage_GetCropBox(page, &cropbox.left, &cropbox.bottom,
-                                       &cropbox.right, &cropbox.top));
-      const int page_width = static_cast<int>(FPDF_GetPageWidth(page));
-      const int page_height = static_cast<int>(FPDF_GetPageHeight(page));
+      EXPECT_FALSE(FPDFPage_GetCropBox(page.get(), &cropbox.left,
+                                       &cropbox.bottom, &cropbox.right,
+                                       &cropbox.top));
+      const int page_width = static_cast<int>(FPDF_GetPageWidth(page.get()));
+      const int page_height = static_cast<int>(FPDF_GetPageHeight(page.get()));
       EXPECT_EQ(200, page_width);
       EXPECT_EQ(300, page_height);
-      ScopedFPDFBitmap bitmap = RenderLoadedPage(page);
+      ScopedFPDFBitmap bitmap = RenderLoadedPage(page.get());
       CompareBitmap(bitmap.get(), page_width, page_height,
                     RectanglesChecksum());
     }
 
-    FPDFPage_SetCropBox(page, 10, 20, 100, 150);
+    FPDFPage_SetCropBox(page.get(), 10, 20, 100, 150);
 
     {
       // Render the page after setting the CropBox.
       // Note that the change affects the rendering, as expected.
       // It behaves just like the case below, rather than the case above.
       FS_RECTF cropbox;
-      EXPECT_TRUE(FPDFPage_GetCropBox(page, &cropbox.left, &cropbox.bottom,
-                                      &cropbox.right, &cropbox.top));
+      EXPECT_TRUE(FPDFPage_GetCropBox(page.get(), &cropbox.left,
+                                      &cropbox.bottom, &cropbox.right,
+                                      &cropbox.top));
       EXPECT_EQ(10, cropbox.left);
       EXPECT_EQ(20, cropbox.bottom);
       EXPECT_EQ(100, cropbox.right);
       EXPECT_EQ(150, cropbox.top);
-      const int page_width = static_cast<int>(FPDF_GetPageWidth(page));
-      const int page_height = static_cast<int>(FPDF_GetPageHeight(page));
+      const int page_width = static_cast<int>(FPDF_GetPageWidth(page.get()));
+      const int page_height = static_cast<int>(FPDF_GetPageHeight(page.get()));
       EXPECT_EQ(90, page_width);
       EXPECT_EQ(130, page_height);
-      ScopedFPDFBitmap bitmap = RenderLoadedPage(page);
+      ScopedFPDFBitmap bitmap = RenderLoadedPage(page.get());
       CompareBitmap(bitmap.get(), page_width, page_height, cropped_checksum);
     }
-
-    UnloadPage(page);
   }
 
   {
@@ -296,46 +290,46 @@
 
   {
     ASSERT_TRUE(OpenDocument("rectangles.pdf"));
-    FPDF_PAGE page = LoadPage(0);
+    ScopedEmbedderTestPage page = LoadScopedPage(0);
     ASSERT_TRUE(page);
 
     {
       // Render the page as is.
       FS_RECTF mediabox;
-      EXPECT_FALSE(FPDFPage_GetMediaBox(page, &mediabox.left, &mediabox.bottom,
-                                        &mediabox.right, &mediabox.top));
-      const int page_width = static_cast<int>(FPDF_GetPageWidth(page));
-      const int page_height = static_cast<int>(FPDF_GetPageHeight(page));
+      EXPECT_FALSE(FPDFPage_GetMediaBox(page.get(), &mediabox.left,
+                                        &mediabox.bottom, &mediabox.right,
+                                        &mediabox.top));
+      const int page_width = static_cast<int>(FPDF_GetPageWidth(page.get()));
+      const int page_height = static_cast<int>(FPDF_GetPageHeight(page.get()));
       EXPECT_EQ(200, page_width);
       EXPECT_EQ(300, page_height);
-      ScopedFPDFBitmap bitmap = RenderLoadedPage(page);
+      ScopedFPDFBitmap bitmap = RenderLoadedPage(page.get());
       CompareBitmap(bitmap.get(), page_width, page_height,
                     RectanglesChecksum());
     }
 
-    FPDFPage_SetMediaBox(page, 20, 30, 100, 150);
+    FPDFPage_SetMediaBox(page.get(), 20, 30, 100, 150);
 
     {
       // Render the page after setting the MediaBox.
       // Note that the change affects the rendering, as expected.
       // It behaves just like the case below, rather than the case above.
       FS_RECTF mediabox;
-      EXPECT_TRUE(FPDFPage_GetMediaBox(page, &mediabox.left, &mediabox.bottom,
-                                       &mediabox.right, &mediabox.top));
+      EXPECT_TRUE(FPDFPage_GetMediaBox(page.get(), &mediabox.left,
+                                       &mediabox.bottom, &mediabox.right,
+                                       &mediabox.top));
       EXPECT_EQ(20, mediabox.left);
       EXPECT_EQ(30, mediabox.bottom);
       EXPECT_EQ(100, mediabox.right);
       EXPECT_EQ(150, mediabox.top);
-      const int page_width = static_cast<int>(FPDF_GetPageWidth(page));
-      const int page_height = static_cast<int>(FPDF_GetPageHeight(page));
+      const int page_width = static_cast<int>(FPDF_GetPageWidth(page.get()));
+      const int page_height = static_cast<int>(FPDF_GetPageHeight(page.get()));
       EXPECT_EQ(80, page_width);
       EXPECT_EQ(120, page_height);
-      ScopedFPDFBitmap bitmap = RenderLoadedPage(page);
+      ScopedFPDFBitmap bitmap = RenderLoadedPage(page.get());
       CompareBitmap(bitmap.get(), page_width, page_height,
                     shrunk_checksum_set_media_box);
     }
-
-    UnloadPage(page);
   }
 
   {
@@ -370,23 +364,19 @@
 TEST_F(FPDFTransformEmbedderTest, ClipPath) {
   ASSERT_TRUE(OpenDocument("hello_world.pdf"));
 
-  FPDF_PAGE page = LoadPage(0);
+  ScopedEmbedderTestPage page = LoadScopedPage(0);
   ASSERT_TRUE(page);
 
-  {
-    ScopedFPDFClipPath clip(FPDF_CreateClipPath(10.0f, 10.0f, 90.0f, 90.0f));
-    EXPECT_TRUE(clip);
+  ScopedFPDFClipPath clip(FPDF_CreateClipPath(10.0f, 10.0f, 90.0f, 90.0f));
+  EXPECT_TRUE(clip);
 
-    // NULL arg call is a no-op.
-    FPDFPage_InsertClipPath(nullptr, clip.get());
+  // NULL arg call is a no-op.
+  FPDFPage_InsertClipPath(nullptr, clip.get());
 
-    // Do actual work.
-    FPDFPage_InsertClipPath(page, clip.get());
+  // Do actual work.
+  FPDFPage_InsertClipPath(page.get(), clip.get());
 
-    // TODO(tsepez): test how inserting path affects page rendering.
-  }
-
-  UnloadPage(page);
+  // TODO(tsepez): test how inserting path affects page rendering.
 }
 
 TEST_F(FPDFTransformEmbedderTest, TransFormWithClip) {
@@ -395,19 +385,17 @@
 
   ASSERT_TRUE(OpenDocument("hello_world.pdf"));
 
-  FPDF_PAGE page = LoadPage(0);
+  ScopedEmbedderTestPage page = LoadScopedPage(0);
   ASSERT_TRUE(page);
 
   EXPECT_FALSE(FPDFPage_TransFormWithClip(nullptr, nullptr, nullptr));
   EXPECT_FALSE(FPDFPage_TransFormWithClip(nullptr, &half_matrix, nullptr));
   EXPECT_FALSE(FPDFPage_TransFormWithClip(nullptr, nullptr, &clip_rect));
   EXPECT_FALSE(FPDFPage_TransFormWithClip(nullptr, &half_matrix, &clip_rect));
-  EXPECT_FALSE(FPDFPage_TransFormWithClip(page, nullptr, nullptr));
-  EXPECT_TRUE(FPDFPage_TransFormWithClip(page, &half_matrix, nullptr));
-  EXPECT_TRUE(FPDFPage_TransFormWithClip(page, nullptr, &clip_rect));
-  EXPECT_TRUE(FPDFPage_TransFormWithClip(page, &half_matrix, &clip_rect));
-
-  UnloadPage(page);
+  EXPECT_FALSE(FPDFPage_TransFormWithClip(page.get(), nullptr, nullptr));
+  EXPECT_TRUE(FPDFPage_TransFormWithClip(page.get(), &half_matrix, nullptr));
+  EXPECT_TRUE(FPDFPage_TransFormWithClip(page.get(), nullptr, &clip_rect));
+  EXPECT_TRUE(FPDFPage_TransFormWithClip(page.get(), &half_matrix, &clip_rect));
 }
 
 TEST_F(FPDFTransformEmbedderTest, TransFormWithClipWithPatterns) {
@@ -416,29 +404,27 @@
 
   ASSERT_TRUE(OpenDocument("bug_547706.pdf"));
 
-  FPDF_PAGE page = LoadPage(0);
+  ScopedEmbedderTestPage page = LoadScopedPage(0);
   ASSERT_TRUE(page);
 
-  EXPECT_TRUE(FPDFPage_TransFormWithClip(page, &half_matrix, nullptr));
-  EXPECT_TRUE(FPDFPage_TransFormWithClip(page, nullptr, &clip_rect));
-  EXPECT_TRUE(FPDFPage_TransFormWithClip(page, &half_matrix, &clip_rect));
-
-  UnloadPage(page);
+  EXPECT_TRUE(FPDFPage_TransFormWithClip(page.get(), &half_matrix, nullptr));
+  EXPECT_TRUE(FPDFPage_TransFormWithClip(page.get(), nullptr, &clip_rect));
+  EXPECT_TRUE(FPDFPage_TransFormWithClip(page.get(), &half_matrix, &clip_rect));
 }
 
 TEST_F(FPDFTransformEmbedderTest, TransFormWithClipAndSave) {
   {
     ASSERT_TRUE(OpenDocument("rectangles.pdf"));
-    FPDF_PAGE page = LoadPage(0);
+    ScopedEmbedderTestPage page = LoadScopedPage(0);
     ASSERT_TRUE(page);
 
     {
       // Render the page as is.
-      const int page_width = static_cast<int>(FPDF_GetPageWidth(page));
-      const int page_height = static_cast<int>(FPDF_GetPageHeight(page));
+      const int page_width = static_cast<int>(FPDF_GetPageWidth(page.get()));
+      const int page_height = static_cast<int>(FPDF_GetPageHeight(page.get()));
       EXPECT_EQ(200, page_width);
       EXPECT_EQ(300, page_height);
-      ScopedFPDFBitmap bitmap = RenderLoadedPage(page);
+      ScopedFPDFBitmap bitmap = RenderLoadedPage(page.get());
       CompareBitmap(bitmap.get(), page_width, page_height,
                     RectanglesChecksum());
     }
@@ -450,17 +436,16 @@
       // TODO(crbug.com/pdfium/1328): The checksum after invoking
       // `FPDFPage_TransFormWithClip()` below should match `ShrunkChecksum()`.
       const FS_MATRIX half_matrix{0.5, 0, 0, 0.5, 0, 0};
-      EXPECT_TRUE(FPDFPage_TransFormWithClip(page, &half_matrix, nullptr));
-      const int page_width = static_cast<int>(FPDF_GetPageWidth(page));
-      const int page_height = static_cast<int>(FPDF_GetPageHeight(page));
+      EXPECT_TRUE(
+          FPDFPage_TransFormWithClip(page.get(), &half_matrix, nullptr));
+      const int page_width = static_cast<int>(FPDF_GetPageWidth(page.get()));
+      const int page_height = static_cast<int>(FPDF_GetPageHeight(page.get()));
       EXPECT_EQ(200, page_width);
       EXPECT_EQ(300, page_height);
-      ScopedFPDFBitmap bitmap = RenderLoadedPage(page);
+      ScopedFPDFBitmap bitmap = RenderLoadedPage(page.get());
       CompareBitmap(bitmap.get(), page_width, page_height,
                     RectanglesChecksum());
     }
-
-    UnloadPage(page);
   }
 
   {
@@ -489,16 +474,16 @@
 
   {
     ASSERT_TRUE(OpenDocument("rectangles.pdf"));
-    FPDF_PAGE page = LoadPage(0);
+    ScopedEmbedderTestPage page = LoadScopedPage(0);
     ASSERT_TRUE(page);
 
     {
       // Render the page as is.
-      const int page_width = static_cast<int>(FPDF_GetPageWidth(page));
-      const int page_height = static_cast<int>(FPDF_GetPageHeight(page));
+      const int page_width = static_cast<int>(FPDF_GetPageWidth(page.get()));
+      const int page_height = static_cast<int>(FPDF_GetPageHeight(page.get()));
       EXPECT_EQ(200, page_width);
       EXPECT_EQ(300, page_height);
-      ScopedFPDFBitmap bitmap = RenderLoadedPage(page);
+      ScopedFPDFBitmap bitmap = RenderLoadedPage(page.get());
       CompareBitmap(bitmap.get(), page_width, page_height,
                     RectanglesChecksum());
     }
@@ -510,17 +495,16 @@
       // TODO(crbug.com/pdfium/1328): The checksum after invoking
       // `FPDFPage_TransFormWithClip()` below should match `ShrunkChecksum()`.
       const FS_MATRIX half_matrix{0.5, 0, 0, 0.5, 0, 0};
-      EXPECT_TRUE(FPDFPage_TransFormWithClip(page, &half_matrix, nullptr));
-      const int page_width = static_cast<int>(FPDF_GetPageWidth(page));
-      const int page_height = static_cast<int>(FPDF_GetPageHeight(page));
+      EXPECT_TRUE(
+          FPDFPage_TransFormWithClip(page.get(), &half_matrix, nullptr));
+      const int page_width = static_cast<int>(FPDF_GetPageWidth(page.get()));
+      const int page_height = static_cast<int>(FPDF_GetPageHeight(page.get()));
       EXPECT_EQ(200, page_width);
       EXPECT_EQ(300, page_height);
-      ScopedFPDFBitmap bitmap = RenderLoadedPage(page);
+      ScopedFPDFBitmap bitmap = RenderLoadedPage(page.get());
       CompareBitmap(bitmap.get(), page_width, page_height,
                     RectanglesChecksum());
     }
-
-    UnloadPage(page);
   }
 
   {