Switch to LoadScopedPage() in //fpdfsdk/pwl
Bug: 354025368
Change-Id: I1f8a365b6b39449b66801b2eeb29ff91fc153c58
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/124570
Commit-Queue: Tom Sepez <tsepez@google.com>
Reviewed-by: Tom Sepez <tsepez@google.com>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/fpdfsdk/cpdfsdk_baannot_embeddertest.cpp b/fpdfsdk/cpdfsdk_baannot_embeddertest.cpp
index b70ffa9..5b207b8 100644
--- a/fpdfsdk/cpdfsdk_baannot_embeddertest.cpp
+++ b/fpdfsdk/cpdfsdk_baannot_embeddertest.cpp
@@ -17,25 +17,31 @@
public:
void SetUp() override {
EmbedderTest::SetUp();
- SetUpBAAnnot();
- }
-
- void TearDown() override {
- UnloadPage(m_page);
- EmbedderTest::TearDown();
- }
-
- void SetUpBAAnnot() {
ASSERT_TRUE(OpenDocument("links_highlights_annots.pdf"));
- m_page = LoadPage(0);
- ASSERT_TRUE(m_page);
+ }
+ ScopedEmbedderTestPage SetUpBAAnnot() {
+ ScopedEmbedderTestPage page = LoadScopedPage(0);
+ if (!page) {
+ ADD_FAILURE();
+ return ScopedEmbedderTestPage();
+ }
m_pFormFillEnv =
CPDFSDKFormFillEnvironmentFromFPDFFormHandle(form_handle());
- ASSERT_TRUE(m_pFormFillEnv);
+ if (!m_pFormFillEnv) {
+ ADD_FAILURE();
+ return ScopedEmbedderTestPage();
+ }
+
m_pPageView =
- m_pFormFillEnv->GetOrCreatePageView(IPDFPageFromFPDFPage(m_page));
- ASSERT_TRUE(m_pPageView);
+ m_pFormFillEnv->GetOrCreatePageView(IPDFPageFromFPDFPage(page.get()));
+
+ if (!m_pPageView) {
+ ADD_FAILURE();
+ return ScopedEmbedderTestPage();
+ }
+
+ return page;
}
CPDFSDK_FormFillEnvironment* GetFormFillEnv() const { return m_pFormFillEnv; }
@@ -57,12 +63,14 @@
}
private:
- FPDF_PAGE m_page = nullptr;
CPDFSDK_PageView* m_pPageView = nullptr;
CPDFSDK_FormFillEnvironment* m_pFormFillEnv = nullptr;
};
TEST_F(CPDFSDKBAAnnotTest, TabToLinkOrHighlightAnnot) {
+ ScopedEmbedderTestPage page = SetUpBAAnnot();
+ ASSERT_TRUE(page);
+
std::vector<CPDF_Annot::Subtype> focusable_annot_types = {
CPDF_Annot::Subtype::WIDGET, CPDF_Annot::Subtype::LINK,
CPDF_Annot::Subtype::HIGHLIGHT};
diff --git a/fpdfsdk/formfiller/cffl_combobox_embeddertest.cpp b/fpdfsdk/formfiller/cffl_combobox_embeddertest.cpp
index dbde075..4e63e41 100644
--- a/fpdfsdk/formfiller/cffl_combobox_embeddertest.cpp
+++ b/fpdfsdk/formfiller/cffl_combobox_embeddertest.cpp
@@ -10,6 +10,8 @@
class CFFLComboBoxEmbedderTest : public CPWLComboBoxEmbedderTest {};
TEST_F(CFFLComboBoxEmbedderTest, GetActionData) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormComboboxPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnotNormal());
{
CFFL_FieldAction result;
@@ -35,6 +37,8 @@
}
TEST_F(CFFLComboBoxEmbedderTest, SetActionData) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormComboboxPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnotNormal());
CFFL_FieldAction input_fa;
input_fa.nSelStart = 2;
diff --git a/fpdfsdk/pwl/cpwl_combo_box_edit_embeddertest.cpp b/fpdfsdk/pwl/cpwl_combo_box_edit_embeddertest.cpp
index 0c2c334..fe3c9f7 100644
--- a/fpdfsdk/pwl/cpwl_combo_box_edit_embeddertest.cpp
+++ b/fpdfsdk/pwl/cpwl_combo_box_edit_embeddertest.cpp
@@ -18,6 +18,9 @@
class CPWLComboBoxEditEmbedderTest : public CPWLComboBoxEmbedderTest {};
TEST_F(CPWLComboBoxEditEmbedderTest, GetSelectedTextEmptyAndBasicNormal) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormComboboxPDF();
+ ASSERT_TRUE(page);
+
FormFillerAndWindowSetup(GetCPDFSDKAnnotNormal());
// Automatically pre-filled with "Banana".
@@ -40,6 +43,9 @@
}
TEST_F(CPWLComboBoxEditEmbedderTest, GetSelectedTextFragmentsNormal) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormComboboxPDF();
+ ASSERT_TRUE(page);
+
FormFillerAndWindowSetup(GetCPDFSDKAnnotNormal());
EXPECT_EQ(L"Banana", GetCPWLComboBox()->GetText());
@@ -66,6 +72,9 @@
}
TEST_F(CPWLComboBoxEditEmbedderTest, GetSelectedTextEmptyAndBasicEditable) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormComboboxPDF();
+ ASSERT_TRUE(page);
+
FormFillerAndWindowSetup(GetCPDFSDKAnnotUserEditable());
EXPECT_TRUE(GetCPWLComboBox()->GetText().IsEmpty());
@@ -95,6 +104,9 @@
}
TEST_F(CPWLComboBoxEditEmbedderTest, GetSelectedTextFragmentsEditable) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormComboboxPDF();
+ ASSERT_TRUE(page);
+
FormFillerAndWindowSetup(GetCPDFSDKAnnotUserEditable());
TypeTextIntoTextField(50);
@@ -125,6 +137,9 @@
}
TEST_F(CPWLComboBoxEditEmbedderTest, DeleteEntireTextSelection) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormComboboxPDF();
+ ASSERT_TRUE(page);
+
FormFillerAndWindowSetup(GetCPDFSDKAnnotUserEditable());
TypeTextIntoTextField(50);
@@ -137,6 +152,9 @@
}
TEST_F(CPWLComboBoxEditEmbedderTest, DeleteTextSelectionMiddle) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormComboboxPDF();
+ ASSERT_TRUE(page);
+
FormFillerAndWindowSetup(GetCPDFSDKAnnotUserEditable());
TypeTextIntoTextField(50);
@@ -149,6 +167,9 @@
}
TEST_F(CPWLComboBoxEditEmbedderTest, DeleteTextSelectionLeft) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormComboboxPDF();
+ ASSERT_TRUE(page);
+
FormFillerAndWindowSetup(GetCPDFSDKAnnotUserEditable());
TypeTextIntoTextField(50);
@@ -161,6 +182,9 @@
}
TEST_F(CPWLComboBoxEditEmbedderTest, DeleteTextSelectionRight) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormComboboxPDF();
+ ASSERT_TRUE(page);
+
FormFillerAndWindowSetup(GetCPDFSDKAnnotUserEditable());
TypeTextIntoTextField(50);
@@ -173,6 +197,9 @@
}
TEST_F(CPWLComboBoxEditEmbedderTest, DeleteEmptyTextSelection) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormComboboxPDF();
+ ASSERT_TRUE(page);
+
FormFillerAndWindowSetup(GetCPDFSDKAnnotUserEditable());
TypeTextIntoTextField(50);
@@ -182,6 +209,9 @@
}
TEST_F(CPWLComboBoxEditEmbedderTest, InsertTextInEmptyEditableComboBox) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormComboboxPDF();
+ ASSERT_TRUE(page);
+
FormFillerAndWindowSetup(GetCPDFSDKAnnotUserEditable());
GetCPWLComboBox()->ReplaceSelection(L"Hello");
EXPECT_EQ(L"Hello", GetCPWLComboBox()->GetText());
@@ -189,6 +219,9 @@
TEST_F(CPWLComboBoxEditEmbedderTest,
InsertTextInPopulatedEditableComboBoxLeft) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormComboboxPDF();
+ ASSERT_TRUE(page);
+
FormFillerAndWindowSetup(GetCPDFSDKAnnotUserEditable());
TypeTextIntoTextField(10);
@@ -201,6 +234,9 @@
TEST_F(CPWLComboBoxEditEmbedderTest,
InsertTextInPopulatedEditableComboBoxMiddle) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormComboboxPDF();
+ ASSERT_TRUE(page);
+
FormFillerAndWindowSetup(GetCPDFSDKAnnotUserEditable());
TypeTextIntoTextField(10);
@@ -215,6 +251,9 @@
TEST_F(CPWLComboBoxEditEmbedderTest,
InsertTextInPopulatedEditableComboBoxRight) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormComboboxPDF();
+ ASSERT_TRUE(page);
+
FormFillerAndWindowSetup(GetCPDFSDKAnnotUserEditable());
TypeTextIntoTextField(10);
@@ -224,6 +263,9 @@
TEST_F(CPWLComboBoxEditEmbedderTest,
InsertTextAndReplaceSelectionInPopulatedEditableComboBoxWhole) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormComboboxPDF();
+ ASSERT_TRUE(page);
+
FormFillerAndWindowSetup(GetCPDFSDKAnnotUserEditable());
TypeTextIntoTextField(10);
@@ -235,6 +277,9 @@
TEST_F(CPWLComboBoxEditEmbedderTest,
InsertTextAndReplaceSelectionInPopulatedEditableComboBoxLeft) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormComboboxPDF();
+ ASSERT_TRUE(page);
+
FormFillerAndWindowSetup(GetCPDFSDKAnnotUserEditable());
TypeTextIntoTextField(10);
@@ -246,6 +291,9 @@
TEST_F(CPWLComboBoxEditEmbedderTest,
InsertTextAndReplaceSelectionInPopulatedEditableComboBoxMiddle) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormComboboxPDF();
+ ASSERT_TRUE(page);
+
FormFillerAndWindowSetup(GetCPDFSDKAnnotUserEditable());
TypeTextIntoTextField(10);
@@ -257,6 +305,9 @@
TEST_F(CPWLComboBoxEditEmbedderTest,
InsertTextAndReplaceSelectionInPopulatedEditableComboBoxRight) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormComboboxPDF();
+ ASSERT_TRUE(page);
+
FormFillerAndWindowSetup(GetCPDFSDKAnnotUserEditable());
TypeTextIntoTextField(10);
@@ -267,6 +318,9 @@
}
TEST_F(CPWLComboBoxEditEmbedderTest, ReplaceAndKeepSelection) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormComboboxPDF();
+ ASSERT_TRUE(page);
+
FormFillerAndWindowSetup(GetCPDFSDKAnnotUserEditable());
TypeTextIntoTextField(10);
diff --git a/fpdfsdk/pwl/cpwl_combo_box_embeddertest.cpp b/fpdfsdk/pwl/cpwl_combo_box_embeddertest.cpp
index 299672f..38c43e8 100644
--- a/fpdfsdk/pwl/cpwl_combo_box_embeddertest.cpp
+++ b/fpdfsdk/pwl/cpwl_combo_box_embeddertest.cpp
@@ -17,35 +17,42 @@
void CPWLComboBoxEmbedderTest::SetUp() {
EmbedderTest::SetUp();
- CreateAndInitializeFormComboboxPDF();
-}
-
-void CPWLComboBoxEmbedderTest::TearDown() {
- UnloadPage(GetPage());
- EmbedderTest::TearDown();
-}
-
-void CPWLComboBoxEmbedderTest::CreateAndInitializeFormComboboxPDF() {
ASSERT_TRUE(OpenDocument("combobox_form.pdf"));
- m_page = LoadPage(0);
- ASSERT_TRUE(m_page);
+}
+CPWLComboBoxEmbedderTest::ScopedEmbedderTestPage
+CPWLComboBoxEmbedderTest::CreateAndInitializeFormComboboxPDF() {
+ ScopedEmbedderTestPage page = LoadScopedPage(0);
+ if (!page) {
+ ADD_FAILURE();
+ return ScopedEmbedderTestPage();
+ }
m_pFormFillEnv = CPDFSDKFormFillEnvironmentFromFPDFFormHandle(form_handle());
m_pPageView = m_pFormFillEnv->GetPageViewAtIndex(0);
CPDFSDK_AnnotIterator iter(m_pPageView, {CPDF_Annot::Subtype::WIDGET});
// User editable combobox.
m_pAnnotEditable = ToCPDFSDKWidget(iter.GetFirstAnnot());
- ASSERT_TRUE(m_pAnnotEditable);
+ if (!m_pAnnotEditable) {
+ ADD_FAILURE();
+ return ScopedEmbedderTestPage();
+ }
// Normal combobox with pre-selected value.
m_pAnnotNormal = ToCPDFSDKWidget(iter.GetNextAnnot(m_pAnnotEditable));
- ASSERT_TRUE(m_pAnnotNormal);
+ if (!m_pAnnotEditable) {
+ ADD_FAILURE();
+ return ScopedEmbedderTestPage();
+ }
// Read-only combobox.
CPDFSDK_Annot* pAnnotReadOnly = iter.GetNextAnnot(m_pAnnotNormal);
CPDFSDK_Annot* pLastAnnot = iter.GetLastAnnot();
- ASSERT_EQ(pAnnotReadOnly, pLastAnnot);
+ if (pAnnotReadOnly != pLastAnnot) {
+ ADD_FAILURE();
+ return ScopedEmbedderTestPage();
+ }
+ return page;
}
void CPWLComboBoxEmbedderTest::FormFillerAndWindowSetup(
diff --git a/fpdfsdk/pwl/cpwl_combo_box_embeddertest.h b/fpdfsdk/pwl/cpwl_combo_box_embeddertest.h
index eaf0678..327e300 100644
--- a/fpdfsdk/pwl/cpwl_combo_box_embeddertest.h
+++ b/fpdfsdk/pwl/cpwl_combo_box_embeddertest.h
@@ -5,7 +5,6 @@
#ifndef FPDFSDK_PWL_CPWL_COMBO_BOX_EMBEDDERTEST_H_
#define FPDFSDK_PWL_CPWL_COMBO_BOX_EMBEDDERTEST_H_
-#include "public/fpdfview.h"
#include "testing/embedder_test.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -18,12 +17,10 @@
class CPWLComboBoxEmbedderTest : public EmbedderTest {
protected:
void SetUp() override;
- void TearDown() override;
- void CreateAndInitializeFormComboboxPDF();
+ ScopedEmbedderTestPage CreateAndInitializeFormComboboxPDF();
void FormFillerAndWindowSetup(CPDFSDK_Widget* pAnnotCombobox);
void TypeTextIntoTextField(int num_chars);
- FPDF_PAGE GetPage() const { return m_page; }
CPWL_ComboBox* GetCPWLComboBox() const { return m_pComboBox; }
CFFL_FormField* GetCFFLFormField() const { return m_pFormField; }
CPDFSDK_Widget* GetCPDFSDKAnnotNormal() const { return m_pAnnotNormal; }
@@ -36,7 +33,6 @@
CPDFSDK_PageView* GetPageView() const { return m_pPageView; }
private:
- FPDF_PAGE m_page;
CPWL_ComboBox* m_pComboBox = nullptr;
CFFL_FormField* m_pFormField = nullptr;
CPDFSDK_Widget* m_pAnnotNormal = nullptr;
diff --git a/fpdfsdk/pwl/cpwl_edit_embeddertest.cpp b/fpdfsdk/pwl/cpwl_edit_embeddertest.cpp
index 0aaa0d4..9186abe 100644
--- a/fpdfsdk/pwl/cpwl_edit_embeddertest.cpp
+++ b/fpdfsdk/pwl/cpwl_edit_embeddertest.cpp
@@ -20,41 +20,53 @@
protected:
void SetUp() override {
EmbedderTest::SetUp();
- CreateAndInitializeFormPDF();
- }
-
- void TearDown() override {
- UnloadPage(GetPage());
- EmbedderTest::TearDown();
- }
-
- void CreateAndInitializeFormPDF() {
ASSERT_TRUE(OpenDocument("text_form_multiple.pdf"));
- m_page = LoadPage(0);
- ASSERT_TRUE(m_page);
+ }
+ ScopedEmbedderTestPage CreateAndInitializeFormPDF() {
+ ScopedEmbedderTestPage page = LoadScopedPage(0);
+ if (!page) {
+ ADD_FAILURE();
+ return ScopedEmbedderTestPage();
+ }
m_pFormFillEnv =
CPDFSDKFormFillEnvironmentFromFPDFFormHandle(form_handle());
CPDFSDK_AnnotIterator iter(m_pFormFillEnv->GetPageViewAtIndex(0),
{CPDF_Annot::Subtype::WIDGET});
// Normal text field.
m_pAnnot = ToCPDFSDKWidget(iter.GetFirstAnnot());
- ASSERT_TRUE(m_pAnnot);
+ if (!m_pAnnot) {
+ ADD_FAILURE();
+ return ScopedEmbedderTestPage();
+ }
// Read-only text field.
CPDFSDK_Annot* pAnnotReadOnly = iter.GetNextAnnot(m_pAnnot);
// Pre-filled text field with char limit of 10.
m_pAnnotCharLimit = ToCPDFSDKWidget(iter.GetNextAnnot(pAnnotReadOnly));
- ASSERT_TRUE(m_pAnnotCharLimit);
+ if (!m_pAnnotCharLimit) {
+ ADD_FAILURE();
+ return ScopedEmbedderTestPage();
+ }
// Password text field.
CPDFSDK_Annot* password_annot = iter.GetNextAnnot(m_pAnnotCharLimit);
- ASSERT_TRUE(password_annot);
- ASSERT_EQ(CPDF_Annot::Subtype::WIDGET, password_annot->GetAnnotSubtype());
+ if (!password_annot) {
+ ADD_FAILURE();
+ return ScopedEmbedderTestPage();
+ }
+ if (CPDF_Annot::Subtype::WIDGET != password_annot->GetAnnotSubtype()) {
+ ADD_FAILURE();
+ return ScopedEmbedderTestPage();
+ }
CPDFSDK_Annot* pLastAnnot = iter.GetLastAnnot();
- ASSERT_EQ(password_annot, pLastAnnot);
+ if (password_annot != pLastAnnot) {
+ ADD_FAILURE();
+ return ScopedEmbedderTestPage();
+ }
+ return page;
}
void FormFillerAndWindowSetup(CPDFSDK_Widget* pAnnotTextField) {
@@ -82,14 +94,12 @@
}
}
- FPDF_PAGE GetPage() { return m_page; }
CPWL_Edit* GetCPWLEdit() { return m_pEdit; }
CFFL_FormField* GetCFFLFormFiller() { return m_pFormFiller; }
CPDFSDK_Widget* GetCPDFSDKAnnot() { return m_pAnnot; }
CPDFSDK_Widget* GetCPDFSDKAnnotCharLimit() { return m_pAnnotCharLimit; }
private:
- FPDF_PAGE m_page;
CPWL_Edit* m_pEdit;
CFFL_FormField* m_pFormFiller;
CPDFSDK_Widget* m_pAnnot;
@@ -98,6 +108,8 @@
};
TEST_F(CPWLEditEmbedderTest, TypeText) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnot());
EXPECT_TRUE(GetCPWLEdit()->GetText().IsEmpty());
EXPECT_TRUE(GetCFFLFormFiller()->OnChar(GetCPDFSDKAnnot(), 'a', {}));
@@ -108,6 +120,8 @@
}
TEST_F(CPWLEditEmbedderTest, GetSelectedTextEmptyAndBasic) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnot());
// Attempt to set selection before text has been typed to test that
// selection is identified as empty.
@@ -125,6 +139,8 @@
}
TEST_F(CPWLEditEmbedderTest, GetSelectedTextFragments) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnot());
TypeTextIntoTextField(50);
@@ -155,6 +171,8 @@
}
TEST_F(CPWLEditEmbedderTest, DeleteEntireTextSelection) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnot());
TypeTextIntoTextField(50);
@@ -167,6 +185,8 @@
}
TEST_F(CPWLEditEmbedderTest, DeleteTextSelectionMiddle) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnot());
TypeTextIntoTextField(50);
@@ -179,6 +199,8 @@
}
TEST_F(CPWLEditEmbedderTest, DeleteTextSelectionLeft) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnot());
TypeTextIntoTextField(50);
@@ -191,6 +213,8 @@
}
TEST_F(CPWLEditEmbedderTest, DeleteTextSelectionRight) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnot());
TypeTextIntoTextField(50);
@@ -203,6 +227,8 @@
}
TEST_F(CPWLEditEmbedderTest, DeleteEmptyTextSelection) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnot());
TypeTextIntoTextField(50);
@@ -212,12 +238,16 @@
}
TEST_F(CPWLEditEmbedderTest, InsertTextInEmptyTextField) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnot());
GetCPWLEdit()->ReplaceSelection(L"Hello");
EXPECT_EQ(L"Hello", GetCPWLEdit()->GetText());
}
TEST_F(CPWLEditEmbedderTest, InsertTextInPopulatedTextFieldLeft) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnot());
TypeTextIntoTextField(10);
@@ -229,6 +259,8 @@
}
TEST_F(CPWLEditEmbedderTest, InsertTextInPopulatedTextFieldMiddle) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnot());
TypeTextIntoTextField(10);
@@ -242,6 +274,8 @@
}
TEST_F(CPWLEditEmbedderTest, InsertTextInPopulatedTextFieldRight) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnot());
TypeTextIntoTextField(10);
@@ -251,6 +285,8 @@
TEST_F(CPWLEditEmbedderTest,
InsertTextAndReplaceSelectionInPopulatedTextFieldWhole) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnot());
TypeTextIntoTextField(10);
@@ -262,6 +298,8 @@
TEST_F(CPWLEditEmbedderTest,
InsertTextAndReplaceSelectionInPopulatedTextFieldLeft) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnot());
TypeTextIntoTextField(10);
@@ -273,6 +311,8 @@
TEST_F(CPWLEditEmbedderTest,
InsertTextAndReplaceSelectionInPopulatedTextFieldMiddle) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnot());
TypeTextIntoTextField(10);
@@ -284,6 +324,8 @@
TEST_F(CPWLEditEmbedderTest,
InsertTextAndReplaceSelectionInPopulatedTextFieldRight) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnot());
TypeTextIntoTextField(10);
@@ -294,6 +336,8 @@
}
TEST_F(CPWLEditEmbedderTest, InsertTextInEmptyCharLimitTextFieldOverflow) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnotCharLimit());
GetCPWLEdit()->SetSelection(0, -1);
EXPECT_EQ(L"Elephant", GetCPWLEdit()->GetSelectedText());
@@ -304,6 +348,8 @@
}
TEST_F(CPWLEditEmbedderTest, InsertTextInEmptyCharLimitTextFieldFit) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnotCharLimit());
GetCPWLEdit()->SetSelection(0, -1);
EXPECT_EQ(L"Elephant", GetCPWLEdit()->GetSelectedText());
@@ -314,12 +360,16 @@
}
TEST_F(CPWLEditEmbedderTest, InsertTextInPopulatedCharLimitTextFieldLeft) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnotCharLimit());
GetCPWLEdit()->ReplaceSelection(L"Hippopotamus");
EXPECT_EQ(L"HiElephant", GetCPWLEdit()->GetText());
}
TEST_F(CPWLEditEmbedderTest, InsertTextInPopulatedCharLimitTextFieldMiddle) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnotCharLimit());
// Move cursor to middle of text field.
for (int i = 0; i < 5; ++i) {
@@ -331,6 +381,8 @@
}
TEST_F(CPWLEditEmbedderTest, InsertTextInPopulatedCharLimitTextFieldRight) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnotCharLimit());
// Move cursor to end of text field.
EXPECT_TRUE(GetCFFLFormFiller()->OnKeyDown(FWL_VKEY_End, {}));
@@ -341,6 +393,8 @@
TEST_F(CPWLEditEmbedderTest,
InsertTextAndReplaceSelectionInPopulatedCharLimitTextFieldWhole) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnotCharLimit());
GetCPWLEdit()->SetSelection(0, -1);
EXPECT_EQ(L"Elephant", GetCPWLEdit()->GetSelectedText());
@@ -350,6 +404,8 @@
TEST_F(CPWLEditEmbedderTest,
InsertTextAndReplaceSelectionInPopulatedCharLimitTextFieldLeft) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnotCharLimit());
GetCPWLEdit()->SetSelection(0, 4);
EXPECT_EQ(L"Elep", GetCPWLEdit()->GetSelectedText());
@@ -359,6 +415,8 @@
TEST_F(CPWLEditEmbedderTest,
InsertTextAndReplaceSelectionInPopulatedCharLimitTextFieldMiddle) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnotCharLimit());
GetCPWLEdit()->SetSelection(2, 6);
EXPECT_EQ(L"epha", GetCPWLEdit()->GetSelectedText());
@@ -368,6 +426,8 @@
TEST_F(CPWLEditEmbedderTest,
InsertTextAndReplaceSelectionInPopulatedCharLimitTextFieldRight) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnotCharLimit());
GetCPWLEdit()->SetSelection(4, 8);
EXPECT_EQ(L"hant", GetCPWLEdit()->GetSelectedText());
@@ -376,54 +436,72 @@
}
TEST_F(CPWLEditEmbedderTest, SetTextWithEndCarriageFeed) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnot());
GetCPWLEdit()->SetText(L"Foo\r");
EXPECT_EQ(L"Foo", GetCPWLEdit()->GetText());
}
TEST_F(CPWLEditEmbedderTest, SetTextWithEndNewline) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnot());
GetCPWLEdit()->SetText(L"Foo\n");
EXPECT_EQ(L"Foo", GetCPWLEdit()->GetText());
}
TEST_F(CPWLEditEmbedderTest, SetTextWithEndCarriageFeedAndNewLine) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnot());
GetCPWLEdit()->SetText(L"Foo\r\n");
EXPECT_EQ(L"Foo", GetCPWLEdit()->GetText());
}
TEST_F(CPWLEditEmbedderTest, SetTextWithEndNewLineAndCarriageFeed) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnot());
GetCPWLEdit()->SetText(L"Foo\n\r");
EXPECT_EQ(L"Foo", GetCPWLEdit()->GetText());
}
TEST_F(CPWLEditEmbedderTest, SetTextWithBodyCarriageFeed) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnot());
GetCPWLEdit()->SetText(L"Foo\rBar");
EXPECT_EQ(L"FooBar", GetCPWLEdit()->GetText());
}
TEST_F(CPWLEditEmbedderTest, SetTextWithBodyNewline) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnot());
GetCPWLEdit()->SetText(L"Foo\nBar");
EXPECT_EQ(L"FooBar", GetCPWLEdit()->GetText());
}
TEST_F(CPWLEditEmbedderTest, SetTextWithBodyCarriageFeedAndNewLine) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnot());
GetCPWLEdit()->SetText(L"Foo\r\nBar");
EXPECT_EQ(L"FooBar", GetCPWLEdit()->GetText());
}
TEST_F(CPWLEditEmbedderTest, SetTextWithBodyNewLineAndCarriageFeed) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnot());
GetCPWLEdit()->SetText(L"Foo\n\rBar");
EXPECT_EQ(L"FooBar", GetCPWLEdit()->GetText());
}
TEST_F(CPWLEditEmbedderTest, ReplaceAndKeepSelection) {
+ ScopedEmbedderTestPage page = CreateAndInitializeFormPDF();
+ ASSERT_TRUE(page);
FormFillerAndWindowSetup(GetCPDFSDKAnnot());
TypeTextIntoTextField(10);
diff --git a/fpdfsdk/pwl/cpwl_special_button_embeddertest.cpp b/fpdfsdk/pwl/cpwl_special_button_embeddertest.cpp
index c12f037..e9f1d6d 100644
--- a/fpdfsdk/pwl/cpwl_special_button_embeddertest.cpp
+++ b/fpdfsdk/pwl/cpwl_special_button_embeddertest.cpp
@@ -15,20 +15,14 @@
protected:
void SetUp() override {
EmbedderTest::SetUp();
- CreateAndInitializeFormPDF();
+ ASSERT_TRUE(OpenDocument("click_form.pdf"));
}
void TearDown() override {
- UnloadPage(page_);
EmbedderTest::TearDown();
}
void CreateAndInitializeFormPDF() {
- ASSERT_TRUE(OpenDocument("click_form.pdf"));
-
- page_ = LoadPage(0);
- ASSERT_TRUE(page_);
-
formfill_env_ = CPDFSDKFormFillEnvironmentFromFPDFFormHandle(form_handle());
CPDFSDK_AnnotIterator it(formfill_env_->GetPageViewAtIndex(0),
{CPDF_Annot::Subtype::WIDGET});
@@ -98,7 +92,6 @@
CPWL_Wnd* GetWindow() const { return window_; }
private:
- FPDF_PAGE page_;
CFFL_FormField* form_filler_;
CPDFSDK_Widget* widget_checkbox_;
CPDFSDK_Widget* widget_readonly_checkbox_;
@@ -109,6 +102,10 @@
};
TEST_F(CPWLSpecialButtonEmbedderTest, EnterOnReadOnlyCheckBox) {
+ ScopedEmbedderTestPage page = LoadScopedPage(0);
+ ASSERT_TRUE(page);
+ CreateAndInitializeFormPDF();
+
FormFillerAndWindowSetup(GetCPDFSDKWidgetReadOnlyCheckBox());
CPWL_CheckBox* check_box = static_cast<CPWL_CheckBox*>(GetWindow());
EXPECT_TRUE(check_box->IsChecked());
@@ -118,6 +115,10 @@
}
TEST_F(CPWLSpecialButtonEmbedderTest, EnterOnCheckBox) {
+ ScopedEmbedderTestPage page = LoadScopedPage(0);
+ ASSERT_TRUE(page);
+ CreateAndInitializeFormPDF();
+
FormFillerAndWindowSetup(GetCPDFSDKWidgetCheckBox());
CPWL_CheckBox* check_box = static_cast<CPWL_CheckBox*>(GetWindow());
EXPECT_TRUE(GetCPDFSDKFormFillEnv()->GetInteractiveFormFiller()->OnChar(
@@ -130,6 +131,10 @@
}
TEST_F(CPWLSpecialButtonEmbedderTest, EnterOnReadOnlyRadioButton) {
+ ScopedEmbedderTestPage page = LoadScopedPage(0);
+ ASSERT_TRUE(page);
+ CreateAndInitializeFormPDF();
+
FormFillerAndWindowSetup(GetCPDFSDKWidgetReadOnlyRadioButton());
CPWL_RadioButton* radio_button = static_cast<CPWL_RadioButton*>(GetWindow());
EXPECT_FALSE(radio_button->IsChecked());
@@ -139,6 +144,10 @@
}
TEST_F(CPWLSpecialButtonEmbedderTest, EnterOnRadioButton) {
+ ScopedEmbedderTestPage page = LoadScopedPage(0);
+ ASSERT_TRUE(page);
+ CreateAndInitializeFormPDF();
+
FormFillerAndWindowSetup(GetCPDFSDKWidgetRadioButton());
CPWL_RadioButton* radio_button = static_cast<CPWL_RadioButton*>(GetWindow());
EXPECT_TRUE(GetCPDFSDKFormFillEnv()->GetInteractiveFormFiller()->OnChar(
diff --git a/testing/embedder_test.cpp b/testing/embedder_test.cpp
index 9ae5bc0..dadce90 100644
--- a/testing/embedder_test.cpp
+++ b/testing/embedder_test.cpp
@@ -889,6 +889,9 @@
}
#endif
+EmbedderTest::ScopedEmbedderTestPage::ScopedEmbedderTestPage()
+ : test_(nullptr), page_(nullptr) {}
+
EmbedderTest::ScopedEmbedderTestPage::ScopedEmbedderTestPage(EmbedderTest* test,
int page_index)
: test_(test), page_(test->LoadPage(page_index)) {}
diff --git a/testing/embedder_test.h b/testing/embedder_test.h
index a987daa..1ef2ff6 100644
--- a/testing/embedder_test.h
+++ b/testing/embedder_test.h
@@ -91,6 +91,7 @@
class ScopedEmbedderTestPage {
public:
+ ScopedEmbedderTestPage();
ScopedEmbedderTestPage(EmbedderTest* test, int page_index);
ScopedEmbedderTestPage(const ScopedEmbedderTestPage&) = delete;
ScopedEmbedderTestPage& operator=(const ScopedEmbedderTestPage&) = delete;
diff --git a/xfa/fwl/cfwl_edit_embeddertest.cpp b/xfa/fwl/cfwl_edit_embeddertest.cpp
index 1caaf32..9ec922e 100644
--- a/xfa/fwl/cfwl_edit_embeddertest.cpp
+++ b/xfa/fwl/cfwl_edit_embeddertest.cpp
@@ -39,49 +39,43 @@
void TearDown() override {
FSDK_SetTimeFunction(nullptr);
FSDK_SetLocaltimeFunction(nullptr);
- // TODO(crbug.com/pdfium/11): A page might not have been loaded if a test
- // is skipped at runtime. This check for a non-null page should be able to
- // removed once none of the tests are being skipped for Skia.
- if (page())
- UnloadPage(page());
EmbedderTest::TearDown();
}
void CreateAndInitializeFormPDF(const char* filename) {
ASSERT_TRUE(OpenDocument(filename));
- page_ = LoadPage(0);
- ASSERT_TRUE(page_);
}
- FPDF_PAGE page() const { return page_; }
EmbedderTestTimerHandlingDelegate delegate() const { return delegate_; }
private:
- FPDF_PAGE page_ = nullptr;
EmbedderTestTimerHandlingDelegate delegate_;
};
TEST_F(CFWLEditEmbedderTest, Trivial) {
CreateAndInitializeFormPDF("xfa/email_recommended.pdf");
+ ScopedEmbedderTestPage page = LoadScopedPage(0);
ASSERT_EQ(0u, delegate().GetAlerts().size());
}
TEST_F(CFWLEditEmbedderTest, LeftClickMouseSelection) {
CreateAndInitializeFormPDF("xfa/email_recommended.pdf");
- FORM_OnLButtonDown(form_handle(), page(), 0, 115, 58);
+ ScopedEmbedderTestPage page = LoadScopedPage(0);
+ FORM_OnLButtonDown(form_handle(), page.get(), 0, 115, 58);
for (size_t i = 0; i < 10; ++i)
- FORM_OnChar(form_handle(), page(), 'a' + i, 0);
+ FORM_OnChar(form_handle(), page.get(), 'a' + i, 0);
// Mouse selection
- FORM_OnLButtonDown(form_handle(), page(), 0, 128, 58);
- FORM_OnLButtonDown(form_handle(), page(), FWL_EVENTFLAG_ShiftKey, 152, 58);
+ FORM_OnLButtonDown(form_handle(), page.get(), 0, 128, 58);
+ FORM_OnLButtonDown(form_handle(), page.get(), FWL_EVENTFLAG_ShiftKey, 152,
+ 58);
// 12 == (2 * strlen(defgh)) + 2 (for \0\0)
- ASSERT_EQ(12U, FORM_GetSelectedText(form_handle(), page(), nullptr, 0));
+ ASSERT_EQ(12U, FORM_GetSelectedText(form_handle(), page.get(), nullptr, 0));
uint16_t buf[6];
ASSERT_EQ(12U,
- FORM_GetSelectedText(form_handle(), page(), &buf, sizeof(buf)));
+ FORM_GetSelectedText(form_handle(), page.get(), &buf, sizeof(buf)));
EXPECT_EQ("defgh", GetPlatformString(buf));
}
@@ -92,27 +86,28 @@
}
CreateAndInitializeFormPDF("xfa/email_recommended.pdf");
- FORM_OnLButtonDown(form_handle(), page(), 0, 115, 58);
+ ScopedEmbedderTestPage page = LoadScopedPage(0);
+ FORM_OnLButtonDown(form_handle(), page.get(), 0, 115, 58);
for (size_t i = 0; i < 10; ++i)
- FORM_OnChar(form_handle(), page(), 'a' + i, 0);
+ FORM_OnChar(form_handle(), page.get(), 'a' + i, 0);
// Mouse selection
- FORM_OnLButtonDown(form_handle(), page(), 0, 128, 58);
- FORM_OnMouseMove(form_handle(), page(), FWL_EVENTFLAG_ShiftKey, 152, 58);
+ FORM_OnLButtonDown(form_handle(), page.get(), 0, 128, 58);
+ FORM_OnMouseMove(form_handle(), page.get(), FWL_EVENTFLAG_ShiftKey, 152, 58);
// 12 == (2 * strlen(defgh)) + 2 (for \0\0)
- ASSERT_EQ(12U, FORM_GetSelectedText(form_handle(), page(), nullptr, 0));
+ ASSERT_EQ(12U, FORM_GetSelectedText(form_handle(), page.get(), nullptr, 0));
uint16_t buf[6];
ASSERT_EQ(12U,
- FORM_GetSelectedText(form_handle(), page(), &buf, sizeof(buf)));
+ FORM_GetSelectedText(form_handle(), page.get(), &buf, sizeof(buf)));
EXPECT_EQ("defgh", GetPlatformString(buf));
// TODO(hnakashima): This is incorrect. Visually 'abcdefgh' are selected.
const char kDraggedMD5[] = "f131526c8edd04e44de17b2647ec54c8";
{
ScopedFPDFBitmap page_bitmap =
- RenderLoadedPageWithFlags(page(), FPDF_ANNOT);
+ RenderLoadedPageWithFlags(page.get(), FPDF_ANNOT);
CompareBitmap(page_bitmap.get(), 612, 792, kDraggedMD5);
}
}
@@ -124,20 +119,21 @@
}
CreateAndInitializeFormPDF("xfa/email_recommended.pdf");
+ ScopedEmbedderTestPage page = LoadScopedPage(0);
const char kBlankMD5[] = "8dda78a3afaf9f7b5210eb81cacc4600";
{
ScopedFPDFBitmap page_bitmap =
- RenderLoadedPageWithFlags(page(), FPDF_ANNOT);
+ RenderLoadedPageWithFlags(page.get(), FPDF_ANNOT);
CompareBitmap(page_bitmap.get(), 612, 792, kBlankMD5);
}
- FORM_OnLButtonDown(form_handle(), page(), 0, 115, 58);
+ FORM_OnLButtonDown(form_handle(), page.get(), 0, 115, 58);
for (size_t i = 0; i < 10; ++i)
- FORM_OnChar(form_handle(), page(), 'a' + i, 0);
+ FORM_OnChar(form_handle(), page.get(), 'a' + i, 0);
{
ScopedFPDFBitmap page_bitmap =
- RenderLoadedPageWithFlags(page(), FPDF_ANNOT);
+ RenderLoadedPageWithFlags(page.get(), FPDF_ANNOT);
CompareBitmap(page_bitmap.get(), 612, 792, kEmailRecommendedFilledChecksum);
}
}
@@ -149,16 +145,17 @@
}
CreateAndInitializeFormPDF("xfa/email_recommended.pdf");
- FORM_OnLButtonDown(form_handle(), page(), 0, 115, 58);
+ ScopedEmbedderTestPage page = LoadScopedPage(0);
+ FORM_OnLButtonDown(form_handle(), page.get(), 0, 115, 58);
for (size_t i = 0; i < 5; ++i)
- FORM_OnChar(form_handle(), page(), 'a' + i, 0);
- FORM_OnChar(form_handle(), page(), '\r', 0);
+ FORM_OnChar(form_handle(), page.get(), 'a' + i, 0);
+ FORM_OnChar(form_handle(), page.get(), '\r', 0);
for (size_t i = 5; i < 10; ++i)
- FORM_OnChar(form_handle(), page(), 'a' + i, 0);
+ FORM_OnChar(form_handle(), page.get(), 'a' + i, 0);
{
ScopedFPDFBitmap page_bitmap =
- RenderLoadedPageWithFlags(page(), FPDF_ANNOT);
+ RenderLoadedPageWithFlags(page.get(), FPDF_ANNOT);
CompareBitmap(page_bitmap.get(), 612, 792, kEmailRecommendedFilledChecksum);
}
}
@@ -166,13 +163,14 @@
// Disabled due to flakiness.
TEST_F(CFWLEditEmbedderTest, DISABLED_FillWithNewLineWithMultiline) {
CreateAndInitializeFormPDF("xfa/xfa_multiline_textfield.pdf");
- FORM_OnLButtonDown(form_handle(), page(), 0, 115, 58);
+ ScopedEmbedderTestPage page = LoadScopedPage(0);
+ FORM_OnLButtonDown(form_handle(), page.get(), 0, 115, 58);
for (size_t i = 0; i < 5; ++i)
- FORM_OnChar(form_handle(), page(), 'a' + i, 0);
- FORM_OnChar(form_handle(), page(), '\r', 0);
+ FORM_OnChar(form_handle(), page.get(), 'a' + i, 0);
+ FORM_OnChar(form_handle(), page.get(), '\r', 0);
for (size_t i = 5; i < 10; ++i)
- FORM_OnChar(form_handle(), page(), 'a' + i, 0);
+ FORM_OnChar(form_handle(), page.get(), 'a' + i, 0);
// Should look like:
// abcde
@@ -184,12 +182,12 @@
const char kFilledMultilineMD5[] = "a5654e027d8b1667c20f3b86d1918003";
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
ScopedFPDFBitmap page_bitmap =
- RenderLoadedPageWithFlags(page(), FPDF_ANNOT);
+ RenderLoadedPageWithFlags(page.get(), FPDF_ANNOT);
CompareBitmap(page_bitmap.get(), 612, 792, kFilledMultilineMD5);
}
for (size_t i = 0; i < 4; ++i)
- FORM_OnKeyDown(form_handle(), page(), FWL_VKEY_Left, 0);
+ FORM_OnKeyDown(form_handle(), page.get(), FWL_VKEY_Left, 0);
// Should look like:
// abcde
@@ -198,7 +196,7 @@
// Two backspaces is a workaround because left arrow does not behave well
// in the first character of a line. It skips back to the previous line.
for (size_t i = 0; i < 2; ++i)
- FORM_OnChar(form_handle(), page(), '\b', 0);
+ FORM_OnChar(form_handle(), page.get(), '\b', 0);
// Should look like:
// abcde|ghij
@@ -209,7 +207,7 @@
const char kMultilineBackspaceMD5[] = "a2f1dcab92bb1fb7c2f9ccc70100c989";
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
ScopedFPDFBitmap page_bitmap =
- RenderLoadedPageWithFlags(page(), FPDF_ANNOT);
+ RenderLoadedPageWithFlags(page.get(), FPDF_ANNOT);
CompareBitmap(page_bitmap.get(), 612, 792, kMultilineBackspaceMD5);
}
}
@@ -221,23 +219,24 @@
}
CreateAndInitializeFormPDF("xfa/xfa_date_time_edit.pdf");
+ ScopedEmbedderTestPage page = LoadScopedPage(0);
// Give focus to date time widget, creating down-arrow button.
- FORM_OnLButtonDown(form_handle(), page(), 0, 115, 58);
- FORM_OnLButtonUp(form_handle(), page(), 0, 115, 58);
+ FORM_OnLButtonDown(form_handle(), page.get(), 0, 115, 58);
+ FORM_OnLButtonUp(form_handle(), page.get(), 0, 115, 58);
const char kSelectedMD5[] = "1036b8837a9dba75c6bd8f9347ae2eb2";
{
ScopedFPDFBitmap page_bitmap =
- RenderLoadedPageWithFlags(page(), FPDF_ANNOT);
+ RenderLoadedPageWithFlags(page.get(), FPDF_ANNOT);
CompareBitmap(page_bitmap.get(), 612, 792, kSelectedMD5);
}
// Click down-arrow button, bringing up calendar widget.
- FORM_OnLButtonDown(form_handle(), page(), 0, 446, 54);
- FORM_OnLButtonUp(form_handle(), page(), 0, 446, 54);
+ FORM_OnLButtonDown(form_handle(), page.get(), 0, 446, 54);
+ FORM_OnLButtonUp(form_handle(), page.get(), 0, 446, 54);
{
ScopedFPDFBitmap page_bitmap =
- RenderLoadedPageWithFlags(page(), FPDF_ANNOT);
+ RenderLoadedPageWithFlags(page.get(), FPDF_ANNOT);
// TODO(tsepez): hermetic fonts.
// const char kCalendarOpenMD5[] = "02de64e7e83c82c1ef0ae484d671a51d";
@@ -245,11 +244,11 @@
}
// Click on date on calendar, putting result into field as text.
- FORM_OnLButtonDown(form_handle(), page(), 0, 100, 162);
- FORM_OnLButtonUp(form_handle(), page(), 0, 100, 162);
+ FORM_OnLButtonDown(form_handle(), page.get(), 0, 100, 162);
+ FORM_OnLButtonUp(form_handle(), page.get(), 0, 100, 162);
{
ScopedFPDFBitmap page_bitmap =
- RenderLoadedPageWithFlags(page(), FPDF_ANNOT);
+ RenderLoadedPageWithFlags(page.get(), FPDF_ANNOT);
// TODO(tsepez): hermetic fonts.
// const char kFilledMD5[] = "1bce66c11f1c87b8d639ce0076ac36d3";
@@ -259,23 +258,26 @@
TEST_F(CFWLEditEmbedderTest, ImageEditTest) {
CreateAndInitializeFormPDF("xfa/xfa_image_edit.pdf");
- FORM_OnLButtonDown(form_handle(), page(), 0, 115, 58);
+ ScopedEmbedderTestPage page = LoadScopedPage(0);
+ FORM_OnLButtonDown(form_handle(), page.get(), 0, 115, 58);
const char* filled_checksum = []() {
if (CFX_DefaultRenderDevice::UseSkiaRenderer()) {
return "23658ed124114f05518372d41c80e41b";
}
return "101cf6223fa2403fba4c413a8310ab02";
}();
- ScopedFPDFBitmap page_bitmap = RenderLoadedPageWithFlags(page(), FPDF_ANNOT);
+ ScopedFPDFBitmap page_bitmap =
+ RenderLoadedPageWithFlags(page.get(), FPDF_ANNOT);
CompareBitmap(page_bitmap.get(), 612, 792, filled_checksum);
}
TEST_F(CFWLEditEmbedderTest, ComboBoxTest) {
CreateAndInitializeFormPDF("xfa/xfa_combobox.pdf");
+ ScopedEmbedderTestPage page = LoadScopedPage(0);
// Give focus to widget.
- FORM_OnLButtonDown(form_handle(), page(), 0, 115, 58);
- FORM_OnLButtonUp(form_handle(), page(), 0, 115, 58);
+ FORM_OnLButtonDown(form_handle(), page.get(), 0, 115, 58);
+ FORM_OnLButtonUp(form_handle(), page.get(), 0, 115, 58);
{
const char* filled_checksum = []() {
if (CFX_DefaultRenderDevice::UseSkiaRenderer()) {
@@ -284,37 +286,37 @@
return "dad642ae8a5afce2591ffbcabbfc58dd";
}();
ScopedFPDFBitmap page_bitmap =
- RenderLoadedPageWithFlags(page(), FPDF_ANNOT);
+ RenderLoadedPageWithFlags(page.get(), FPDF_ANNOT);
CompareBitmap(page_bitmap.get(), 612, 792, filled_checksum);
}
// Click on down-arrow button, dropdown list appears.
- FORM_OnLButtonDown(form_handle(), page(), 0, 438, 53);
- FORM_OnLButtonUp(form_handle(), page(), 0, 438, 53);
+ FORM_OnLButtonDown(form_handle(), page.get(), 0, 438, 53);
+ FORM_OnLButtonUp(form_handle(), page.get(), 0, 438, 53);
{
ScopedFPDFBitmap page_bitmap =
- RenderLoadedPageWithFlags(page(), FPDF_ANNOT);
+ RenderLoadedPageWithFlags(page.get(), FPDF_ANNOT);
// TODO(tsepez): hermetic fonts.
// const char kFilledMD5[] = "dad642ae8a5afce2591ffbcabbfc58dd";
// CompareBitmap(page_bitmap.get(), 612, 792, kFilledMD5);
}
// Enter drop-down list, selection highlighted.
- FORM_OnMouseMove(form_handle(), page(), 0, 253, 107);
+ FORM_OnMouseMove(form_handle(), page.get(), 0, 253, 107);
{
ScopedFPDFBitmap page_bitmap =
- RenderLoadedPageWithFlags(page(), FPDF_ANNOT);
+ RenderLoadedPageWithFlags(page.get(), FPDF_ANNOT);
// TODO(tsepez): hermetic fonts.
// const char kFilledMD5[] = "dad642ae8a5afce2591ffbcabbfc58dd";
// CompareBitmap(page_bitmap.get(), 612, 792, kFilledMD5);
}
// Click on selection, putting result into field.
- FORM_OnLButtonDown(form_handle(), page(), 0, 253, 107);
- FORM_OnLButtonUp(form_handle(), page(), 0, 253, 107);
+ FORM_OnLButtonDown(form_handle(), page.get(), 0, 253, 107);
+ FORM_OnLButtonUp(form_handle(), page.get(), 0, 253, 107);
{
ScopedFPDFBitmap page_bitmap =
- RenderLoadedPageWithFlags(page(), FPDF_ANNOT);
+ RenderLoadedPageWithFlags(page.get(), FPDF_ANNOT);
// TODO(tsepez): hermetic fonts.
// const char kFilledMD5[] = "dad642ae8a5afce2591ffbcabbfc58dd";
// CompareBitmap(page_bitmap.get(), 612, 792, kFilledMD5);