]> git.saurik.com Git - wxWidgets.git/blobdiff - tests/controls/textctrltest.cpp
bringing back utf32 encoding for wchar, fixes #10666
[wxWidgets.git] / tests / controls / textctrltest.cpp
index 02c600d55967a134ff58906d18896c344b45a790..afc923afa799729726c0fc67f28442bc61eae94e 100644 (file)
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Name:        tests/textctrl/textctrltest.cpp
+// Name:        tests/controls/textctrltest.cpp
 // Purpose:     wxTextCtrl unit test
 // Author:      Vadim Zeitlin
 // Created:     2007-09-25
     #include "wx/textctrl.h"
 #endif // WX_PRECOMP
 
+#include "textentrytest.h"
+
 // ----------------------------------------------------------------------------
 // test class
 // ----------------------------------------------------------------------------
 
-class TextCtrlTestCase : public CppUnit::TestCase
+class TextCtrlTestCase : public TextEntryTestCase
 {
 public:
     TextCtrlTestCase() { }
@@ -35,24 +37,14 @@ public:
     virtual void tearDown();
 
 private:
+    virtual wxTextEntry *GetTestEntry() const { return m_text; }
+    virtual wxWindow *GetTestWindow() const { return m_text; }
+
     CPPUNIT_TEST_SUITE( TextCtrlTestCase );
-        CPPUNIT_TEST( SetValue );
-        CPPUNIT_TEST( TextChangeEvents );
-        CPPUNIT_TEST( Selection );
-        CPPUNIT_TEST( InsertionPoint );
+        wxTEXT_ENTRY_TESTS();
     CPPUNIT_TEST_SUITE_END();
 
-    void SetValue();
-    void TextChangeEvents();
-    void Selection();
-    void InsertionPoint();
-
-    // Selection() test helper: verify that selection is as described by the
-    // function parameters
-    void AssertSelection(int from, int to, const char *sel);
-
     wxTextCtrl *m_text;
-    wxFrame *m_frame;
 
     DECLARE_NO_COPY_CLASS(TextCtrlTestCase)
 };
@@ -82,132 +74,3 @@ void TextCtrlTestCase::tearDown()
 // tests themselves
 // ----------------------------------------------------------------------------
 
-void TextCtrlTestCase::SetValue()
-{
-    CPPUNIT_ASSERT( m_text->IsEmpty() );
-
-    m_text->SetValue("foo");
-    CPPUNIT_ASSERT_EQUAL( "foo", m_text->GetValue() );
-
-    m_text->SetValue("");
-    CPPUNIT_ASSERT( m_text->IsEmpty() );
-
-    m_text->SetValue("hi");
-    CPPUNIT_ASSERT_EQUAL( "hi", m_text->GetValue() );
-
-    m_text->SetValue("bye");
-    CPPUNIT_ASSERT_EQUAL( "bye", m_text->GetValue() );
-}
-
-void TextCtrlTestCase::TextChangeEvents()
-{
-    class TextTestEventHandler : public wxEvtHandler
-    {
-    public:
-        TextTestEventHandler() { m_events = 0; }
-
-        // calling this automatically resets the events counter
-        int GetEvents()
-        {
-            const int events = m_events;
-            m_events = 0;
-            return events;
-        }
-
-        void OnText(wxCommandEvent& WXUNUSED(event)) { m_events++; }
-
-    private:
-        int m_events;
-    } handler;
-
-    m_text->Connect(wxEVT_COMMAND_TEXT_UPDATED,
-                    wxCommandEventHandler(TextTestEventHandler::OnText),
-                    NULL,
-                    &handler);
-
-    // notice that SetValue() generates an event even if the text didn't change
-    m_text->SetValue("");
-    CPPUNIT_ASSERT_EQUAL( 1, handler.GetEvents() );
-
-    m_text->SetValue("foo");
-    CPPUNIT_ASSERT_EQUAL( 1, handler.GetEvents() );
-
-    m_text->SetValue("foo");
-    CPPUNIT_ASSERT_EQUAL( 1, handler.GetEvents() );
-
-    m_text->ChangeValue("bar");
-    CPPUNIT_ASSERT_EQUAL( 0, handler.GetEvents() );
-
-    m_text->AppendText("bar");
-    CPPUNIT_ASSERT_EQUAL( 1, handler.GetEvents() );
-
-    m_text->Replace(3, 6, "baz");
-    CPPUNIT_ASSERT_EQUAL( 1, handler.GetEvents() );
-
-    m_text->Remove(0, 3);
-    CPPUNIT_ASSERT_EQUAL( 1, handler.GetEvents() );
-
-    m_text->WriteText("foo");
-    CPPUNIT_ASSERT_EQUAL( 1, handler.GetEvents() );
-
-    m_text->Clear();
-    CPPUNIT_ASSERT_EQUAL( 1, handler.GetEvents() );
-}
-
-void TextCtrlTestCase::AssertSelection(int from, int to, const char *sel)
-{
-    CPPUNIT_ASSERT( m_text->HasSelection() );
-
-    long fromReal,
-         toReal;
-    m_text->GetSelection(&fromReal, &toReal);
-    CPPUNIT_ASSERT_EQUAL( from, fromReal );
-    CPPUNIT_ASSERT_EQUAL( to, toReal );
-    CPPUNIT_ASSERT_EQUAL( sel, m_text->GetStringSelection() );
-
-    CPPUNIT_ASSERT_EQUAL( from, m_text->GetInsertionPoint() );
-}
-
-void TextCtrlTestCase::Selection()
-{
-    m_text->SetValue("0123456789");
-
-    m_text->SetSelection(2, 4);
-    AssertSelection(2, 4, "23"); // not "234"!
-
-    m_text->SetSelection(3, -1);
-    AssertSelection(3, 10, "3456789");
-
-    m_text->SelectAll();
-    AssertSelection(0, 10, "0123456789");
-
-    m_text->SetSelection(0, 0);
-    CPPUNIT_ASSERT( !m_text->HasSelection() );
-}
-
-void TextCtrlTestCase::InsertionPoint()
-{
-    CPPUNIT_ASSERT_EQUAL( 0, m_text->GetLastPosition() );
-    CPPUNIT_ASSERT_EQUAL( 0, m_text->GetInsertionPoint() );
-
-    m_text->SetValue("0"); // should put the insertion point in front
-    CPPUNIT_ASSERT_EQUAL( 1, m_text->GetLastPosition() );
-    CPPUNIT_ASSERT_EQUAL( 0, m_text->GetInsertionPoint() );
-
-    m_text->AppendText("12"); // should update the insertion point position
-    CPPUNIT_ASSERT_EQUAL( 3, m_text->GetLastPosition() );
-    CPPUNIT_ASSERT_EQUAL( 3, m_text->GetInsertionPoint() );
-
-    m_text->SetInsertionPoint(1);
-    CPPUNIT_ASSERT_EQUAL( 3, m_text->GetLastPosition() );
-    CPPUNIT_ASSERT_EQUAL( 1, m_text->GetInsertionPoint() );
-
-    m_text->SetInsertionPointEnd();
-    CPPUNIT_ASSERT_EQUAL( 3, m_text->GetInsertionPoint() );
-
-    m_text->SetInsertionPoint(0);
-    m_text->WriteText("-"); // should move it after the written text
-    CPPUNIT_ASSERT_EQUAL( 4, m_text->GetLastPosition() );
-    CPPUNIT_ASSERT_EQUAL( 1, m_text->GetInsertionPoint() );
-}
-