diff options
Diffstat (limited to 'fpdfsdk/pdfwindow/cpwl_combo_box_embeddertest.cpp')
-rw-r--r-- | fpdfsdk/pdfwindow/cpwl_combo_box_embeddertest.cpp | 268 |
1 files changed, 0 insertions, 268 deletions
diff --git a/fpdfsdk/pdfwindow/cpwl_combo_box_embeddertest.cpp b/fpdfsdk/pdfwindow/cpwl_combo_box_embeddertest.cpp deleted file mode 100644 index 3224284ee2..0000000000 --- a/fpdfsdk/pdfwindow/cpwl_combo_box_embeddertest.cpp +++ /dev/null @@ -1,268 +0,0 @@ -// Copyright 2017 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "fpdfsdk/cba_annotiterator.h" -#include "fpdfsdk/cpdfsdk_annot.h" -#include "fpdfsdk/cpdfsdk_formfillenvironment.h" -#include "fpdfsdk/formfiller/cffl_formfiller.h" -#include "fpdfsdk/formfiller/cffl_interactiveformfiller.h" -#include "fpdfsdk/pdfwindow/cpwl_combo_box.h" -#include "fpdfsdk/pdfwindow/cpwl_wnd.h" -#include "testing/embedder_test.h" -#include "testing/gtest/include/gtest/gtest.h" - -class CPWLComboBoxEditEmbeddertest : public EmbedderTest { - protected: - void SetUp() override { - EmbedderTest::SetUp(); - CreateAndInitializeFormComboboxPDF(); - } - - void TearDown() override { - UnloadPage(GetPage()); - EmbedderTest::TearDown(); - } - - void CreateAndInitializeFormComboboxPDF() { - EXPECT_TRUE(OpenDocument("combobox_form.pdf")); - m_page = LoadPage(0); - ASSERT_TRUE(m_page); - - m_pFormFillEnv = static_cast<CPDFSDK_FormFillEnvironment*>(form_handle()); - CBA_AnnotIterator iter(m_pFormFillEnv->GetPageView(0), - CPDF_Annot::Subtype::WIDGET); - - // User editable combobox. - m_pAnnotEditable = iter.GetFirstAnnot(); - ASSERT_TRUE(m_pAnnotEditable); - ASSERT_EQ(CPDF_Annot::Subtype::WIDGET, m_pAnnotEditable->GetAnnotSubtype()); - - // Normal combobox with pre-selected value. - m_pAnnotNormal = iter.GetNextAnnot(m_pAnnotEditable); - ASSERT_TRUE(m_pAnnotNormal); - ASSERT_EQ(CPDF_Annot::Subtype::WIDGET, m_pAnnotNormal->GetAnnotSubtype()); - - // Read-only combobox. - CPDFSDK_Annot* pAnnotReadOnly = iter.GetNextAnnot(m_pAnnotNormal); - CPDFSDK_Annot* pLastAnnot = iter.GetLastAnnot(); - ASSERT_EQ(pAnnotReadOnly, pLastAnnot); - } - - void FormFillerAndWindowSetup(CPDFSDK_Annot* pAnnotCombobox) { - CFFL_InteractiveFormFiller* pInteractiveFormFiller = - m_pFormFillEnv->GetInteractiveFormFiller(); - { - CPDFSDK_Annot::ObservedPtr pObserved(pAnnotCombobox); - EXPECT_TRUE(pInteractiveFormFiller->OnSetFocus(&pObserved, 0)); - } - - m_pFormFiller = - pInteractiveFormFiller->GetFormFiller(pAnnotCombobox, false); - ASSERT_TRUE(m_pFormFiller); - - CPWL_Wnd* pWindow = - m_pFormFiller->GetPDFWindow(m_pFormFillEnv->GetPageView(0), false); - ASSERT_TRUE(pWindow); - ASSERT_EQ("CPWL_ComboBox", pWindow->GetClassName()); - m_pComboBox = static_cast<CPWL_ComboBox*>(pWindow); - } - - FPDF_PAGE GetPage() const { return m_page; } - CPWL_ComboBox* GetCPWLComboBox() const { return m_pComboBox; } - CFFL_FormFiller* GetCFFLFormFiller() const { return m_pFormFiller; } - CPDFSDK_Annot* GetCPDFSDKAnnotNormal() const { return m_pAnnotNormal; } - CPDFSDK_Annot* GetCPDFSDKAnnotUserEditable() const { - return m_pAnnotEditable; - } - CPDFSDK_FormFillEnvironment* GetCPDFSDKFormFillEnv() const { - return m_pFormFillEnv; - } - - private: - FPDF_PAGE m_page; - CPWL_ComboBox* m_pComboBox; - CFFL_FormFiller* m_pFormFiller; - CPDFSDK_Annot* m_pAnnotNormal; - CPDFSDK_Annot* m_pAnnotEditable; - CPDFSDK_FormFillEnvironment* m_pFormFillEnv; -}; - -TEST_F(CPWLComboBoxEditEmbeddertest, GetSelectedTextEmptyAndBasicNormal) { - FormFillerAndWindowSetup(GetCPDFSDKAnnotNormal()); - - // Automatically pre-filled with "Banana". - EXPECT_FALSE(GetCPWLComboBox()->GetText().IsEmpty()); - EXPECT_STREQ(L"Banana", GetCPWLComboBox()->GetText().c_str()); - - // Check that selection is intially empty, then select entire word. - EXPECT_TRUE(GetCPWLComboBox()->GetSelectedText().IsEmpty()); - GetCPWLComboBox()->SetSelectText(); - EXPECT_STREQ(L"Banana", GetCPWLComboBox()->GetSelectedText().c_str()); - - // Select other options. - GetCPWLComboBox()->SetSelect(0); - EXPECT_STREQ(L"Apple", GetCPWLComboBox()->GetSelectedText().c_str()); - GetCPWLComboBox()->SetSelect(2); - EXPECT_STREQ(L"Cherry", GetCPWLComboBox()->GetSelectedText().c_str()); - - // Verify that combobox text cannot be edited. - EXPECT_FALSE(GetCFFLFormFiller()->OnChar(GetCPDFSDKAnnotNormal(), 'a', 0)); -} - -TEST_F(CPWLComboBoxEditEmbeddertest, GetSelectedTextFragmentsNormal) { - FormFillerAndWindowSetup(GetCPDFSDKAnnotNormal()); - EXPECT_STREQ(L"Banana", GetCPWLComboBox()->GetText().c_str()); - - GetCPWLComboBox()->SetEditSelection(0, 0); - EXPECT_TRUE(GetCPWLComboBox()->GetSelectedText().IsEmpty()); - - GetCPWLComboBox()->SetEditSelection(0, 1); - EXPECT_STREQ(L"B", GetCPWLComboBox()->GetSelectedText().c_str()); - - GetCPWLComboBox()->SetEditSelection(0, -1); - EXPECT_STREQ(L"Banana", GetCPWLComboBox()->GetSelectedText().c_str()); - - GetCPWLComboBox()->SetEditSelection(-8, -1); - EXPECT_TRUE(GetCPWLComboBox()->GetSelectedText().IsEmpty()); - - GetCPWLComboBox()->SetEditSelection(4, 1); - EXPECT_STREQ(L"ana", GetCPWLComboBox()->GetSelectedText().c_str()); - - GetCPWLComboBox()->SetEditSelection(1, 4); - EXPECT_STREQ(L"ana", GetCPWLComboBox()->GetSelectedText().c_str()); - - GetCPWLComboBox()->SetEditSelection(5, 6); - EXPECT_STREQ(L"a", GetCPWLComboBox()->GetSelectedText().c_str()); -} - -TEST_F(CPWLComboBoxEditEmbeddertest, GetSelectedTextEmptyAndBasicEditable) { - FormFillerAndWindowSetup(GetCPDFSDKAnnotUserEditable()); - EXPECT_TRUE(GetCPWLComboBox()->GetText().IsEmpty()); - - // Check selection is intially empty, then select a provided option. - EXPECT_TRUE(GetCPWLComboBox()->GetSelectedText().IsEmpty()); - GetCPWLComboBox()->SetSelect(0); - GetCPWLComboBox()->SetSelectText(); - EXPECT_STREQ(L"Foo", GetCPWLComboBox()->GetSelectedText().c_str()); - - // Select another option and then select last char of that option. - GetCPWLComboBox()->SetSelect(1); - EXPECT_STREQ(L"Bar", GetCPWLComboBox()->GetSelectedText().c_str()); - GetCPWLComboBox()->SetEditSelection(2, 3); - EXPECT_STREQ(L"r", GetCPWLComboBox()->GetSelectedText().c_str()); - - // Type into editable combobox text field and select new text. - EXPECT_TRUE( - GetCFFLFormFiller()->OnChar(GetCPDFSDKAnnotUserEditable(), 'a', 0)); - EXPECT_TRUE( - GetCFFLFormFiller()->OnChar(GetCPDFSDKAnnotUserEditable(), 'b', 0)); - EXPECT_TRUE( - GetCFFLFormFiller()->OnChar(GetCPDFSDKAnnotUserEditable(), 'c', 0)); - - EXPECT_TRUE(GetCPWLComboBox()->GetSelectedText().IsEmpty()); - GetCPWLComboBox()->SetEditSelection(0, 5); - EXPECT_STREQ(L"Baabc", GetCPWLComboBox()->GetSelectedText().c_str()); -} - -TEST_F(CPWLComboBoxEditEmbeddertest, GetSelectedTextFragmentsEditable) { - FormFillerAndWindowSetup(GetCPDFSDKAnnotUserEditable()); - for (int i = 0; i < 50; ++i) { - EXPECT_TRUE( - GetCFFLFormFiller()->OnChar(GetCPDFSDKAnnotUserEditable(), i + 'A', 0)); - } - - GetCPWLComboBox()->SetEditSelection(0, 0); - EXPECT_TRUE(GetCPWLComboBox()->GetSelectedText().IsEmpty()); - - GetCPWLComboBox()->SetEditSelection(0, 1); - EXPECT_STREQ(L"A", GetCPWLComboBox()->GetSelectedText().c_str()); - - GetCPWLComboBox()->SetEditSelection(0, -1); - EXPECT_STREQ(L"ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqr", - GetCPWLComboBox()->GetSelectedText().c_str()); - - GetCPWLComboBox()->SetEditSelection(-8, -1); - EXPECT_TRUE(GetCPWLComboBox()->GetSelectedText().IsEmpty()); - - GetCPWLComboBox()->SetEditSelection(23, 12); - EXPECT_STREQ(L"MNOPQRSTUVW", GetCPWLComboBox()->GetSelectedText().c_str()); - - GetCPWLComboBox()->SetEditSelection(12, 23); - EXPECT_STREQ(L"MNOPQRSTUVW", GetCPWLComboBox()->GetSelectedText().c_str()); - - GetCPWLComboBox()->SetEditSelection(49, 50); - EXPECT_STREQ(L"r", GetCPWLComboBox()->GetSelectedText().c_str()); -} - -TEST_F(CPWLComboBoxEditEmbeddertest, DeleteEntireTextSelection) { - FormFillerAndWindowSetup(GetCPDFSDKAnnotUserEditable()); - for (int i = 0; i < 50; ++i) { - EXPECT_TRUE( - GetCFFLFormFiller()->OnChar(GetCPDFSDKAnnotUserEditable(), i + 'A', 0)); - } - - GetCPWLComboBox()->SetEditSelection(0, -1); - EXPECT_STREQ(L"ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqr", - GetCPWLComboBox()->GetSelectedText().c_str()); - - GetCPWLComboBox()->DeleteSelectedText(); - EXPECT_TRUE(GetCPWLComboBox()->GetText().IsEmpty()); -} - -TEST_F(CPWLComboBoxEditEmbeddertest, DeleteTextSelectionMiddle) { - FormFillerAndWindowSetup(GetCPDFSDKAnnotUserEditable()); - for (int i = 0; i < 50; ++i) { - EXPECT_TRUE( - GetCFFLFormFiller()->OnChar(GetCPDFSDKAnnotUserEditable(), i + 'A', 0)); - } - - GetCPWLComboBox()->SetEditSelection(12, 23); - EXPECT_STREQ(L"MNOPQRSTUVW", GetCPWLComboBox()->GetSelectedText().c_str()); - - GetCPWLComboBox()->DeleteSelectedText(); - EXPECT_STREQ(L"ABCDEFGHIJKLXYZ[\\]^_`abcdefghijklmnopqr", - GetCPWLComboBox()->GetText().c_str()); -} - -TEST_F(CPWLComboBoxEditEmbeddertest, DeleteTextSelectionLeft) { - FormFillerAndWindowSetup(GetCPDFSDKAnnotUserEditable()); - for (int i = 0; i < 50; ++i) { - EXPECT_TRUE( - GetCFFLFormFiller()->OnChar(GetCPDFSDKAnnotUserEditable(), i + 'A', 0)); - } - - GetCPWLComboBox()->SetEditSelection(0, 5); - EXPECT_STREQ(L"ABCDE", GetCPWLComboBox()->GetSelectedText().c_str()); - - GetCPWLComboBox()->DeleteSelectedText(); - EXPECT_STREQ(L"FGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqr", - GetCPWLComboBox()->GetText().c_str()); -} - -TEST_F(CPWLComboBoxEditEmbeddertest, DeleteTextSelectionRight) { - FormFillerAndWindowSetup(GetCPDFSDKAnnotUserEditable()); - for (int i = 0; i < 50; ++i) { - EXPECT_TRUE( - GetCFFLFormFiller()->OnChar(GetCPDFSDKAnnotUserEditable(), i + 'A', 0)); - } - - GetCPWLComboBox()->SetEditSelection(45, 50); - EXPECT_STREQ(L"nopqr", GetCPWLComboBox()->GetSelectedText().c_str()); - - GetCPWLComboBox()->DeleteSelectedText(); - EXPECT_STREQ(L"ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklm", - GetCPWLComboBox()->GetText().c_str()); -} - -TEST_F(CPWLComboBoxEditEmbeddertest, DeleteEmptyTextSelection) { - FormFillerAndWindowSetup(GetCPDFSDKAnnotUserEditable()); - for (int i = 0; i < 50; ++i) { - EXPECT_TRUE( - GetCFFLFormFiller()->OnChar(GetCPDFSDKAnnotUserEditable(), i + 'A', 0)); - } - - GetCPWLComboBox()->DeleteSelectedText(); - EXPECT_STREQ(L"ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqr", - GetCPWLComboBox()->GetText().c_str()); -} |