Remove CppUnit boilerplate from XRC unit test
No real changes, just simplify by using CATCH macros and a simple fixture instead of CppUnit::TestCase.
This commit is contained in:
@@ -119,110 +119,88 @@ void CreateXrc()
|
||||
// So save it as a file, from which it can be loaded
|
||||
wxStringInputStream sis(xrcText);
|
||||
wxFFileOutputStream fos(TEST_XRC_FILE);
|
||||
CPPUNIT_ASSERT(fos.IsOk());
|
||||
REQUIRE(fos.IsOk());
|
||||
fos.Write(sis);
|
||||
CPPUNIT_ASSERT(fos.Close());
|
||||
REQUIRE(fos.Close());
|
||||
}
|
||||
|
||||
} // anon namespace
|
||||
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// test class
|
||||
// test fixture and the tests using it
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class XrcTestCase : public CppUnit::TestCase
|
||||
class XrcTestCase
|
||||
{
|
||||
public:
|
||||
XrcTestCase() {}
|
||||
|
||||
virtual void setUp() wxOVERRIDE { CreateXrc(); }
|
||||
virtual void tearDown() wxOVERRIDE { wxRemoveFile(TEST_XRC_FILE); }
|
||||
XrcTestCase() { CreateXrc(); }
|
||||
~XrcTestCase() { wxRemoveFile(TEST_XRC_FILE); }
|
||||
|
||||
private:
|
||||
CPPUNIT_TEST_SUITE( XrcTestCase );
|
||||
CPPUNIT_TEST( ObjectReferences );
|
||||
CPPUNIT_TEST( IDRanges );
|
||||
CPPUNIT_TEST_SUITE_END();
|
||||
|
||||
void ObjectReferences();
|
||||
void IDRanges();
|
||||
|
||||
wxDECLARE_NO_COPY_CLASS(XrcTestCase);
|
||||
};
|
||||
|
||||
// register in the unnamed registry so that these tests are run by default
|
||||
CPPUNIT_TEST_SUITE_REGISTRATION( XrcTestCase );
|
||||
|
||||
// also include in its own registry so that these tests can be run alone
|
||||
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( XrcTestCase, "XrcTestCase" );
|
||||
|
||||
|
||||
|
||||
void XrcTestCase::ObjectReferences()
|
||||
TEST_CASE_METHOD(XrcTestCase, "XRC::ObjectReferences", "[xrc]")
|
||||
{
|
||||
wxXmlResource::Get()->InitAllHandlers();
|
||||
|
||||
for ( int n = 0; n < 2; ++n )
|
||||
{
|
||||
// Load the xrc file we're just created
|
||||
CPPUNIT_ASSERT( wxXmlResource::Get()->Load(TEST_XRC_FILE) );
|
||||
REQUIRE( wxXmlResource::Get()->Load(TEST_XRC_FILE) );
|
||||
|
||||
// In xrc there's now a dialog containing two panels, one an object
|
||||
// reference of the other
|
||||
wxDialog dlg;
|
||||
CPPUNIT_ASSERT( wxXmlResource::Get()->LoadDialog(&dlg, NULL, "dialog") );
|
||||
REQUIRE( wxXmlResource::Get()->LoadDialog(&dlg, NULL, "dialog") );
|
||||
// Might as well test XRCCTRL too
|
||||
wxPanel* panel1 = XRCCTRL(dlg,"panel1",wxPanel);
|
||||
wxPanel* panel2 = XRCCTRL(dlg,"ref_of_panel1",wxPanel);
|
||||
// Check that the object reference panel is a different object
|
||||
CPPUNIT_ASSERT( panel2 != panel1 );
|
||||
CHECK( panel2 != panel1 );
|
||||
|
||||
// Unload the xrc, so it can be reloaded and the test rerun
|
||||
CPPUNIT_ASSERT( wxXmlResource::Get()->Unload(TEST_XRC_FILE) );
|
||||
CHECK( wxXmlResource::Get()->Unload(TEST_XRC_FILE) );
|
||||
}
|
||||
}
|
||||
|
||||
void XrcTestCase::IDRanges()
|
||||
TEST_CASE_METHOD(XrcTestCase, "XRC::IDRanges", "[xrc]")
|
||||
{
|
||||
// Tests ID ranges
|
||||
for ( int n = 0; n < 2; ++n )
|
||||
{
|
||||
// Load the xrc file we're just created
|
||||
CPPUNIT_ASSERT( wxXmlResource::Get()->Load(TEST_XRC_FILE) );
|
||||
REQUIRE( wxXmlResource::Get()->Load(TEST_XRC_FILE) );
|
||||
|
||||
// foo[start] should == foo[0]
|
||||
CPPUNIT_ASSERT_EQUAL( XRCID("SecondCol[start]"), XRCID("SecondCol[0]") );
|
||||
CHECK( XRCID("SecondCol[start]") == XRCID("SecondCol[0]") );
|
||||
// foo[start] should be < foo[end]. Usually that means more negative
|
||||
CPPUNIT_ASSERT( XRCID("SecondCol[start]") < XRCID("SecondCol[end]") );
|
||||
CHECK( XRCID("SecondCol[start]") < XRCID("SecondCol[end]") );
|
||||
// Check it works for the positive values in FirstCol too
|
||||
CPPUNIT_ASSERT( XRCID("FirstCol[start]") < XRCID("FirstCol[end]") );
|
||||
CHECK( XRCID("FirstCol[start]") < XRCID("FirstCol[end]") );
|
||||
|
||||
// Check that values are adjacent
|
||||
CPPUNIT_ASSERT_EQUAL( XRCID("SecondCol[0]")+1, XRCID("SecondCol[1]") );
|
||||
CPPUNIT_ASSERT_EQUAL( XRCID("SecondCol[1]")+1, XRCID("SecondCol[2]") );
|
||||
CHECK( XRCID("SecondCol[0]")+1 == XRCID("SecondCol[1]") );
|
||||
CHECK( XRCID("SecondCol[1]")+1 == XRCID("SecondCol[2]") );
|
||||
// And for the positive range
|
||||
CPPUNIT_ASSERT_EQUAL( XRCID("FirstCol[2]")+1, XRCID("FirstCol[3]") );
|
||||
CHECK( XRCID("FirstCol[2]")+1 == XRCID("FirstCol[3]") );
|
||||
|
||||
// Check that a large-enough range was created, despite the small
|
||||
// 'size' parameter
|
||||
CPPUNIT_ASSERT_EQUAL
|
||||
(
|
||||
4,
|
||||
XRCID("FirstCol[end]") - XRCID("FirstCol[start]") + 1
|
||||
);
|
||||
CHECK( XRCID("FirstCol[end]") - XRCID("FirstCol[start]") + 1 == 4 );
|
||||
|
||||
// Check that the far-too-large size range worked off the scale too
|
||||
CPPUNIT_ASSERT( XRCID("SecondCol[start]") < XRCID("SecondCol[90]") );
|
||||
CPPUNIT_ASSERT( XRCID("SecondCol[90]") < XRCID("SecondCol[end]") );
|
||||
CPPUNIT_ASSERT_EQUAL( XRCID("SecondCol[90]")+1, XRCID("SecondCol[91]") );
|
||||
CHECK( XRCID("SecondCol[start]") < XRCID("SecondCol[90]") );
|
||||
CHECK( XRCID("SecondCol[90]") < XRCID("SecondCol[end]") );
|
||||
CHECK( XRCID("SecondCol[90]")+1 == XRCID("SecondCol[91]") );
|
||||
|
||||
// Check that the positive range-start parameter worked, even after a
|
||||
// reload
|
||||
CPPUNIT_ASSERT_EQUAL( XRCID("FirstCol[start]"), 10000 );
|
||||
CHECK( XRCID("FirstCol[start]") == 10000 );
|
||||
|
||||
// Unload the xrc, so it can be reloaded and the tests rerun
|
||||
CPPUNIT_ASSERT( wxXmlResource::Get()->Unload(TEST_XRC_FILE) );
|
||||
CHECK( wxXmlResource::Get()->Unload(TEST_XRC_FILE) );
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user