diff options
-rw-r--r-- | fpdfsdk/fpdfformfill_embeddertest.cpp | 1120 |
1 files changed, 433 insertions, 687 deletions
diff --git a/fpdfsdk/fpdfformfill_embeddertest.cpp b/fpdfsdk/fpdfformfill_embeddertest.cpp index 453a5cf6a1..9256d3fa76 100644 --- a/fpdfsdk/fpdfformfill_embeddertest.cpp +++ b/fpdfsdk/fpdfformfill_embeddertest.cpp @@ -18,70 +18,89 @@ #include "testing/gtest/include/gtest/gtest.h" using testing::_; -using testing::Return; -class FPDFFormFillEmbeddertest : public EmbedderTest { +using FPDFFormFillEmbeddertest = EmbedderTest; + +// A base class for many related tests that involve clicking and typing into +// form fields. +class FPDFFormFillInteractiveEmbeddertest : public FPDFFormFillEmbeddertest { protected: - void ClickOnFormFieldAtPoint(FPDF_PAGE page, double x, double y) { + FPDFFormFillInteractiveEmbeddertest() = default; + ~FPDFFormFillInteractiveEmbeddertest() override = default; + + void SetUp() override { + FPDFFormFillEmbeddertest::SetUp(); + ASSERT_TRUE(OpenDocument(GetDocumentName())); + page_ = LoadPage(0); + ASSERT_TRUE(page_); + FormSanityChecks(); + } + + void TearDown() override { + UnloadPage(page_); + FPDFFormFillEmbeddertest::TearDown(); + } + + // Returns the name of the PDF to use. + virtual const char* GetDocumentName() const = 0; + + // Optionally do some sanity check on the document after loading. + virtual void FormSanityChecks() {} + + FPDF_PAGE page() { return page_; } + + void ClickOnFormFieldAtPoint(double x, double y) { // Click on the text field or combobox as specified by coordinates. - FORM_OnMouseMove(form_handle(), page, 0, x, y); - FORM_OnLButtonDown(form_handle(), page, 0, x, y); - FORM_OnLButtonUp(form_handle(), page, 0, x, y); + FORM_OnMouseMove(form_handle(), page_, 0, x, y); + FORM_OnLButtonDown(form_handle(), page_, 0, x, y); + FORM_OnLButtonUp(form_handle(), page_, 0, x, y); } - void TypeTextIntoTextField(FPDF_PAGE page, - int num_chars, - int form_type, - double x, - double y) { + void TypeTextIntoTextField(int num_chars, int form_type, double x, double y) { ASSERT(form_type == FPDF_FORMFIELD_COMBOBOX || form_type == FPDF_FORMFIELD_TEXTFIELD); EXPECT_EQ(form_type, - FPDFPage_HasFormFieldAtPoint(form_handle(), page, x, y)); - ClickOnFormFieldAtPoint(page, x, y); + FPDFPage_HasFormFieldAtPoint(form_handle(), page_, x, y)); + ClickOnFormFieldAtPoint(x, y); // Type text starting with 'A' to as many chars as specified by |num_chars|. for (int i = 0; i < num_chars; ++i) { - FORM_OnChar(form_handle(), page, 'A' + i, 0); + FORM_OnChar(form_handle(), page_, 'A' + i, 0); } } // Navigates to text field using the mouse and then selects text via the // shift and specfied left or right arrow key. - void SelectTextWithKeyboard(FPDF_PAGE page, - int num_chars, + void SelectTextWithKeyboard(int num_chars, int arrow_key, double x, double y) { // Navigate to starting position for selection. - ClickOnFormFieldAtPoint(page, x, y); + ClickOnFormFieldAtPoint(x, y); // Hold down shift (and don't release until entire text is selected). - FORM_OnKeyDown(form_handle(), page, FWL_VKEY_Shift, 0); + FORM_OnKeyDown(form_handle(), page_, FWL_VKEY_Shift, 0); // Select text char by char via left or right arrow key. for (int i = 0; i < num_chars; ++i) { - FORM_OnKeyDown(form_handle(), page, arrow_key, FWL_EVENTFLAG_ShiftKey); - FORM_OnKeyUp(form_handle(), page, arrow_key, FWL_EVENTFLAG_ShiftKey); + FORM_OnKeyDown(form_handle(), page_, arrow_key, FWL_EVENTFLAG_ShiftKey); + FORM_OnKeyUp(form_handle(), page_, arrow_key, FWL_EVENTFLAG_ShiftKey); } - FORM_OnKeyUp(form_handle(), page, FWL_VKEY_Shift, 0); + FORM_OnKeyUp(form_handle(), page_, FWL_VKEY_Shift, 0); } // Uses the mouse to navigate to text field and select text. - void SelectTextWithMouse(FPDF_PAGE page, - double start_x, - double end_x, - double y) { + void SelectTextWithMouse(double start_x, double end_x, double y) { // Navigate to starting position and click mouse. - FORM_OnMouseMove(form_handle(), page, 0, start_x, y); - FORM_OnLButtonDown(form_handle(), page, 0, start_x, y); + FORM_OnMouseMove(form_handle(), page_, 0, start_x, y); + FORM_OnLButtonDown(form_handle(), page_, 0, start_x, y); // Hold down mouse until reach end of desired selection. - FORM_OnMouseMove(form_handle(), page, 0, end_x, y); - FORM_OnLButtonUp(form_handle(), page, 0, end_x, y); + FORM_OnMouseMove(form_handle(), page_, 0, end_x, y); + FORM_OnLButtonUp(form_handle(), page_, 0, end_x, y); } - void CheckSelection(FPDF_PAGE page, const CFX_WideStringC& expected_string) { + void CheckSelection(const CFX_WideStringC& expected_string) { // Calculate expected length for selected text. int num_chars = expected_string.GetLength(); @@ -89,34 +108,70 @@ class FPDFFormFillEmbeddertest : public EmbedderTest { const unsigned long expected_length = sizeof(unsigned short) * (num_chars + 1); unsigned long sel_text_len = - FORM_GetSelectedText(form_handle(), page, nullptr, 0); + FORM_GetSelectedText(form_handle(), page_, nullptr, 0); ASSERT_EQ(expected_length, sel_text_len); std::vector<unsigned short> buf(sel_text_len); - EXPECT_EQ(expected_length, FORM_GetSelectedText(form_handle(), page, + EXPECT_EQ(expected_length, FORM_GetSelectedText(form_handle(), page_, buf.data(), sel_text_len)); EXPECT_EQ(expected_string, CFX_WideString::FromUTF16LE(buf.data(), num_chars)); } + private: + FPDF_PAGE page_ = nullptr; +}; + +class FPDFFormFillTextFormEmbeddertest + : public FPDFFormFillInteractiveEmbeddertest { + protected: + FPDFFormFillTextFormEmbeddertest() = default; + ~FPDFFormFillTextFormEmbeddertest() override = default; + + const char* GetDocumentName() const override { + // PDF with several form text fields: + // - "Text Box" - No special attributes. + // - "ReadOnly" - Ff: 1. + // - "CharLimit" - MaxLen: 10, V: Elephant. + return "text_form_multiple.pdf"; + } +}; + +class FPDFFormFillComboBoxFormEmbeddertest + : public FPDFFormFillInteractiveEmbeddertest { + protected: + FPDFFormFillComboBoxFormEmbeddertest() = default; + ~FPDFFormFillComboBoxFormEmbeddertest() override = default; + + const char* GetDocumentName() const override { + // PDF with form comboboxes. + return "combobox_form.pdf"; + } + + void FormSanityChecks() override { + EXPECT_EQ( + FPDF_FORMFIELD_COMBOBOX, + FPDFPage_HasFormFieldAtPoint(form_handle(), page(), 102.0, 113.0)); + } + // Selects one of the pre-selected values from a combobox with three options. // Options are specified by |item_index|, which is 0-based. - void SelectOption(FPDF_PAGE page, int32_t item_index, double x, double y) { + void SelectOption(int32_t item_index, double x, double y) { // Only relevant for comboboxes with three choices and the same dimensions // as those in combobox_form.pdf. ASSERT(item_index >= 0); ASSERT(item_index < 3); // Navigate to button for drop down and click mouse to reveal options. - ClickOnFormFieldAtPoint(page, x, y); + ClickOnFormFieldAtPoint(x, y); // Y coordinate of dropdown option to be selected. constexpr double kChoiceHeight = 15; double option_y = y - kChoiceHeight * (item_index + 1); // Navigate to option and click mouse to select it. - ClickOnFormFieldAtPoint(page, x, option_y); + ClickOnFormFieldAtPoint(x, option_y); } }; @@ -369,1099 +424,790 @@ TEST_F(FPDFFormFillEmbeddertest, FormText) { TestAndCloseSaved(300, 300, md5_3); } -TEST_F(FPDFFormFillEmbeddertest, GetSelectedTextEmptyAndBasicKeyboard) { - // Open file with form text field. - EXPECT_TRUE(OpenDocument("text_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - +TEST_F(FPDFFormFillTextFormEmbeddertest, GetSelectedTextEmptyAndBasicKeyboard) { // Test empty selection. - CheckSelection(page, L""); + CheckSelection(L""); // Test basic selection. - TypeTextIntoTextField(page, 3, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); - SelectTextWithKeyboard(page, 3, FWL_VKEY_Left, 123.0, 115.5); - CheckSelection(page, L"ABC"); - - UnloadPage(page); + TypeTextIntoTextField(3, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); + SelectTextWithKeyboard(3, FWL_VKEY_Left, 123.0, 115.5); + CheckSelection(L"ABC"); } -TEST_F(FPDFFormFillEmbeddertest, GetSelectedTextEmptyAndBasicMouse) { - // Open file with form text field. - EXPECT_TRUE(OpenDocument("text_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - +TEST_F(FPDFFormFillTextFormEmbeddertest, GetSelectedTextEmptyAndBasicMouse) { // Test empty selection. - CheckSelection(page, L""); + CheckSelection(L""); // Test basic selection. - TypeTextIntoTextField(page, 3, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); - SelectTextWithMouse(page, 125.0, 102.0, 115.5); - CheckSelection(page, L"ABC"); - - UnloadPage(page); + TypeTextIntoTextField(3, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); + SelectTextWithMouse(125.0, 102.0, 115.5); + CheckSelection(L"ABC"); } -TEST_F(FPDFFormFillEmbeddertest, GetSelectedTextFragmentsKeyBoard) { - // Open file with form text field. - EXPECT_TRUE(OpenDocument("text_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - - TypeTextIntoTextField(page, 12, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); +TEST_F(FPDFFormFillTextFormEmbeddertest, GetSelectedTextFragmentsKeyBoard) { + TypeTextIntoTextField(12, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); // Test selecting first character in forward direction. - SelectTextWithKeyboard(page, 1, FWL_VKEY_Right, 102.0, 115.5); - CheckSelection(page, L"A"); + SelectTextWithKeyboard(1, FWL_VKEY_Right, 102.0, 115.5); + CheckSelection(L"A"); // Test selecting entire long string in backwards direction. - SelectTextWithKeyboard(page, 12, FWL_VKEY_Left, 191.0, 115.5); - CheckSelection(page, L"ABCDEFGHIJKL"); + SelectTextWithKeyboard(12, FWL_VKEY_Left, 191.0, 115.5); + CheckSelection(L"ABCDEFGHIJKL"); // Test selecting middle section in backwards direction. - SelectTextWithKeyboard(page, 6, FWL_VKEY_Left, 170.0, 115.5); - CheckSelection(page, L"DEFGHI"); + SelectTextWithKeyboard(6, FWL_VKEY_Left, 170.0, 115.5); + CheckSelection(L"DEFGHI"); // Test selecting middle selection in forward direction. - SelectTextWithKeyboard(page, 6, FWL_VKEY_Right, 125.0, 115.5); - CheckSelection(page, L"DEFGHI"); + SelectTextWithKeyboard(6, FWL_VKEY_Right, 125.0, 115.5); + CheckSelection(L"DEFGHI"); // Test selecting last character in backwards direction. - SelectTextWithKeyboard(page, 1, FWL_VKEY_Left, 191.0, 115.5); - CheckSelection(page, L"L"); - - UnloadPage(page); + SelectTextWithKeyboard(1, FWL_VKEY_Left, 191.0, 115.5); + CheckSelection(L"L"); } -TEST_F(FPDFFormFillEmbeddertest, GetSelectedTextFragmentsMouse) { - // Open file with form text field. - EXPECT_TRUE(OpenDocument("text_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - - TypeTextIntoTextField(page, 12, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); +TEST_F(FPDFFormFillTextFormEmbeddertest, GetSelectedTextFragmentsMouse) { + TypeTextIntoTextField(12, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); // Test selecting first character in forward direction. - SelectTextWithMouse(page, 102.0, 106.0, 115.5); - CheckSelection(page, L"A"); + SelectTextWithMouse(102.0, 106.0, 115.5); + CheckSelection(L"A"); // Test selecting entire long string in backwards direction. - SelectTextWithMouse(page, 191.0, 102.0, 115.5); - CheckSelection(page, L"ABCDEFGHIJKL"); + SelectTextWithMouse(191.0, 102.0, 115.5); + CheckSelection(L"ABCDEFGHIJKL"); // Test selecting middle section in backwards direction. - SelectTextWithMouse(page, 170.0, 125.0, 115.5); - CheckSelection(page, L"DEFGHI"); + SelectTextWithMouse(170.0, 125.0, 115.5); + CheckSelection(L"DEFGHI"); // Test selecting middle selection in forward direction. - SelectTextWithMouse(page, 125.0, 170.0, 115.5); - CheckSelection(page, L"DEFGHI"); + SelectTextWithMouse(125.0, 170.0, 115.5); + CheckSelection(L"DEFGHI"); // Test selecting last character in backwards direction. - SelectTextWithMouse(page, 191.0, 186.0, 115.5); - CheckSelection(page, L"L"); - - UnloadPage(page); + SelectTextWithMouse(191.0, 186.0, 115.5); + CheckSelection(L"L"); } -TEST_F(FPDFFormFillEmbeddertest, GetSelectedTextEmptyAndBasicNormalComboBox) { - // Open file with form comboboxes. - EXPECT_TRUE(OpenDocument("combobox_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - +TEST_F(FPDFFormFillComboBoxFormEmbeddertest, + GetSelectedTextEmptyAndBasicNormalComboBox) { // Test empty selection. - CheckSelection(page, L""); - - // Test basic selection of text within normal, non-editable combobox. - // Click on normal combobox text field. - EXPECT_EQ(FPDF_FORMFIELD_COMBOBOX, - FPDFPage_HasFormFieldAtPoint(form_handle(), page, 102.0, 113.0)); + CheckSelection(L""); // Non-editable comboboxes don't allow selection with keyboard. - SelectTextWithMouse(page, 102.0, 142.0, 113.0); - CheckSelection(page, L"Banana"); + SelectTextWithMouse(102.0, 142.0, 113.0); + CheckSelection(L"Banana"); // Select other another provided option. - SelectOption(page, 0, 192.0, 110.0); - CheckSelection(page, L"Apple"); - - UnloadPage(page); + SelectOption(0, 192.0, 110.0); + CheckSelection(L"Apple"); } -TEST_F(FPDFFormFillEmbeddertest, +TEST_F(FPDFFormFillComboBoxFormEmbeddertest, GetSelectedTextEmptyAndBasicEditableComboBoxKeyboard) { - // Open file with form comboboxes. - EXPECT_TRUE(OpenDocument("combobox_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - // Test empty selection. - CheckSelection(page, L""); + CheckSelection(L""); // Test basic selection of text within user editable combobox using keyboard. - TypeTextIntoTextField(page, 3, FPDF_FORMFIELD_COMBOBOX, 102.0, 62.0); - SelectTextWithKeyboard(page, 3, FWL_VKEY_Left, 128.0, 62.0); - CheckSelection(page, L"ABC"); + TypeTextIntoTextField(3, FPDF_FORMFIELD_COMBOBOX, 102.0, 62.0); + SelectTextWithKeyboard(3, FWL_VKEY_Left, 128.0, 62.0); + CheckSelection(L"ABC"); // Select a provided option. - SelectOption(page, 1, 192.0, 60.0); - CheckSelection(page, L"Bar"); - - UnloadPage(page); + SelectOption(1, 192.0, 60.0); + CheckSelection(L"Bar"); } -TEST_F(FPDFFormFillEmbeddertest, +TEST_F(FPDFFormFillComboBoxFormEmbeddertest, GetSelectedTextEmptyAndBasicEditableComboBoxMouse) { - // Open file with form comboboxes. - EXPECT_TRUE(OpenDocument("combobox_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - // Test empty selection. - CheckSelection(page, L""); + CheckSelection(L""); // Test basic selection of text within user editable combobox using mouse. - TypeTextIntoTextField(page, 3, FPDF_FORMFIELD_COMBOBOX, 102.0, 62.0); - SelectTextWithMouse(page, 128.0, 103.0, 62.0); - CheckSelection(page, L"ABC"); + TypeTextIntoTextField(3, FPDF_FORMFIELD_COMBOBOX, 102.0, 62.0); + SelectTextWithMouse(128.0, 103.0, 62.0); + CheckSelection(L"ABC"); // Select a provided option. - SelectOption(page, 2, 192.0, 60.0); - CheckSelection(page, L"Qux"); - - UnloadPage(page); + SelectOption(2, 192.0, 60.0); + CheckSelection(L"Qux"); } -TEST_F(FPDFFormFillEmbeddertest, GetSelectedTextFragmentsNormalComboBox) { - // Open file with form comboboxes. - EXPECT_TRUE(OpenDocument("combobox_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - - // Click on normal combobox text field. - EXPECT_EQ(FPDF_FORMFIELD_COMBOBOX, - FPDFPage_HasFormFieldAtPoint(form_handle(), page, 102.0, 113.0)); - +TEST_F(FPDFFormFillComboBoxFormEmbeddertest, + GetSelectedTextFragmentsNormalComboBox) { // Test selecting first character in forward direction. - SelectTextWithMouse(page, 102.0, 107.0, 113.0); - CheckSelection(page, L"B"); + SelectTextWithMouse(102.0, 107.0, 113.0); + CheckSelection(L"B"); // Test selecting entire string in backwards direction. - SelectTextWithMouse(page, 142.0, 102.0, 113.0); - CheckSelection(page, L"Banana"); + SelectTextWithMouse(142.0, 102.0, 113.0); + CheckSelection(L"Banana"); // Test selecting middle section in backwards direction. - SelectTextWithMouse(page, 135.0, 117.0, 113.0); - CheckSelection(page, L"nan"); + SelectTextWithMouse(135.0, 117.0, 113.0); + CheckSelection(L"nan"); // Test selecting middle section in forward direction. - SelectTextWithMouse(page, 117.0, 135.0, 113.0); - CheckSelection(page, L"nan"); + SelectTextWithMouse(117.0, 135.0, 113.0); + CheckSelection(L"nan"); // Test selecting last character in backwards direction. - SelectTextWithMouse(page, 142.0, 138.0, 113.0); - CheckSelection(page, L"a"); + SelectTextWithMouse(142.0, 138.0, 113.0); + CheckSelection(L"a"); // Select another option and then reset selection as first three chars. - SelectOption(page, 2, 192.0, 110.0); - CheckSelection(page, L"Cherry"); - SelectTextWithMouse(page, 102.0, 122.0, 113.0); - CheckSelection(page, L"Che"); - - UnloadPage(page); + SelectOption(2, 192.0, 110.0); + CheckSelection(L"Cherry"); + SelectTextWithMouse(102.0, 122.0, 113.0); + CheckSelection(L"Che"); } -TEST_F(FPDFFormFillEmbeddertest, +TEST_F(FPDFFormFillComboBoxFormEmbeddertest, GetSelectedTextFragmentsEditableComboBoxKeyboard) { - // Open file with form comboboxes. - EXPECT_TRUE(OpenDocument("combobox_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - - TypeTextIntoTextField(page, 10, FPDF_FORMFIELD_COMBOBOX, 102.0, 62.0); + TypeTextIntoTextField(10, FPDF_FORMFIELD_COMBOBOX, 102.0, 62.0); // Test selecting first character in forward direction. - SelectTextWithKeyboard(page, 1, FWL_VKEY_Right, 102.0, 62.0); - CheckSelection(page, L"A"); + SelectTextWithKeyboard(1, FWL_VKEY_Right, 102.0, 62.0); + CheckSelection(L"A"); // Test selecting entire long string in backwards direction. - SelectTextWithKeyboard(page, 10, FWL_VKEY_Left, 178.0, 62.0); - CheckSelection(page, L"ABCDEFGHIJ"); + SelectTextWithKeyboard(10, FWL_VKEY_Left, 178.0, 62.0); + CheckSelection(L"ABCDEFGHIJ"); // Test selecting middle section in backwards direction. - SelectTextWithKeyboard(page, 5, FWL_VKEY_Left, 168.0, 62.0); - CheckSelection(page, L"DEFGH"); + SelectTextWithKeyboard(5, FWL_VKEY_Left, 168.0, 62.0); + CheckSelection(L"DEFGH"); // Test selecting middle selection in forward direction. - SelectTextWithKeyboard(page, 5, FWL_VKEY_Right, 127.0, 62.0); - CheckSelection(page, L"DEFGH"); + SelectTextWithKeyboard(5, FWL_VKEY_Right, 127.0, 62.0); + CheckSelection(L"DEFGH"); // Test selecting last character in backwards direction. - SelectTextWithKeyboard(page, 1, FWL_VKEY_Left, 178.0, 62.0); - CheckSelection(page, L"J"); + SelectTextWithKeyboard(1, FWL_VKEY_Left, 178.0, 62.0); + CheckSelection(L"J"); // Select a provided option and then reset selection as first two chars. - SelectOption(page, 0, 192.0, 60.0); - CheckSelection(page, L"Foo"); - SelectTextWithKeyboard(page, 2, FWL_VKEY_Right, 102.0, 62.0); - CheckSelection(page, L"Fo"); - - UnloadPage(page); + SelectOption(0, 192.0, 60.0); + CheckSelection(L"Foo"); + SelectTextWithKeyboard(2, FWL_VKEY_Right, 102.0, 62.0); + CheckSelection(L"Fo"); } -TEST_F(FPDFFormFillEmbeddertest, +TEST_F(FPDFFormFillComboBoxFormEmbeddertest, GetSelectedTextFragmentsEditableComboBoxMouse) { - // Open file with form comboboxes. - EXPECT_TRUE(OpenDocument("combobox_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - - TypeTextIntoTextField(page, 10, FPDF_FORMFIELD_COMBOBOX, 102.0, 62.0); + TypeTextIntoTextField(10, FPDF_FORMFIELD_COMBOBOX, 102.0, 62.0); // Test selecting first character in forward direction. - SelectTextWithMouse(page, 102.0, 107.0, 62.0); - CheckSelection(page, L"A"); + SelectTextWithMouse(102.0, 107.0, 62.0); + CheckSelection(L"A"); // Test selecting entire long string in backwards direction. - SelectTextWithMouse(page, 178.0, 102.0, 62.0); - CheckSelection(page, L"ABCDEFGHIJ"); + SelectTextWithMouse(178.0, 102.0, 62.0); + CheckSelection(L"ABCDEFGHIJ"); // Test selecting middle section in backwards direction. - SelectTextWithMouse(page, 168.0, 127.0, 62.0); - CheckSelection(page, L"DEFGH"); + SelectTextWithMouse(168.0, 127.0, 62.0); + CheckSelection(L"DEFGH"); // Test selecting middle selection in forward direction. - SelectTextWithMouse(page, 127.0, 168.0, 62.0); - CheckSelection(page, L"DEFGH"); + SelectTextWithMouse(127.0, 168.0, 62.0); + CheckSelection(L"DEFGH"); // Test selecting last character in backwards direction. - SelectTextWithMouse(page, 178.0, 174.0, 62.0); - CheckSelection(page, L"J"); - - UnloadPage(page); + SelectTextWithMouse(178.0, 174.0, 62.0); + CheckSelection(L"J"); } -TEST_F(FPDFFormFillEmbeddertest, DeleteTextFieldEntireSelection) { - // Open file with form text field. - EXPECT_TRUE(OpenDocument("text_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - +TEST_F(FPDFFormFillTextFormEmbeddertest, DeleteTextFieldEntireSelection) { // Select entire contents of text field. - TypeTextIntoTextField(page, 12, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); - SelectTextWithMouse(page, 191.0, 102.0, 115.5); - CheckSelection(page, L"ABCDEFGHIJKL"); + TypeTextIntoTextField(12, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); + SelectTextWithMouse(191.0, 102.0, 115.5); + CheckSelection(L"ABCDEFGHIJKL"); // Test deleting current text selection. Select what remains after deletion to // check that remaining text is as expected. - FORM_ReplaceSelection(form_handle(), page, nullptr); + FORM_ReplaceSelection(form_handle(), page(), nullptr); - SelectTextWithKeyboard(page, 12, FWL_VKEY_Left, 191.0, 115.5); - CheckSelection(page, L""); - - UnloadPage(page); + SelectTextWithKeyboard(12, FWL_VKEY_Left, 191.0, 115.5); + CheckSelection(L""); } -TEST_F(FPDFFormFillEmbeddertest, DeleteTextFieldSelectionMiddle) { - // Open file with form text field. - EXPECT_TRUE(OpenDocument("text_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - +TEST_F(FPDFFormFillTextFormEmbeddertest, DeleteTextFieldSelectionMiddle) { // Select middle section of text. - TypeTextIntoTextField(page, 12, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); - SelectTextWithMouse(page, 170.0, 125.0, 115.5); - CheckSelection(page, L"DEFGHI"); + TypeTextIntoTextField(12, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); + SelectTextWithMouse(170.0, 125.0, 115.5); + CheckSelection(L"DEFGHI"); // Test deleting current text selection. Select what remains after deletion to // check that remaining text is as expected. - FORM_ReplaceSelection(form_handle(), page, nullptr); - SelectTextWithKeyboard(page, 12, FWL_VKEY_Left, 191.0, 115.5); - CheckSelection(page, L"ABCJKL"); - - UnloadPage(page); + FORM_ReplaceSelection(form_handle(), page(), nullptr); + SelectTextWithKeyboard(12, FWL_VKEY_Left, 191.0, 115.5); + CheckSelection(L"ABCJKL"); } -TEST_F(FPDFFormFillEmbeddertest, DeleteTextFieldSelectionLeft) { - // Open file with form text field. - EXPECT_TRUE(OpenDocument("text_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - +TEST_F(FPDFFormFillTextFormEmbeddertest, DeleteTextFieldSelectionLeft) { // Select first few characters of text. - TypeTextIntoTextField(page, 12, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); - SelectTextWithMouse(page, 102.0, 132.0, 115.5); - CheckSelection(page, L"ABCD"); + TypeTextIntoTextField(12, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); + SelectTextWithMouse(102.0, 132.0, 115.5); + CheckSelection(L"ABCD"); // Test deleting current text selection. Select what remains after deletion to // check that remaining text is as expected. - FORM_ReplaceSelection(form_handle(), page, nullptr); - SelectTextWithKeyboard(page, 12, FWL_VKEY_Left, 191.0, 115.5); - CheckSelection(page, L"EFGHIJKL"); - - UnloadPage(page); + FORM_ReplaceSelection(form_handle(), page(), nullptr); + SelectTextWithKeyboard(12, FWL_VKEY_Left, 191.0, 115.5); + CheckSelection(L"EFGHIJKL"); } -TEST_F(FPDFFormFillEmbeddertest, DeleteTextFieldSelectionRight) { - // Open file with form text field. - EXPECT_TRUE(OpenDocument("text_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - +TEST_F(FPDFFormFillTextFormEmbeddertest, DeleteTextFieldSelectionRight) { // Select last few characters of text. - TypeTextIntoTextField(page, 12, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); - SelectTextWithMouse(page, 191.0, 165.0, 115.5); - CheckSelection(page, L"IJKL"); + TypeTextIntoTextField(12, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); + SelectTextWithMouse(191.0, 165.0, 115.5); + CheckSelection(L"IJKL"); // Test deleting current text selection. Select what remains after deletion to // check that remaining text is as expected. - FORM_ReplaceSelection(form_handle(), page, nullptr); - SelectTextWithKeyboard(page, 12, FWL_VKEY_Left, 191.0, 115.5); - CheckSelection(page, L"ABCDEFGH"); - - UnloadPage(page); + FORM_ReplaceSelection(form_handle(), page(), nullptr); + SelectTextWithKeyboard(12, FWL_VKEY_Left, 191.0, 115.5); + CheckSelection(L"ABCDEFGH"); } -TEST_F(FPDFFormFillEmbeddertest, DeleteEmptyTextFieldSelection) { - // Open file with form text field. - EXPECT_TRUE(OpenDocument("text_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - +TEST_F(FPDFFormFillTextFormEmbeddertest, DeleteEmptyTextFieldSelection) { // Do not select text. - TypeTextIntoTextField(page, 12, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); - CheckSelection(page, L""); + TypeTextIntoTextField(12, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); + CheckSelection(L""); // Test that attempt to delete empty text selection has no effect. - FORM_ReplaceSelection(form_handle(), page, nullptr); - SelectTextWithKeyboard(page, 12, FWL_VKEY_Left, 191.0, 115.5); - CheckSelection(page, L"ABCDEFGHIJKL"); - - UnloadPage(page); + FORM_ReplaceSelection(form_handle(), page(), nullptr); + SelectTextWithKeyboard(12, FWL_VKEY_Left, 191.0, 115.5); + CheckSelection(L"ABCDEFGHIJKL"); } -TEST_F(FPDFFormFillEmbeddertest, DeleteEditableComboBoxEntireSelection) { - // Open file with form comboboxes. - EXPECT_TRUE(OpenDocument("combobox_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - +TEST_F(FPDFFormFillComboBoxFormEmbeddertest, + DeleteEditableComboBoxEntireSelection) { // Select entire contents of user-editable combobox text field. - TypeTextIntoTextField(page, 10, FPDF_FORMFIELD_COMBOBOX, 102.0, 62.0); - SelectTextWithMouse(page, 178.0, 102.0, 62.0); - CheckSelection(page, L"ABCDEFGHIJ"); + TypeTextIntoTextField(10, FPDF_FORMFIELD_COMBOBOX, 102.0, 62.0); + SelectTextWithMouse(178.0, 102.0, 62.0); + CheckSelection(L"ABCDEFGHIJ"); // Test deleting current text selection. Select what remains after deletion to // check that remaining text is as expected. - FORM_ReplaceSelection(form_handle(), page, nullptr); - SelectTextWithMouse(page, 178.0, 102.0, 62.0); - CheckSelection(page, L""); - - UnloadPage(page); + FORM_ReplaceSelection(form_handle(), page(), nullptr); + SelectTextWithMouse(178.0, 102.0, 62.0); + CheckSelection(L""); } -TEST_F(FPDFFormFillEmbeddertest, DeleteEditableComboBoxSelectionMiddle) { - // Open file with form comboboxes. - EXPECT_TRUE(OpenDocument("combobox_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - +TEST_F(FPDFFormFillComboBoxFormEmbeddertest, + DeleteEditableComboBoxSelectionMiddle) { // Select middle section of text. - TypeTextIntoTextField(page, 10, FPDF_FORMFIELD_COMBOBOX, 102.0, 62.0); - SelectTextWithMouse(page, 168.0, 127.0, 62.0); - CheckSelection(page, L"DEFGH"); + TypeTextIntoTextField(10, FPDF_FORMFIELD_COMBOBOX, 102.0, 62.0); + SelectTextWithMouse(168.0, 127.0, 62.0); + CheckSelection(L"DEFGH"); // Test deleting current text selection. Select what remains after deletion to // check that remaining text is as expected. - FORM_ReplaceSelection(form_handle(), page, nullptr); - SelectTextWithMouse(page, 178.0, 102.0, 62.0); - CheckSelection(page, L"ABCIJ"); - - UnloadPage(page); + FORM_ReplaceSelection(form_handle(), page(), nullptr); + SelectTextWithMouse(178.0, 102.0, 62.0); + CheckSelection(L"ABCIJ"); } -TEST_F(FPDFFormFillEmbeddertest, DeleteEditableComboBoxSelectionLeft) { - // Open file with form comboboxes. - EXPECT_TRUE(OpenDocument("combobox_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - +TEST_F(FPDFFormFillComboBoxFormEmbeddertest, + DeleteEditableComboBoxSelectionLeft) { // Select first few characters of text. - TypeTextIntoTextField(page, 10, FPDF_FORMFIELD_COMBOBOX, 102.0, 62.0); - SelectTextWithMouse(page, 102.0, 132.0, 62.0); - CheckSelection(page, L"ABCD"); + TypeTextIntoTextField(10, FPDF_FORMFIELD_COMBOBOX, 102.0, 62.0); + SelectTextWithMouse(102.0, 132.0, 62.0); + CheckSelection(L"ABCD"); // Test deleting current text selection. Select what remains after deletion to // check that remaining text is as expected. - FORM_ReplaceSelection(form_handle(), page, nullptr); - SelectTextWithMouse(page, 178.0, 102.0, 62.0); - CheckSelection(page, L"EFGHIJ"); - - UnloadPage(page); + FORM_ReplaceSelection(form_handle(), page(), nullptr); + SelectTextWithMouse(178.0, 102.0, 62.0); + CheckSelection(L"EFGHIJ"); } -TEST_F(FPDFFormFillEmbeddertest, DeleteEditableComboBoxSelectionRight) { - // Open file with form comboboxes. - EXPECT_TRUE(OpenDocument("combobox_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - +TEST_F(FPDFFormFillComboBoxFormEmbeddertest, + DeleteEditableComboBoxSelectionRight) { // Select last few characters of text. - TypeTextIntoTextField(page, 10, FPDF_FORMFIELD_COMBOBOX, 102.0, 62.0); - SelectTextWithMouse(page, 178.0, 152.0, 62.0); - CheckSelection(page, L"GHIJ"); + TypeTextIntoTextField(10, FPDF_FORMFIELD_COMBOBOX, 102.0, 62.0); + SelectTextWithMouse(178.0, 152.0, 62.0); + CheckSelection(L"GHIJ"); // Test deleting current text selection. Select what remains after deletion to // check that remaining text is as expected. - FORM_ReplaceSelection(form_handle(), page, nullptr); - SelectTextWithMouse(page, 178.0, 102.0, 62.0); - CheckSelection(page, L"ABCDEF"); - - UnloadPage(page); + FORM_ReplaceSelection(form_handle(), page(), nullptr); + SelectTextWithMouse(178.0, 102.0, 62.0); + CheckSelection(L"ABCDEF"); } -TEST_F(FPDFFormFillEmbeddertest, DeleteEmptyEditableComboBoxSelection) { - // Open file with form comboboxes. - EXPECT_TRUE(OpenDocument("combobox_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - +TEST_F(FPDFFormFillComboBoxFormEmbeddertest, + DeleteEmptyEditableComboBoxSelection) { // Do not select text. - TypeTextIntoTextField(page, 10, FPDF_FORMFIELD_COMBOBOX, 102.0, 62.0); - CheckSelection(page, L""); + TypeTextIntoTextField(10, FPDF_FORMFIELD_COMBOBOX, 102.0, 62.0); + CheckSelection(L""); // Test that attempt to delete empty text selection has no effect. - FORM_ReplaceSelection(form_handle(), page, nullptr); - SelectTextWithMouse(page, 178.0, 102.0, 62.0); - CheckSelection(page, L"ABCDEFGHIJ"); - - UnloadPage(page); + FORM_ReplaceSelection(form_handle(), page(), nullptr); + SelectTextWithMouse(178.0, 102.0, 62.0); + CheckSelection(L"ABCDEFGHIJ"); } -TEST_F(FPDFFormFillEmbeddertest, InsertTextInEmptyTextField) { - // Open file with form text field. - EXPECT_TRUE(OpenDocument("text_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - - ClickOnFormFieldAtPoint(page, 120.0, 120.0); +TEST_F(FPDFFormFillTextFormEmbeddertest, InsertTextInEmptyTextField) { + ClickOnFormFieldAtPoint(120.0, 120.0); // Test inserting text into empty text field. std::unique_ptr<unsigned short, pdfium::FreeDeleter> text_to_insert = GetFPDFWideString(L"Hello"); - FORM_ReplaceSelection(form_handle(), page, text_to_insert.get()); + FORM_ReplaceSelection(form_handle(), page(), text_to_insert.get()); // Select entire contents of text field to check that insertion worked // as expected. - SelectTextWithMouse(page, 195.0, 102.0, 115.5); - CheckSelection(page, L"Hello"); - - UnloadPage(page); + SelectTextWithMouse(195.0, 102.0, 115.5); + CheckSelection(L"Hello"); } -TEST_F(FPDFFormFillEmbeddertest, InsertTextInPopulatedTextFieldLeft) { - // Open file with form text field. - EXPECT_TRUE(OpenDocument("text_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - - TypeTextIntoTextField(page, 8, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); +TEST_F(FPDFFormFillTextFormEmbeddertest, InsertTextInPopulatedTextFieldLeft) { + TypeTextIntoTextField(8, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); // Click on the leftmost part of the text field. - ClickOnFormFieldAtPoint(page, 102.0, 115.5); + ClickOnFormFieldAtPoint(102.0, 115.5); // Test inserting text in front of existing text in text field. std::unique_ptr<unsigned short, pdfium::FreeDeleter> text_to_insert = GetFPDFWideString(L"Hello"); - FORM_ReplaceSelection(form_handle(), page, text_to_insert.get()); + FORM_ReplaceSelection(form_handle(), page(), text_to_insert.get()); // Select entire contents of text field to check that insertion worked // as expected. - SelectTextWithMouse(page, 195.0, 102.0, 115.5); - CheckSelection(page, L"HelloABCDEFGH"); - - UnloadPage(page); + SelectTextWithMouse(195.0, 102.0, 115.5); + CheckSelection(L"HelloABCDEFGH"); } -TEST_F(FPDFFormFillEmbeddertest, InsertTextInPopulatedTextFieldMiddle) { - // Open file with form text field. - EXPECT_TRUE(OpenDocument("text_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - - TypeTextIntoTextField(page, 8, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); +TEST_F(FPDFFormFillTextFormEmbeddertest, InsertTextInPopulatedTextFieldMiddle) { + TypeTextIntoTextField(8, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); // Click on the middle of the text field. - ClickOnFormFieldAtPoint(page, 134.0, 115.5); + ClickOnFormFieldAtPoint(134.0, 115.5); // Test inserting text in the middle of existing text in text field. std::unique_ptr<unsigned short, pdfium::FreeDeleter> text_to_insert = GetFPDFWideString(L"Hello"); - FORM_ReplaceSelection(form_handle(), page, text_to_insert.get()); + FORM_ReplaceSelection(form_handle(), page(), text_to_insert.get()); // Select entire contents of text field to check that insertion worked // as expected. - SelectTextWithMouse(page, 195.0, 102.0, 115.5); - CheckSelection(page, L"ABCDHelloEFGH"); - - UnloadPage(page); + SelectTextWithMouse(195.0, 102.0, 115.5); + CheckSelection(L"ABCDHelloEFGH"); } -TEST_F(FPDFFormFillEmbeddertest, InsertTextInPopulatedTextFieldRight) { - // Open file with form text field. - EXPECT_TRUE(OpenDocument("text_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - - TypeTextIntoTextField(page, 8, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); +TEST_F(FPDFFormFillTextFormEmbeddertest, InsertTextInPopulatedTextFieldRight) { + TypeTextIntoTextField(8, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); // Click on the rightmost part of the text field. - ClickOnFormFieldAtPoint(page, 166.0, 115.5); + ClickOnFormFieldAtPoint(166.0, 115.5); // Test inserting text behind existing text in text field. std::unique_ptr<unsigned short, pdfium::FreeDeleter> text_to_insert = GetFPDFWideString(L"Hello"); - FORM_ReplaceSelection(form_handle(), page, text_to_insert.get()); + FORM_ReplaceSelection(form_handle(), page(), text_to_insert.get()); // Select entire contents of text field to check that insertion worked // as expected. - SelectTextWithMouse(page, 195.0, 102.0, 115.5); - CheckSelection(page, L"ABCDEFGHHello"); - - UnloadPage(page); + SelectTextWithMouse(195.0, 102.0, 115.5); + CheckSelection(L"ABCDEFGHHello"); } -TEST_F(FPDFFormFillEmbeddertest, +TEST_F(FPDFFormFillTextFormEmbeddertest, InsertTextAndReplaceSelectionInPopulatedTextFieldWhole) { - // Open file with form text field. - EXPECT_TRUE(OpenDocument("text_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - - TypeTextIntoTextField(page, 12, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); + TypeTextIntoTextField(12, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); // Select entire string in text field. - SelectTextWithKeyboard(page, 12, FWL_VKEY_Left, 195.0, 115.0); - CheckSelection(page, L"ABCDEFGHIJKL"); + SelectTextWithKeyboard(12, FWL_VKEY_Left, 195.0, 115.0); + CheckSelection(L"ABCDEFGHIJKL"); // Test replacing text selection with text to be inserted. std::unique_ptr<unsigned short, pdfium::FreeDeleter> text_to_insert = GetFPDFWideString(L"Hello"); - FORM_ReplaceSelection(form_handle(), page, text_to_insert.get()); + FORM_ReplaceSelection(form_handle(), page(), text_to_insert.get()); // Select entire contents of text field to check that insertion worked // as expected. - SelectTextWithMouse(page, 195.0, 102.0, 115.5); - CheckSelection(page, L"Hello"); - - UnloadPage(page); + SelectTextWithMouse(195.0, 102.0, 115.5); + CheckSelection(L"Hello"); } -TEST_F(FPDFFormFillEmbeddertest, +TEST_F(FPDFFormFillTextFormEmbeddertest, InsertTextAndReplaceSelectionInPopulatedTextFieldLeft) { - // Open file with form text field. - EXPECT_TRUE(OpenDocument("text_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - - TypeTextIntoTextField(page, 12, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); + TypeTextIntoTextField(12, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); // Select left portion of string in text field. - SelectTextWithKeyboard(page, 6, FWL_VKEY_Left, 148.0, 115.0); - CheckSelection(page, L"ABCDEF"); + SelectTextWithKeyboard(6, FWL_VKEY_Left, 148.0, 115.0); + CheckSelection(L"ABCDEF"); // Test replacing text selection with text to be inserted. std::unique_ptr<unsigned short, pdfium::FreeDeleter> text_to_insert = GetFPDFWideString(L"Hello"); - FORM_ReplaceSelection(form_handle(), page, text_to_insert.get()); + FORM_ReplaceSelection(form_handle(), page(), text_to_insert.get()); // Select entire contents of text field to check that insertion worked // as expected. - SelectTextWithMouse(page, 195.0, 102.0, 115.5); - CheckSelection(page, L"HelloGHIJKL"); - - UnloadPage(page); + SelectTextWithMouse(195.0, 102.0, 115.5); + CheckSelection(L"HelloGHIJKL"); } -TEST_F(FPDFFormFillEmbeddertest, +TEST_F(FPDFFormFillTextFormEmbeddertest, InsertTextAndReplaceSelectionInPopulatedTextFieldMiddle) { - // Open file with form text field. - EXPECT_TRUE(OpenDocument("text_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - - TypeTextIntoTextField(page, 12, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); + TypeTextIntoTextField(12, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); // Select middle portion of string in text field. - SelectTextWithKeyboard(page, 6, FWL_VKEY_Left, 171.0, 115.0); - CheckSelection(page, L"DEFGHI"); + SelectTextWithKeyboard(6, FWL_VKEY_Left, 171.0, 115.0); + CheckSelection(L"DEFGHI"); // Test replacing text selection with text to be inserted. std::unique_ptr<unsigned short, pdfium::FreeDeleter> text_to_insert = GetFPDFWideString(L"Hello"); - FORM_ReplaceSelection(form_handle(), page, text_to_insert.get()); + FORM_ReplaceSelection(form_handle(), page(), text_to_insert.get()); // Select entire contents of text field to check that insertion worked // as expected. - SelectTextWithMouse(page, 195.0, 102.0, 115.5); - CheckSelection(page, L"ABCHelloJKL"); - - UnloadPage(page); + SelectTextWithMouse(195.0, 102.0, 115.5); + CheckSelection(L"ABCHelloJKL"); } -TEST_F(FPDFFormFillEmbeddertest, +TEST_F(FPDFFormFillTextFormEmbeddertest, InsertTextAndReplaceSelectionInPopulatedTextFieldRight) { - // Open file with form text field. - EXPECT_TRUE(OpenDocument("text_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - - TypeTextIntoTextField(page, 12, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); + TypeTextIntoTextField(12, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); // Select right portion of string in text field. - SelectTextWithKeyboard(page, 6, FWL_VKEY_Left, 195.0, 115.0); - CheckSelection(page, L"GHIJKL"); + SelectTextWithKeyboard(6, FWL_VKEY_Left, 195.0, 115.0); + CheckSelection(L"GHIJKL"); // Test replacing text selection with text to be inserted. std::unique_ptr<unsigned short, pdfium::FreeDeleter> text_to_insert = GetFPDFWideString(L"Hello"); - FORM_ReplaceSelection(form_handle(), page, text_to_insert.get()); + FORM_ReplaceSelection(form_handle(), page(), text_to_insert.get()); // Select entire contents of text field to check that insertion worked // as expected. - SelectTextWithMouse(page, 195.0, 102.0, 115.5); - CheckSelection(page, L"ABCDEFHello"); - - UnloadPage(page); + SelectTextWithMouse(195.0, 102.0, 115.5); + CheckSelection(L"ABCDEFHello"); } -TEST_F(FPDFFormFillEmbeddertest, InsertTextInEmptyEditableComboBox) { - // Open file with form comboboxes. - EXPECT_TRUE(OpenDocument("combobox_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - - ClickOnFormFieldAtPoint(page, 102.0, 62.0); +TEST_F(FPDFFormFillComboBoxFormEmbeddertest, + InsertTextInEmptyEditableComboBox) { + ClickOnFormFieldAtPoint(102.0, 62.0); // Test inserting text into empty user-editable combobox. std::unique_ptr<unsigned short, pdfium::FreeDeleter> text_to_insert = GetFPDFWideString(L"Hello"); - FORM_ReplaceSelection(form_handle(), page, text_to_insert.get()); + FORM_ReplaceSelection(form_handle(), page(), text_to_insert.get()); // Select entire contents of user-editable combobox text field to check that // insertion worked as expected. - SelectTextWithMouse(page, 183.0, 102.0, 62.0); - CheckSelection(page, L"Hello"); - - UnloadPage(page); + SelectTextWithMouse(183.0, 102.0, 62.0); + CheckSelection(L"Hello"); } -TEST_F(FPDFFormFillEmbeddertest, InsertTextInPopulatedEditableComboBoxLeft) { - // Open file with form comboboxes. - EXPECT_TRUE(OpenDocument("combobox_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - - TypeTextIntoTextField(page, 6, FPDF_FORMFIELD_COMBOBOX, 102.0, 62.0); +TEST_F(FPDFFormFillComboBoxFormEmbeddertest, + InsertTextInPopulatedEditableComboBoxLeft) { + TypeTextIntoTextField(6, FPDF_FORMFIELD_COMBOBOX, 102.0, 62.0); // Click on the leftmost part of the user-editable combobox. - ClickOnFormFieldAtPoint(page, 102.0, 62.0); + ClickOnFormFieldAtPoint(102.0, 62.0); // Test inserting text in front of existing text in user-editable combobox. std::unique_ptr<unsigned short, pdfium::FreeDeleter> text_to_insert = GetFPDFWideString(L"Hello"); - FORM_ReplaceSelection(form_handle(), page, text_to_insert.get()); + FORM_ReplaceSelection(form_handle(), page(), text_to_insert.get()); // Select entire contents of user-editable combobox text field to check that // insertion worked as expected. - SelectTextWithMouse(page, 183.0, 102.0, 62.0); - CheckSelection(page, L"HelloABCDEF"); - - UnloadPage(page); + SelectTextWithMouse(183.0, 102.0, 62.0); + CheckSelection(L"HelloABCDEF"); } -TEST_F(FPDFFormFillEmbeddertest, InsertTextInPopulatedEditableComboBoxMiddle) { - // Open file with form comboboxes. - EXPECT_TRUE(OpenDocument("combobox_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - - TypeTextIntoTextField(page, 6, FPDF_FORMFIELD_COMBOBOX, 102.0, 62.0); +TEST_F(FPDFFormFillComboBoxFormEmbeddertest, + InsertTextInPopulatedEditableComboBoxMiddle) { + TypeTextIntoTextField(6, FPDF_FORMFIELD_COMBOBOX, 102.0, 62.0); // Click on the middle of the user-editable combobox. - ClickOnFormFieldAtPoint(page, 126.0, 62.0); + ClickOnFormFieldAtPoint(126.0, 62.0); // Test inserting text in the middle of existing text in user-editable // combobox. std::unique_ptr<unsigned short, pdfium::FreeDeleter> text_to_insert = GetFPDFWideString(L"Hello"); - FORM_ReplaceSelection(form_handle(), page, text_to_insert.get()); + FORM_ReplaceSelection(form_handle(), page(), text_to_insert.get()); // Select entire contents of user-editable combobox text field to check that // insertion worked as expected. - SelectTextWithMouse(page, 183.0, 102.0, 62.0); - CheckSelection(page, L"ABCHelloDEF"); - - UnloadPage(page); + SelectTextWithMouse(183.0, 102.0, 62.0); + CheckSelection(L"ABCHelloDEF"); } -TEST_F(FPDFFormFillEmbeddertest, InsertTextInPopulatedEditableComboBoxRight) { - // Open file with form comboboxes. - EXPECT_TRUE(OpenDocument("combobox_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - - TypeTextIntoTextField(page, 6, FPDF_FORMFIELD_COMBOBOX, 102.0, 62.0); +TEST_F(FPDFFormFillComboBoxFormEmbeddertest, + InsertTextInPopulatedEditableComboBoxRight) { + TypeTextIntoTextField(6, FPDF_FORMFIELD_COMBOBOX, 102.0, 62.0); // Click on the rightmost part of the user-editable combobox. - ClickOnFormFieldAtPoint(page, 150.0, 62.0); + ClickOnFormFieldAtPoint(150.0, 62.0); // Test inserting text behind existing text in user-editable combobox. std::unique_ptr<unsigned short, pdfium::FreeDeleter> text_to_insert = GetFPDFWideString(L"Hello"); - FORM_ReplaceSelection(form_handle(), page, text_to_insert.get()); + FORM_ReplaceSelection(form_handle(), page(), text_to_insert.get()); // Select entire contents of user-editable combobox text field to check that // insertion worked as expected. - SelectTextWithMouse(page, 183.0, 102.0, 62.0); - CheckSelection(page, L"ABCDEFHello"); - - UnloadPage(page); + SelectTextWithMouse(183.0, 102.0, 62.0); + CheckSelection(L"ABCDEFHello"); } -TEST_F(FPDFFormFillEmbeddertest, +TEST_F(FPDFFormFillComboBoxFormEmbeddertest, InsertTextAndReplaceSelectionInPopulatedEditableComboBoxWhole) { - // Open file with form comboboxes. - EXPECT_TRUE(OpenDocument("combobox_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - - TypeTextIntoTextField(page, 10, FPDF_FORMFIELD_COMBOBOX, 102.0, 62.0); + TypeTextIntoTextField(10, FPDF_FORMFIELD_COMBOBOX, 102.0, 62.0); // Select entire string in user-editable combobox. - SelectTextWithKeyboard(page, 10, FWL_VKEY_Left, 183.0, 62.0); - CheckSelection(page, L"ABCDEFGHIJ"); + SelectTextWithKeyboard(10, FWL_VKEY_Left, 183.0, 62.0); + CheckSelection(L"ABCDEFGHIJ"); // Test replacing text selection with text to be inserted. std::unique_ptr<unsigned short, pdfium::FreeDeleter> text_to_insert = GetFPDFWideString(L"Hello"); - FORM_ReplaceSelection(form_handle(), page, text_to_insert.get()); + FORM_ReplaceSelection(form_handle(), page(), text_to_insert.get()); // Select entire contents of user-editable combobox text field to check that // insertion worked as expected. - SelectTextWithMouse(page, 183.0, 102.0, 62.0); - CheckSelection(page, L"Hello"); - - UnloadPage(page); + SelectTextWithMouse(183.0, 102.0, 62.0); + CheckSelection(L"Hello"); } -TEST_F(FPDFFormFillEmbeddertest, +TEST_F(FPDFFormFillComboBoxFormEmbeddertest, InsertTextAndReplaceSelectionInPopulatedEditableComboBoxLeft) { - // Open file with form comboboxes. - EXPECT_TRUE(OpenDocument("combobox_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - - TypeTextIntoTextField(page, 10, FPDF_FORMFIELD_COMBOBOX, 102.0, 62.0); + TypeTextIntoTextField(10, FPDF_FORMFIELD_COMBOBOX, 102.0, 62.0); // Select left portion of string in user-editable combobox. - SelectTextWithKeyboard(page, 5, FWL_VKEY_Left, 142.0, 62.0); - CheckSelection(page, L"ABCDE"); + SelectTextWithKeyboard(5, FWL_VKEY_Left, 142.0, 62.0); + CheckSelection(L"ABCDE"); // Test replacing text selection with text to be inserted. std::unique_ptr<unsigned short, pdfium::FreeDeleter> text_to_insert = GetFPDFWideString(L"Hello"); - FORM_ReplaceSelection(form_handle(), page, text_to_insert.get()); + FORM_ReplaceSelection(form_handle(), page(), text_to_insert.get()); // Select entire contents of user-editable combobox text field to check that // insertion worked as expected. - SelectTextWithMouse(page, 183.0, 102.0, 62.0); - CheckSelection(page, L"HelloFGHIJ"); - - UnloadPage(page); + SelectTextWithMouse(183.0, 102.0, 62.0); + CheckSelection(L"HelloFGHIJ"); } -TEST_F(FPDFFormFillEmbeddertest, +TEST_F(FPDFFormFillComboBoxFormEmbeddertest, InsertTextAndReplaceSelectionInPopulatedEditableComboBoxMiddle) { - // Open file with form comboboxes. - EXPECT_TRUE(OpenDocument("combobox_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - - TypeTextIntoTextField(page, 10, FPDF_FORMFIELD_COMBOBOX, 102.0, 62.0); + TypeTextIntoTextField(10, FPDF_FORMFIELD_COMBOBOX, 102.0, 62.0); // Select middle portion of string in user-editable combobox. - SelectTextWithKeyboard(page, 5, FWL_VKEY_Left, 167.0, 62.0); - CheckSelection(page, L"DEFGH"); + SelectTextWithKeyboard(5, FWL_VKEY_Left, 167.0, 62.0); + CheckSelection(L"DEFGH"); // Test replacing text selection with text to be inserted. std::unique_ptr<unsigned short, pdfium::FreeDeleter> text_to_insert = GetFPDFWideString(L"Hello"); - FORM_ReplaceSelection(form_handle(), page, text_to_insert.get()); + FORM_ReplaceSelection(form_handle(), page(), text_to_insert.get()); // Select entire contents of user-editable combobox text field to check that // insertion worked as expected. - SelectTextWithMouse(page, 183.0, 102.0, 62.0); - CheckSelection(page, L"ABCHelloIJ"); - - UnloadPage(page); + SelectTextWithMouse(183.0, 102.0, 62.0); + CheckSelection(L"ABCHelloIJ"); } -TEST_F(FPDFFormFillEmbeddertest, +TEST_F(FPDFFormFillComboBoxFormEmbeddertest, InsertTextAndReplaceSelectionInPopulatedEditableComboBoxRight) { - // Open file with form comboboxes. - EXPECT_TRUE(OpenDocument("combobox_form.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - - TypeTextIntoTextField(page, 10, FPDF_FORMFIELD_COMBOBOX, 102.0, 62.0); + TypeTextIntoTextField(10, FPDF_FORMFIELD_COMBOBOX, 102.0, 62.0); // Select right portion of string in user-editable combobox. - SelectTextWithKeyboard(page, 5, FWL_VKEY_Left, 183.0, 62.0); - CheckSelection(page, L"FGHIJ"); + SelectTextWithKeyboard(5, FWL_VKEY_Left, 183.0, 62.0); + CheckSelection(L"FGHIJ"); // Test replacing text selection with text to be inserted. std::unique_ptr<unsigned short, pdfium::FreeDeleter> text_to_insert = GetFPDFWideString(L"Hello"); - FORM_ReplaceSelection(form_handle(), page, text_to_insert.get()); + FORM_ReplaceSelection(form_handle(), page(), text_to_insert.get()); // Select entire contents of user-editable combobox text field to check that // insertion worked as expected. - SelectTextWithMouse(page, 183.0, 102.0, 62.0); - CheckSelection(page, L"ABCDEHello"); - - UnloadPage(page); + SelectTextWithMouse(183.0, 102.0, 62.0); + CheckSelection(L"ABCDEHello"); } -TEST_F(FPDFFormFillEmbeddertest, InsertTextInEmptyCharLimitTextFieldOverflow) { - // Open file with form text field with a character limit of 10. - EXPECT_TRUE(OpenDocument("text_form_multiple.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - +TEST_F(FPDFFormFillTextFormEmbeddertest, + InsertTextInEmptyCharLimitTextFieldOverflow) { // Click on the textfield. - ClickOnFormFieldAtPoint(page, 195.0, 60.0); + ClickOnFormFieldAtPoint(195.0, 60.0); // Delete pre-filled contents of text field with char limit. - SelectTextWithMouse(page, 195.0, 102.0, 60.0); - CheckSelection(page, L"Elephant"); - FORM_ReplaceSelection(form_handle(), page, nullptr); + SelectTextWithMouse(195.0, 102.0, 60.0); + CheckSelection(L"Elephant"); + FORM_ReplaceSelection(form_handle(), page(), nullptr); // Test inserting text into now empty text field so text to be inserted // exceeds the char limit and is cut off. std::unique_ptr<unsigned short, pdfium::FreeDeleter> text_to_insert = GetFPDFWideString(L"Hippopotamus"); - FORM_ReplaceSelection(form_handle(), page, text_to_insert.get()); + FORM_ReplaceSelection(form_handle(), page(), text_to_insert.get()); // Select entire contents of text field to check that insertion worked // as expected. - SelectTextWithMouse(page, 195.0, 102.0, 60.0); - CheckSelection(page, L"Hippopotam"); - - UnloadPage(page); + SelectTextWithMouse(195.0, 102.0, 60.0); + CheckSelection(L"Hippopotam"); } -TEST_F(FPDFFormFillEmbeddertest, InsertTextInEmptyCharLimitTextFieldFit) { - // Open file with form text field with a character limit of 10. - EXPECT_TRUE(OpenDocument("text_form_multiple.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - +TEST_F(FPDFFormFillTextFormEmbeddertest, + InsertTextInEmptyCharLimitTextFieldFit) { // Click on the textfield. - ClickOnFormFieldAtPoint(page, 195.0, 60.0); + ClickOnFormFieldAtPoint(195.0, 60.0); // Delete pre-filled contents of text field with char limit. - SelectTextWithMouse(page, 195.0, 102.0, 60.0); - CheckSelection(page, L"Elephant"); - FORM_ReplaceSelection(form_handle(), page, nullptr); + SelectTextWithMouse(195.0, 102.0, 60.0); + CheckSelection(L"Elephant"); + FORM_ReplaceSelection(form_handle(), page(), nullptr); // Test inserting text into now empty text field so text to be inserted // exceeds the char limit and is cut off. std::unique_ptr<unsigned short, pdfium::FreeDeleter> text_to_insert = GetFPDFWideString(L"Zebra"); - FORM_ReplaceSelection(form_handle(), page, text_to_insert.get()); + FORM_ReplaceSelection(form_handle(), page(), text_to_insert.get()); // Select entire contents of text field to check that insertion worked // as expected. - SelectTextWithMouse(page, 195.0, 102.0, 60.0); - CheckSelection(page, L"Zebra"); - - UnloadPage(page); + SelectTextWithMouse(195.0, 102.0, 60.0); + CheckSelection(L"Zebra"); } -TEST_F(FPDFFormFillEmbeddertest, InsertTextInPopulatedCharLimitTextFieldLeft) { - // Open file with form text field with a character limit of 10. - EXPECT_TRUE(OpenDocument("text_form_multiple.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - +TEST_F(FPDFFormFillTextFormEmbeddertest, + InsertTextInPopulatedCharLimitTextFieldLeft) { // Click on the leftmost part of the text field. - ClickOnFormFieldAtPoint(page, 102.0, 60.0); + ClickOnFormFieldAtPoint(102.0, 60.0); // Test inserting text in front of existing text in text field. std::unique_ptr<unsigned short, pdfium::FreeDeleter> text_to_insert = GetFPDFWideString(L"Hippopotamus"); - FORM_ReplaceSelection(form_handle(), page, text_to_insert.get()); + FORM_ReplaceSelection(form_handle(), page(), text_to_insert.get()); // Select entire contents of text field to check that insertion worked // as expected. - SelectTextWithMouse(page, 195.0, 102.0, 60.0); - CheckSelection(page, L"HiElephant"); - - UnloadPage(page); + SelectTextWithMouse(195.0, 102.0, 60.0); + CheckSelection(L"HiElephant"); } -TEST_F(FPDFFormFillEmbeddertest, +TEST_F(FPDFFormFillTextFormEmbeddertest, InsertTextInPopulatedCharLimitTextFieldMiddle) { - // Open file with form text field with a character limit of 10. - EXPECT_TRUE(OpenDocument("text_form_multiple.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - - TypeTextIntoTextField(page, 8, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); + TypeTextIntoTextField(8, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); // Click on the middle of the text field. - ClickOnFormFieldAtPoint(page, 134.0, 60.0); + ClickOnFormFieldAtPoint(134.0, 60.0); // Test inserting text in the middle of existing text in text field. std::unique_ptr<unsigned short, pdfium::FreeDeleter> text_to_insert = GetFPDFWideString(L"Hippopotamus"); - FORM_ReplaceSelection(form_handle(), page, text_to_insert.get()); + FORM_ReplaceSelection(form_handle(), page(), text_to_insert.get()); // Select entire contents of text field to check that insertion worked // as expected. - SelectTextWithMouse(page, 195.0, 102.0, 60.0); - CheckSelection(page, L"ElephHiant"); - - UnloadPage(page); + SelectTextWithMouse(195.0, 102.0, 60.0); + CheckSelection(L"ElephHiant"); } -TEST_F(FPDFFormFillEmbeddertest, InsertTextInPopulatedCharLimitTextFieldRight) { - // Open file with form text field with a character limit of 10. - EXPECT_TRUE(OpenDocument("text_form_multiple.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - - TypeTextIntoTextField(page, 8, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); +TEST_F(FPDFFormFillTextFormEmbeddertest, + InsertTextInPopulatedCharLimitTextFieldRight) { + TypeTextIntoTextField(8, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); // Click on the rightmost part of the text field. - ClickOnFormFieldAtPoint(page, 166.0, 60.0); + ClickOnFormFieldAtPoint(166.0, 60.0); // Test inserting text behind existing text in text field. std::unique_ptr<unsigned short, pdfium::FreeDeleter> text_to_insert = GetFPDFWideString(L"Hippopotamus"); - FORM_ReplaceSelection(form_handle(), page, text_to_insert.get()); + FORM_ReplaceSelection(form_handle(), page(), text_to_insert.get()); // Select entire contents of text field to check that insertion worked // as expected. - SelectTextWithMouse(page, 195.0, 102.0, 60.0); - CheckSelection(page, L"ElephantHi"); - - UnloadPage(page); + SelectTextWithMouse(195.0, 102.0, 60.0); + CheckSelection(L"ElephantHi"); } -TEST_F(FPDFFormFillEmbeddertest, +TEST_F(FPDFFormFillTextFormEmbeddertest, InsertTextAndReplaceSelectionInPopulatedCharLimitTextFieldWhole) { - // Open file with form text field with a character limit of 10. - EXPECT_TRUE(OpenDocument("text_form_multiple.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - - TypeTextIntoTextField(page, 12, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); + TypeTextIntoTextField(12, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); // Select entire string in text field. - SelectTextWithKeyboard(page, 12, FWL_VKEY_Left, 195.0, 60.0); - CheckSelection(page, L"Elephant"); + SelectTextWithKeyboard(12, FWL_VKEY_Left, 195.0, 60.0); + CheckSelection(L"Elephant"); // Test replacing text selection with text to be inserted. std::unique_ptr<unsigned short, pdfium::FreeDeleter> text_to_insert = GetFPDFWideString(L"Hippopotamus"); - FORM_ReplaceSelection(form_handle(), page, text_to_insert.get()); + FORM_ReplaceSelection(form_handle(), page(), text_to_insert.get()); // Select entire contents of text field to check that insertion worked // as expected. - SelectTextWithMouse(page, 195.0, 102.0, 60.0); - CheckSelection(page, L"Hippopotam"); - - UnloadPage(page); + SelectTextWithMouse(195.0, 102.0, 60.0); + CheckSelection(L"Hippopotam"); } -TEST_F(FPDFFormFillEmbeddertest, +TEST_F(FPDFFormFillTextFormEmbeddertest, InsertTextAndReplaceSelectionInPopulatedCharLimitTextFieldLeft) { - // Open file with form text field with a character limit of 10. - EXPECT_TRUE(OpenDocument("text_form_multiple.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - - TypeTextIntoTextField(page, 12, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); + TypeTextIntoTextField(12, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); // Select left portion of string in text field. - SelectTextWithKeyboard(page, 4, FWL_VKEY_Left, 122.0, 60.0); - CheckSelection(page, L"Elep"); + SelectTextWithKeyboard(4, FWL_VKEY_Left, 122.0, 60.0); + CheckSelection(L"Elep"); // Test replacing text selection with text to be inserted. std::unique_ptr<unsigned short, pdfium::FreeDeleter> text_to_insert = GetFPDFWideString(L"Hippopotamus"); - FORM_ReplaceSelection(form_handle(), page, text_to_insert.get()); + FORM_ReplaceSelection(form_handle(), page(), text_to_insert.get()); // Select entire contents of text field to check that insertion worked // as expected. - SelectTextWithMouse(page, 195.0, 102.0, 60.0); - CheckSelection(page, L"Hippophant"); - - UnloadPage(page); + SelectTextWithMouse(195.0, 102.0, 60.0); + CheckSelection(L"Hippophant"); } -TEST_F(FPDFFormFillEmbeddertest, +TEST_F(FPDFFormFillTextFormEmbeddertest, InsertTextAndReplaceSelectionInPopulatedCharLimitTextFieldMiddle) { - // Open file with form text field with a character limit of 10. - EXPECT_TRUE(OpenDocument("text_form_multiple.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - - TypeTextIntoTextField(page, 12, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); + TypeTextIntoTextField(12, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); // Select middle portion of string in text field. - SelectTextWithKeyboard(page, 4, FWL_VKEY_Left, 136.0, 60.0); - CheckSelection(page, L"epha"); + SelectTextWithKeyboard(4, FWL_VKEY_Left, 136.0, 60.0); + CheckSelection(L"epha"); // Test replacing text selection with text to be inserted. std::unique_ptr<unsigned short, pdfium::FreeDeleter> text_to_insert = GetFPDFWideString(L"Hippopotamus"); - FORM_ReplaceSelection(form_handle(), page, text_to_insert.get()); + FORM_ReplaceSelection(form_handle(), page(), text_to_insert.get()); // Select entire contents of text field to check that insertion worked // as expected. - SelectTextWithMouse(page, 195.0, 102.0, 60.0); - CheckSelection(page, L"ElHippopnt"); - - UnloadPage(page); + SelectTextWithMouse(195.0, 102.0, 60.0); + CheckSelection(L"ElHippopnt"); } -TEST_F(FPDFFormFillEmbeddertest, +TEST_F(FPDFFormFillTextFormEmbeddertest, InsertTextAndReplaceSelectionInPopulatedCharLimitTextFieldRight) { - // Open file with form text field with a character limit of 10. - EXPECT_TRUE(OpenDocument("text_form_multiple.pdf")); - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - - TypeTextIntoTextField(page, 12, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); + TypeTextIntoTextField(12, FPDF_FORMFIELD_TEXTFIELD, 120.0, 120.0); // Select right portion of string in text field. - SelectTextWithKeyboard(page, 4, FWL_VKEY_Left, 152.0, 60.0); - CheckSelection(page, L"hant"); + SelectTextWithKeyboard(4, FWL_VKEY_Left, 152.0, 60.0); + CheckSelection(L"hant"); // Test replacing text selection with text to be inserted. std::unique_ptr<unsigned short, pdfium::FreeDeleter> text_to_insert = GetFPDFWideString(L"Hippopotamus"); - FORM_ReplaceSelection(form_handle(), page, text_to_insert.get()); + FORM_ReplaceSelection(form_handle(), page(), text_to_insert.get()); // Select entire contents of text field to check that insertion worked // as expected. - SelectTextWithMouse(page, 195.0, 102.0, 60.0); - CheckSelection(page, L"ElepHippop"); - - UnloadPage(page); + SelectTextWithMouse(195.0, 102.0, 60.0); + CheckSelection(L"ElepHippop"); } |