blob: e267114bf3688837a109811a250be5bd9f3026a0 [file] [log] [blame]
/*
* Copyright 2014 Canonical Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <iostream>
#include <gtest/gtest.h>
#include <QtCore>
#include <QApplication>
#include <QtQuick>
#include "../src/cplugin.h"
#include "../src/cordova_config.hpp"
#include "../src/cordova.h"
TEST(CordovaInternal, format_double_int_int) {
auto t = std::make_tuple(1.1, 2, 3);
auto doc = QJsonDocument().fromJson(QString("[ %1 ]").arg(CordovaInternal::tuple2str(t)).toUtf8());
EXPECT_EQ(doc.isArray(), true);
EXPECT_EQ(doc.array().size(), 3);
EXPECT_EQ(doc.array().at(1).toInt(), 2);
EXPECT_EQ(doc.array().at(2).toInt(), 3);
EXPECT_EQ(doc.array().at(0).toDouble(), 1.1);
}
TEST(CordovaInternal, format_obj_bool) {
QVariantMap obj;
obj.insert("a", 1);
obj.insert("b", 2);
obj.insert("c", "string");
auto t = std::make_tuple(obj, true);
auto doc = QJsonDocument().fromJson(QString("[ %1 ]").arg(CordovaInternal::tuple2str(t)).toUtf8());
EXPECT_EQ(doc.isArray(), true);
EXPECT_EQ(doc.array().size(), 2);
EXPECT_EQ(doc.array().at(1).toBool(), true);
auto o = doc.array().at(0).toObject();
EXPECT_EQ(o.size(), 3);
EXPECT_EQ(o.value("a").toInt(), 1);
EXPECT_EQ(o.value("b").toInt(), 2);
EXPECT_EQ(o.value("c").toString(), "string");
}
TEST(CordovaInternal, config) {
CordovaInternal::Config config("../xml/config.xml");
EXPECT_EQ(config.content(), "index.html");
EXPECT_EQ(config.appId(), "io.cordova.helloCordova");
EXPECT_EQ(config.appVersion(), "2.0.0");
EXPECT_EQ(config.fullscreen(), false);
}
TEST(Cordova, WhiteList) {
int argc = 0;
QApplication app(argc, NULL);
QQmlApplicationEngine view;
view.addImportPath(QDir("./cordova_ubuntu/").absolutePath());
QDir wwwDir("../tests/data/www");
QDir workingDir = QApplication::applicationDirPath();
view.rootContext()->setContextProperty("www", wwwDir.absolutePath());
view.load(QUrl(QString("%1/cordova_ubuntu/qml/main.qml").arg(workingDir.absolutePath())));
QTimer timer;
timer.connect(&timer, &QTimer::timeout, [&]() {
QApplication::quit();
});
timer.start(1000);
EXPECT_EQ(app.exec(), 0);
}
TEST(Cordova, loadURLSupport) {
CordovaInternal::Config config("config.xml");
QDir www("www");
QQuickItem item;;
Cordova *cordova = new Cordova(www, &item, NULL);
EXPECT_TRUE(cordova != NULL);
EXPECT_STREQ("http://192.168.1.35:8100",
cordova->mainUrl().toLatin1().data());
}
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}