fix: remove tests for updater

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
This commit is contained in:
Sefa Eyeoglu 2022-07-06 18:12:56 +02:00
parent e210a4b244
commit ffa756ccee
No known key found for this signature in database
GPG Key ID: C10411294912A422
16 changed files with 0 additions and 357 deletions

View File

@ -159,11 +159,6 @@ set(UPDATE_SOURCES
updater/DownloadTask.cpp 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. # Backend for the news bar... there's usually no news.
set(NEWS_SOURCES set(NEWS_SOURCES
# News System # News System

View File

@ -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"

View File

@ -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"

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.