#include "wx/msw/registry.h"
#endif // __WXMSW__
-// ----------------------------------------------------------------------------
-// local functions
-// ----------------------------------------------------------------------------
-
-// define stream inserter for wxFileName to use it in CPPUNIT_ASSERT_EQUAL()
-inline std::ostream& operator<<(std::ostream& o, const wxFileName& fn)
-{
- return o << fn.GetFullPath();
-}
+#include "testfile.h"
// ----------------------------------------------------------------------------
// test data
{ "../../foo", "", "../..", "foo", "", false, wxPATH_UNIX },
{ "foo.bar", "", "", "foo", "bar", false, wxPATH_UNIX },
{ "~/foo.bar", "", "~", "foo", "bar", true, wxPATH_UNIX },
+ { "~user/foo.bar", "", "~user", "foo", "bar", true, wxPATH_UNIX },
+ { "~user/", "", "~user", "", "", true, wxPATH_UNIX },
{ "/foo", "", "/", "foo", "", true, wxPATH_UNIX },
{ "Mahogany-0.60/foo.bar", "", "Mahogany-0.60", "foo", "bar", false, wxPATH_UNIX },
{ "/tmp/wxwin.tar.bz", "", "/tmp", "wxwin.tar", "bz", true, wxPATH_UNIX },
#ifdef __WINDOWS__
CPPUNIT_TEST( TestShortLongPath );
#endif // __WINDOWS__
+ CPPUNIT_TEST( TestUNC );
CPPUNIT_TEST_SUITE_END();
void TestConstruction();
#ifdef __WINDOWS__
void TestShortLongPath();
#endif // __WINDOWS__
+ void TestUNC();
DECLARE_NO_COPY_CLASS(FileNameTestCase)
};
// test wxPATH_NORM_DOTS
{ "a/.././b/c/../../", wxPATH_NORM_DOTS, "", wxPATH_UNIX },
+ { "./", wxPATH_NORM_DOTS, "", wxPATH_UNIX },
+ { "b/../", wxPATH_NORM_DOTS, "", wxPATH_UNIX },
- // test wxPATH_NORM_TILDE
- // NB: do the tilde expansion also under Windows to test if it works there too
+ // test wxPATH_NORM_TILDE: notice that ~ is only interpreted specially
+ // when it is the first character in the file name
{ "/a/b/~", wxPATH_NORM_TILDE, "/a/b/~", wxPATH_UNIX },
- { "/~/a/b", wxPATH_NORM_TILDE, "HOME/a/b", wxPATH_UNIX },
+ { "/~/a/b", wxPATH_NORM_TILDE, "/~/a/b", wxPATH_UNIX },
{ "~/a/b", wxPATH_NORM_TILDE, "HOME/a/b", wxPATH_UNIX },
// test wxPATH_NORM_CASE
}
#endif // __WINDOWS__
+
+void FileNameTestCase::TestUNC()
+{
+ wxFileName fn("//share/path/name.ext", wxPATH_DOS);
+ CPPUNIT_ASSERT_EQUAL( "share", fn.GetVolume() );
+ CPPUNIT_ASSERT_EQUAL( "\\path", fn.GetPath(wxPATH_NO_SEPARATOR, wxPATH_DOS) );
+
+ fn.Assign("\\\\share2\\path2\\name.ext", wxPATH_DOS);
+ CPPUNIT_ASSERT_EQUAL( "share2", fn.GetVolume() );
+ CPPUNIT_ASSERT_EQUAL( "\\path2", fn.GetPath(wxPATH_NO_SEPARATOR, wxPATH_DOS) );
+}
+