aboutsummaryrefslogtreecommitdiff
path: root/test/engines/wintermute
diff options
context:
space:
mode:
authorTobia Tesan2016-03-31 16:06:01 +0200
committerTobia Tesan2016-12-26 10:41:48 +0100
commite3fdd8d5fe5b739b28c67539bbdb0b596f9dacbe (patch)
tree7d78b3a9bb3aa5b3ea43893f061878c7dfa70606 /test/engines/wintermute
parentb981edd1f76ab303df3028e4134ee54c787cab5a (diff)
downloadscummvm-rg350-e3fdd8d5fe5b739b28c67539bbdb0b596f9dacbe.tar.gz
scummvm-rg350-e3fdd8d5fe5b739b28c67539bbdb0b596f9dacbe.tar.bz2
scummvm-rg350-e3fdd8d5fe5b739b28c67539bbdb0b596f9dacbe.zip
WINTERMUTE: Add tests for engines/wintermute/path_utils.h
Diffstat (limited to 'test/engines/wintermute')
-rw-r--r--test/engines/wintermute/path_utils.h200
1 files changed, 200 insertions, 0 deletions
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 <cxxtest/TestSuite.h>
+#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
+ );
+ }
+};