Commit 8ea7ec79 authored by Ronan Abhamon's avatar Ronan Abhamon

feat(tests): add AssistantViewTest

parent 651d3103
...@@ -213,6 +213,8 @@ set(HEADERS ...@@ -213,6 +213,8 @@ set(HEADERS
) )
set(TESTS set(TESTS
src/tests/assistant-view/AssistantViewTest.cpp
src/tests/assistant-view/AssistantViewTest.hpp
src/tests/main-view/MainViewTest.cpp src/tests/main-view/MainViewTest.cpp
src/tests/main-view/MainViewTest.hpp src/tests/main-view/MainViewTest.hpp
src/tests/self-test/SelfTest.cpp src/tests/self-test/SelfTest.cpp
......
...@@ -20,6 +20,9 @@ ...@@ -20,6 +20,9 @@
* Author: Ronan Abhamon * Author: Ronan Abhamon
*/ */
#ifndef TEST_UTILS_H_
#define TEST_UTILS_H_
#include <QQuickItem> #include <QQuickItem>
#include <QQuickWindow> #include <QQuickWindow>
...@@ -42,3 +45,5 @@ namespace TestUtils { ...@@ -42,3 +45,5 @@ namespace TestUtils {
QQuickItem *getVirtualWindowContent (const QQuickWindow *window); QQuickItem *getVirtualWindowContent (const QQuickWindow *window);
} }
#endif // ifndef TEST_UTILS_H_
/*
* AssistantViewTest.cpp
* Copyright (C) 2017 Belledonne Communications, Grenoble, France
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* Created on: July 20, 2017
* Author: Ronan Abhamon
*/
#include <QQmlProperty>
#include <QQuickItem>
#include <QSignalSpy>
#include <QTest>
#include "../../app/App.hpp"
#include "AssistantViewTest.hpp"
// =============================================================================
void AssistantViewTest::showAssistantView () {
QQuickWindow *mainWindow = App::getInstance()->getMainWindow();
// Ensure home view is selected.
QQuickItem *contentLoader = mainWindow->findChild<QQuickItem *>("__contentLoader");
QVERIFY(contentLoader);
QTest::mouseClick(mainWindow, Qt::LeftButton, Qt::KeyboardModifiers(), QPoint(110, 100));
// Show assistant view.
QSignalSpy spyLoaderReady(contentLoader, SIGNAL(loaded()));
QTest::mouseClick(mainWindow, Qt::LeftButton, Qt::KeyboardModifiers(), QPoint(705, 485));
QVERIFY(spyLoaderReady.count() == 1);
QCOMPARE(
QQmlProperty::read(contentLoader, "source").toString(),
QStringLiteral("qrc:/ui/views/App/Main/Assistant.qml")
);
}
/*
* AssistantViewTest.hpp
* Copyright (C) 2017 Belledonne Communications, Grenoble, France
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* Created on: July 20, 2017
* Author: Ronan Abhamon
*/
#ifndef ASSISTANT_VIEW_TEST_H_
#define ASSISTANT_VIEW_TEST_H_
#include <QObject>
// =============================================================================
class AssistantViewTest : public QObject {
Q_OBJECT;
public:
AssistantViewTest () = default;
~AssistantViewTest () = default;
private slots:
void showAssistantView ();
};
#endif // ifndef ASSISTANT_VIEW_TEST_H_
...@@ -88,13 +88,15 @@ void MainViewTest::testMainMenuEntries_data () { ...@@ -88,13 +88,15 @@ void MainViewTest::testMainMenuEntries_data () {
} }
void MainViewTest::testMainMenuEntries () { void MainViewTest::testMainMenuEntries () {
QQuickItem *contentLoader = App::getInstance()->getMainWindow()->findChild<QQuickItem *>("__contentLoader"); QQuickWindow *mainWindow = App::getInstance()->getMainWindow();
QQuickItem *contentLoader = mainWindow->findChild<QQuickItem *>("__contentLoader");
QVERIFY(contentLoader); QVERIFY(contentLoader);
QSignalSpy spyLoaderReady(contentLoader, SIGNAL(loaded())); QSignalSpy spyLoaderReady(contentLoader, SIGNAL(loaded()));
QFETCH(int, y); QFETCH(int, y);
QTest::mouseClick(App::getInstance()->getMainWindow(), Qt::LeftButton, Qt::KeyboardModifiers(), QPoint(110, y)); QTest::mouseClick(mainWindow, Qt::LeftButton, Qt::KeyboardModifiers(), QPoint(110, y));
QVERIFY(spyLoaderReady.count() == 1); QVERIFY(spyLoaderReady.count() == 1);
QFETCH(QString, source); QFETCH(QString, source);
......
...@@ -20,6 +20,9 @@ ...@@ -20,6 +20,9 @@
* Author: Ronan Abhamon * Author: Ronan Abhamon
*/ */
#ifndef MAIN_VIEW_TEST_H_
#define MAIN_VIEW_TEST_H_
#include <QObject> #include <QObject>
// ============================================================================= // =============================================================================
...@@ -39,3 +42,5 @@ private slots: ...@@ -39,3 +42,5 @@ private slots:
void testMainMenuEntries_data (); void testMainMenuEntries_data ();
void testMainMenuEntries (); void testMainMenuEntries ();
}; };
#endif // ifndef MAIN_VIEW_TEST_H_
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
#include "../app/AppController.hpp" #include "../app/AppController.hpp"
#include "../utils/Utils.hpp" #include "../utils/Utils.hpp"
#include "assistant-view/AssistantViewTest.hpp"
#include "main-view/MainViewTest.hpp" #include "main-view/MainViewTest.hpp"
#include "self-test/SelfTest.hpp" #include "self-test/SelfTest.hpp"
...@@ -33,6 +34,7 @@ ...@@ -33,6 +34,7 @@
static QHash<QString, QObject *> initializeTests () { static QHash<QString, QObject *> initializeTests () {
QHash<QString, QObject *> hash; QHash<QString, QObject *> hash;
hash["assistant-view"] = new AssistantViewTest();
hash["main-view"] = new MainViewTest(); hash["main-view"] = new MainViewTest();
return hash; return hash;
} }
......
...@@ -20,6 +20,9 @@ ...@@ -20,6 +20,9 @@
* Author: Ronan Abhamon * Author: Ronan Abhamon
*/ */
#ifndef SELF_TEST_H_
#define SELF_TEST_H_
#include <QObject> #include <QObject>
// ============================================================================= // =============================================================================
...@@ -33,3 +36,5 @@ public: ...@@ -33,3 +36,5 @@ public:
private slots: private slots:
void checkAppStartup (); void checkAppStartup ();
}; };
#endif // ifndef SELF_TEST_H_
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment