// headers
// ----------------------------------------------------------------------------
-#include "wx/wxprec.h"
+#include "testprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif // WX_PRECOMP
#include "wx/filename.h"
-
-#include "wx/cppunit.h"
+#include "wx/filefn.h"
// ----------------------------------------------------------------------------
// test data
CPPUNIT_TEST( TestConstruction );
CPPUNIT_TEST( TestSplit );
CPPUNIT_TEST( TestSetPath );
+ CPPUNIT_TEST( TestStrip );
+#ifdef __WINDOWS__
+ CPPUNIT_TEST( TestShortLongPath );
+#endif // __WINDOWS__
CPPUNIT_TEST_SUITE_END();
void TestConstruction();
void TestSplit();
void TestSetPath();
+ void TestStrip();
+#ifdef __WINDOWS__
+ void TestShortLongPath();
+#endif // __WINDOWS__
DECLARE_NO_COPY_CLASS(FileNameTestCase)
};
CPPUNIT_ASSERT( fullname == fni.fullname );
CPPUNIT_ASSERT( fn.Normalize(wxPATH_NORM_ALL, _T(""), fni.format) );
+
+ if ( *fni.volume && *fni.path )
+ {
+ // check that specifying the volume separately or as part of the
+ // path doesn't make any difference
+ wxString pathWithVolume = fni.volume;
+ pathWithVolume += wxFileName::GetVolumeSeparator(fni.format);
+ pathWithVolume += fni.path;
+
+ CPPUNIT_ASSERT( fn == wxFileName(pathWithVolume,
+ fni.name,
+ fni.ext,
+ fni.format) );
+ }
}
}
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__