X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a8f4019041d7ad6c08c4961ff3cc745567c73c7e..48889bca6f8b2504f78c0f47b32f5e95c64d915d:/samples/propgrid/tests.cpp?ds=sidebyside diff --git a/samples/propgrid/tests.cpp b/samples/propgrid/tests.cpp index eb22e52437..a6b700dbf6 100644 --- a/samples/propgrid/tests.cpp +++ b/samples/propgrid/tests.cpp @@ -306,6 +306,15 @@ wxArrayPGProperty GetPropertiesInRandomOrder( wxPropertyGridInterface* props, in return arr; } +// Callback for testing property sorting +int MyPropertySortFunction(wxPropertyGrid* WXUNUSED(propGrid), + wxPGProperty* p1, + wxPGProperty* p2) +{ + // Reverse alphabetical order + return p2->GetLabel().CmpNoCase( p1->GetBaseName() ); +} + bool FormMain::RunTests( bool fullTest, bool interactive ) { wxString t; @@ -586,9 +595,11 @@ bool FormMain::RunTests( bool fullTest, bool interactive ) col << pgman->GetPropertyValue(wxT("ColourProperty")); if ( col != *wxBLACK ) RT_FAILURE(); - if ( wxSizeRefFromVariant(pg->GetPropertyValue(wxT("Size"))) != wxSize(150,150) ) + wxVariant varSize(pg->GetPropertyValue(wxT("Size"))); + if ( wxSizeRefFromVariant(varSize) != wxSize(150,150) ) RT_FAILURE(); - if ( wxPointRefFromVariant(pg->GetPropertyValue(wxT("Position"))) != wxPoint(150,150) ) + wxVariant varPos(pg->GetPropertyValue(wxT("Position"))); + if ( wxPointRefFromVariant(varPos) != wxPoint(150,150) ) RT_FAILURE(); if ( !(pg->GetPropertyValueAsArrayInt(wxT("MultiChoiceProperty")) == test_arrint_1) ) RT_FAILURE(); @@ -634,9 +645,11 @@ bool FormMain::RunTests( bool fullTest, bool interactive ) col << pgman->GetPropertyValue(wxT("ColourProperty")); if ( col != *wxWHITE ) RT_FAILURE(); - if ( wxSizeRefFromVariant(pgman->GetPropertyValue(wxT("Size"))) != wxSize(300,300) ) + varSize = pgman->GetPropertyValue(wxT("Size")); + if ( wxSizeRefFromVariant(varSize) != wxSize(300,300) ) RT_FAILURE(); - if ( wxPointRefFromVariant(pgman->GetPropertyValue(wxT("Position"))) != wxPoint(300,300) ) + varPos = pgman->GetPropertyValue(wxT("Position")); + if ( wxPointRefFromVariant(varPos) != wxPoint(300,300) ) RT_FAILURE(); if ( !(pgman->GetPropertyValueAsArrayInt(wxT("MultiChoiceProperty")) == test_arrint_2) ) RT_FAILURE(); @@ -649,64 +662,12 @@ bool FormMain::RunTests( bool fullTest, bool interactive ) if ( pgman->GetPropertyValueAsLongLong(wxT("IntProperty")) != wxLL(-80000000000) ) RT_FAILURE(); - // - // Flexible wx(U)LongLong << operator safety conformance tests - wxPGProperty* prop; - wxLongLong ll; - wxULongLong ull; - - prop = pgman->GetProperty(wxT("IntProperty")); - prop->SetValue(128); - ll << prop->GetValue(); - if ( ll != 128 ) - RT_FAILURE(); - - prop->SetValue(WXVARIANT(wxLL(68719476736))); - ll << prop->GetValue(); - if ( ll.GetValue() != wxLL(68719476736) ) - RT_FAILURE(); - -#if wxUSE_LONGLONG_NATIVE - wxLongLong_t ll_t; - ll_t << prop->GetValue(); - if ( ll_t != wxLL(68719476736) ) - RT_FAILURE(); -#endif - - prop->SetValue(256); - ll << prop->GetValue(); - if ( ll != 256 ) - RT_FAILURE(); - - prop = pgman->GetProperty(wxT("UIntProperty")); - prop->SetValue(128); - ull << prop->GetValue(); - if ( ull != 128 ) - RT_FAILURE(); - - prop->SetValue(WXVARIANT(wxULL(68719476739))); - ull << prop->GetValue(); - if ( ull.GetValue() != wxULL(68719476739) ) - RT_FAILURE(); - -#if wxUSE_LONGLONG_NATIVE - wxULongLong_t ull_t; - ull_t << prop->GetValue(); - if ( ull_t != wxLL(68719476739) ) - RT_FAILURE(); -#endif - - prop->SetValue(256); - ull << prop->GetValue(); - if ( ull != 256 ) - RT_FAILURE(); - // Make sure children of composite parent get updated as well - // Original string value: "Lamborghini Diablo SV; 5707; [300; 3.9; 8.6] 300000" + // Original string value: "Lamborghini Diablo SV; 5707; [300; 3.9; 8.6] 300000; Not Convertible" // // This updates children as well - wxString nvs = "Lamborghini Diablo XYZ; 5707; [100; 3.9; 8.6] 3000002"; + wxString nvs = "Lamborghini Diablo XYZ; 5707; [100; 3.9; 8.6] 3000002; Convertible"; pgman->SetPropertyValue("Car", nvs); if ( pgman->GetPropertyValueAsString("Car.Model") != "Lamborghini Diablo XYZ" ) @@ -726,6 +687,12 @@ bool FormMain::RunTests( bool fullTest, bool interactive ) wxLogDebug("Did not match: Car.Price ($)=%s", pgman->GetPropertyValueAsString("Car.Price ($)").c_str()); RT_FAILURE(); } + + if ( !pgman->GetPropertyValueAsBool("Car.Convertible") ) + { + wxLogDebug("Did not match: Car.Convertible=%s", pgman->GetPropertyValueAsString("Car.Convertible").c_str()); + RT_FAILURE(); + } } { @@ -918,6 +885,68 @@ bool FormMain::RunTests( bool fullTest, bool interactive ) pgman->EnsureVisible(wxT("Cell Colour")); } + { + RT_START_TEST(RemoveProperty) + + wxPGProperty* p; + + wxPGProperty* origParent = + pgman->GetProperty(wxT("Window Styles"))->GetParent(); + + p = pgman->RemoveProperty(wxT("Window Styles")); + pgman->Refresh(); + pgman->Update(); + + pgman->AppendIn(origParent, p); + pgman->Refresh(); + pgman->Update(); + } + + { + RT_START_TEST(SortFunction) + + wxPGProperty* p; + + // Make sure indexes are as supposed + + p = pgman->GetProperty(wxT("User Name")); + if ( p->GetIndexInParent() != 3 ) + RT_FAILURE(); + + p = pgman->GetProperty(wxT("User Id")); + if ( p->GetIndexInParent() != 2 ) + RT_FAILURE(); + + p = pgman->GetProperty(wxT("User Home")); + if ( p->GetIndexInParent() != 1 ) + RT_FAILURE(); + + p = pgman->GetProperty(wxT("Operating System")); + if ( p->GetIndexInParent() != 0 ) + RT_FAILURE(); + + pgman->GetGrid()->SetSortFunction(MyPropertySortFunction); + + pgman->GetGrid()->SortChildren(wxT("Environment")); + + // Make sure indexes have been reversed + p = pgman->GetProperty(wxT("User Name")); + if ( p->GetIndexInParent() != 0 ) + RT_FAILURE(); + + p = pgman->GetProperty(wxT("User Id")); + if ( p->GetIndexInParent() != 1 ) + RT_FAILURE(); + + p = pgman->GetProperty(wxT("User Home")); + if ( p->GetIndexInParent() != 2 ) + RT_FAILURE(); + + p = pgman->GetProperty(wxT("Operating System")); + if ( p->GetIndexInParent() != 3 ) + RT_FAILURE(); + } + { RT_START_TEST(SetPropertyBackgroundColour) wxCommandEvent evt; @@ -928,12 +957,29 @@ bool FormMain::RunTests( bool fullTest, bool interactive ) } { - RT_START_TEST(ManagerClear) + RT_START_TEST(Clear) + + // Manager clear + pgman->SelectProperty("Label"); pgman->Clear(); if ( pgman->GetPageCount() ) RT_FAILURE(); + if ( pgman->GetGrid()->GetRoot()->GetChildCount() ) + RT_FAILURE(); + + // Recreate the original grid + CreateGrid( -1, -1 ); + pgman = m_pPropGridManager; + + // Grid clear + pgman->SelectProperty("Label"); + pgman->GetGrid()->Clear(); + + if ( pgman->GetGrid()->GetRoot()->GetChildCount() ) + RT_FAILURE(); + // Recreate the original grid CreateGrid( -1, -1 ); pgman = m_pPropGridManager;