From 29b90408942c423806bf8e4e6fdbf7a65a84521a Mon Sep 17 00:00:00 2001 From: Ronan Abhamon Date: Wed, 19 Jul 2017 14:52:29 +0200 Subject: [PATCH] feat(tests/main-view): add a `testMainMenuEntries` method --- src/tests/main-view/MainViewTest.cpp | 32 ++++++++++++++++++++++++++++ src/tests/main-view/MainViewTest.hpp | 3 +++ ui/views/App/Main/MainWindow.qml | 2 ++ 3 files changed, 37 insertions(+) diff --git a/src/tests/main-view/MainViewTest.cpp b/src/tests/main-view/MainViewTest.cpp index 4547aebd0..5c691dc76 100644 --- a/src/tests/main-view/MainViewTest.cpp +++ b/src/tests/main-view/MainViewTest.cpp @@ -20,6 +20,8 @@ * Author: Ronan Abhamon */ +#include +#include #include #include "../../app/App.hpp" @@ -42,6 +44,8 @@ void MainViewTest::showAboutPopup () { QVERIFY(!TestUtils::getVirtualWindowContent(mainWindow)); } +// ----------------------------------------------------------------------------- + void MainViewTest::showManageAccountsPopup () { QQuickWindow *mainWindow = App::getInstance()->getMainWindow(); @@ -55,6 +59,8 @@ void MainViewTest::showManageAccountsPopup () { QVERIFY(!TestUtils::getVirtualWindowContent(mainWindow)); } +// ----------------------------------------------------------------------------- + void MainViewTest::showSettingsWindow () { App *app = App::getInstance(); @@ -68,3 +74,29 @@ void MainViewTest::showSettingsWindow () { TestUtils::executeKeySequence(settingsWindow, QKeySequence::Close); QVERIFY(!settingsWindow->isVisible()); } + +// ----------------------------------------------------------------------------- + +void MainViewTest::testMainMenuEntries_data () { + QTest::addColumn("y"); + QTest::addColumn("source"); + + QTest::newRow("home view 1") << 100 << "qrc:/ui/views/App/Main/Home.qml"; + QTest::newRow("contacts view 1") << 150 << "qrc:/ui/views/App/Main/Contacts.qml"; + QTest::newRow("home view 2") << 100 << "qrc:/ui/views/App/Main/Home.qml"; + QTest::newRow("contacts view 2") << 150 << "qrc:/ui/views/App/Main/Contacts.qml"; +} + +void MainViewTest::testMainMenuEntries () { + QQuickItem *contentLoader = App::getInstance()->getMainWindow()->findChild("__contentLoader"); + QVERIFY(contentLoader); + + QSignalSpy spyLoaderReady(contentLoader, SIGNAL(loaded())); + + QFETCH(int, y); + QTest::mouseClick(App::getInstance()->getMainWindow(), Qt::LeftButton, Qt::KeyboardModifiers(), QPoint(110, y)); + QVERIFY(spyLoaderReady.count() == 1); + + QFETCH(QString, source); + QCOMPARE(QQmlProperty::read(contentLoader, "source").toString(), source); +} diff --git a/src/tests/main-view/MainViewTest.hpp b/src/tests/main-view/MainViewTest.hpp index 2f35b89b3..cf00d9bec 100644 --- a/src/tests/main-view/MainViewTest.hpp +++ b/src/tests/main-view/MainViewTest.hpp @@ -35,4 +35,7 @@ private slots: void showAboutPopup (); void showManageAccountsPopup (); void showSettingsWindow (); + + void testMainMenuEntries_data (); + void testMainMenuEntries (); }; diff --git a/ui/views/App/Main/MainWindow.qml b/ui/views/App/Main/MainWindow.qml index 931d3cc23..b3a01fc22 100644 --- a/ui/views/App/Main/MainWindow.qml +++ b/ui/views/App/Main/MainWindow.qml @@ -231,6 +231,8 @@ ApplicationWindow { Loader { id: contentLoader + objectName: '__contentLoader' + Layout.fillHeight: true Layout.fillWidth: true