fix: remove tests for updater
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
This commit is contained in:
parent
e210a4b244
commit
ffa756ccee
@ -159,11 +159,6 @@ set(UPDATE_SOURCES
|
||||
updater/DownloadTask.cpp
|
||||
)
|
||||
|
||||
ecm_add_test(updater/UpdateChecker_test.cpp LINK_LIBRARIES Launcher_logic Qt5::Test
|
||||
TEST_NAME UpdateChecker)
|
||||
ecm_add_test(updater/DownloadTask_test.cpp LINK_LIBRARIES Launcher_logic Qt5::Test
|
||||
TEST_NAME DownloadTask)
|
||||
|
||||
# Backend for the news bar... there's usually no news.
|
||||
set(NEWS_SOURCES
|
||||
# News System
|
||||
|
@ -1,204 +0,0 @@
|
||||
#include <QTest>
|
||||
#include <QSignalSpy>
|
||||
|
||||
#include "updater/GoUpdate.h"
|
||||
#include "updater/DownloadTask.h"
|
||||
#include "updater/UpdateChecker.h"
|
||||
#include <FileSystem.h>
|
||||
|
||||
using namespace GoUpdate;
|
||||
|
||||
FileSourceList encodeBaseFile(const char *suffix)
|
||||
{
|
||||
auto base = QDir::currentPath();
|
||||
QUrl localFile = QUrl::fromLocalFile(base + suffix);
|
||||
QString localUrlString = localFile.toString(QUrl::FullyEncoded);
|
||||
auto item = FileSource("http", localUrlString);
|
||||
return FileSourceList({item});
|
||||
}
|
||||
|
||||
Q_DECLARE_METATYPE(VersionFileList)
|
||||
Q_DECLARE_METATYPE(Operation)
|
||||
|
||||
QDebug operator<<(QDebug dbg, const FileSource &f)
|
||||
{
|
||||
dbg.nospace() << "FileSource(type=" << f.type << " url=" << f.url
|
||||
<< " comp=" << f.compressionType << ")";
|
||||
return dbg.maybeSpace();
|
||||
}
|
||||
|
||||
QDebug operator<<(QDebug dbg, const 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 Operation::Type &t)
|
||||
{
|
||||
switch (t)
|
||||
{
|
||||
case Operation::OP_REPLACE:
|
||||
dbg << "OP_COPY";
|
||||
break;
|
||||
case Operation::OP_DELETE:
|
||||
dbg << "OP_DELETE";
|
||||
break;
|
||||
}
|
||||
return dbg.maybeSpace();
|
||||
}
|
||||
|
||||
QDebug operator<<(QDebug dbg, const Operation &u)
|
||||
{
|
||||
dbg.nospace() << "Operation(type=" << u.type << " file=" << u.source
|
||||
<< " dest=" << u.destination << " mode=" << u.destinationMode << ")";
|
||||
return dbg.maybeSpace();
|
||||
}
|
||||
|
||||
class DownloadTaskTest : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
private
|
||||
slots:
|
||||
void initTestCase()
|
||||
{
|
||||
}
|
||||
void cleanupTestCase()
|
||||
{
|
||||
}
|
||||
|
||||
void test_parseVersionInfo_data()
|
||||
{
|
||||
QFile f1(QFINDTESTDATA("testdata/1.json"));
|
||||
f1.open(QFile::ReadOnly);
|
||||
QByteArray data1 = f1.readAll();
|
||||
f1.close();
|
||||
|
||||
QFile f2(QFINDTESTDATA("testdata/2.json"));
|
||||
f2.open(QFile::ReadOnly);
|
||||
QByteArray data2 = f2.readAll();
|
||||
f2.close();
|
||||
|
||||
QTest::addColumn<QByteArray>("data");
|
||||
QTest::addColumn<VersionFileList>("list");
|
||||
QTest::addColumn<QString>("error");
|
||||
QTest::addColumn<bool>("ret");
|
||||
|
||||
QTest::newRow("one")
|
||||
<< data1
|
||||
<< (VersionFileList()
|
||||
<< VersionFileEntry{"fileOne",
|
||||
493,
|
||||
encodeBaseFile("/data/fileOneA"),
|
||||
"9eb84090956c484e32cb6c08455a667b"}
|
||||
<< VersionFileEntry{"fileTwo",
|
||||
644,
|
||||
encodeBaseFile("/data/fileTwo"),
|
||||
"38f94f54fa3eb72b0ea836538c10b043"}
|
||||
<< VersionFileEntry{"fileThree",
|
||||
750,
|
||||
encodeBaseFile("/data/fileThree"),
|
||||
"f12df554b21e320be6471d7154130e70"})
|
||||
<< QString() << true;
|
||||
QTest::newRow("two")
|
||||
<< data2
|
||||
<< (VersionFileList()
|
||||
<< VersionFileEntry{"fileOne",
|
||||
493,
|
||||
encodeBaseFile("/data/fileOneB"),
|
||||
"42915a71277c9016668cce7b82c6b577"}
|
||||
<< VersionFileEntry{"fileTwo",
|
||||
644,
|
||||
encodeBaseFile("/data/fileTwo"),
|
||||
"38f94f54fa3eb72b0ea836538c10b043"})
|
||||
<< QString() << true;
|
||||
}
|
||||
void test_parseVersionInfo()
|
||||
{
|
||||
QFETCH(QByteArray, data);
|
||||
QFETCH(VersionFileList, list);
|
||||
QFETCH(QString, error);
|
||||
QFETCH(bool, ret);
|
||||
|
||||
VersionFileList outList;
|
||||
QString outError;
|
||||
bool outRet = parseVersionInfo(data, outList, outError);
|
||||
QCOMPARE(outRet, ret);
|
||||
QCOMPARE(outList, list);
|
||||
QCOMPARE(outError, error);
|
||||
}
|
||||
|
||||
void test_processFileLists_data()
|
||||
{
|
||||
QTest::addColumn<QString>("tempFolder");
|
||||
QTest::addColumn<VersionFileList>("currentVersion");
|
||||
QTest::addColumn<VersionFileList>("newVersion");
|
||||
QTest::addColumn<OperationList>("expectedOperations");
|
||||
|
||||
QTemporaryDir tempFolderObj;
|
||||
QString tempFolder = tempFolderObj.path();
|
||||
// update fileOne, keep fileTwo, remove fileThree
|
||||
QTest::newRow("test 1")
|
||||
<< tempFolder << (VersionFileList()
|
||||
<< VersionFileEntry{
|
||||
QFINDTESTDATA("testdata/fileOne"), 493,
|
||||
FileSourceList()
|
||||
<< FileSource(
|
||||
"http", "http://host/path/fileOne-1"),
|
||||
"9eb84090956c484e32cb6c08455a667b"}
|
||||
<< VersionFileEntry{
|
||||
QFINDTESTDATA("testdata/fileTwo"), 644,
|
||||
FileSourceList()
|
||||
<< FileSource(
|
||||
"http", "http://host/path/fileTwo-1"),
|
||||
"38f94f54fa3eb72b0ea836538c10b043"}
|
||||
<< VersionFileEntry{
|
||||
QFINDTESTDATA("testdata/fileThree"), 420,
|
||||
FileSourceList()
|
||||
<< FileSource(
|
||||
"http", "http://host/path/fileThree-1"),
|
||||
"f12df554b21e320be6471d7154130e70"})
|
||||
<< (VersionFileList()
|
||||
<< VersionFileEntry{
|
||||
QFINDTESTDATA("testdata/fileOne"), 493,
|
||||
FileSourceList()
|
||||
<< FileSource("http",
|
||||
"http://host/path/fileOne-2"),
|
||||
"42915a71277c9016668cce7b82c6b577"}
|
||||
<< VersionFileEntry{
|
||||
QFINDTESTDATA("testdata/fileTwo"), 644,
|
||||
FileSourceList()
|
||||
<< FileSource("http",
|
||||
"http://host/path/fileTwo-2"),
|
||||
"38f94f54fa3eb72b0ea836538c10b043"})
|
||||
<< (OperationList()
|
||||
<< Operation::DeleteOp(QFINDTESTDATA("testdata/fileThree"))
|
||||
<< Operation::CopyOp(
|
||||
FS::PathCombine(tempFolder,
|
||||
QFINDTESTDATA("data/fileOne").replace("/", "_")),
|
||||
QFINDTESTDATA("data/fileOne"), 493));
|
||||
}
|
||||
void test_processFileLists()
|
||||
{
|
||||
QFETCH(QString, tempFolder);
|
||||
QFETCH(VersionFileList, currentVersion);
|
||||
QFETCH(VersionFileList, newVersion);
|
||||
QFETCH(OperationList, expectedOperations);
|
||||
|
||||
OperationList operations;
|
||||
|
||||
shared_qobject_ptr<QNetworkAccessManager> network = new QNetworkAccessManager();
|
||||
processFileLists(currentVersion, newVersion, QDir::currentPath(), tempFolder, new NetJob("Dummy", network), operations);
|
||||
qDebug() << (operations == expectedOperations);
|
||||
qDebug() << operations;
|
||||
qDebug() << expectedOperations;
|
||||
QCOMPARE(operations, expectedOperations);
|
||||
}
|
||||
};
|
||||
|
||||
extern "C"
|
||||
{
|
||||
QTEST_GUILESS_MAIN(DownloadTaskTest)
|
||||
}
|
||||
|
||||
#include "DownloadTask_test.moc"
|
@ -1,148 +0,0 @@
|
||||
#include <QTest>
|
||||
#include <QSignalSpy>
|
||||
|
||||
#include "updater/UpdateChecker.h"
|
||||
|
||||
Q_DECLARE_METATYPE(UpdateChecker::ChannelListEntry)
|
||||
|
||||
bool operator==(const UpdateChecker::ChannelListEntry &e1, const UpdateChecker::ChannelListEntry &e2)
|
||||
{
|
||||
qDebug() << e1.url << "vs" << e2.url;
|
||||
return e1.id == e2.id &&
|
||||
e1.name == e2.name &&
|
||||
e1.description == e2.description &&
|
||||
e1.url == e2.url;
|
||||
}
|
||||
|
||||
QDebug operator<<(QDebug dbg, const UpdateChecker::ChannelListEntry &c)
|
||||
{
|
||||
dbg.nospace() << "ChannelListEntry(id=" << c.id << " name=" << c.name << " description=" << c.description << " url=" << c.url << ")";
|
||||
return dbg.maybeSpace();
|
||||
}
|
||||
|
||||
QString findTestDataUrl(const char *file)
|
||||
{
|
||||
return QUrl::fromLocalFile(QFINDTESTDATA(file)).toString();
|
||||
}
|
||||
|
||||
class UpdateCheckerTest : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
private
|
||||
slots:
|
||||
void initTestCase()
|
||||
{
|
||||
|
||||
}
|
||||
void cleanupTestCase()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void tst_ChannelListParsing_data()
|
||||
{
|
||||
QTest::addColumn<QString>("channel");
|
||||
QTest::addColumn<QString>("channelUrl");
|
||||
QTest::addColumn<bool>("hasChannels");
|
||||
QTest::addColumn<bool>("valid");
|
||||
QTest::addColumn<QList<UpdateChecker::ChannelListEntry> >("result");
|
||||
|
||||
QTest::newRow("garbage")
|
||||
<< QString()
|
||||
<< findTestDataUrl("testdata/garbageChannels.json")
|
||||
<< false
|
||||
<< false
|
||||
<< QList<UpdateChecker::ChannelListEntry>();
|
||||
QTest::newRow("errors")
|
||||
<< QString()
|
||||
<< findTestDataUrl("testdata/errorChannels.json")
|
||||
<< false
|
||||
<< true
|
||||
<< QList<UpdateChecker::ChannelListEntry>();
|
||||
QTest::newRow("no channels")
|
||||
<< QString()
|
||||
<< findTestDataUrl("testdata/noChannels.json")
|
||||
<< false
|
||||
<< true
|
||||
<< QList<UpdateChecker::ChannelListEntry>();
|
||||
QTest::newRow("one channel")
|
||||
<< QString("develop")
|
||||
<< findTestDataUrl("testdata/oneChannel.json")
|
||||
<< true
|
||||
<< true
|
||||
<< (QList<UpdateChecker::ChannelListEntry>() << UpdateChecker::ChannelListEntry{"develop", "Develop", "The channel called \"develop\"", "http://example.org/stuff"});
|
||||
QTest::newRow("several channels")
|
||||
<< QString("develop")
|
||||
<< findTestDataUrl("testdata/channels.json")
|
||||
<< true
|
||||
<< true
|
||||
<< (QList<UpdateChecker::ChannelListEntry>()
|
||||
<< UpdateChecker::ChannelListEntry{"develop", "Develop", "The channel called \"develop\"", findTestDataUrl("testdata")}
|
||||
<< UpdateChecker::ChannelListEntry{"stable", "Stable", "It's stable at least", findTestDataUrl("testdata")}
|
||||
<< UpdateChecker::ChannelListEntry{"42", "The Channel", "This is the channel that is going to answer all of your questions", "https://dent.me/tea"});
|
||||
}
|
||||
void tst_ChannelListParsing()
|
||||
{
|
||||
|
||||
QFETCH(QString, channel);
|
||||
QFETCH(QString, channelUrl);
|
||||
QFETCH(bool, hasChannels);
|
||||
QFETCH(bool, valid);
|
||||
QFETCH(QList<UpdateChecker::ChannelListEntry>, result);
|
||||
|
||||
shared_qobject_ptr<QNetworkAccessManager> nam = new QNetworkAccessManager();
|
||||
UpdateChecker checker(nam, channelUrl, channel, 0);
|
||||
|
||||
QSignalSpy channelListLoadedSpy(&checker, SIGNAL(channelListLoaded()));
|
||||
QVERIFY(channelListLoadedSpy.isValid());
|
||||
|
||||
checker.updateChanList(false);
|
||||
|
||||
if (valid)
|
||||
{
|
||||
QVERIFY(channelListLoadedSpy.wait());
|
||||
QCOMPARE(channelListLoadedSpy.size(), 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
channelListLoadedSpy.wait();
|
||||
QCOMPARE(channelListLoadedSpy.size(), 0);
|
||||
}
|
||||
|
||||
QCOMPARE(checker.hasChannels(), hasChannels);
|
||||
QCOMPARE(checker.getChannelList(), result);
|
||||
}
|
||||
|
||||
void tst_UpdateChecking()
|
||||
{
|
||||
QString channel = "develop";
|
||||
QString channelUrl = findTestDataUrl("testdata/channels.json");
|
||||
int currentBuild = 2;
|
||||
|
||||
shared_qobject_ptr<QNetworkAccessManager> nam = new QNetworkAccessManager();
|
||||
UpdateChecker checker(nam, channelUrl, channel, currentBuild);
|
||||
|
||||
QSignalSpy updateAvailableSpy(&checker, SIGNAL(updateAvailable(GoUpdate::Status)));
|
||||
QVERIFY(updateAvailableSpy.isValid());
|
||||
QSignalSpy channelListLoadedSpy(&checker, SIGNAL(channelListLoaded()));
|
||||
QVERIFY(channelListLoadedSpy.isValid());
|
||||
|
||||
checker.updateChanList(false);
|
||||
QVERIFY(channelListLoadedSpy.wait());
|
||||
|
||||
qDebug() << "CWD:" << QDir::current().absolutePath();
|
||||
checker.m_channels[0].url = findTestDataUrl("testdata/");
|
||||
checker.checkForUpdate(channel, false);
|
||||
|
||||
QVERIFY(updateAvailableSpy.wait());
|
||||
|
||||
auto status = updateAvailableSpy.first().first().value<GoUpdate::Status>();
|
||||
QCOMPARE(checker.m_channels[0].url, status.newRepoUrl);
|
||||
QCOMPARE(3, status.newVersionId);
|
||||
QCOMPARE(currentBuild, status.currentVersionId);
|
||||
}
|
||||
};
|
||||
|
||||
QTEST_GUILESS_MAIN(UpdateCheckerTest)
|
||||
|
||||
#include "UpdateChecker_test.moc"
|
BIN
launcher/updater/testdata/1.json
vendored
BIN
launcher/updater/testdata/1.json
vendored
Binary file not shown.
BIN
launcher/updater/testdata/2.json
vendored
BIN
launcher/updater/testdata/2.json
vendored
Binary file not shown.
BIN
launcher/updater/testdata/channels.json
vendored
BIN
launcher/updater/testdata/channels.json
vendored
Binary file not shown.
BIN
launcher/updater/testdata/errorChannels.json
vendored
BIN
launcher/updater/testdata/errorChannels.json
vendored
Binary file not shown.
BIN
launcher/updater/testdata/fileOneA
vendored
BIN
launcher/updater/testdata/fileOneA
vendored
Binary file not shown.
BIN
launcher/updater/testdata/fileOneB
vendored
BIN
launcher/updater/testdata/fileOneB
vendored
Binary file not shown.
BIN
launcher/updater/testdata/fileThree
vendored
BIN
launcher/updater/testdata/fileThree
vendored
Binary file not shown.
BIN
launcher/updater/testdata/fileTwo
vendored
BIN
launcher/updater/testdata/fileTwo
vendored
Binary file not shown.
BIN
launcher/updater/testdata/garbageChannels.json
vendored
BIN
launcher/updater/testdata/garbageChannels.json
vendored
Binary file not shown.
BIN
launcher/updater/testdata/index.json
vendored
BIN
launcher/updater/testdata/index.json
vendored
Binary file not shown.
BIN
launcher/updater/testdata/noChannels.json
vendored
BIN
launcher/updater/testdata/noChannels.json
vendored
Binary file not shown.
BIN
launcher/updater/testdata/oneChannel.json
vendored
BIN
launcher/updater/testdata/oneChannel.json
vendored
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user