virtual wxTextEntry *GetTestEntry() const { return m_text; }
virtual wxWindow *GetTestWindow() const { return m_text; }
+ #define SINGLE_AND_MULTI_TESTS() \
+ WXUISIM_TEST( ReadOnly ); \
+ CPPUNIT_TEST( StreamInput ); \
+ CPPUNIT_TEST( Redirector )
+
CPPUNIT_TEST_SUITE( TextCtrlTestCase );
+ // These tests run for single line text controls.
wxTEXT_ENTRY_TESTS();
- WXUISIM_TEST( ReadOnly );
WXUISIM_TEST( MaxLength );
- CPPUNIT_TEST( StreamInput );
- CPPUNIT_TEST( Redirector );
+ SINGLE_AND_MULTI_TESTS();
+
+ // Now switch to the multi-line text controls.
CPPUNIT_TEST( PseudoTestSwitchToMultiLineStyle );
+
+ // Rerun some of the tests above. Notice that not all of them pass, so
+ // we can't just use wxTEXT_ENTRY_TESTS() here. For some of them it's
+ // normal, e.g. Hint() test isn't supposed to work for multi-line
+ // controls. Others, such as InsertionPoint() and TextChangeEvents()
+ // don't pass neither but this could be a bug.
+ CPPUNIT_TEST( SetValue );
+ CPPUNIT_TEST( Selection );
+ CPPUNIT_TEST( Replace );
+ WXUISIM_TEST( Editable );
+ CPPUNIT_TEST( CopyPaste );
+ CPPUNIT_TEST( UndoRedo );
+
+ SINGLE_AND_MULTI_TESTS();
+
+
+ // All tests from now on are for multi-line controls only.
CPPUNIT_TEST( MultiLineReplace );
//WXUISIM_TEST( ProcessEnter );
WXUISIM_TEST( Url );
delete m_text;
CreateText(wxTE_READONLY);
- EventCounter updated(m_text, wxEVT_COMMAND_TEXT_UPDATED);
+ EventCounter updated(m_text, wxEVT_TEXT);
m_text->SetFocus();
// SetEditable() is supposed to override wxTE_READONLY
m_text->SetEditable(true);
+
+#ifdef __WXOSX__
+ // a ready only text field might not have been focusable at all
+ m_text->SetFocus();
+#endif
sim.Text("abcdef");
wxYield();
void TextCtrlTestCase::MaxLength()
{
#if wxUSE_UIACTIONSIMULATOR
- EventCounter updated(m_text, wxEVT_COMMAND_TEXT_UPDATED);
- EventCounter maxlen(m_text, wxEVT_COMMAND_TEXT_MAXLEN);
+ EventCounter updated(m_text, wxEVT_TEXT);
+ EventCounter maxlen(m_text, wxEVT_TEXT_MAXLEN);
m_text->SetFocus();
m_text->SetMaxLength(10);
wxTestableFrame* frame = wxStaticCast(wxTheApp->GetTopWindow(),
wxTestableFrame);
- EventCounter count(m_text, wxEVT_COMMAND_TEXT_ENTER);
+ EventCounter count(m_text, wxEVT_TEXT_ENTER);
m_text->SetFocus();
sim.Char(WXK_RETURN);
wxYield();
- CPPUNIT_ASSERT_EQUAL(0, frame->GetEventCount(wxEVT_COMMAND_TEXT_ENTER));
+ CPPUNIT_ASSERT_EQUAL(0, frame->GetEventCount(wxEVT_TEXT_ENTER));
// we need a text control with wxTE_PROCESS_ENTER for this test
delete m_text;
sim.Char(WXK_RETURN);
wxYield();
- CPPUNIT_ASSERT_EQUAL(1, frame->GetEventCount(wxEVT_COMMAND_TEXT_ENTER));
+ CPPUNIT_ASSERT_EQUAL(1, frame->GetEventCount(wxEVT_TEXT_ENTER));
#endif
}
#endif
delete m_text;
CreateText(wxTE_RICH | wxTE_AUTO_URL);
- EventCounter url(m_text, wxEVT_COMMAND_TEXT_URL);
+ EventCounter url(m_text, wxEVT_TEXT_URL);
m_text->AppendText("http://www.wxwidgets.org");