Cleanup page when unloading in embedder tests

When unloading a page in the embedder tests we need to cleanup the internal
page map so if we load the page a second time we don't get a previously unloaded
page.

Review-Url: https://codereview.chromium.org/2322523002
diff --git a/testing/embedder_test.cpp b/testing/embedder_test.cpp
index e10e2a8..1ce0f36 100644
--- a/testing/embedder_test.cpp
+++ b/testing/embedder_test.cpp
@@ -255,6 +255,7 @@
   FORM_DoPageAAction(page, form_handle_, FPDFPAGE_AACTION_OPEN);
   // Cache the page.
   page_map_[page_number] = page;
+  page_reverse_map_[page] = page_number;
   return page;
 }
 
@@ -274,6 +275,13 @@
   FORM_DoPageAAction(page, form_handle_, FPDFPAGE_AACTION_CLOSE);
   FORM_OnBeforeClosePage(page, form_handle_);
   FPDF_ClosePage(page);
+
+  auto it = page_reverse_map_.find(page);
+  if (it == page_reverse_map_.end())
+    return;
+
+  page_map_.erase(it->second);
+  page_reverse_map_.erase(it);
 }
 
 FPDF_PAGE EmbedderTest::Delegate::GetPage(FPDF_FORMFILLINFO* info,
diff --git a/testing/embedder_test.h b/testing/embedder_test.h
index 153ca6e..dc4ca0d 100644
--- a/testing/embedder_test.h
+++ b/testing/embedder_test.h
@@ -124,6 +124,7 @@
   size_t file_length_;
   std::unique_ptr<char, pdfium::FreeDeleter> file_contents_;
   std::map<int, FPDF_PAGE> page_map_;
+  std::map<FPDF_PAGE, int> page_reverse_map_;
 
  private:
   static void UnsupportedHandlerTrampoline(UNSUPPORT_INFO*, int type);