From 3e8bcc1cf6f3400fff9aa361ddc109bafe16d646 Mon Sep 17 00:00:00 2001 From: Jan Dalheimer Date: Sun, 15 Dec 2013 12:18:42 +0100 Subject: Unit tests for the DownloadUpdateTask class --- tests/tst_DownloadUpdateTask.cpp | 136 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 tests/tst_DownloadUpdateTask.cpp (limited to 'tests/tst_DownloadUpdateTask.cpp') diff --git a/tests/tst_DownloadUpdateTask.cpp b/tests/tst_DownloadUpdateTask.cpp new file mode 100644 index 00000000..69391466 --- /dev/null +++ b/tests/tst_DownloadUpdateTask.cpp @@ -0,0 +1,136 @@ +#include +#include + +#include "TestUtil.h" + +#include "logic/updater/DownloadUpdateTask.h" +#include "logic/updater/UpdateChecker.h" + +Q_DECLARE_METATYPE(DownloadUpdateTask::VersionFileList) + +bool operator==(const DownloadUpdateTask::FileSource &f1, const DownloadUpdateTask::FileSource &f2) +{ + return f1.type == f2.type && + f1.url == f2.url && + f1.compressionType == f2.compressionType; +} +bool operator==(const DownloadUpdateTask::VersionFileEntry &v1, const DownloadUpdateTask::VersionFileEntry &v2) +{ + return v1.path == v2.path && + v1.mode == v2.mode && + v1.sources == v2.sources && + v1.md5 == v2.md5; +} + +QDebug operator<<(QDebug dbg, const DownloadUpdateTask::FileSource &f) +{ + dbg.nospace() << "FileSource(type=" << f.type << " url=" << f.url << " comp=" << f.compressionType << ")"; + return dbg.maybeSpace(); +} +QDebug operator<<(QDebug dbg, const DownloadUpdateTask::VersionFileEntry &v) +{ + dbg.nospace() << "VersionFileEntry(path=" << v.path << " mode=" << v.mode << " md5=" << v.md5 << " sources=" << v.sources << ")"; + return dbg.maybeSpace(); +} + +class DownloadUpdateTaskTest : public QObject +{ + Q_OBJECT +private +slots: + void initTestCase() + { + + } + void cleanupTestCase() + { + + } + + void test_writeInstallScript() + { + DownloadUpdateTask task(QUrl::fromLocalFile(QDir::current().absoluteFilePath("tests/data/")).toString(), 0); + + DownloadUpdateTask::UpdateOperationList ops; + + ops << DownloadUpdateTask::UpdateOperation::CopyOp("sourceOne", "destOne", 0777) + << DownloadUpdateTask::UpdateOperation::CopyOp("MultiMC.exe", "M/u/l/t/i/M/C/e/x/e") + << DownloadUpdateTask::UpdateOperation::DeleteOp("toDelete.abc"); + + const QString script = QDir::temp().absoluteFilePath("MultiMCUpdateScript.xml"); + QVERIFY(task.writeInstallScript(ops, script)); + QCOMPARE(TestsInternal::readFileUtf8(script), MULTIMC_GET_TEST_FILE_UTF8("tests/data/tst_DownloadUpdateTask-test_writeInstallScript.xml")); + } + + void test_parseVersionInfo_data() + { + QTest::addColumn("data"); + QTest::addColumn("list"); + QTest::addColumn("error"); + QTest::addColumn("ret"); + + QTest::newRow("one") << MULTIMC_GET_TEST_FILE("tests/data/1.json") + << (DownloadUpdateTask::VersionFileList() + << DownloadUpdateTask::VersionFileEntry{"fileOne", 493, + (DownloadUpdateTask::FileSourceList() << DownloadUpdateTask::FileSource("http", "file://" + qApp->applicationDirPath() + "/tests/data/fileOneA")), + "9eb84090956c484e32cb6c08455a667b"} + << DownloadUpdateTask::VersionFileEntry{"fileTwo", 644, + (DownloadUpdateTask::FileSourceList() << DownloadUpdateTask::FileSource("http", "file://" + qApp->applicationDirPath() + "/tests/data/fileTwo")), + "38f94f54fa3eb72b0ea836538c10b043"} + << DownloadUpdateTask::VersionFileEntry{"fileThree", 750, + (DownloadUpdateTask::FileSourceList() << DownloadUpdateTask::FileSource("http", "file://" + qApp->applicationDirPath() + "/tests/data/fileThree")), + "f12df554b21e320be6471d7154130e70"}) + << QString() + << true; + QTest::newRow("two") << MULTIMC_GET_TEST_FILE("tests/data/2.json") + << (DownloadUpdateTask::VersionFileList() + << DownloadUpdateTask::VersionFileEntry{"fileOne", 493, + (DownloadUpdateTask::FileSourceList() << DownloadUpdateTask::FileSource("http", "file://" + qApp->applicationDirPath() + "/tests/data/fileOneB")), + "42915a71277c9016668cce7b82c6b577"} + << DownloadUpdateTask::VersionFileEntry{"fileTwo", 644, + (DownloadUpdateTask::FileSourceList() << DownloadUpdateTask::FileSource("http", "file://" + qApp->applicationDirPath() + "/tests/data/fileTwo")), + "38f94f54fa3eb72b0ea836538c10b043"}) + << QString() + << true; + } + void test_parseVersionInfo() + { + QFETCH(QByteArray, data); + QFETCH(DownloadUpdateTask::VersionFileList, list); + QFETCH(QString, error); + QFETCH(bool, ret); + + DownloadUpdateTask::VersionFileList outList; + QString outError; + bool outRet = DownloadUpdateTask("", 0).parseVersionInfo(data, &outList, &outError); + QCOMPARE(outRet, ret); + QCOMPARE(outList, list); + QCOMPARE(outError, error); + } + + void test_processFileLists() + { + // TODO create unit test for this + } + + void test_masterTest() + { + QLOG_INFO() << "#####################"; + MMC->m_version.build = 1; + MMC->m_version.channel = "develop"; + MMC->updateChecker()->setChannelListUrl(QUrl::fromLocalFile(QDir::current().absoluteFilePath("tests/data/channels.json")).toString()); + MMC->updateChecker()->setCurrentChannel("develop"); + + DownloadUpdateTask task(QUrl::fromLocalFile(QDir::current().absoluteFilePath("tests/data/")).toString(), 2); + + QSignalSpy succeededSpy(&task, SIGNAL(succeeded())); + + task.start(); + + QVERIFY(succeededSpy.wait()); + } +}; + +QTEST_GUILESS_MAIN_MULTIMC(DownloadUpdateTaskTest) + +#include "tst_DownloadUpdateTask.moc" -- cgit From 7f884a18a85eca8c1a395ab0e9d421f17a98f142 Mon Sep 17 00:00:00 2001 From: Jan Dalheimer Date: Sun, 15 Dec 2013 18:50:56 +0100 Subject: Finish unit tests for the DownloadUpdateTask class --- tests/tst_DownloadUpdateTask.cpp | 66 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 65 insertions(+), 1 deletion(-) (limited to 'tests/tst_DownloadUpdateTask.cpp') diff --git a/tests/tst_DownloadUpdateTask.cpp b/tests/tst_DownloadUpdateTask.cpp index 69391466..d96e4cf1 100644 --- a/tests/tst_DownloadUpdateTask.cpp +++ b/tests/tst_DownloadUpdateTask.cpp @@ -5,8 +5,10 @@ #include "logic/updater/DownloadUpdateTask.h" #include "logic/updater/UpdateChecker.h" +#include "depends/util/include/pathutils.h" Q_DECLARE_METATYPE(DownloadUpdateTask::VersionFileList) +Q_DECLARE_METATYPE(DownloadUpdateTask::UpdateOperation) bool operator==(const DownloadUpdateTask::FileSource &f1, const DownloadUpdateTask::FileSource &f2) { @@ -21,6 +23,13 @@ bool operator==(const DownloadUpdateTask::VersionFileEntry &v1, const DownloadUp v1.sources == v2.sources && v1.md5 == v2.md5; } +bool operator==(const DownloadUpdateTask::UpdateOperation &u1, const DownloadUpdateTask::UpdateOperation &u2) +{ + return u1.type == u2.type && + u1.file == u2.file && + u1.dest == u2.dest && + u1.mode == u2.mode; +} QDebug operator<<(QDebug dbg, const DownloadUpdateTask::FileSource &f) { @@ -32,6 +41,22 @@ QDebug operator<<(QDebug dbg, const DownloadUpdateTask::VersionFileEntry &v) dbg.nospace() << "VersionFileEntry(path=" << v.path << " mode=" << v.mode << " md5=" << v.md5 << " sources=" << v.sources << ")"; return dbg.maybeSpace(); } +QDebug operator<<(QDebug dbg, const DownloadUpdateTask::UpdateOperation::Type &t) +{ + switch (t) + { + case DownloadUpdateTask::UpdateOperation::OP_COPY: dbg << "OP_COPY"; break; + case DownloadUpdateTask::UpdateOperation::OP_DELETE: dbg << "OP_DELETE"; break; + case DownloadUpdateTask::UpdateOperation::OP_MOVE: dbg << "OP_MOVE"; break; + case DownloadUpdateTask::UpdateOperation::OP_CHMOD: dbg << "OP_CHMOD"; break; + } + return dbg.maybeSpace(); +} +QDebug operator<<(QDebug dbg, const DownloadUpdateTask::UpdateOperation &u) +{ + dbg.nospace() << "UpdateOperation(type=" << u.type << " file=" << u.file << " dest=" << u.dest << " mode=" << u.mode << ")"; + return dbg.maybeSpace(); +} class DownloadUpdateTaskTest : public QObject { @@ -108,9 +133,48 @@ slots: QCOMPARE(outError, error); } + void test_processFileLists_data() + { + QTest::addColumn("downloader"); + QTest::addColumn("currentVersion"); + QTest::addColumn("newVersion"); + QTest::addColumn("expectedOperations"); + + DownloadUpdateTask *downloader = new DownloadUpdateTask(QString(), -1); + + // update fileOne, keep fileTwo, remove fileThree + QTest::newRow("test 1") << downloader + << (DownloadUpdateTask::VersionFileList() + << DownloadUpdateTask::VersionFileEntry{QFINDTESTDATA("tests/data/fileOne"), 493, DownloadUpdateTask::FileSourceList() + << DownloadUpdateTask::FileSource("http", "http://host/path/fileOne-1"), "9eb84090956c484e32cb6c08455a667b"} + << DownloadUpdateTask::VersionFileEntry{QFINDTESTDATA("tests/data/fileTwo"), 644, DownloadUpdateTask::FileSourceList() + << DownloadUpdateTask::FileSource("http", "http://host/path/fileTwo-1"), "38f94f54fa3eb72b0ea836538c10b043"} + << DownloadUpdateTask::VersionFileEntry{QFINDTESTDATA("tests/data/fileThree"), 420, DownloadUpdateTask::FileSourceList() + << DownloadUpdateTask::FileSource("http", "http://host/path/fileThree-1"), "f12df554b21e320be6471d7154130e70"}) + << (DownloadUpdateTask::VersionFileList() + << DownloadUpdateTask::VersionFileEntry{QFINDTESTDATA("tests/data/fileOne"), 493, DownloadUpdateTask::FileSourceList() + << DownloadUpdateTask::FileSource("http", "http://host/path/fileOne-2"), "42915a71277c9016668cce7b82c6b577"} + << DownloadUpdateTask::VersionFileEntry{QFINDTESTDATA("tests/data/fileTwo"), 644, DownloadUpdateTask::FileSourceList() + << DownloadUpdateTask::FileSource("http", "http://host/path/fileTwo-2"), "38f94f54fa3eb72b0ea836538c10b043"}) + << (DownloadUpdateTask::UpdateOperationList() + << DownloadUpdateTask::UpdateOperation::DeleteOp(QFINDTESTDATA("tests/data/fileThree")) + << DownloadUpdateTask::UpdateOperation::CopyOp(PathCombine(downloader->updateFilesDir(), QFINDTESTDATA("tests/data/fileOne").replace("/", "_")), + QFINDTESTDATA("tests/data/fileOne"), 493)); + } void test_processFileLists() { - // TODO create unit test for this + QFETCH(DownloadUpdateTask *, downloader); + QFETCH(DownloadUpdateTask::VersionFileList, currentVersion); + QFETCH(DownloadUpdateTask::VersionFileList, newVersion); + QFETCH(DownloadUpdateTask::UpdateOperationList, expectedOperations); + + DownloadUpdateTask::UpdateOperationList operations; + + downloader->processFileLists(new NetJob("Dummy"), currentVersion, newVersion, operations); + qDebug() << (operations == expectedOperations); + qDebug() << operations; + qDebug() << expectedOperations; + QCOMPARE(operations, expectedOperations); } void test_masterTest() -- cgit From d6c71488b34a2854461feee3296c11568542ecbe Mon Sep 17 00:00:00 2001 From: Petr Mrázek Date: Tue, 17 Dec 2013 02:09:58 +0100 Subject: Some test madness --- tests/tst_DownloadUpdateTask.cpp | 194 +++++++++++++++++++++++++-------------- 1 file changed, 125 insertions(+), 69 deletions(-) (limited to 'tests/tst_DownloadUpdateTask.cpp') diff --git a/tests/tst_DownloadUpdateTask.cpp b/tests/tst_DownloadUpdateTask.cpp index d96e4cf1..764af935 100644 --- a/tests/tst_DownloadUpdateTask.cpp +++ b/tests/tst_DownloadUpdateTask.cpp @@ -7,54 +7,73 @@ #include "logic/updater/UpdateChecker.h" #include "depends/util/include/pathutils.h" +DownloadUpdateTask::FileSourceList encodeBaseFile(const char *suffix) +{ + auto base = qApp->applicationDirPath(); + QUrl localFile = QUrl::fromLocalFile(base + suffix); + QString localUrlString = localFile.toString(QUrl::FullyEncoded); + auto item = DownloadUpdateTask::FileSource("http", localUrlString); + return DownloadUpdateTask::FileSourceList({item}); +} + Q_DECLARE_METATYPE(DownloadUpdateTask::VersionFileList) Q_DECLARE_METATYPE(DownloadUpdateTask::UpdateOperation) -bool operator==(const DownloadUpdateTask::FileSource &f1, const DownloadUpdateTask::FileSource &f2) +bool operator==(const DownloadUpdateTask::FileSource &f1, + const DownloadUpdateTask::FileSource &f2) { - return f1.type == f2.type && - f1.url == f2.url && - f1.compressionType == f2.compressionType; + return f1.type == f2.type && f1.url == f2.url && f1.compressionType == f2.compressionType; } -bool operator==(const DownloadUpdateTask::VersionFileEntry &v1, const DownloadUpdateTask::VersionFileEntry &v2) +bool operator==(const DownloadUpdateTask::VersionFileEntry &v1, + const DownloadUpdateTask::VersionFileEntry &v2) { - return v1.path == v2.path && - v1.mode == v2.mode && - v1.sources == v2.sources && - v1.md5 == v2.md5; + return v1.path == v2.path && v1.mode == v2.mode && v1.sources == v2.sources && + v1.md5 == v2.md5; } -bool operator==(const DownloadUpdateTask::UpdateOperation &u1, const DownloadUpdateTask::UpdateOperation &u2) +bool operator==(const DownloadUpdateTask::UpdateOperation &u1, + const DownloadUpdateTask::UpdateOperation &u2) { - return u1.type == u2.type && - u1.file == u2.file && - u1.dest == u2.dest && - u1.mode == u2.mode; + return u1.type == u2.type && u1.file == u2.file && u1.dest == u2.dest && u1.mode == u2.mode; } QDebug operator<<(QDebug dbg, const DownloadUpdateTask::FileSource &f) { - dbg.nospace() << "FileSource(type=" << f.type << " url=" << f.url << " comp=" << f.compressionType << ")"; + dbg.nospace() << "FileSource(type=" << f.type << " url=" << f.url + << " comp=" << f.compressionType << ")"; return dbg.maybeSpace(); } + QDebug operator<<(QDebug dbg, const DownloadUpdateTask::VersionFileEntry &v) { - dbg.nospace() << "VersionFileEntry(path=" << v.path << " mode=" << v.mode << " md5=" << v.md5 << " sources=" << v.sources << ")"; + dbg.nospace() << "VersionFileEntry(path=" << v.path << " mode=" << v.mode + << " md5=" << v.md5 << " sources=" << v.sources << ")"; return dbg.maybeSpace(); } + QDebug operator<<(QDebug dbg, const DownloadUpdateTask::UpdateOperation::Type &t) { switch (t) { - case DownloadUpdateTask::UpdateOperation::OP_COPY: dbg << "OP_COPY"; break; - case DownloadUpdateTask::UpdateOperation::OP_DELETE: dbg << "OP_DELETE"; break; - case DownloadUpdateTask::UpdateOperation::OP_MOVE: dbg << "OP_MOVE"; break; - case DownloadUpdateTask::UpdateOperation::OP_CHMOD: dbg << "OP_CHMOD"; break; + case DownloadUpdateTask::UpdateOperation::OP_COPY: + dbg << "OP_COPY"; + break; + case DownloadUpdateTask::UpdateOperation::OP_DELETE: + dbg << "OP_DELETE"; + break; + case DownloadUpdateTask::UpdateOperation::OP_MOVE: + dbg << "OP_MOVE"; + break; + case DownloadUpdateTask::UpdateOperation::OP_CHMOD: + dbg << "OP_CHMOD"; + break; } return dbg.maybeSpace(); } + QDebug operator<<(QDebug dbg, const DownloadUpdateTask::UpdateOperation &u) { - dbg.nospace() << "UpdateOperation(type=" << u.type << " file=" << u.file << " dest=" << u.dest << " mode=" << u.mode << ")"; + dbg.nospace() << "UpdateOperation(type=" << u.type << " file=" << u.file + << " dest=" << u.dest << " mode=" << u.mode << ")"; return dbg.maybeSpace(); } @@ -65,26 +84,30 @@ private slots: void initTestCase() { - } void cleanupTestCase() { - } void test_writeInstallScript() { - DownloadUpdateTask task(QUrl::fromLocalFile(QDir::current().absoluteFilePath("tests/data/")).toString(), 0); + DownloadUpdateTask task( + QUrl::fromLocalFile(QDir::current().absoluteFilePath("tests/data/")).toString(), 0); DownloadUpdateTask::UpdateOperationList ops; ops << DownloadUpdateTask::UpdateOperation::CopyOp("sourceOne", "destOne", 0777) << DownloadUpdateTask::UpdateOperation::CopyOp("MultiMC.exe", "M/u/l/t/i/M/C/e/x/e") << DownloadUpdateTask::UpdateOperation::DeleteOp("toDelete.abc"); - +#if defined(Q_OS_WIN) + auto testFile = "tests/data/tst_DownloadUpdateTask-test_writeInstallScript_win32.xml"; +#else + auto testFile = "tests/data/tst_DownloadUpdateTask-test_writeInstallScript.xml"; +#endif const QString script = QDir::temp().absoluteFilePath("MultiMCUpdateScript.xml"); QVERIFY(task.writeInstallScript(ops, script)); - QCOMPARE(TestsInternal::readFileUtf8(script), MULTIMC_GET_TEST_FILE_UTF8("tests/data/tst_DownloadUpdateTask-test_writeInstallScript.xml")); + QCOMPARE(TestsInternal::readFileUtf8(script).replace(QRegExp("[\r\n]+"), "\n"), + MULTIMC_GET_TEST_FILE_UTF8(testFile).replace(QRegExp("[\r\n]+"), "\n")); } void test_parseVersionInfo_data() @@ -94,29 +117,34 @@ slots: QTest::addColumn("error"); QTest::addColumn("ret"); - QTest::newRow("one") << MULTIMC_GET_TEST_FILE("tests/data/1.json") - << (DownloadUpdateTask::VersionFileList() - << DownloadUpdateTask::VersionFileEntry{"fileOne", 493, - (DownloadUpdateTask::FileSourceList() << DownloadUpdateTask::FileSource("http", "file://" + qApp->applicationDirPath() + "/tests/data/fileOneA")), - "9eb84090956c484e32cb6c08455a667b"} - << DownloadUpdateTask::VersionFileEntry{"fileTwo", 644, - (DownloadUpdateTask::FileSourceList() << DownloadUpdateTask::FileSource("http", "file://" + qApp->applicationDirPath() + "/tests/data/fileTwo")), - "38f94f54fa3eb72b0ea836538c10b043"} - << DownloadUpdateTask::VersionFileEntry{"fileThree", 750, - (DownloadUpdateTask::FileSourceList() << DownloadUpdateTask::FileSource("http", "file://" + qApp->applicationDirPath() + "/tests/data/fileThree")), - "f12df554b21e320be6471d7154130e70"}) - << QString() - << true; - QTest::newRow("two") << MULTIMC_GET_TEST_FILE("tests/data/2.json") - << (DownloadUpdateTask::VersionFileList() - << DownloadUpdateTask::VersionFileEntry{"fileOne", 493, - (DownloadUpdateTask::FileSourceList() << DownloadUpdateTask::FileSource("http", "file://" + qApp->applicationDirPath() + "/tests/data/fileOneB")), - "42915a71277c9016668cce7b82c6b577"} - << DownloadUpdateTask::VersionFileEntry{"fileTwo", 644, - (DownloadUpdateTask::FileSourceList() << DownloadUpdateTask::FileSource("http", "file://" + qApp->applicationDirPath() + "/tests/data/fileTwo")), - "38f94f54fa3eb72b0ea836538c10b043"}) - << QString() - << true; + QTest::newRow("one") + << MULTIMC_GET_TEST_FILE("tests/data/1.json") + << (DownloadUpdateTask::VersionFileList() + << DownloadUpdateTask::VersionFileEntry{"fileOne", + 493, + encodeBaseFile("/tests/data/fileOneA"), + "9eb84090956c484e32cb6c08455a667b"} + << DownloadUpdateTask::VersionFileEntry{"fileTwo", + 644, + encodeBaseFile("/tests/data/fileTwo"), + "38f94f54fa3eb72b0ea836538c10b043"} + << DownloadUpdateTask::VersionFileEntry{"fileThree", + 750, + encodeBaseFile("/tests/data/fileThree"), + "f12df554b21e320be6471d7154130e70"}) + << QString() << true; + QTest::newRow("two") + << MULTIMC_GET_TEST_FILE("tests/data/2.json") + << (DownloadUpdateTask::VersionFileList() + << DownloadUpdateTask::VersionFileEntry{"fileOne", + 493, + encodeBaseFile("/tests/data/fileOneB"), + "42915a71277c9016668cce7b82c6b577"} + << DownloadUpdateTask::VersionFileEntry{"fileTwo", + 644, + encodeBaseFile("/tests/data/fileTwo"), + "38f94f54fa3eb72b0ea836538c10b043"}) + << QString() << true; } void test_parseVersionInfo() { @@ -143,23 +171,45 @@ slots: DownloadUpdateTask *downloader = new DownloadUpdateTask(QString(), -1); // update fileOne, keep fileTwo, remove fileThree - QTest::newRow("test 1") << downloader - << (DownloadUpdateTask::VersionFileList() - << DownloadUpdateTask::VersionFileEntry{QFINDTESTDATA("tests/data/fileOne"), 493, DownloadUpdateTask::FileSourceList() - << DownloadUpdateTask::FileSource("http", "http://host/path/fileOne-1"), "9eb84090956c484e32cb6c08455a667b"} - << DownloadUpdateTask::VersionFileEntry{QFINDTESTDATA("tests/data/fileTwo"), 644, DownloadUpdateTask::FileSourceList() - << DownloadUpdateTask::FileSource("http", "http://host/path/fileTwo-1"), "38f94f54fa3eb72b0ea836538c10b043"} - << DownloadUpdateTask::VersionFileEntry{QFINDTESTDATA("tests/data/fileThree"), 420, DownloadUpdateTask::FileSourceList() - << DownloadUpdateTask::FileSource("http", "http://host/path/fileThree-1"), "f12df554b21e320be6471d7154130e70"}) - << (DownloadUpdateTask::VersionFileList() - << DownloadUpdateTask::VersionFileEntry{QFINDTESTDATA("tests/data/fileOne"), 493, DownloadUpdateTask::FileSourceList() - << DownloadUpdateTask::FileSource("http", "http://host/path/fileOne-2"), "42915a71277c9016668cce7b82c6b577"} - << DownloadUpdateTask::VersionFileEntry{QFINDTESTDATA("tests/data/fileTwo"), 644, DownloadUpdateTask::FileSourceList() - << DownloadUpdateTask::FileSource("http", "http://host/path/fileTwo-2"), "38f94f54fa3eb72b0ea836538c10b043"}) - << (DownloadUpdateTask::UpdateOperationList() - << DownloadUpdateTask::UpdateOperation::DeleteOp(QFINDTESTDATA("tests/data/fileThree")) - << DownloadUpdateTask::UpdateOperation::CopyOp(PathCombine(downloader->updateFilesDir(), QFINDTESTDATA("tests/data/fileOne").replace("/", "_")), - QFINDTESTDATA("tests/data/fileOne"), 493)); + QTest::newRow("test 1") + << downloader << (DownloadUpdateTask::VersionFileList() + << DownloadUpdateTask::VersionFileEntry{ + "tests/data/fileOne", 493, + DownloadUpdateTask::FileSourceList() + << DownloadUpdateTask::FileSource( + "http", "http://host/path/fileOne-1"), + "9eb84090956c484e32cb6c08455a667b"} + << DownloadUpdateTask::VersionFileEntry{ + "tests/data/fileTwo", 644, + DownloadUpdateTask::FileSourceList() + << DownloadUpdateTask::FileSource( + "http", "http://host/path/fileTwo-1"), + "38f94f54fa3eb72b0ea836538c10b043"} + << DownloadUpdateTask::VersionFileEntry{ + "tests/data/fileThree", 420, + DownloadUpdateTask::FileSourceList() + << DownloadUpdateTask::FileSource( + "http", "http://host/path/fileThree-1"), + "f12df554b21e320be6471d7154130e70"}) + << (DownloadUpdateTask::VersionFileList() + << DownloadUpdateTask::VersionFileEntry{ + "tests/data/fileOne", 493, + DownloadUpdateTask::FileSourceList() + << DownloadUpdateTask::FileSource("http", + "http://host/path/fileOne-2"), + "42915a71277c9016668cce7b82c6b577"} + << DownloadUpdateTask::VersionFileEntry{ + "tests/data/fileTwo", 644, + DownloadUpdateTask::FileSourceList() + << DownloadUpdateTask::FileSource("http", + "http://host/path/fileTwo-2"), + "38f94f54fa3eb72b0ea836538c10b043"}) + << (DownloadUpdateTask::UpdateOperationList() + << DownloadUpdateTask::UpdateOperation::DeleteOp("tests/data/fileThree") + << DownloadUpdateTask::UpdateOperation::CopyOp( + PathCombine(downloader->updateFilesDir(), + QString("tests/data/fileOne").replace("/", "_")), + "tests/data/fileOne", 493)); } void test_processFileLists() { @@ -170,7 +220,8 @@ slots: DownloadUpdateTask::UpdateOperationList operations; - downloader->processFileLists(new NetJob("Dummy"), currentVersion, newVersion, operations); + downloader->processFileLists(new NetJob("Dummy"), currentVersion, newVersion, + operations); qDebug() << (operations == expectedOperations); qDebug() << operations; qDebug() << expectedOperations; @@ -182,10 +233,15 @@ slots: QLOG_INFO() << "#####################"; MMC->m_version.build = 1; MMC->m_version.channel = "develop"; - MMC->updateChecker()->setChannelListUrl(QUrl::fromLocalFile(QDir::current().absoluteFilePath("tests/data/channels.json")).toString()); + auto channels = + QUrl::fromLocalFile(QDir::current().absoluteFilePath("tests/data/channels.json")); + auto root = QUrl::fromLocalFile(QDir::current().absoluteFilePath("tests/data/")); + QLOG_DEBUG() << "channels: " << channels; + QLOG_DEBUG() << "root: " << root; + MMC->updateChecker()->setChannelListUrl(channels.toString()); MMC->updateChecker()->setCurrentChannel("develop"); - DownloadUpdateTask task(QUrl::fromLocalFile(QDir::current().absoluteFilePath("tests/data/")).toString(), 2); + DownloadUpdateTask task(root.toString(), 2); QSignalSpy succeededSpy(&task, SIGNAL(succeeded())); -- cgit From 0d7b411729b89c5cebc8baaf48bec46fb182536b Mon Sep 17 00:00:00 2001 From: Petr Mrázek Date: Wed, 25 Dec 2013 03:25:21 +0100 Subject: No more windows paths in tests. --- tests/tst_DownloadUpdateTask.cpp | 4 ---- 1 file changed, 4 deletions(-) (limited to 'tests/tst_DownloadUpdateTask.cpp') diff --git a/tests/tst_DownloadUpdateTask.cpp b/tests/tst_DownloadUpdateTask.cpp index 764af935..f47552fe 100644 --- a/tests/tst_DownloadUpdateTask.cpp +++ b/tests/tst_DownloadUpdateTask.cpp @@ -99,11 +99,7 @@ slots: ops << DownloadUpdateTask::UpdateOperation::CopyOp("sourceOne", "destOne", 0777) << DownloadUpdateTask::UpdateOperation::CopyOp("MultiMC.exe", "M/u/l/t/i/M/C/e/x/e") << DownloadUpdateTask::UpdateOperation::DeleteOp("toDelete.abc"); -#if defined(Q_OS_WIN) - auto testFile = "tests/data/tst_DownloadUpdateTask-test_writeInstallScript_win32.xml"; -#else auto testFile = "tests/data/tst_DownloadUpdateTask-test_writeInstallScript.xml"; -#endif const QString script = QDir::temp().absoluteFilePath("MultiMCUpdateScript.xml"); QVERIFY(task.writeInstallScript(ops, script)); QCOMPARE(TestsInternal::readFileUtf8(script).replace(QRegExp("[\r\n]+"), "\n"), -- cgit From 7652b3d64a63c587f520633364412345083210d4 Mon Sep 17 00:00:00 2001 From: Petr Mrázek Date: Sat, 28 Dec 2013 02:03:53 +0100 Subject: Various updater fixes Updater tests for path utils The updater now doesn't use splitpath on Windows (fixes problems with Windows XP) Fix up paths for the OSX updater - should now install the updates into the right place Fix translations install path - translation isntall and deploy should be fixed --- tests/tst_DownloadUpdateTask.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'tests/tst_DownloadUpdateTask.cpp') diff --git a/tests/tst_DownloadUpdateTask.cpp b/tests/tst_DownloadUpdateTask.cpp index f47552fe..3b2c6793 100644 --- a/tests/tst_DownloadUpdateTask.cpp +++ b/tests/tst_DownloadUpdateTask.cpp @@ -245,6 +245,25 @@ slots: QVERIFY(succeededSpy.wait()); } + + void test_OSXPathFixup() + { + QString path, pathOrig; + bool result; + // Proper OSX path + pathOrig = path = "MultiMC.app/Foo/Bar/Baz"; + qDebug() << "Proper OSX path: " << path; + result = DownloadUpdateTask::fixPathForOSX(path); + QCOMPARE(path, QString("../../Foo/Bar/Baz")); + QCOMPARE(result, true); + + // Bad OSX path + pathOrig = path = "translations/klingon.lol"; + qDebug() << "Bad OSX path: " << path; + result = DownloadUpdateTask::fixPathForOSX(path); + QCOMPARE(path, pathOrig); + QCOMPARE(result, false); + } }; QTEST_GUILESS_MAIN_MULTIMC(DownloadUpdateTaskTest) -- cgit