X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4e00b90802a3856692d41a84622dac20ff0c7496..d8eff331e23435d9d8d6483a40f6fd9997a13f87:/samples/propgrid/tests.cpp diff --git a/samples/propgrid/tests.cpp b/samples/propgrid/tests.cpp index a6b700dbf6..ebd8e88c00 100644 --- a/samples/propgrid/tests.cpp +++ b/samples/propgrid/tests.cpp @@ -162,8 +162,9 @@ void FormMain::OnDumpList( wxCommandEvent& WXUNUSED(event) ) const int spacing = 8; wxBoxSizer* topsizer = new wxBoxSizer( wxVERTICAL ); wxBoxSizer* rowsizer = new wxBoxSizer( wxHORIZONTAL ); - wxTextCtrl* ed = new wxTextCtrl(dlg,11,text, - wxDefaultPosition,wxDefaultSize,wxTE_MULTILINE|wxTE_READONLY); + wxTextCtrl* ed = new wxTextCtrl(dlg, 11, text, + wxDefaultPosition, wxDefaultSize, + wxTE_MULTILINE); rowsizer->Add( ed, 1, wxEXPAND|wxALL, spacing ); topsizer->Add( rowsizer, 1, wxEXPAND, 0 ); rowsizer = new wxBoxSizer( wxHORIZONTAL ); @@ -249,6 +250,10 @@ protected: failures++; \ } +#define RT_ASSERT(COND) \ + if (!(COND)) \ + RT_FAILURE() + #define RT_FAILURE_MSG(MSG) \ { \ wxString s1 = wxString::Format(wxT("Test failure in tests.cpp, line %i."),__LINE__-1); \ @@ -338,8 +343,9 @@ bool FormMain::RunTests( bool fullTest, bool interactive ) const int spacing = 8; wxBoxSizer* topsizer = new wxBoxSizer( wxVERTICAL ); wxBoxSizer* rowsizer = new wxBoxSizer( wxHORIZONTAL ); - wxTextCtrl* ed = new wxTextCtrl(dlg,11,wxEmptyString, - wxDefaultPosition,wxDefaultSize,wxTE_MULTILINE|wxTE_READONLY); + wxTextCtrl* ed = new wxTextCtrl(dlg, 11, wxEmptyString, + wxDefaultPosition, wxDefaultSize, + wxTE_MULTILINE); rowsizer->Add( ed, 1, wxEXPAND|wxALL, spacing ); topsizer->Add( rowsizer, 1, wxEXPAND, 0 ); rowsizer = new wxBoxSizer( wxHORIZONTAL ); @@ -714,6 +720,86 @@ bool FormMain::RunTests( bool fullTest, bool interactive ) #endif } + { + // + // Test multiple selection + RT_START_TEST(MULTIPLE_SELECTION) + if ( !(pgman->GetExtraStyle() & wxPG_EX_MULTIPLE_SELECTION) ) + CreateGrid( -1, wxPG_EX_MULTIPLE_SELECTION); + pgman = m_pPropGridManager; + + wxPropertyGrid* pg = pgman->GetGrid(); + + wxPGProperty* prop1 = pg->GetProperty(wxT("Label")); + wxPGProperty* prop2 = pg->GetProperty(wxT("Cell Text Colour")); + wxPGProperty* prop3 = pg->GetProperty(wxT("Height")); + wxPGProperty* catProp = pg->GetProperty(wxT("Appearance")); + + RT_ASSERT( prop1 && prop2 && prop3 ); + + pg->ClearSelection(); + pg->AddToSelection(prop1); + pg->AddToSelection(prop2); + pg->AddToSelection(prop3); + + // Adding category to selection should fail silently + pg->AddToSelection(catProp); + + wxArrayPGProperty selectedProperties = pg->GetSelectedProperties(); + + RT_ASSERT( selectedProperties.size() == 3 ) + RT_ASSERT( pg->IsPropertySelected(prop1) ) + RT_ASSERT( pg->IsPropertySelected(prop2) ) + RT_ASSERT( pg->IsPropertySelected(prop3) ) + RT_ASSERT( !pg->IsPropertySelected(catProp) ) + + pg->RemoveFromSelection(prop1); + wxArrayPGProperty selectedProperties2 = pg->GetSelectedProperties(); + + RT_ASSERT( selectedProperties2.size() == 2 ) + RT_ASSERT( !pg->IsPropertySelected(prop1) ) + RT_ASSERT( pg->IsPropertySelected(prop2) ) + RT_ASSERT( pg->IsPropertySelected(prop3) ) + + pg->ClearSelection(); + + wxArrayPGProperty selectedProperties3 = pg->GetSelectedProperties(); + + RT_ASSERT( selectedProperties3.size() == 0 ) + RT_ASSERT( !pg->IsPropertySelected(prop1) ) + RT_ASSERT( !pg->IsPropertySelected(prop2) ) + RT_ASSERT( !pg->IsPropertySelected(prop3) ) + + pg->SelectProperty(prop2); + + RT_ASSERT( !pg->IsPropertySelected(prop1) ) + RT_ASSERT( pg->IsPropertySelected(prop2) ) + RT_ASSERT( !pg->IsPropertySelected(prop3) ) + } + + { + // + // Test label editing + RT_START_TEST(LABEL_EDITING) + + wxPropertyGrid* pg = pgman->GetGrid(); + + // Just mostly test that these won't crash + pg->MakeColumnEditable(0, true); + pg->MakeColumnEditable(2, true); + pg->MakeColumnEditable(0, false); + pg->MakeColumnEditable(2, false); + pg->SelectProperty(wxT("Height")); + pg->BeginLabelEdit(0); + pg->BeginLabelEdit(0); + pg->EndLabelEdit(0); + pg->EndLabelEdit(0); + + // Recreate grid + CreateGrid( -1, -1 ); + pgman = m_pPropGridManager; + } + { RT_START_TEST(Attributes) @@ -985,8 +1071,7 @@ bool FormMain::RunTests( bool fullTest, bool interactive ) pgman = m_pPropGridManager; } - /* - { + /*{ // TODO: This test fails. RT_START_TEST(SetSplitterPosition) @@ -1023,8 +1108,7 @@ bool FormMain::RunTests( bool fullTest, bool interactive ) // Recreate the original grid CreateGrid( -1, -1 ); pgman = m_pPropGridManager; - } - */ + }*/ { RT_START_TEST(HideProperty) @@ -1034,7 +1118,7 @@ bool FormMain::RunTests( bool fullTest, bool interactive ) srand(0x1234); wxArrayPGProperty arr1; - + arr1 = GetPropertiesInRandomOrder(page); if ( !_failed_ ) @@ -1178,7 +1262,7 @@ bool FormMain::RunTests( bool fullTest, bool interactive ) wxASSERT(wxPG_EX_INIT_NOCAT == 0x00001000); - for ( i=12; i<24; i++ ) + for ( i=12; i<27; i++ ) { int flag = 1<