CPPUNIT_TEST( DirExists );
CPPUNIT_TEST( Traverse );
CPPUNIT_TEST( Enum );
+ CPPUNIT_TEST( GetName );
CPPUNIT_TEST_SUITE_END();
void DirExists();
void Traverse();
void Enum();
+ void GetName();
void CreateTempFile(const wxString& path);
wxArrayString DirEnumHelper(wxDir& dir,
wxDir::Make(DIRTEST_FOLDER + SEP + "folder1" + SEP + "subfolder2", wxS_DIR_DEFAULT, wxPATH_MKDIR_FULL);
wxDir::Make(DIRTEST_FOLDER + SEP + "folder2", wxS_DIR_DEFAULT, wxPATH_MKDIR_FULL);
wxDir::Make(DIRTEST_FOLDER + SEP + "folder3" + SEP + "subfolder1", wxS_DIR_DEFAULT, wxPATH_MKDIR_FULL);
-
+
CreateTempFile(DIRTEST_FOLDER + SEP + "folder1" + SEP + "subfolder2" + SEP + "dummy");
CreateTempFile(DIRTEST_FOLDER + SEP + "dummy");
+ CreateTempFile(DIRTEST_FOLDER + SEP + "folder3" + SEP + "subfolder1" + SEP + "dummy.foo");
+ CreateTempFile(DIRTEST_FOLDER + SEP + "folder3" + SEP + "subfolder1" + SEP + "dummy.foo.bar");
}
void DirTestCase::tearDown()
{
wxRemove(DIRTEST_FOLDER + SEP + "folder1" + SEP + "subfolder2" + SEP + "dummy");
wxRemove(DIRTEST_FOLDER + SEP + "dummy");
+ wxRemove(DIRTEST_FOLDER + SEP + "folder3" + SEP + "subfolder1" + SEP + "dummy.foo");
+ wxRemove(DIRTEST_FOLDER + SEP + "folder3" + SEP + "subfolder1" + SEP + "dummy.foo.bar");
wxDir::Remove(DIRTEST_FOLDER, wxPATH_RMDIR_RECURSIVE);
}
{
// enum all files
wxArrayString files;
- CPPUNIT_ASSERT_EQUAL(2, wxDir::GetAllFiles(DIRTEST_FOLDER, &files));
+ CPPUNIT_ASSERT_EQUAL(4, wxDir::GetAllFiles(DIRTEST_FOLDER, &files));
+
+ // enum all files according to the filter
+ CPPUNIT_ASSERT_EQUAL(1, wxDir::GetAllFiles(DIRTEST_FOLDER, &files, "*.foo"));
// enum again with custom traverser
wxDir dir(DIRTEST_FOLDER);
{ ".", true },
{ "..", true },
{ "$USER_DOCS_DIR", true },
-#if defined(__WXMSW__)
+#if defined(__WINDOWS__)
{ "$USER_DOCS_DIR\\", true },
{ "$USER_DOCS_DIR\\\\", true },
{ "..\\..", true },
- { "c:", true },
- { "c:\\", true },
- { "c:\\\\", true },
+ { "$MSW_DRIVE", true },
+ { "$MSW_DRIVE\\", true },
+ { "$MSW_DRIVE\\\\", true },
{ "\\\\non_existent_share\\file", false },
- { "c:\\a\\directory\\which\\does\\not\\exist", false },
- { "c:\\a\\directory\\which\\does\\not\\exist\\", false },
- { "c:\\a\\directory\\which\\does\\not\\exist\\\\", false },
+ { "$MSW_DRIVE\\a\\directory\\which\\does\\not\\exist", false },
+ { "$MSW_DRIVE\\a\\directory\\which\\does\\not\\exist\\", false },
+ { "$MSW_DRIVE\\a\\directory\\which\\does\\not\\exist\\\\", false },
{ "test.exe", false } // not a directory!
#elif defined(__UNIX__)
{ "../..", true },
#endif
};
+#ifdef __WINDOWS__
+ wxString homedrive = wxGetenv("HOMEDRIVE");
+ if ( homedrive.empty() )
+ homedrive = "c:";
+#endif // __WINDOWS__
+
for ( size_t n = 0; n < WXSIZEOF(testData); n++ )
{
wxString dirname = testData[n].dirname;
dirname.Replace("$USER_DOCS_DIR", wxStandardPaths::Get().GetDocumentsDir());
-
+
+#ifdef __WINDOWS__
+ dirname.Replace("$MSW_DRIVE", homedrive);
+#endif // __WINDOWS__
+
std::string errDesc = wxString::Format("failed on directory '%s'", dirname).ToStdString();
CPPUNIT_ASSERT_EQUAL_MESSAGE(errDesc, testData[n].shouldExist, wxDir::Exists(dirname));
CPPUNIT_ASSERT( wxDir::Exists(wxGetCwd()) );
}
+void DirTestCase::GetName()
+{
+ wxDir d;
+
+ CPPUNIT_ASSERT( d.Open(".") );
+ CPPUNIT_ASSERT( d.GetName().Last() != wxFILE_SEP_PATH );
+ CPPUNIT_ASSERT( d.GetNameWithSep().Last() == wxFILE_SEP_PATH );
+ CPPUNIT_ASSERT_EQUAL( d.GetName() + wxFILE_SEP_PATH,
+ d.GetNameWithSep() );
+
+#ifdef __UNIX__
+ CPPUNIT_ASSERT( d.Open("/") );
+ CPPUNIT_ASSERT_EQUAL( "/", d.GetName() );
+ CPPUNIT_ASSERT_EQUAL( "/", d.GetNameWithSep() );
+#endif
+}