Add a simple unit test for wxParseCommonDialogsFilter().

Verify that this function (which is used for parsing the wildcard strings used
with file-related dialogs) works as expected and also asserts when given
invalid input.

See #4489.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67585 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2011-04-23 14:53:38 +00:00
parent b22a1070b3
commit 2ab92d62cf

View File

@@ -19,6 +19,7 @@
#ifndef WX_PRECOMP #ifndef WX_PRECOMP
#include "wx/gdicmn.h" #include "wx/gdicmn.h"
#include "wx/filefn.h"
#endif // !PCH #endif // !PCH
#include "wx/defs.h" #include "wx/defs.h"
@@ -38,10 +39,12 @@ private:
CPPUNIT_TEST_SUITE( MiscGUIFuncsTestCase ); CPPUNIT_TEST_SUITE( MiscGUIFuncsTestCase );
CPPUNIT_TEST( DisplaySize ); CPPUNIT_TEST( DisplaySize );
CPPUNIT_TEST( URLDataObject ); CPPUNIT_TEST( URLDataObject );
CPPUNIT_TEST( ParseFileDialogFilter );
CPPUNIT_TEST_SUITE_END(); CPPUNIT_TEST_SUITE_END();
void DisplaySize(); void DisplaySize();
void URLDataObject(); void URLDataObject();
void ParseFileDialogFilter();
DECLARE_NO_COPY_CLASS(MiscGUIFuncsTestCase) DECLARE_NO_COPY_CLASS(MiscGUIFuncsTestCase)
}; };
@@ -88,3 +91,41 @@ void MiscGUIFuncsTestCase::URLDataObject()
wxTheClipboard->Flush(); wxTheClipboard->Flush();
} }
void MiscGUIFuncsTestCase::ParseFileDialogFilter()
{
wxArrayString descs,
filters;
CPPUNIT_ASSERT_EQUAL
(
1,
wxParseCommonDialogsFilter("Image files|*.jpg;*.png", descs, filters)
);
CPPUNIT_ASSERT_EQUAL( "Image files", descs[0] );
CPPUNIT_ASSERT_EQUAL( "*.jpg;*.png", filters[0] );
CPPUNIT_ASSERT_EQUAL
(
2,
wxParseCommonDialogsFilter
(
"All files (*.*)|*.*|Python source (*.py)|*.py",
descs, filters
)
);
CPPUNIT_ASSERT_EQUAL( "*.*", filters[0] );
CPPUNIT_ASSERT_EQUAL( "*.py", filters[1] );
// Test some invalid ones too.
WX_ASSERT_FAILS_WITH_ASSERT
(
wxParseCommonDialogsFilter
(
"All files (*.*)|*.*|Python source (*.py)|*.py|",
descs, filters
)
);
}