X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/701aa4d80423d8e3a092c741a36f938a1ca96c45..c29c95fe24973b94fd724db767193171ca7c513d:/tests/filename/filenametest.cpp diff --git a/tests/filename/filenametest.cpp b/tests/filename/filenametest.cpp index 69b7ae8202..a1ea735acd 100644 --- a/tests/filename/filenametest.cpp +++ b/tests/filename/filenametest.cpp @@ -158,7 +158,7 @@ private: // register in the unnamed registry so that these tests are run by default CPPUNIT_TEST_SUITE_REGISTRATION( FileNameTestCase ); -// also include in it's own registry so that these tests can be run alone +// also include in its own registry so that these tests can be run alone CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( FileNameTestCase, "FileNameTestCase" ); void FileNameTestCase::TestConstruction() @@ -322,8 +322,11 @@ void FileNameTestCase::TestNormalize() // test wxPATH_NORM_DOTS { "a/.././b/c/../../", wxPATH_NORM_DOTS, "", wxPATH_UNIX }, - { "./", wxPATH_NORM_DOTS, "", wxPATH_UNIX }, - { "b/../", wxPATH_NORM_DOTS, "", wxPATH_UNIX }, + { "", wxPATH_NORM_DOTS, "", wxPATH_UNIX }, + { "./foo", wxPATH_NORM_DOTS, "foo", wxPATH_UNIX }, + { "b/../bar", wxPATH_NORM_DOTS, "bar", wxPATH_UNIX }, + { "c/../../quux", wxPATH_NORM_DOTS, "../quux", wxPATH_UNIX }, + { "/c/../../quux", wxPATH_NORM_DOTS, "/quux", wxPATH_UNIX }, // test wxPATH_NORM_TILDE: notice that ~ is only interpreted specially // when it is the first character in the file name @@ -586,36 +589,46 @@ void FileNameTestCase::TestCreateTempFileName() { const char *prefix; const char *expectedFolder; - bool shouldFail; + bool shouldSucceed; } testData[] = { - { "", "$SYSTEM_TEMP", false }, - { "foo", "$SYSTEM_TEMP", false }, - { "..", "$SYSTEM_TEMP", false }, - { "../bar", "..", false }, + { "", "$SYSTEM_TEMP", true }, + { "foo", "$SYSTEM_TEMP", true }, + { "..", "$SYSTEM_TEMP", true }, + { "../bar", "..", true }, #ifdef __WXMSW__ - { "c:\\a\\place\\which\\does\\not\\exist", "", true }, -#else if defined( __UNIX__ ) - { "/tmp/foo", "/tmp", false }, - { "/tmp/foo/bar", "", true }, + { "$USER_DOCS_DIR\\", "$USER_DOCS_DIR", true }, + { "c:\\a\\directory\\which\\does\\not\\exist", "", false }, +#elif defined( __UNIX__ ) + { "$USER_DOCS_DIR/", "$USER_DOCS_DIR", true }, + { "/tmp/foo", "/tmp", true }, + { "/tmp/a/directory/which/does/not/exist", "", false }, #endif // __UNIX__ }; for ( size_t n = 0; n < WXSIZEOF(testData); n++ ) { - wxString path = wxFileName::CreateTempFileName(testData[n].prefix); - CPPUNIT_ASSERT_EQUAL( path.empty(), testData[n].shouldFail ); + wxString prefix = testData[n].prefix; + prefix.Replace("$USER_DOCS_DIR", wxStandardPaths::Get().GetDocumentsDir()); - if (!testData[n].shouldFail) + std::string errDesc = wxString::Format("failed on prefix '%s'", prefix).ToStdString(); + + wxString path = wxFileName::CreateTempFileName(prefix); + CPPUNIT_ASSERT_EQUAL_MESSAGE( errDesc, !testData[n].shouldSucceed, path.empty() ); + + if (testData[n].shouldSucceed) { + errDesc += "; path is " + path.ToStdString(); + // test the place where the temp file has been created wxString expected = testData[n].expectedFolder; expected.Replace("$SYSTEM_TEMP", wxStandardPaths::Get().GetTempDir()); - CPPUNIT_ASSERT_EQUAL(expected, wxFileName(path).GetPath()); + expected.Replace("$USER_DOCS_DIR", wxStandardPaths::Get().GetDocumentsDir()); + CPPUNIT_ASSERT_EQUAL_MESSAGE( errDesc, expected, wxFileName(path).GetPath() ); // the temporary file is created with full permissions for the current process // so we should always be able to remove it: - CPPUNIT_ASSERT( wxRemoveFile(path) ); + CPPUNIT_ASSERT_MESSAGE( errDesc, wxRemoveFile(path) ); } } }