From e3fdd8d5fe5b739b28c67539bbdb0b596f9dacbe Mon Sep 17 00:00:00 2001 From: Tobia Tesan Date: Thu, 31 Mar 2016 16:06:01 +0200 Subject: WINTERMUTE: Add tests for engines/wintermute/path_utils.h --- test/engines/wintermute/path_utils.h | 200 +++++++++++++++++++++++++++++++++++ 1 file changed, 200 insertions(+) create mode 100644 test/engines/wintermute/path_utils.h (limited to 'test/engines/wintermute') diff --git a/test/engines/wintermute/path_utils.h b/test/engines/wintermute/path_utils.h new file mode 100644 index 0000000000..c3f1776231 --- /dev/null +++ b/test/engines/wintermute/path_utils.h @@ -0,0 +1,200 @@ +#include +#include "engines/wintermute/utils/path_util.h" +/** + * Test suite for the functions in engines/wintermute/utils/path_util.h + * + * NOTE: This is not a prescription; + * this was not written by the original engine author; + * this was not written by the engine porter. + * + * It might, however, help to spot variations in behavior that are introduced by modifications + */ + +class PathUtilTestSuite : public CxxTest::TestSuite { + public: + const Common::String unixPath; + const Common::String unixCapPath; + const Common::String windowsPath; + const Common::String windowsCapPath; + const Common::String emptyString; + const Common::String dualExtPath; + const Common::String manyExtPath; + const Common::String mixedSlashesPath1; + const Common::String mixedSlashesPath2; + const Common::String unixRelativePath; + const Common::String windowsRelativePath; + PathUtilTestSuite () : + unixPath("/some/file.ext"), + unixCapPath("/SOME/FILE.EXT"), + windowsPath("C:\\some\\file.ext"), + windowsCapPath("C:\\SOME\\FILE.EXT"), + emptyString(""), + dualExtPath("/some/file.tar.gz"), + manyExtPath("/some/file.tar.bz2.gz.zip"), + mixedSlashesPath1("C:\\this/IS_REALLY\\weird.exe"), + mixedSlashesPath2("/pretty\\weird/indeed.txt"), + unixRelativePath("some/file.ext"), + windowsRelativePath("some\\file.ext") + {} + void test_getdirectoryname() { + TS_ASSERT_EQUALS( + Wintermute::PathUtil::getDirectoryName(unixPath), + Common::String("/some/") + ); + TS_ASSERT_EQUALS( + Wintermute::PathUtil::getDirectoryName(unixCapPath), + Common::String("/SOME/") + ); + TS_ASSERT_EQUALS( + Wintermute::PathUtil::getDirectoryName(windowsPath), + Common::String("C:\\some\\") + ); + TS_ASSERT_EQUALS( + Wintermute::PathUtil::getDirectoryName(windowsCapPath), + Common::String("C:\\SOME\\") + ); + } + + void test_getfilename() { + TS_ASSERT_EQUALS( + Wintermute::PathUtil::getFileName(unixPath), + Common::String("file.ext") + ); + TS_ASSERT_EQUALS( + Wintermute::PathUtil::getFileName(unixCapPath), + Common::String("FILE.EXT") + ); + TS_ASSERT_EQUALS( + Wintermute::PathUtil::getFileName(windowsPath), + Common::String("file.ext") + ); + TS_ASSERT_EQUALS( + Wintermute::PathUtil::getFileName(windowsCapPath), + Common::String("FILE.EXT") + ); + TS_ASSERT_EQUALS( + Wintermute::PathUtil::getFileName(unixRelativePath), + Common::String("file.ext") + ); + TS_ASSERT_EQUALS( + Wintermute::PathUtil::getFileName(windowsRelativePath), + Common::String("file.ext") + ); + } + + void test_getextension() { + TS_ASSERT_EQUALS( + Wintermute::PathUtil::getExtension(windowsPath), + Common::String("ext") + ); + TS_ASSERT_EQUALS( + Wintermute::PathUtil::getExtension(windowsCapPath), + Common::String("EXT") + ); + TS_ASSERT_EQUALS( + Wintermute::PathUtil::getExtension(dualExtPath), + Common::String("gz") + ); + TS_ASSERT_EQUALS( + Wintermute::PathUtil::getExtension(manyExtPath), + Common::String("zip") + ); + TS_ASSERT_EQUALS( + Wintermute::PathUtil::getExtension(unixRelativePath), + Common::String("ext") + ); + TS_ASSERT_EQUALS( + Wintermute::PathUtil::getExtension(windowsRelativePath), + Common::String("ext") + ); + } + + void test_getfilenamewithoutextension() { + TS_ASSERT_EQUALS( + Wintermute::PathUtil::getFileNameWithoutExtension(windowsPath), + Common::String("file") + ); + TS_ASSERT_EQUALS( + Wintermute::PathUtil::getFileNameWithoutExtension(windowsCapPath), + Common::String("FILE") + ); + TS_ASSERT_EQUALS( + Wintermute::PathUtil::getFileNameWithoutExtension(dualExtPath), + Common::String("file.tar") + ); + TS_ASSERT_EQUALS( + Wintermute::PathUtil::getFileNameWithoutExtension(manyExtPath), + Common::String("file.tar.bz2.gz") + ); + TS_ASSERT_EQUALS( + Wintermute::PathUtil::getFileNameWithoutExtension(unixRelativePath), + Common::String("file") + ); + TS_ASSERT_EQUALS( + Wintermute::PathUtil::getFileNameWithoutExtension(windowsRelativePath), + Common::String("file") + ); + } + + void test_combine_identity() { + TS_ASSERT_EQUALS( + Wintermute::PathUtil::getDirectoryName(windowsPath) + + Wintermute::PathUtil::getFileNameWithoutExtension(windowsPath) + + "." + + Wintermute::PathUtil::getExtension(windowsPath), + windowsPath + ); + TS_ASSERT_EQUALS( + Wintermute::PathUtil::getDirectoryName(windowsCapPath) + + Wintermute::PathUtil::getFileNameWithoutExtension(windowsCapPath) + + "." + + Wintermute::PathUtil::getExtension(windowsCapPath), + windowsCapPath + ); + TS_ASSERT_EQUALS( + Wintermute::PathUtil::getDirectoryName(unixCapPath) + + Wintermute::PathUtil::getFileNameWithoutExtension(unixCapPath) + + "." + + Wintermute::PathUtil::getExtension(unixCapPath), + unixCapPath + ); + TS_ASSERT_EQUALS( + Wintermute::PathUtil::getDirectoryName(manyExtPath) + + Wintermute::PathUtil::getFileNameWithoutExtension(manyExtPath) + + "." + + Wintermute::PathUtil::getExtension(manyExtPath), + manyExtPath + ); + } + + void test_normalize() { + TS_ASSERT_EQUALS( + Wintermute::PathUtil::normalizeFileName(windowsCapPath), + Common::String("c:/some/file.ext") + ); + TS_ASSERT_EQUALS( + Wintermute::PathUtil::normalizeFileName(windowsPath), + Common::String("c:/some/file.ext") + ); + TS_ASSERT_EQUALS( + Wintermute::PathUtil::normalizeFileName(mixedSlashesPath1), + Common::String("c:/this/is_really/weird.exe") + ); + TS_ASSERT_EQUALS( + Wintermute::PathUtil::normalizeFileName(mixedSlashesPath2), + Common::String("/pretty/weird/indeed.txt") + ); + TS_ASSERT_EQUALS( + Wintermute::PathUtil::normalizeFileName(emptyString), + emptyString + ); + TS_ASSERT_EQUALS( + Wintermute::PathUtil::normalizeFileName(unixRelativePath), + unixRelativePath + ); + TS_ASSERT_EQUALS( + Wintermute::PathUtil::normalizeFileName(windowsRelativePath), + unixRelativePath // NOT windows + ); + } +}; -- cgit v1.2.3