#endif // WX_PRECOMP
#include "wx/filename.h"
+#include "wx/filefn.h"
// ----------------------------------------------------------------------------
// test data
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)
};
}
}
+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++ )
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()
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__