X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8899b155a1e4fa5f4b90e1f3bebe28088ea46bc9..67a083dd38d1ad1df8c6a25a58bb2f0ec4f3a936:/tests/filename/filenametest.cpp diff --git a/tests/filename/filenametest.cpp b/tests/filename/filenametest.cpp index 25ffc3be01..969b34d8d3 100644 --- a/tests/filename/filenametest.cpp +++ b/tests/filename/filenametest.cpp @@ -21,6 +21,7 @@ #endif // WX_PRECOMP #include "wx/filename.h" +#include "wx/filefn.h" // ---------------------------------------------------------------------------- // test data @@ -85,13 +86,23 @@ public: private: CPPUNIT_TEST_SUITE( FileNameTestCase ); CPPUNIT_TEST( TestConstruction ); + CPPUNIT_TEST( TestComparison ); CPPUNIT_TEST( TestSplit ); CPPUNIT_TEST( TestSetPath ); + CPPUNIT_TEST( TestStrip ); +#ifdef __WINDOWS__ + CPPUNIT_TEST( TestShortLongPath ); +#endif // __WINDOWS__ CPPUNIT_TEST_SUITE_END(); void TestConstruction(); + void TestComparison(); void TestSplit(); void TestSetPath(); + void TestStrip(); +#ifdef __WINDOWS__ + void TestShortLongPath(); +#endif // __WINDOWS__ DECLARE_NO_COPY_CLASS(FileNameTestCase) }; @@ -131,6 +142,16 @@ void FileNameTestCase::TestConstruction() } } +void FileNameTestCase::TestComparison() +{ + wxFileName fn1(wxT("/tmp/file1")); + wxFileName fn2(wxT("/tmp/dir2/../file2")); + fn1.Normalize(); + fn2.Normalize(); + CPPUNIT_ASSERT(fn1.GetPath() == fn2.GetPath()); + +} + void FileNameTestCase::TestSplit() { for ( size_t n = 0; n < WXSIZEOF(filenames); n++ ) @@ -145,6 +166,10 @@ void FileNameTestCase::TestSplit() CPPUNIT_ASSERT( name == fni.name ); CPPUNIT_ASSERT( ext == fni.ext ); } + + // special case of empty extension + wxFileName fn(_T("foo.")); + CPPUNIT_ASSERT( fn.GetFullPath() == _T("foo.") ); } void FileNameTestCase::TestSetPath() @@ -158,3 +183,34 @@ void FileNameTestCase::TestSetPath() CPPUNIT_ASSERT( fn.SameAs(wxFileName(_T("/usr/local/bin/ls"), wxPATH_UNIX)) ); } +wxString wxTestStripExtension(wxString szFile) +{ + wxStripExtension(szFile); + return szFile; +} + +void FileNameTestCase::TestStrip() +{ + //test a crash + CPPUNIT_ASSERT( wxTestStripExtension( _T("") ) == _T("") ); + + //others + CPPUNIT_ASSERT( wxTestStripExtension( _T(".") ) == _T("") ); + CPPUNIT_ASSERT( wxTestStripExtension( _T(".wav") ) == _T("") ); + CPPUNIT_ASSERT( wxTestStripExtension( _T("good.wav") ) == _T("good") ); + CPPUNIT_ASSERT( wxTestStripExtension( _T("good.wav.wav") ) == _T("good.wav") ); +} + +#ifdef __WINDOWS__ + +void FileNameTestCase::TestShortLongPath() +{ + wxFileName fn(_T("C:\\Program Files\\Windows NT\\Accessories\\wordpad.exe")); + + // incredibly enough, GetLongPath() used to return different results during + // the first and subsequent runs, test for this + CPPUNIT_ASSERT_EQUAL( fn.GetLongPath(), fn.GetLongPath() ); + CPPUNIT_ASSERT_EQUAL( fn.GetShortPath(), fn.GetShortPath() ); +} + +#endif // __WINDOWS__