RabbitCommon v2.2.6
Loading...
Searching...
No Matches
TestGenerateDefaultJsonFile.cpp
1#include "TestGenerateDefaultJsonFile.h"
2#include <QApplication>
3#include <QtTest>
4
5#include "FrmUpdater.h"
6
7CTestGenerateDefaultJsonFile::CTestGenerateDefaultJsonFile(QObject *parent)
8 : QObject{parent}
9{}
10
11void CTestGenerateDefaultJsonFile::test_generate_update_json_file()
12{
13 CFrmUpdater updater;
14 QVERIFY(0 == updater.GenerateUpdateJson());
15}
16
17void CTestGenerateDefaultJsonFile::test_default_update_json_file()
18{
19 qDebug() << "CUnitTests::test_default_update_json_file()";
20 CFrmUpdater updater;
21 QFile file("update.json");
22 QVERIFY(file.exists());
23
25 QVERIFY(0 == updater.GetConfigFromFile("update.json", info));
26 QVERIFY(info.version.szVerion == updater.m_szCurrentVersion);
27 QVERIFY(info.version.szMinUpdateVersion == updater.m_szCurrentVersion);
28 QVERIFY(info.version.szInfomation == qApp->applicationName() + " " + updater.m_szCurrentVersion);
29 QVERIFY(info.version.szHome == "https://github.com/KangLin/" + qApp->applicationName());
30 QVERIFY(info.version.bForce == false);
31
32 CFrmUpdater::CONFIG_FILE conf_file = info.files[0];
33 QVERIFY(conf_file.szSystem == QSysInfo::productType());
34 QVERIFY(conf_file.szArchitecture == QSysInfo::buildCpuArchitecture());
35 QVERIFY(conf_file.szMd5sum.isEmpty());
36
37 QString szFileName;
38#if defined (Q_OS_WIN)
39 szFileName = qApp->applicationName() + "_" + updater.m_szCurrentVersion + "_Setup" + ".exe";
40#elif defined(Q_OS_ANDROID)
41 szFileName = qApp->applicationName().toLower() + "_" + updater.m_szCurrentVersion + ".apk";
42#elif defined(Q_OS_LINUX)
43 QFileInfo f(qApp->applicationFilePath());
44 if(f.suffix().compare("AppImage", Qt::CaseInsensitive))
45 {
46 QString szVersion = updater.m_szCurrentVersion;
47 szVersion.replace("v", "", Qt::CaseInsensitive);
48 szFileName = qApp->applicationName().toLower()
49 + "_" + szVersion + "_amd64.deb";
50 } else {
51 szFileName = qApp->applicationName()
52 + "_" + updater.m_szCurrentVersion + ".tar.gz";
53 }
54#endif
55 QVERIFY(conf_file.szFileName == szFileName);
56}
57
58int main(int argc, char* argv[])
59{
60 QApplication app(argc, argv);
61 QCoreApplication::setApplicationName("RabbitCommon");
63 // QTEST_MAIN() 会自动增加命令行参数。
64 // 所以这里我们直接用 QTest::qExec ,不传递参数给 QApplication
65 // See: https://doc.qt.io/qt-6/qtest-overview.html#qt-test-command-line-arguments
66 return QTest::qExec(&obj);
67}
Updater.
Definition FrmUpdater.h:70
int GenerateUpdateJson()
Generate update json configure file.
int GetConfigFromFile(const QString &szFile, CONFIG_INFO &conf)
json 格式: