-void TextCtrlTestCase::SetValue()
-{
- CPPUNIT_ASSERT( m_text->IsEmpty() );
-
- m_text->SetValue("foo");
- WX_ASSERT_STR_EQUAL( "foo", m_text->GetValue() );
-
- m_text->SetValue("");
- CPPUNIT_ASSERT( m_text->IsEmpty() );
-
- m_text->SetValue("hi");
- WX_ASSERT_STR_EQUAL( "hi", m_text->GetValue() );
-
- m_text->SetValue("bye");
- WX_ASSERT_STR_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() );
-}
-