146 lines
4.6 KiB
QML
146 lines
4.6 KiB
QML
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
*
|
|
* Copyright (C) 2013 - 2024, nymea GmbH
|
|
* Copyright (C) 2024 - 2025, chargebyte austria GmbH
|
|
*
|
|
* This file is part of nymea-app.
|
|
*
|
|
* nymea-app is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* nymea-app is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with nymea-app. If not, see <https://www.gnu.org/licenses/>.
|
|
*
|
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
|
|
import QtQuick 2.8
|
|
import QtQuick.Controls 2.1
|
|
import QtTest 1.0
|
|
import Mea 1.0
|
|
import "qrc:/ui"
|
|
|
|
TestCase {
|
|
id: root
|
|
name: "MathTests"
|
|
|
|
Mea {
|
|
id: mea
|
|
settings: Item {
|
|
property string lastConnectedHost: ""
|
|
property int viewMode: ApplicationWindow.Windowed
|
|
property bool returnToHome: false
|
|
property bool darkTheme: false
|
|
property string graphStyle: "bars"
|
|
property string style: "light"
|
|
}
|
|
}
|
|
|
|
// TODO: take those from cmdline args
|
|
property string serverIP: "10.10.10.40"
|
|
|
|
|
|
// TODO: move this to a common import location
|
|
// Keeps executing a given parameter-less function until it returns the given
|
|
// expected result or the timemout is reached (in which case a test failure
|
|
// is generated)
|
|
function tryCompareFunction(func, expectedResult, timeout, message) {
|
|
var timeSpent = 0
|
|
if (timeout === undefined)
|
|
timeout = 5000;
|
|
var success = false
|
|
var actualResult
|
|
while (timeSpent < timeout && !success) {
|
|
actualResult = func()
|
|
success = qtest_compareInternal(actualResult, expectedResult)
|
|
if (success === false) {
|
|
wait(50)
|
|
timeSpent += 50
|
|
}
|
|
}
|
|
|
|
var act = qtest_results.stringify(actualResult)
|
|
var exp = qtest_results.stringify(expectedResult)
|
|
compare(act, exp, message || "function returned unexpected result")
|
|
}
|
|
|
|
function settleUi() {
|
|
var pageStack = findChild(mea, "pageStack")
|
|
tryCompare(pageStack, "busy", true)
|
|
tryCompare(pageStack, "busy", false)
|
|
}
|
|
|
|
function initTestCase() {
|
|
settleUi();
|
|
}
|
|
|
|
function typeString(txt) {
|
|
for (var i = 0; i < txt.length; i++) {
|
|
keyClick(txt[i])
|
|
}
|
|
}
|
|
|
|
function test_discovery() {
|
|
// var discovery = findChild(mea, "discovery");
|
|
|
|
// tryCompareFunction(function() {
|
|
// for (var i = 0; i < discovery.discoveryModel.count; i++) {
|
|
// if (discovery.discoveryModel.get(i, DiscoveryModel.HostAddressRole) === serverIP) {
|
|
// return true;
|
|
// }
|
|
// }
|
|
// return false;
|
|
// }, true, 10000, "Failed to discover host " + serverIP + " in 10 seconds")
|
|
|
|
// var discoveryPage = findChild(mea, "discoveryPage");
|
|
// var delegate = null;
|
|
// for (var i = 0; i < discovery.discoveryModel.count; i++) {
|
|
// var tmp = findChild(discoveryPage, "discoveryDelegate" + i);
|
|
// print("have delegate", discoveryPage, tmp, tmp.hostAddress)
|
|
// if (tmp.hostAddress === serverIP) {
|
|
// delegate = tmp;
|
|
// }
|
|
// }
|
|
// verify(delegate !== null, "Could not find delegate for host " + serverIP)
|
|
|
|
// mouseClick(delegate)
|
|
|
|
// tryCompare(Engine.connection, "connected", true)
|
|
}
|
|
|
|
function test_manualConnection() {
|
|
var manualConnectItem = findChild(mea, "manualConnectMenuItem");
|
|
var headerMenuButton = findChild(mea, "headerMenuButton")
|
|
|
|
var connMenu = findChild(mea, "connectionMenu")
|
|
mouseClick(headerMenuButton)
|
|
tryCompare(connMenu, "visible", true)
|
|
mouseClick(manualConnectItem)
|
|
|
|
settleUi();
|
|
|
|
var manualConnectPage = findChild(mea, "manualConnectPage");
|
|
|
|
var addressInput = findChild(manualConnectPage, "addressTextInput")
|
|
mouseClick(addressInput)
|
|
|
|
typeString(serverIP)
|
|
keyClick(Qt.Key_Tab)
|
|
typeString("2223")
|
|
|
|
var connectButton = findChild(manualConnectPage, "connectButton");
|
|
mouseClick(connectButton)
|
|
|
|
tryCompare(Engine.connection, "connected", true)
|
|
}
|
|
}
|
|
|