void WaitForWindowTest::testWaitEndedByModalDialog() { WaitForWindow waitForWindow("theName"); waitForWindow.setActive(true); //WaitFor* must be registered in order to be used with QSignalSpy int waitForStarType = qRegisterMetaType<WaitFor*>("WaitFor*"); QSignalSpy waitEndedSpy(&waitForWindow, SIGNAL(waitEnded(WaitFor*))); QDialog* modalDialog = new QDialog(mMainWindow); //krazy:exclude=qclasses modalDialog->setObjectName("theName"); QTimer timerAccept; timerAccept.setSingleShot(true); timerAccept.setInterval(1500); connect(&timerAccept, SIGNAL(timeout()), modalDialog, SLOT(accept())); //Check that the condition was met before closing the modal dialog to ensure //that the processing of events or signals is not halted due to being modal. queueAssertConditionMet(&waitForWindow, &waitEndedSpy, 500); timerAccept.start(); modalDialog->exec(); //krazy:exclude=crashy modalDialog->deleteLater(); QVERIFY(waitForWindow.conditionMet()); QCOMPARE(waitEndedSpy.count(), 1); QVariant argument = waitEndedSpy.at(0).at(0); QCOMPARE(argument.userType(), waitForStarType); QCOMPARE(qvariant_cast<WaitFor*>(argument), &waitForWindow); }
void WaitForWindowTest::testWaitEnded() { WaitForWindow waitForWindow("theName"); waitForWindow.setActive(true); //WaitFor* must be registered in order to be used with QSignalSpy int waitForStarType = qRegisterMetaType<WaitFor*>("WaitFor*"); QSignalSpy waitEndedSpy(&waitForWindow, SIGNAL(waitEnded(WaitFor*))); QWidget* otherWindow = new QWidget(mMainWindow); otherWindow->setObjectName("otherName"); otherWindow->setWindowFlags(Qt::Window); otherWindow->show(); otherWindow->deleteLater(); QVERIFY(!waitForWindow.conditionMet()); QCOMPARE(waitEndedSpy.count(), 0); QWidget* window = new QWidget(mMainWindow); window->setObjectName("theName"); window->setWindowFlags(Qt::Window); window->show(); window->deleteLater(); QVERIFY(waitForWindow.conditionMet()); QCOMPARE(waitEndedSpy.count(), 1); QVariant argument = waitEndedSpy.at(0).at(0); QCOMPARE(argument.userType(), waitForStarType); QCOMPARE(qvariant_cast<WaitFor*>(argument), &waitForWindow); }
void WaitForWindowTest::testSetActive() { WaitForWindow waitForWindow("theName"); waitForWindow.d->mConditionMet = true; waitForWindow.setActive(true); QVERIFY(waitForWindow.isActive()); QVERIFY(!waitForWindow.conditionMet()); }
GUI::MainWindow* TestMainWindow::getMainWindow() { if(mainWindow) { triggerAction("New"); QTabWidget* tabWidget = mainWindow->findChildren<QTabWidget*>().first(); tabWidget->setCurrentIndex(0); qApp->processEvents(); } else { mainWindow = new GUI::MainWindow(); originMemento = mainWindow->getMemento(); mainWindow->show(); QTest::qWaitForWindowActive(mainWindow); } waitForWindow(300); return mainWindow; }
void WaitForWindowTest::testWaitEndedNotActive() { WaitForWindow waitForWindow("theName"); qRegisterMetaType<WaitFor*>("WaitFor*"); QSignalSpy waitEndedSpy(&waitForWindow, SIGNAL(waitEnded(WaitFor*))); QWidget* window = new QWidget(mMainWindow); window->setObjectName("theName"); window->setWindowFlags(Qt::Window); window->show(); window->deleteLater(); QVERIFY(!waitForWindow.conditionMet()); QCOMPARE(waitEndedSpy.count(), 0); }
void WaitForWindowTest::testConstructor() { WaitForWindow waitForWindow("theName"); QVERIFY(!waitForWindow.isActive()); QVERIFY(!waitForWindow.conditionMet()); }