diff options
author | Petr Mrázek <peterix@gmail.com> | 2013-12-02 00:55:24 +0100 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2013-12-02 00:55:24 +0100 |
commit | 6aa9bd0f77dcb5128167fae62e32aa5252fe85c6 (patch) | |
tree | 632994a61888929af9289927d338bd19a2b3f32c /mmc_updater/src/tests/TestUpdaterOptions.cpp | |
parent | 613699b3626aea750093ab7eaaeccaa28c0e87c6 (diff) | |
download | PrismLauncher-6aa9bd0f77dcb5128167fae62e32aa5252fe85c6.tar.gz PrismLauncher-6aa9bd0f77dcb5128167fae62e32aa5252fe85c6.tar.bz2 PrismLauncher-6aa9bd0f77dcb5128167fae62e32aa5252fe85c6.zip |
Renew the updater branch
Now with some actual consensus on what the updater will do!
Diffstat (limited to 'mmc_updater/src/tests/TestUpdaterOptions.cpp')
-rw-r--r-- | mmc_updater/src/tests/TestUpdaterOptions.cpp | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/mmc_updater/src/tests/TestUpdaterOptions.cpp b/mmc_updater/src/tests/TestUpdaterOptions.cpp new file mode 100644 index 00000000..a4cb7d33 --- /dev/null +++ b/mmc_updater/src/tests/TestUpdaterOptions.cpp @@ -0,0 +1,68 @@ +#include "TestUpdaterOptions.h" + +#include "FileUtils.h" +#include "Platform.h" +#include "TestUtils.h" +#include "UpdaterOptions.h" + +#include <string.h> +#include <stdlib.h> + +void TestUpdaterOptions::testOldFormatArgs() +{ + const int argc = 6; + char* argv[argc]; + argv[0] = strdup("updater"); + + std::string currentDir("CurrentDir="); + const char* appDir = 0; + + // CurrentDir is the path to the directory containing the main + // Mendeley Desktop binary, on Linux and Mac this differs from + // the root of the install directory +#ifdef PLATFORM_LINUX + appDir = "/tmp/path-to-app/lib/mendeleydesktop/libexec/"; + FileUtils::mkpath(appDir); +#elif defined(PLATFORM_MAC) + appDir = "/tmp/path-to-app/Contents/MacOS/"; + FileUtils::mkpath(appDir); +#elif defined(PLATFORM_WINDOWS) + appDir = "C:/path/to/app/"; +#endif + currentDir += appDir; + + argv[1] = strdup(currentDir.c_str()); + argv[2] = strdup("TempDir=/tmp/updater"); + argv[3] = strdup("UpdateScriptFileName=/tmp/updater/file_list.xml"); + argv[4] = strdup("AppFileName=/path/to/app/theapp"); + argv[5] = strdup("PID=123456"); + + UpdaterOptions options; + options.parse(argc,argv); + + TEST_COMPARE(options.mode,UpdateInstaller::Setup); +#ifdef PLATFORM_LINUX + TEST_COMPARE(options.installDir,"/tmp/path-to-app"); +#elif defined(PLATFORM_MAC) + // /tmp is a symlink to /private/tmp on Mac + TEST_COMPARE(options.installDir,"/private/tmp/path-to-app"); +#else + TEST_COMPARE(options.installDir,"C:/path/to/app/"); +#endif + TEST_COMPARE(options.packageDir,"/tmp/updater"); + TEST_COMPARE(options.scriptPath,"/tmp/updater/file_list.xml"); + TEST_COMPARE(options.waitPid,123456); + + for (int i=0; i < argc; i++) + { + free(argv[i]); + } +} + +int main(int,char**) +{ + TestList<TestUpdaterOptions> tests; + tests.addTest(&TestUpdaterOptions::testOldFormatArgs); + return TestUtils::runTest(tests); +} + |