Browse Source
- Updated MainWindowTest to catch this problem - Also implemented initial pass at SetupView unit testQGC4.4
7 changed files with 177 additions and 20 deletions
@ -0,0 +1,97 @@
@@ -0,0 +1,97 @@
|
||||
/*=====================================================================
|
||||
|
||||
QGroundControl Open Source Ground Control Station |
||||
|
||||
(c) 2009 - 2014 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
|
||||
|
||||
This file is part of the QGROUNDCONTROL project |
||||
|
||||
QGROUNDCONTROL 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. |
||||
|
||||
QGROUNDCONTROL 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 QGROUNDCONTROL. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
======================================================================*/ |
||||
|
||||
/// @file
|
||||
/// @author Don Gagne <don@thegagnes.com>
|
||||
|
||||
#include "SetupViewTest.h" |
||||
#include "MockLink.h" |
||||
#include "QGCMessageBox.h" |
||||
|
||||
UT_REGISTER_TEST(SetupViewTest) |
||||
|
||||
SetupViewTest::SetupViewTest(void) |
||||
{ |
||||
|
||||
} |
||||
|
||||
void SetupViewTest::init(void) |
||||
{ |
||||
UnitTest::init(); |
||||
|
||||
_mainWindow = MainWindow::_create(NULL); |
||||
Q_CHECK_PTR(_mainWindow); |
||||
} |
||||
|
||||
void SetupViewTest::cleanup(void) |
||||
{ |
||||
_mainWindow->close(); |
||||
delete _mainWindow; |
||||
|
||||
UnitTest::cleanup(); |
||||
} |
||||
|
||||
void SetupViewTest::_clickThrough_test(void) |
||||
{ |
||||
LinkManager* linkMgr = LinkManager::instance(); |
||||
Q_CHECK_PTR(linkMgr); |
||||
|
||||
MockLink* link = new MockLink(); |
||||
Q_CHECK_PTR(link); |
||||
link->setAutopilotType(MAV_AUTOPILOT_PX4); |
||||
LinkManager::instance()->addLink(link); |
||||
linkMgr->connectLink(link); |
||||
QTest::qWait(5000); // Give enough time for UI to settle and heartbeats to go through
|
||||
|
||||
// Find the Setup button and click it
|
||||
|
||||
QGCToolBar* toolbar = _mainWindow->findChild<QGCToolBar*>(); |
||||
Q_ASSERT(toolbar); |
||||
|
||||
QList<QToolButton*> buttons = toolbar->findChildren<QToolButton*>(); |
||||
QToolButton* setupButton = NULL; |
||||
foreach(QToolButton* button, buttons) { |
||||
if (button->text() == "Setup") { |
||||
setupButton = button; |
||||
break; |
||||
} |
||||
} |
||||
|
||||
Q_ASSERT(setupButton); |
||||
QTest::mouseClick(setupButton, Qt::LeftButton); |
||||
QTest::qWait(1000); |
||||
|
||||
// Click through all the setup buttons
|
||||
// FIXME: NYI
|
||||
|
||||
// On MainWindow close we should get a message box telling the user to disconnect first. Disconnect will then pop
|
||||
// the log file save dialog.
|
||||
|
||||
setExpectedMessageBox(QGCMessageBox::Yes); |
||||
setExpectedFileDialog(getSaveFileName, QStringList()); |
||||
|
||||
_mainWindow->close(); |
||||
QTest::qWait(1000); // Need to allow signals to move between threads
|
||||
checkExpectedMessageBox(); |
||||
checkExpectedFileDialog(); |
||||
} |
@ -0,0 +1,51 @@
@@ -0,0 +1,51 @@
|
||||
/*=====================================================================
|
||||
|
||||
QGroundControl Open Source Ground Control Station |
||||
|
||||
(c) 2009 - 2014 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
|
||||
|
||||
This file is part of the QGROUNDCONTROL project |
||||
|
||||
QGROUNDCONTROL 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. |
||||
|
||||
QGROUNDCONTROL 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 QGROUNDCONTROL. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
======================================================================*/ |
||||
|
||||
/// @file
|
||||
/// @author Don Gagne <don@thegagnes.com>
|
||||
|
||||
#ifndef SetupViewTest_H |
||||
#define SetupViewTest_H |
||||
|
||||
#include "UnitTest.h" |
||||
#include "MainWindow.h" |
||||
|
||||
/// Click through test for Setup View buttons
|
||||
class SetupViewTest : public UnitTest |
||||
{ |
||||
Q_OBJECT |
||||
|
||||
public: |
||||
SetupViewTest(void); |
||||
|
||||
private slots: |
||||
void init(void); |
||||
void cleanup(void); |
||||
|
||||
void _clickThrough_test(void); |
||||
|
||||
private: |
||||
MainWindow* _mainWindow; |
||||
}; |
||||
|
||||
#endif |
Loading…
Reference in new issue