+ CPPUNIT_ASSERT_EQUAL("abcdef", m_text->GetValue());
+ CPPUNIT_ASSERT_EQUAL(6, frame->GetEventCount());
+
+ delete m_text;
+ m_text = new wxTextCtrl(wxTheApp->GetTopWindow(), wxID_ANY);
+#endif
+}
+
+void TextCtrlTestCase::MaxLength()
+{
+#if wxUSE_UIACTIONSIMULATOR
+ wxTestableFrame* frame = wxStaticCast(wxTheApp->GetTopWindow(),
+ wxTestableFrame);
+
+ EventCounter count(m_text, wxEVT_COMMAND_TEXT_UPDATED);
+ EventCounter count1(m_text, wxEVT_COMMAND_TEXT_MAXLEN);
+
+ m_text->SetFocus();
+ m_text->SetMaxLength(10);
+
+ wxUIActionSimulator sim;
+ sim.Text("abcdef");
+ wxYield();
+
+ CPPUNIT_ASSERT_EQUAL(0, frame->GetEventCount(wxEVT_COMMAND_TEXT_MAXLEN));
+
+ sim.Text("ghij");
+ wxYield();
+
+ CPPUNIT_ASSERT_EQUAL(0, frame->GetEventCount(wxEVT_COMMAND_TEXT_MAXLEN));
+ CPPUNIT_ASSERT_EQUAL(10, frame->GetEventCount(wxEVT_COMMAND_TEXT_UPDATED));
+
+ sim.Text("k");
+ wxYield();
+
+ CPPUNIT_ASSERT_EQUAL(1, frame->GetEventCount(wxEVT_COMMAND_TEXT_MAXLEN));
+ CPPUNIT_ASSERT_EQUAL(0, frame->GetEventCount(wxEVT_COMMAND_TEXT_UPDATED));
+
+ m_text->SetMaxLength(0);
+
+ sim.Text("k");
+ wxYield();
+
+ CPPUNIT_ASSERT_EQUAL(0, frame->GetEventCount(wxEVT_COMMAND_TEXT_MAXLEN));
+ CPPUNIT_ASSERT_EQUAL(1, frame->GetEventCount(wxEVT_COMMAND_TEXT_UPDATED));
+#endif
+}
+
+void TextCtrlTestCase::StreamInput()
+{
+#ifndef __WXOSX__
+ {
+ // Ensure we use decimal point and not a comma.
+ char * const locOld = setlocale(LC_NUMERIC, "C");
+ wxON_BLOCK_EXIT2( setlocale, (int)LC_NUMERIC, locOld );
+
+ *m_text << "stringinput"
+ << 10
+ << 1000L
+ << 3.14f
+ << 2.71
+ << 'a'
+ << L'b';
+ }
+
+ CPPUNIT_ASSERT_EQUAL("stringinput1010003.142.71ab", m_text->GetValue());