summaryrefslogtreecommitdiff
path: root/tests/test_ui.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_ui.cpp')
-rw-r--r--tests/test_ui.cpp34
1 files changed, 33 insertions, 1 deletions
diff --git a/tests/test_ui.cpp b/tests/test_ui.cpp
index f9f960a..7642157 100644
--- a/tests/test_ui.cpp
+++ b/tests/test_ui.cpp
@@ -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);
}
};