Make ScopedEmbedderTestPage moveable

Make ScopedEmbedderTestPage moveable, so ownership can be transferred.
e.g. https://pdfium-review.googlesource.com/124010 can benefit from
this.

Change-Id: I2395acd2576415f929238b80ce34a89490a0c399
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/124110
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Tom Sepez <tsepez@google.com>
diff --git a/testing/embedder_test.cpp b/testing/embedder_test.cpp
index b9e64c9..9ae5bc0 100644
--- a/testing/embedder_test.cpp
+++ b/testing/embedder_test.cpp
@@ -893,6 +893,18 @@
                                                              int page_index)
     : test_(test), page_(test->LoadPage(page_index)) {}
 
+EmbedderTest::ScopedEmbedderTestPage::ScopedEmbedderTestPage(
+    EmbedderTest::ScopedEmbedderTestPage&& that) noexcept
+    : test_(std::move(that.test_)), page_(std::exchange(that.page_, nullptr)) {}
+
+EmbedderTest::ScopedEmbedderTestPage&
+EmbedderTest::ScopedEmbedderTestPage::operator=(
+    EmbedderTest::ScopedEmbedderTestPage&& that) noexcept {
+  test_ = std::move(that.test_);
+  page_ = std::exchange(that.page_, nullptr);
+  return *this;
+}
+
 EmbedderTest::ScopedEmbedderTestPage::~ScopedEmbedderTestPage() {
   if (page_) {
     test_->UnloadPage(page_);
diff --git a/testing/embedder_test.h b/testing/embedder_test.h
index ef8f631..a987daa 100644
--- a/testing/embedder_test.h
+++ b/testing/embedder_test.h
@@ -94,6 +94,8 @@
     ScopedEmbedderTestPage(EmbedderTest* test, int page_index);
     ScopedEmbedderTestPage(const ScopedEmbedderTestPage&) = delete;
     ScopedEmbedderTestPage& operator=(const ScopedEmbedderTestPage&) = delete;
+    ScopedEmbedderTestPage(ScopedEmbedderTestPage&&) noexcept;
+    ScopedEmbedderTestPage& operator=(ScopedEmbedderTestPage&&) noexcept;
     ~ScopedEmbedderTestPage();
 
     FPDF_PAGE get() { return page_; }