Skip to content

Commit

Permalink
WINTERMUTE: Add tests for engines/wintermute/path_utils.h
Browse files Browse the repository at this point in the history
  • Loading branch information
tobiatesan committed Dec 26, 2016
1 parent b981edd commit e3fdd8d
Show file tree
Hide file tree
Showing 2 changed files with 202 additions and 2 deletions.
200 changes: 200 additions & 0 deletions 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
);
}
};
4 changes: 2 additions & 2 deletions test/module.mk
Expand Up @@ -5,8 +5,8 @@
#
######################################################################

TESTS := $(srcdir)/test/common/*.h $(srcdir)/test/audio/*.h
TEST_LIBS := audio/libaudio.a common/libcommon.a
TESTS := $(srcdir)/test/common/*.h $(srcdir)/test/audio/*.h $(srcdir)/test/engines/wintermute/*.h
TEST_LIBS := audio/libaudio.a common/libcommon.a engines/wintermute/libwintermute.a

#
TEST_FLAGS := --runner=StdioPrinter --no-std --no-eh --include=$(srcdir)/test/cxxtest_mingw.h
Expand Down

0 comments on commit e3fdd8d

Please sign in to comment.