diff options
Diffstat (limited to 'mmc_updater/src/tests/TestFileUtils.cpp')
-rw-r--r-- | mmc_updater/src/tests/TestFileUtils.cpp | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/mmc_updater/src/tests/TestFileUtils.cpp b/mmc_updater/src/tests/TestFileUtils.cpp new file mode 100644 index 00000000..f8535a28 --- /dev/null +++ b/mmc_updater/src/tests/TestFileUtils.cpp @@ -0,0 +1,79 @@ +#include "TestFileUtils.h" + +#include "FileUtils.h" +#include "TestUtils.h" + +void TestFileUtils::testDirName() +{ + std::string dirName; + std::string fileName; + +#ifdef PLATFORM_WINDOWS + // absolute paths + dirName = FileUtils::dirname("E:/Some Dir/App.exe"); + TEST_COMPARE(dirName,"E:/Some Dir"); + fileName = FileUtils::fileName("E:/Some Dir/App.exe"); + TEST_COMPARE(fileName,"App.exe"); + + dirName = FileUtils::dirname("C:/Users/kitteh/AppData/Local/Temp/MultiMC5-yidaaa/MultiMC.exe"); + TEST_COMPARE(dirName,"C:/Users/kitteh/AppData/Local/Temp/MultiMC5-yidaaa"); + fileName = FileUtils::fileName("C:/Users/kitteh/AppData/Local/Temp/MultiMC5-yidaaa/MultiMC.exe"); + TEST_COMPARE(fileName,"MultiMC.exe"); + +#else + // absolute paths + dirName = FileUtils::dirname("/home/tester/foo bar/baz"); + TEST_COMPARE(dirName,"/home/tester/foo bar"); + fileName = FileUtils::fileName("/home/tester/foo bar/baz"); + TEST_COMPARE(fileName,"baz"); +#endif + // current directory + dirName = FileUtils::dirname("App.exe"); + TEST_COMPARE(dirName,"."); + fileName = FileUtils::fileName("App.exe"); + TEST_COMPARE(fileName,"App.exe"); + + // relative paths + dirName = FileUtils::dirname("Foo/App.exe"); + TEST_COMPARE(dirName,"Foo"); + fileName = FileUtils::fileName("Foo/App.exe"); + TEST_COMPARE(fileName,"App.exe"); +} + +void TestFileUtils::testIsRelative() +{ +#ifdef PLATFORM_WINDOWS + TEST_COMPARE(FileUtils::isRelative("temp"),true); + TEST_COMPARE(FileUtils::isRelative("D:/temp"),false); + TEST_COMPARE(FileUtils::isRelative("d:/temp"),false); +#else + TEST_COMPARE(FileUtils::isRelative("/tmp"),false); + TEST_COMPARE(FileUtils::isRelative("tmp"),true); +#endif +} + +void TestFileUtils::testSymlinkFileExists() +{ +#ifdef PLATFORM_UNIX + const char* linkName = "link-name"; + FileUtils::removeFile(linkName); + FileUtils::createSymLink(linkName, "target-that-does-not-exist"); + TEST_COMPARE(FileUtils::fileExists(linkName), true); +#endif +} + +void TestFileUtils::testStandardDirs() +{ + std::string tmpDir = FileUtils::tempPath(); + TEST_COMPARE(FileUtils::fileExists(tmpDir.data()), true); +} + +int main(int,char**) +{ + TestList<TestFileUtils> tests; + tests.addTest(&TestFileUtils::testDirName); + tests.addTest(&TestFileUtils::testIsRelative); + tests.addTest(&TestFileUtils::testSymlinkFileExists); + tests.addTest(&TestFileUtils::testStandardDirs); + return TestUtils::runTest(tests); +} |