| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- ///////////////////////////////////////////////////////////////////////////////
- // Name: tests/controls/dialogtest.cpp
- // Purpose: wxWindow unit test
- // Author: Vaclav Slavik
- // Created: 2012-08-30
- // Copyright: (c) 2012 Vaclav Slavik
- ///////////////////////////////////////////////////////////////////////////////
- #include "testprec.h"
- #ifdef __BORLANDC__
- #pragma hdrstop
- #endif
- #include "wx/testing.h"
- #ifdef HAVE_VARIADIC_MACROS
- #include "wx/msgdlg.h"
- #include "wx/filedlg.h"
- // This test suite tests helpers from wx/testing.h intended for testing of code
- // that calls modal dialogs. It does not test the implementation of wxWidgets'
- // dialogs.
- class ModalDialogsTestCase : public CppUnit::TestCase
- {
- public:
- ModalDialogsTestCase() { }
- private:
- CPPUNIT_TEST_SUITE( ModalDialogsTestCase );
- CPPUNIT_TEST( MessageDialog );
- CPPUNIT_TEST( FileDialog );
- CPPUNIT_TEST( CustomDialog );
- CPPUNIT_TEST_SUITE_END();
- void MessageDialog();
- void FileDialog();
- void CustomDialog();
- DECLARE_NO_COPY_CLASS(ModalDialogsTestCase)
- };
- // register in the unnamed registry so that these tests are run by default
- CPPUNIT_TEST_SUITE_REGISTRATION( ModalDialogsTestCase );
- // also include in its own registry so that these tests can be run alone
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( ModalDialogsTestCase, "ModalDialogsTestCase" );
- void ModalDialogsTestCase::MessageDialog()
- {
- int rc;
- wxTEST_DIALOG
- (
- rc = wxMessageBox("Should I fail?", "Question", wxYES|wxNO),
- wxExpectModal<wxMessageDialog>(wxNO),
- wxExpectModal<wxFileDialog>(wxGetCwd() + "/test.txt").Optional()
- );
- CPPUNIT_ASSERT_EQUAL(wxNO, rc);
- }
- void ModalDialogsTestCase::FileDialog()
- {
- wxFileDialog dlg(NULL);
- int rc;
- wxTEST_DIALOG
- (
- rc = dlg.ShowModal(),
- wxExpectModal<wxFileDialog>(wxGetCwd() + "/test.txt")
- );
- CPPUNIT_ASSERT_EQUAL((int)wxID_OK, rc);
- CPPUNIT_ASSERT_EQUAL("test.txt", dlg.GetFilename());
- }
- class MyDialog : public wxDialog
- {
- public:
- MyDialog(wxWindow *parent) : wxDialog(parent, wxID_ANY, "Entry"), m_value(-1)
- {
- // Dummy. Imagine it's a real dialog that shows some number-entry
- // controls.
- }
- int m_value;
- };
- template<>
- class wxExpectModal<MyDialog> : public wxExpectModalBase<MyDialog>
- {
- public:
- wxExpectModal(int valueToSet) : m_valueToSet(valueToSet) {}
- protected:
- virtual int OnInvoked(MyDialog *dlg) const
- {
- // Simulate the user entering the expected number:
- dlg->m_value = m_valueToSet;
- return wxID_OK;
- }
- int m_valueToSet;
- };
- void ModalDialogsTestCase::CustomDialog()
- {
- MyDialog dlg(NULL);
- wxTEST_DIALOG
- (
- dlg.ShowModal(),
- wxExpectModal<MyDialog>(42)
- );
- CPPUNIT_ASSERT_EQUAL( 42, dlg.m_value );
- }
- #endif // HAVE_VARIADIC_MACROS
|