X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/232fdc630c42eb165f7659981043e794be03b3b7..f321d0bc0caf4d78ccc5426e926fc25c46297439:/tests/controls/richtextctrltest.cpp diff --git a/tests/controls/richtextctrltest.cpp b/tests/controls/richtextctrltest.cpp index 35b39ab7e7..f3813de3c5 100644 --- a/tests/controls/richtextctrltest.cpp +++ b/tests/controls/richtextctrltest.cpp @@ -100,7 +100,7 @@ private: // register in the unnamed registry so that these tests are run by default CPPUNIT_TEST_SUITE_REGISTRATION( RichTextCtrlTestCase ); -// also include in it's own registry so that these tests can be run alone +// also include in its own registry so that these tests can be run alone CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( RichTextCtrlTestCase, "RichTextCtrlTestCase" ); void RichTextCtrlTestCase::setUp() @@ -117,11 +117,12 @@ void RichTextCtrlTestCase::tearDown() void RichTextCtrlTestCase::CharacterEvent() { #if wxUSE_UIACTIONSIMULATOR - wxTestableFrame* frame = wxStaticCast(wxTheApp->GetTopWindow(), - wxTestableFrame); - EventCounter count(m_rich, wxEVT_COMMAND_RICHTEXT_CHARACTER); - EventCounter count1(m_rich, wxEVT_COMMAND_RICHTEXT_CONTENT_INSERTED); + // There seems to be an event sequence problem on GTK+ that causes the events + // to be disconnected before they're processed, generating spurious errors. +#if !defined(__WXGTK__) + EventCounter character(m_rich, wxEVT_COMMAND_RICHTEXT_CHARACTER); + EventCounter content(m_rich, wxEVT_COMMAND_RICHTEXT_CONTENT_INSERTED); m_rich->SetFocus(); @@ -129,27 +130,31 @@ void RichTextCtrlTestCase::CharacterEvent() sim.Text("abcdef"); wxYield(); - CPPUNIT_ASSERT_EQUAL(6, frame->GetEventCount(wxEVT_COMMAND_RICHTEXT_CHARACTER)); - CPPUNIT_ASSERT_EQUAL(6, frame->GetEventCount(wxEVT_COMMAND_RICHTEXT_CONTENT_INSERTED)); + CPPUNIT_ASSERT_EQUAL(6, character.GetCount()); + CPPUNIT_ASSERT_EQUAL(6, content.GetCount()); + + character.Clear(); + content.Clear(); //As these are not characters they shouldn't count sim.Char(WXK_RETURN); sim.Char(WXK_SHIFT); wxYield(); - CPPUNIT_ASSERT_EQUAL(0, frame->GetEventCount(wxEVT_COMMAND_RICHTEXT_CHARACTER)); - CPPUNIT_ASSERT_EQUAL(1, frame->GetEventCount(wxEVT_COMMAND_RICHTEXT_CONTENT_INSERTED)); + CPPUNIT_ASSERT_EQUAL(0, character.GetCount()); + CPPUNIT_ASSERT_EQUAL(1, content.GetCount()); +#endif #endif } void RichTextCtrlTestCase::DeleteEvent() { #if wxUSE_UIACTIONSIMULATOR - wxTestableFrame* frame = wxStaticCast(wxTheApp->GetTopWindow(), - wxTestableFrame); - - EventCounter count(m_rich, wxEVT_COMMAND_RICHTEXT_DELETE); - EventCounter count1(m_rich, wxEVT_COMMAND_RICHTEXT_CONTENT_DELETED); + // There seems to be an event sequence problem on GTK+ that causes the events + // to be disconnected before they're processed, generating spurious errors. +#if !defined(__WXGTK__) + EventCounter deleteevent(m_rich, wxEVT_COMMAND_RICHTEXT_DELETE); + EventCounter contentdelete(m_rich, wxEVT_COMMAND_RICHTEXT_CONTENT_DELETED); m_rich->SetFocus(); @@ -159,19 +164,20 @@ void RichTextCtrlTestCase::DeleteEvent() sim.Char(WXK_DELETE); wxYield(); - CPPUNIT_ASSERT_EQUAL(2, frame->GetEventCount(wxEVT_COMMAND_RICHTEXT_DELETE)); + CPPUNIT_ASSERT_EQUAL(2, deleteevent.GetCount()); //Only one as the delete doesn't delete anthing - CPPUNIT_ASSERT_EQUAL(1, frame->GetEventCount(wxEVT_COMMAND_RICHTEXT_CONTENT_DELETED)); + CPPUNIT_ASSERT_EQUAL(1, contentdelete.GetCount()); +#endif #endif } void RichTextCtrlTestCase::ReturnEvent() { #if wxUSE_UIACTIONSIMULATOR - wxTestableFrame* frame = wxStaticCast(wxTheApp->GetTopWindow(), - wxTestableFrame); - - EventCounter count(m_rich, wxEVT_COMMAND_RICHTEXT_RETURN); + // There seems to be an event sequence problem on GTK+ that causes the events + // to be disconnected before they're processed, generating spurious errors. +#if !defined(__WXGTK__) + EventCounter returnevent(m_rich, wxEVT_COMMAND_RICHTEXT_RETURN); m_rich->SetFocus(); @@ -179,75 +185,71 @@ void RichTextCtrlTestCase::ReturnEvent() sim.Char(WXK_RETURN); wxYield(); - CPPUNIT_ASSERT_EQUAL(1, frame->GetEventCount()); + CPPUNIT_ASSERT_EQUAL(1, returnevent.GetCount()); +#endif #endif } void RichTextCtrlTestCase::StyleEvent() { - wxTestableFrame* frame = wxStaticCast(wxTheApp->GetTopWindow(), - wxTestableFrame); - - EventCounter count(m_rich, wxEVT_COMMAND_RICHTEXT_STYLE_CHANGED); + EventCounter stylechanged(m_rich, wxEVT_COMMAND_RICHTEXT_STYLE_CHANGED); m_rich->SetValue("Sometext"); m_rich->SetStyle(0, 8, wxTextAttr(*wxRED, *wxWHITE)); - CPPUNIT_ASSERT_EQUAL(1, frame->GetEventCount(wxEVT_COMMAND_RICHTEXT_STYLE_CHANGED)); + CPPUNIT_ASSERT_EQUAL(1, stylechanged.GetCount()); } void RichTextCtrlTestCase::BufferResetEvent() { - wxTestableFrame* frame = wxStaticCast(wxTheApp->GetTopWindow(), - wxTestableFrame); - - EventCounter count(m_rich, wxEVT_COMMAND_RICHTEXT_BUFFER_RESET); + EventCounter reset(m_rich, wxEVT_COMMAND_RICHTEXT_BUFFER_RESET); m_rich->AppendText("more text!"); m_rich->SetValue(""); - CPPUNIT_ASSERT_EQUAL(1, frame->GetEventCount()); + CPPUNIT_ASSERT_EQUAL(1, reset.GetCount()); + reset.Clear(); m_rich->AppendText("more text!"); m_rich->Clear(); - CPPUNIT_ASSERT_EQUAL(1, frame->GetEventCount()); + CPPUNIT_ASSERT_EQUAL(1, reset.GetCount()); + + reset.Clear(); //We expect a buffer reset here as setvalue clears the existing text m_rich->SetValue("replace"); - CPPUNIT_ASSERT_EQUAL(1, frame->GetEventCount()); + CPPUNIT_ASSERT_EQUAL(1, reset.GetCount()); } void RichTextCtrlTestCase::UrlEvent() { #if wxUSE_UIACTIONSIMULATOR - wxTestableFrame* frame = wxStaticCast(wxTheApp->GetTopWindow(), - wxTestableFrame); - - EventCounter count(m_rich, wxEVT_COMMAND_TEXT_URL); + // Mouse up event not being caught on GTK+ +#if !defined(__WXGTK__) + EventCounter url(m_rich, wxEVT_COMMAND_TEXT_URL); m_rich->BeginURL("http://www.wxwidgets.org"); m_rich->WriteText("http://www.wxwidgets.org"); m_rich->EndURL(); wxUIActionSimulator sim; - sim.MouseMove(m_rich->ClientToScreen(wxPoint(5, 5))); + sim.MouseMove(m_rich->ClientToScreen(wxPoint(10, 10))); wxYield(); sim.MouseClick(); wxYield(); - CPPUNIT_ASSERT_EQUAL(1, frame->GetEventCount()); + CPPUNIT_ASSERT_EQUAL(1, url.GetCount()); +#endif #endif } void RichTextCtrlTestCase::TextEvent() { #if wxUSE_UIACTIONSIMULATOR - wxTestableFrame* frame = wxStaticCast(wxTheApp->GetTopWindow(), - wxTestableFrame); - - EventCounter count(m_rich, wxEVT_COMMAND_TEXT_UPDATED); +#if !defined(__WXGTK__) + EventCounter updated(m_rich, wxEVT_COMMAND_TEXT_UPDATED); m_rich->SetFocus(); @@ -256,7 +258,8 @@ void RichTextCtrlTestCase::TextEvent() wxYield(); CPPUNIT_ASSERT_EQUAL("abcdef", m_rich->GetValue()); - CPPUNIT_ASSERT_EQUAL(6, frame->GetEventCount()); + CPPUNIT_ASSERT_EQUAL(6, updated.GetCount()); +#endif #endif } @@ -347,7 +350,7 @@ void RichTextCtrlTestCase::CaretPosition() m_rich->AddParagraph("This is paragraph one"); m_rich->AddParagraph("Paragraph two\n has \nlots of\n lines"); - m_rich->MoveCaret(1); + m_rich->SetInsertionPoint(2); CPPUNIT_ASSERT_EQUAL(1, m_rich->GetCaretPosition()); @@ -405,10 +408,8 @@ void RichTextCtrlTestCase::Selection() void RichTextCtrlTestCase::Editable() { #if wxUSE_UIACTIONSIMULATOR - wxTestableFrame* frame = wxStaticCast(wxTheApp->GetTopWindow(), - wxTestableFrame); - - EventCounter count(m_rich, wxEVT_COMMAND_TEXT_UPDATED); +#if !defined(__WXGTK__) + EventCounter updated(m_rich, wxEVT_COMMAND_TEXT_UPDATED); m_rich->SetFocus(); @@ -417,14 +418,16 @@ void RichTextCtrlTestCase::Editable() wxYield(); CPPUNIT_ASSERT_EQUAL("abcdef", m_rich->GetValue()); - CPPUNIT_ASSERT_EQUAL(6, frame->GetEventCount()); + CPPUNIT_ASSERT_EQUAL(6, updated.GetCount()); + updated.Clear(); m_rich->SetEditable(false); sim.Text("gh"); wxYield(); CPPUNIT_ASSERT_EQUAL("abcdef", m_rich->GetValue()); - CPPUNIT_ASSERT_EQUAL(0, frame->GetEventCount()); + CPPUNIT_ASSERT_EQUAL(0, updated.GetCount()); +#endif #endif }