testitems.Add("item 0");
testitems.Add("item 1");
testitems.Add("item 2");
- testitems.Add("item 3");
+ testitems.Add("ITEM 2"); // The same as the last one except for case.
container->Append(testitems);
container->SetSelection(wxNOT_FOUND);
-
CPPUNIT_ASSERT_EQUAL(wxNOT_FOUND, container->GetSelection());
CPPUNIT_ASSERT_EQUAL("", container->GetStringSelection());
container->SetSelection(1);
-
CPPUNIT_ASSERT_EQUAL(1, container->GetSelection());
CPPUNIT_ASSERT_EQUAL("item 1", container->GetStringSelection());
- container->SetStringSelection("item 2");
+ CPPUNIT_ASSERT( container->SetStringSelection("item 2") );
+ CPPUNIT_ASSERT_EQUAL(2, container->GetSelection());
+ CPPUNIT_ASSERT_EQUAL("item 2", container->GetStringSelection());
+
+ // Check that selecting a non-existent item fails.
+ CPPUNIT_ASSERT( !container->SetStringSelection("bloordyblop") );
+ // Check that SetStringSelection() is case-insensitive.
+ CPPUNIT_ASSERT( container->SetStringSelection("ITEM 2") );
CPPUNIT_ASSERT_EQUAL(2, container->GetSelection());
CPPUNIT_ASSERT_EQUAL("item 2", container->GetStringSelection());
}
CPPUNIT_ASSERT_EQUAL(static_cast<wxClientData*>(item2data),
container->GetClientObject(2));
+
+ WX_ASSERT_FAILS_WITH_ASSERT( container->SetClientObject((unsigned)-1, item0data) );
+ WX_ASSERT_FAILS_WITH_ASSERT( container->SetClientObject(12345, item0data) );
}
void ItemContainerTestCase::VoidData()
container->Insert("item 2", 2, item2);
CPPUNIT_ASSERT_EQUAL(item2, container->GetClientData(2));
+
+ WX_ASSERT_FAILS_WITH_ASSERT( container->SetClientData((unsigned)-1, NULL) );
+ WX_ASSERT_FAILS_WITH_ASSERT( container->SetClientData(12345, NULL) );
}
void ItemContainerTestCase::Set()
container->Append(testitems);
+ container->SetSelection(0);
container->SetString(0, "new item 0");
-#ifndef __WXOSX__
- container->SetString(2, "");
-#endif
-
CPPUNIT_ASSERT_EQUAL("new item 0", container->GetString(0));
+
+ // Modifying the item shouldn't deselect it.
+ CPPUNIT_ASSERT_EQUAL(0, container->GetSelection());
+
+ // wxOSX doesn't support having empty items in some containers.
#ifndef __WXOSX__
+ container->SetString(2, "");
CPPUNIT_ASSERT_EQUAL("", container->GetString(2));
#endif
}