105 lines
3.1 KiB
C++
105 lines
3.1 KiB
C++
/*
|
|
* 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();
|
|
}
|