summaryrefslogtreecommitdiffstats
path: root/mmc_updater/src/tests
diff options
context:
space:
mode:
Diffstat (limited to 'mmc_updater/src/tests')
-rw-r--r--mmc_updater/src/tests/CMakeLists.txt19
-rw-r--r--mmc_updater/src/tests/TestFileUtils.cpp33
-rw-r--r--mmc_updater/src/tests/TestParseScript.cpp2
-rw-r--r--mmc_updater/src/tests/test.manifest27
-rw-r--r--mmc_updater/src/tests/test.rc28
5 files changed, 99 insertions, 10 deletions
diff --git a/mmc_updater/src/tests/CMakeLists.txt b/mmc_updater/src/tests/CMakeLists.txt
index 1d62214e..79402245 100644
--- a/mmc_updater/src/tests/CMakeLists.txt
+++ b/mmc_updater/src/tests/CMakeLists.txt
@@ -29,13 +29,18 @@ endforeach()
# Add unit test binaries
macro(ADD_UPDATER_TEST CLASS)
- set(TEST_TARGET updater_${CLASS})
- add_executable(${TEST_TARGET} ${CLASS}.cpp)
- target_link_libraries(${TEST_TARGET} updatershared)
- add_test(NAME ${TEST_TARGET} COMMAND ${TEST_TARGET})
- if (APPLE)
- set_target_properties(${TEST_TARGET} PROPERTIES LINK_FLAGS "-framework Security -framework Cocoa")
- endif()
+ set(TEST_TARGET updater_${CLASS})
+ unset(srcs)
+ list(APPEND srcs ${CLASS}.cpp)
+ if (WIN32)
+ list(APPEND srcs ${CMAKE_CURRENT_SOURCE_DIR}/test.rc)
+ endif()
+ add_executable(${TEST_TARGET} ${srcs})
+ target_link_libraries(${TEST_TARGET} updatershared)
+ add_test(NAME ${TEST_TARGET} COMMAND ${TEST_TARGET})
+ if (APPLE)
+ set_target_properties(${TEST_TARGET} PROPERTIES LINK_FLAGS "-framework Security -framework Cocoa")
+ endif()
endmacro()
add_updater_test(TestParseScript)
diff --git a/mmc_updater/src/tests/TestFileUtils.cpp b/mmc_updater/src/tests/TestFileUtils.cpp
index 709acc5c..f8535a28 100644
--- a/mmc_updater/src/tests/TestFileUtils.cpp
+++ b/mmc_updater/src/tests/TestFileUtils.cpp
@@ -5,10 +5,39 @@
void TestFileUtils::testDirName()
{
+ std::string dirName;
+ std::string fileName;
+
#ifdef PLATFORM_WINDOWS
- std::string dirName = FileUtils::dirname("E:/Some Dir/App.exe");
- TEST_COMPARE(dirName,"E:/Some Dir/");
+ // 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()
diff --git a/mmc_updater/src/tests/TestParseScript.cpp b/mmc_updater/src/tests/TestParseScript.cpp
index f4453957..e8087b33 100644
--- a/mmc_updater/src/tests/TestParseScript.cpp
+++ b/mmc_updater/src/tests/TestParseScript.cpp
@@ -10,7 +10,7 @@ void TestParseScript::testParse()
{
UpdateScript script;
- script.parse("file_list.xml");
+ script.parse("mmc_updater/src/tests/file_list.xml");
TEST_COMPARE(script.isValid(),true);
}
diff --git a/mmc_updater/src/tests/test.manifest b/mmc_updater/src/tests/test.manifest
new file mode 100644
index 00000000..8b4dbb98
--- /dev/null
+++ b/mmc_updater/src/tests/test.manifest
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
+ <assemblyIdentity name="MultiMC.Test.0" type="win32" version="5.0.0.0" />
+ <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
+ <security>
+ <requestedPrivileges>
+ <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
+ </requestedPrivileges>
+ </security>
+ </trustInfo>
+ <dependency>
+ <dependentAssembly>
+ <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="x86" publicKeyToken="6595b64144ccf1df" language="*"/>
+ </dependentAssembly>
+ </dependency>
+ <description>Custom Minecraft launcher for managing multiple installs.</description>
+ <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
+ <application>
+ <!--The ID below indicates app support for Windows Vista -->
+ <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
+ <!--The ID below indicates app support for Windows 7 -->
+ <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
+ <!--The ID below indicates app support for Windows Developer Preview / Windows 8 -->
+ <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
+ </application>
+ </compatibility>
+</assembly> \ No newline at end of file
diff --git a/mmc_updater/src/tests/test.rc b/mmc_updater/src/tests/test.rc
new file mode 100644
index 00000000..a288dba6
--- /dev/null
+++ b/mmc_updater/src/tests/test.rc
@@ -0,0 +1,28 @@
+#ifndef WIN32_LEAN_AND_MEAN
+#define WIN32_LEAN_AND_MEAN
+#endif
+#include <windows.h>
+
+1 RT_MANIFEST "test.manifest"
+
+VS_VERSION_INFO VERSIONINFO
+FILEVERSION 1,0,0,0
+FILEOS VOS_NT_WINDOWS32
+FILETYPE VFT_APP
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "000004b0"
+ BEGIN
+ VALUE "CompanyName", "MultiMC Contributors"
+ VALUE "FileDescription", "Testcase"
+ VALUE "FileVersion", "1.0.0.0"
+ VALUE "ProductName", "MultiMC Testcase"
+ VALUE "ProductVersion", "5"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x0000, 0x04b0 // Unicode
+ END
+END