]> git.saurik.com Git - wxWidgets.git/blobdiff - tests/html/htmlwindow.cpp
Add CombineURIs implementation for wxWebFileProtocolHandler. Update the IE backend...
[wxWidgets.git] / tests / html / htmlwindow.cpp
index 936954fe0c427c6baa22969ef6b66f6bfd986224..bfeadc5a473454fb8ab1edb4041d707b24c50b70 100644 (file)
@@ -13,6 +13,8 @@
 
 #include "testprec.h"
 
+#if wxUSE_HTML
+
 #ifdef __BORLANDC__
     #pragma hdrstop
 #endif
@@ -22,6 +24,8 @@
 #endif // WX_PRECOMP
 
 #include "wx/html/htmlwin.h"
+#include "wx/uiaction.h"
+#include "testableframe.h"
 
 // ----------------------------------------------------------------------------
 // test class
@@ -38,9 +42,19 @@ public:
 private:
     CPPUNIT_TEST_SUITE( HtmlWindowTestCase );
         CPPUNIT_TEST( SelectionToText );
+        CPPUNIT_TEST( Title );
+#if wxUSE_UIACTIONSIMULATOR
+        WXUISIM_TEST( CellClick );
+        WXUISIM_TEST( LinkClick );
+#endif // wxUSE_UIACTIONSIMULATOR
+        CPPUNIT_TEST( AppendToPage );
     CPPUNIT_TEST_SUITE_END();
 
     void SelectionToText();
+    void Title();
+    void CellClick();
+    void LinkClick();
+    void AppendToPage();
 
     wxHtmlWindow *m_win;
 
@@ -50,7 +64,7 @@ private:
 // register in the unnamed registry so that these tests are run by default
 CPPUNIT_TEST_SUITE_REGISTRATION( HtmlWindowTestCase );
 
-// 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( HtmlWindowTestCase, "HtmlWindowTestCase" );
 
 // ----------------------------------------------------------------------------
@@ -59,13 +73,13 @@ CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( HtmlWindowTestCase, "HtmlWindowTestCase"
 
 void HtmlWindowTestCase::setUp()
 {
-    m_win = new wxHtmlWindow(wxTheApp->GetTopWindow(), wxID_ANY);
+    m_win = new wxHtmlWindow(wxTheApp->GetTopWindow(), wxID_ANY,
+                             wxDefaultPosition, wxSize(400, 200));
 }
 
 void HtmlWindowTestCase::tearDown()
 {
-    m_win->Destroy();
-    m_win = NULL;
+    wxDELETE(m_win);
 }
 
 // ----------------------------------------------------------------------------
@@ -74,11 +88,17 @@ void HtmlWindowTestCase::tearDown()
 
 static const char *TEST_MARKUP =
     "<html><body>"
+    "<title>Page</title>"
     "  Title<p>"
     "  A longer line<br>"
     "  and the last line."
     "</body></html>";
 
+static const char *TEST_MARKUP_LINK =
+    "<html><body>"
+    "<a href=\"link\">link<\\a> "
+    "</body></html>";
+
 static const char *TEST_PLAIN_TEXT =
     "Title\nA longer line\nand the last line.";
 
@@ -89,3 +109,66 @@ void HtmlWindowTestCase::SelectionToText()
 
     CPPUNIT_ASSERT_EQUAL( TEST_PLAIN_TEXT, m_win->SelectionToText() );
 }
+
+void HtmlWindowTestCase::Title()
+{
+    m_win->SetPage(TEST_MARKUP);
+
+    CPPUNIT_ASSERT_EQUAL("Page", m_win->GetOpenedPageTitle());
+}
+
+#if wxUSE_UIACTIONSIMULATOR
+void HtmlWindowTestCase::CellClick()
+{
+    wxTestableFrame* frame = wxStaticCast(wxTheApp->GetTopWindow(),
+                                          wxTestableFrame);
+
+    EventCounter count1(m_win, wxEVT_COMMAND_HTML_CELL_CLICKED);
+
+    wxUIActionSimulator sim;
+
+    m_win->SetPage(TEST_MARKUP);
+    m_win->Update();
+    m_win->Refresh();
+
+    sim.MouseMove(m_win->ClientToScreen(wxPoint(15, 15)));
+    wxYield();
+
+    sim.MouseClick();
+    wxYield();
+
+    CPPUNIT_ASSERT_EQUAL(1, frame->GetEventCount());
+}
+
+void HtmlWindowTestCase::LinkClick()
+{
+    wxTestableFrame* frame = wxStaticCast(wxTheApp->GetTopWindow(),
+                                          wxTestableFrame);
+
+    EventCounter count1(m_win, wxEVT_COMMAND_HTML_LINK_CLICKED);
+
+    wxUIActionSimulator sim;
+
+    m_win->SetPage(TEST_MARKUP_LINK);
+    m_win->Update();
+    m_win->Refresh();
+
+    sim.MouseMove(m_win->ClientToScreen(wxPoint(15, 15)));
+    wxYield();
+
+    sim.MouseClick();
+    wxYield();
+
+    CPPUNIT_ASSERT_EQUAL(1, frame->GetEventCount());
+}
+#endif // wxUSE_UIACTIONSIMULATOR
+
+void HtmlWindowTestCase::AppendToPage()
+{
+    m_win->SetPage(TEST_MARKUP_LINK);
+    m_win->AppendToPage("A new paragraph");
+
+    CPPUNIT_ASSERT_EQUAL("link A new paragraph", m_win->ToText());
+}
+
+#endif //wxUSE_HTML