[test] update ui smoke test, add it to ci

merge-requests/137/head
kali kaneko (leap communications) 3 years ago committed by Ruben Pollan
parent 7ef5939159
commit ac30c6954a
No known key found for this signature in database
GPG Key ID: 52B8F5AC97A2DA86

@ -11,6 +11,7 @@ build_test:
script:
- make generate
- make test
- make test_ui
- make build
tags:
- linux

@ -18,7 +18,6 @@ SOURCES += \
gui/qjsonmodel.cpp \
gui/handlers.cpp
RESOURCES += gui/gui.qrc
HEADERS += \
gui/handlers.h \
@ -27,6 +26,8 @@ HEADERS += \
LIBS += -L../lib -lgoshim -lpthread
RESOURCES += gui/gui.qrc
DESTDIR = release
OBJECTS_DIR = release/.obj
MOC_DIR = release/.moc

@ -59,9 +59,13 @@ func InitializeBitmaskContext(provider string,
}
//export InitializeTestBitmaskContext
func InitializeTestBitmaskContext() {
opts := &backend.InitOpts{}
func InitializeTestBitmaskContext(provider string,
jsonPtr unsafe.Pointer, jsonLen C.int) {
json := C.GoBytes(jsonPtr, jsonLen)
opts := backend.InitOptsFromJSON(provider, string(json))
opts.DisableAutostart = true
opts.SkipLaunch = true
opts.StartVPN = "no"
backend.InitializeBitmaskContext(opts)
backend.EnableMockBackend()
}

@ -12,9 +12,10 @@ HEADERS += \
gui/qjsonmodel.h \
gui/handlers.h
LIBS += -L../lib -lgoshim -lpthread
RESOURCES += tests/tests.qrc
DESTDIR = build
OBJECTS_DIR = build/.obj
RCC_DIR = build/.rcc

@ -6,6 +6,23 @@
#include "../gui/qjsonmodel.h"
#include "../lib/libgoshim.h"
GoString _toGoStr(QString s)
{
const char *c = s.toUtf8().constData();
return (GoString){c, (long int)strlen(c)};
}
QString getAppName(QJsonValue info, QString provider) {
for (auto p: info.toArray()) {
QJsonObject item = p.toObject();
if (item["name"] == provider) {
return item["applicationName"].toString();
}
}
return "BitmaskVPN";
}
class Helper : public QObject
{
Q_OBJECT
@ -40,9 +57,24 @@ public slots:
QJsonModel *model = new QJsonModel;
Helper *helper = new Helper(this);
InitializeTestBitmaskContext();
/* load providers json */
QFile providerJson (":/providers.json");
providerJson.open(QIODevice::ReadOnly | QIODevice::Text);
QJsonModel *providers = new QJsonModel;
QByteArray providerJsonBytes = providerJson.readAll();
providers->loadJson(providerJsonBytes);
QJsonValue defaultProvider = providers->json().object().value("default");
QJsonValue providersInfo = providers->json().object().value("providers");
QString appName = getAppName(providersInfo, defaultProvider.toString());
InitializeTestBitmaskContext(
_toGoStr(defaultProvider.toString()),
(char*)providerJsonBytes.data(), providerJsonBytes.length());
ctx->setContextProperty("jsonModel", model);
ctx->setContextProperty("providers", providers);
/* helper for tests */
ctx->setContextProperty("helper", helper);
}
};

@ -21,8 +21,8 @@ TestCase {
function test_loadCtx() {
refresh()
compare(ctx.appName, "RiseupVPN", "can read appName?")
compare(ctx.tosURL, "https://riseup.net/tos", "can read tosURL?")
compare(ctx.appName, "DemoLibVPN", "can read appName?")
compare(ctx.tosURL, "https://libraryvpn.org/", "can read tosURL?")
compare(ctx.status, "off", "is initial status off?")
}
}

Loading…
Cancel
Save