void Test_KCompletion::sortedOrder() { KCompletion completion; completion.setSoundsEnabled(false); QSignalSpy spy1(&completion, SIGNAL(match(QString))); QSignalSpy spy3(&completion, SIGNAL(multipleMatches())); completion.setOrder(KCompletion::Sorted); QVERIFY(completion.order() == KCompletion::Sorted); completion.setItems(strings); QVERIFY(completion.items().count() == 4); completion.setCompletionMode(KGlobalSettings::CompletionShell); QCOMPARE(completion.makeCompletion("ca"), QString("carp")); QVERIFY(spy1.count() == 1); QCOMPARE(spy1.takeFirst().at(0).toString(), QString("carp")); QVERIFY(spy3.count() == 1); spy3.takeFirst(); QSignalSpy spy2(&completion, SIGNAL(matches(QStringList))); completion.makeCompletion("ca"); QCOMPARE(spy2.count(), 1); QVERIFY(spy3.count() == 0); // shouldn't be signaled on 2nd call QStringList matches = spy2.takeFirst().at(0).toStringList(); QVERIFY(matches.count() == 2); QCOMPARE(matches[0], carp); QCOMPARE(matches[1], carpet); completion.setCompletionMode(KGlobalSettings::CompletionAuto); QCOMPARE(completion.makeCompletion("ca"), carp); QVERIFY(spy1.count() == 1); QCOMPARE(spy1.takeFirst().at(0).toString(), carp); }
void medBoolGroupParameterTestObject::testShowHideDelete() { medBoolGroupParameter* boolParameter = new medBoolGroupParameter(m_name); m_widget = boolParameter->getWidget(); m_pushButtonGroup = boolParameter->getPushButtonGroup(); m_checkBoxGroup = boolParameter->getCheckBoxGroup(); m_radioButtonGroup = boolParameter->getRadioButtonGroup(); QSignalSpy spy1(m_pushButtonGroup, SIGNAL(destroyed())); QSignalSpy spy2(m_checkBoxGroup, SIGNAL(destroyed())); QSignalSpy spy3(m_radioButtonGroup, SIGNAL(destroyed())); QSignalSpy spy4(m_widget, SIGNAL(destroyed())); boolParameter->show(); QVERIFY(m_widget->isVisible()); QVERIFY(m_pushButtonGroup->isVisible()); QVERIFY(m_checkBoxGroup->isVisible()); QVERIFY(m_radioButtonGroup->isVisible()); boolParameter->hide(); QVERIFY(!m_widget->isVisible()); QVERIFY(!m_pushButtonGroup->isVisible()); QVERIFY(!m_checkBoxGroup->isVisible()); QVERIFY(!m_radioButtonGroup->isVisible()); delete boolParameter; QCOMPARE(spy1.count(), 1); QCOMPARE(spy2.count(), 1); QCOMPARE(spy3.count(), 1); QCOMPARE(spy4.count(), 1); m_pushButtonGroup = NULL; m_widget = NULL; m_radioButtonGroup = NULL; m_checkBoxGroup = NULL; }
void tst_QGraphicsTransform3D::rotation3D() { QGraphicsRotation3D rot1; QVERIFY(rot1.origin() == QVector3D(0, 0, 0)); QVERIFY(rot1.axis() == QVector3D(0, 0, 1)); QCOMPARE(rot1.angle(), qreal(0.0f)); QSignalSpy spy1(&rot1, SIGNAL(originChanged())); QSignalSpy spy2(&rot1, SIGNAL(axisChanged())); QSignalSpy spy3(&rot1, SIGNAL(angleChanged())); rot1.setOrigin(QVector3D(1, 2, 3)); rot1.setAxis(QVector3D(4, -5, 6)); rot1.setAngle(45.0f); QVERIFY(rot1.origin() == QVector3D(1, 2, 3)); QVERIFY(rot1.axis() == QVector3D(4, -5, 6)); QCOMPARE(rot1.angle(), qreal(45.0f)); QCOMPARE(spy1.size(), 1); QCOMPARE(spy2.size(), 1); QCOMPARE(spy3.size(), 1); QMatrix4x4 m1; rot1.applyTo(&m1); QMatrix4x4 m2; m2.translate(1, 2, 3); m2.rotate(45.0f, QVector3D(4, -5, 6)); m2.translate(-1, -2, -3); QVERIFY(isSameMatrix(m1, m2)); }
void tst_QPluginLoader::deleteinstanceOnUnload() { for (int pass = 0; pass < 2; ++pass) { QPluginLoader loader1; loader1.setFileName( sys_qualifiedLibraryName("theplugin")); //a plugin if (pass == 0) loader1.load(); // not recommended, instance() should do the job. PluginInterface *instance1 = qobject_cast<PluginInterface*>(loader1.instance()); QVERIFY(instance1); QCOMPARE(instance1->pluginName(), QLatin1String("Plugin ok")); QPluginLoader loader2; loader2.setFileName( sys_qualifiedLibraryName("theplugin")); //a plugin if (pass == 0) loader2.load(); // not recommended, instance() should do the job. PluginInterface *instance2 = qobject_cast<PluginInterface*>(loader2.instance()); QCOMPARE(instance2->pluginName(), QLatin1String("Plugin ok")); QSignalSpy spy1(loader1.instance(), SIGNAL(destroyed())); QSignalSpy spy2(loader2.instance(), SIGNAL(destroyed())); if (pass == 0) { QCOMPARE(loader2.unload(), false); // refcount not reached 0, not really unloaded QCOMPARE(spy1.count(), 0); QCOMPARE(spy2.count(), 0); } QCOMPARE(instance1->pluginName(), QLatin1String("Plugin ok")); QCOMPARE(instance2->pluginName(), QLatin1String("Plugin ok")); QVERIFY(loader1.unload()); // refcount reached 0, did really unload QCOMPARE(spy1.count(), 1); QCOMPARE(spy2.count(), 1); } }
/*! Test for signal timeout */ void UnitTestCxeTestUtils::testWaitForSignal2() { QTimer t2; QSignalSpy spy2(&t2, SIGNAL(timeout())); t2.setSingleShot(true); t2.start(1000); QVERIFY(!CxeTestUtils::waitForSignal(spy2, 100)); }
void HandleSignalRouterUnitTests::routingSignals() { // Setup: // Get the object to be tested handleSignalRouter = HandleSignalRouter::instance(); // Start spying the mock handles QSignalSpy spy1(mockHandleOne, SIGNAL(onValueChangedCalled(QString))); QSignalSpy spy2(mockHandleTwo, SIGNAL(onValueChangedCalled(QString))); QSignalSpy spy3(mockHandleThree, SIGNAL(onValueChangedCalled(QString))); QSignalSpy sspy1(mockHandleOne, SIGNAL(setSubscribeFinishedCalled(Provider *, QString))); QSignalSpy sspy2(mockHandleTwo, SIGNAL(setSubscribeFinishedCalled(Provider *, QString))); QSignalSpy sspy3(mockHandleThree, SIGNAL(setSubscribeFinishedCalled(Provider *, QString))); // Test: // Send a signal to the HandleSignalRouter handleSignalRouter->onValueChanged("Property.One"); handleSignalRouter->onSubscribeFinished(0, "Property.One"); // Expected results: // The mockHandleOne.setValue was called QCOMPARE(spy1.count(), 1); QList<QVariant> parameters = spy1.takeFirst(); QCOMPARE(parameters.size(), 1); QCOMPARE(parameters.at(0), QVariant("Property.One")); QCOMPARE(sspy1.count(), 1); parameters = sspy1.takeFirst(); QCOMPARE(parameters.size(), 2); QCOMPARE(parameters.at(1), QVariant("Property.One")); // The setValue of other mock handles were not called QCOMPARE(spy2.count(), 0); QCOMPARE(spy3.count(), 0); QCOMPARE(sspy2.count(), 0); QCOMPARE(sspy3.count(), 0); // Test: // Send a signal to the HandleSignalRouter handleSignalRouter->onValueChanged("Property.Two"); handleSignalRouter->onSubscribeFinished(0, "Property.Two"); // Expected results: // The mockHandleTwo.setValue was called QCOMPARE(spy2.count(), 1); QCOMPARE(sspy2.count(), 1); parameters = spy2.takeFirst(); QCOMPARE(parameters.size(), 1); QCOMPARE(parameters.at(0), QVariant("Property.Two")); parameters = sspy2.takeFirst(); QCOMPARE(parameters.size(), 2); QCOMPARE(parameters.at(1), QVariant("Property.Two")); // The setValue of other mock handles were not called QCOMPARE(spy1.count(), 0); QCOMPARE(spy3.count(), 0); QCOMPARE(sspy1.count(), 0); QCOMPARE(sspy3.count(), 0); }
//----------------------------------------------------------------------------- int ctkButtonGroupEventTranslatorPlayerTest1(int argc, char * argv [] ) { QApplication app(argc, argv); QString xmlDirectory = CTK_SOURCE_DIR "/Libs/Widgets/Testing/Cpp/"; // ------------------------ ctkEventTranslatorPlayerWidget etpWidget; pqTestUtility* testUtility = new pqTestUtility(&etpWidget); etpWidget.setTestUtility(testUtility); // Test case 1 QWidget widget(0); QVBoxLayout* layout = new QVBoxLayout(&widget); QPushButton* button1 = new QPushButton("button 1", &widget); QPushButton* button2 = new QPushButton("button 2", &widget); QPushButton* button3 = new QPushButton("button 3", &widget); layout->addWidget(button1); layout->addWidget(button2); layout->addWidget(button3); widget.setLayout(layout); button1->setCheckable(true); button2->setCheckable(true); button3->setCheckable(false); ctkButtonGroup* buttonGroup = new ctkButtonGroup(&widget); buttonGroup->addButton(button1); buttonGroup->addButton(button2); buttonGroup->addButton(button3); QSignalSpy spy1(button1, SIGNAL(clicked())); QSignalSpy spy2(button2, SIGNAL(clicked())); QSignalSpy spy3(button3, SIGNAL(clicked())); Spy1 = &spy1; Spy2 = &spy2; Spy3 = &spy3; etpWidget.addTestCase(&widget, xmlDirectory + "ctkButtonGroupEventTranslatorPlayerTest1.xml", &checkFinalWidgetState); // ------------------------ if (argc < 2 || QString(argv[1]) != "-I") { QTimer::singleShot(0, &etpWidget, SLOT(play())); } etpWidget.show(); return app.exec(); }
void tst_QGraphicsTransform3D::scale3D() { QGraphicsScale3D scale1; QVERIFY(scale1.origin() == QVector3D(0, 0, 0)); QVERIFY(scale1.scaleVector() == QVector3D(1, 1, 1)); QCOMPARE(scale1.xScale(), qreal(1.0f)); QCOMPARE(scale1.yScale(), qreal(1.0f)); QCOMPARE(scale1.zScale(), qreal(1.0f)); QCOMPARE(scale1.scale(), qreal(1.0f)); QSignalSpy spy1(&scale1, SIGNAL(originChanged())); QSignalSpy spy2(&scale1, SIGNAL(scaleChanged())); scale1.setOrigin(QVector3D(1, 2, 3)); scale1.setScaleVector(QVector3D(4, -6, 0.5f)); QVERIFY(scale1.origin() == QVector3D(1, 2, 3)); QVERIFY(scale1.scaleVector() == QVector3D(4, -6, 0.5f)); QCOMPARE(scale1.xScale(), qreal(4.0f)); QCOMPARE(scale1.yScale(), qreal(-6.0f)); QCOMPARE(scale1.zScale(), qreal(0.5f)); QCOMPARE(scale1.scale(), qreal(-0.5f)); // Average of scale factors. QCOMPARE(spy1.size(), 1); QCOMPARE(spy2.size(), 1); QMatrix4x4 m1; scale1.applyTo(&m1); QMatrix4x4 m2; m2.translate(1, 2, 3); m2.scale(QVector3D(4, -6, 0.5f)); m2.translate(-1, -2, -3); QVERIFY(isSameMatrix(m1, m2)); scale1.setXScale(20); QCOMPARE(spy2.size(), 2); scale1.setYScale(-4); QCOMPARE(spy2.size(), 3); scale1.setZScale(42); QCOMPARE(spy2.size(), 4); QVERIFY(scale1.scaleVector() == QVector3D(20, -4, 42)); QCOMPARE(scale1.scale(), qreal((20 - 4 + 42) / 3.0)); scale1.setScale(33); QCOMPARE(spy2.size(), 5); QVERIFY(scale1.scaleVector() == QVector3D(33, 33, 33)); QCOMPARE(scale1.scale(), qreal(33)); QVERIFY(scale1.origin() == QVector3D(1, 2, 3)); QCOMPARE(spy1.size(), 1); }
void Doc_Test::cleanup() { QSignalSpy spy1(m_doc, SIGNAL(clearing())); QSignalSpy spy2(m_doc, SIGNAL(cleared())); m_doc->clearContents(); QCOMPARE(spy1.size(), 1); QCOMPARE(spy2.size(), 1); QCOMPARE(m_doc->functions().size(), 0); QCOMPARE(m_doc->fixtures().size(), 0); QCOMPARE(m_doc->fixtureGroups().size(), 0); QCOMPARE(m_doc->m_latestFunctionId, quint32(0)); QCOMPARE(m_doc->m_latestFixtureId, quint32(0)); QCOMPARE(m_doc->m_latestFixtureGroupId, quint32(0)); QCOMPARE(m_doc->m_addresses.size(), 0); }
//----------------------------------------------------------------------------- int ctkMenuButtonEventTranslatorPlayerTest1(int argc, char * argv [] ) { QApplication app(argc, argv); QString xmlDirectory = CTK_SOURCE_DIR "/Libs/Widgets/Testing/Cpp/"; // ------------------------ ctkEventTranslatorPlayerWidget etpWidget; pqTestUtility* testUtility = new pqTestUtility(&etpWidget); etpWidget.setTestUtility(testUtility); // Test case 1 QWidget* widget = new QWidget(0); ctkMenuButton* menuButton = new ctkMenuButton("ctkMenuButton", widget); QMenu* menu = new QMenu("menu", menuButton); QAction* action1 = new QAction("extra choice 1", menu); QAction* action2 = new QAction("extra choice 2", menu); QAction* action3 = new QAction("extra choice 3", menu); menu->addAction(action1); menu->addAction(action2); menu->addAction(action3); QSignalSpy spy1(action1, SIGNAL(triggered())); QSignalSpy spy2(action2, SIGNAL(triggered())); QSignalSpy spy3(action3, SIGNAL(triggered())); Spy1 = &spy1; Spy2 = &spy2; Spy3 = &spy3; menuButton->setMenu(menu); etpWidget.addTestCase(widget, xmlDirectory + "ctkMenuButtonEventTranslatorPlayerTest1.xml", &checkFinalWidgetState); // ------------------------ if (!app.arguments().contains("-I")) { QTimer::singleShot(0, &etpWidget, SLOT(play())); } etpWidget.show(); return app.exec(); }
void TestQPrefCloudStorage::test_signals() { QSignalSpy spy1(qPrefCloudStorage::instance(), &qPrefCloudStorage::cloud_base_urlChanged); QSignalSpy spy2(qPrefCloudStorage::instance(), &qPrefCloudStorage::cloud_storage_emailChanged); QSignalSpy spy3(qPrefCloudStorage::instance(), &qPrefCloudStorage::cloud_storage_email_encodedChanged); QSignalSpy spy4(qPrefCloudStorage::instance(), &qPrefCloudStorage::cloud_storage_passwordChanged); QSignalSpy spy5(qPrefCloudStorage::instance(), &qPrefCloudStorage::cloud_storage_pinChanged); QSignalSpy spy6(qPrefCloudStorage::instance(), &qPrefCloudStorage::cloud_timeoutChanged); QSignalSpy spy7(qPrefCloudStorage::instance(), &qPrefCloudStorage::cloud_verification_statusChanged); QSignalSpy spy9(qPrefCloudStorage::instance(), &qPrefCloudStorage::save_password_localChanged); QSignalSpy spy10(qPrefCloudStorage::instance(), &qPrefCloudStorage::cloud_auto_syncChanged); qPrefCloudStorage::set_cloud_base_url("signal url"); qPrefCloudStorage::set_cloud_storage_email("signal myEmail"); qPrefCloudStorage::set_cloud_storage_email_encoded("signal encodedMyEMail"); qPrefCloudStorage::set_cloud_storage_password("signal more secret"); qPrefCloudStorage::set_cloud_storage_pin("signal a pin"); qPrefCloudStorage::set_cloud_timeout(11); qPrefCloudStorage::set_cloud_verification_status(qPrefCloudStorage::CS_VERIFIED); qPrefCloudStorage::set_save_password_local(true); qPrefCloudStorage::set_cloud_auto_sync(true); QCOMPARE(spy1.count(), 1); QCOMPARE(spy2.count(), 1); QCOMPARE(spy3.count(), 1); QCOMPARE(spy4.count(), 1); QCOMPARE(spy5.count(), 1); QCOMPARE(spy6.count(), 1); QCOMPARE(spy7.count(), 1); QCOMPARE(spy9.count(), 1); QCOMPARE(spy10.count(), 1); QVERIFY(spy1.takeFirst().at(0).toString() == "signal url"); QVERIFY(spy2.takeFirst().at(0).toString() == "signal myEmail"); QVERIFY(spy3.takeFirst().at(0).toString() == "signal encodedMyEMail"); QVERIFY(spy4.takeFirst().at(0).toString() == "signal more secret"); QVERIFY(spy5.takeFirst().at(0).toString() == "signal a pin"); QVERIFY(spy6.takeFirst().at(0).toInt() == 11); QVERIFY(spy7.takeFirst().at(0).toInt() == qPrefCloudStorage::CS_VERIFIED); QVERIFY(spy9.takeFirst().at(0).toBool() == true); QVERIFY(spy10.takeFirst().at(0).toBool() == true); }
void tst_QGraphicsTransform3D::translation3D() { QGraphicsTranslation3D translate1; QVERIFY(translate1.translate() == QVector3D(0, 0, 0)); QCOMPARE(translate1.xTranslate(), qreal(0.0f)); QCOMPARE(translate1.yTranslate(), qreal(0.0f)); QCOMPARE(translate1.zTranslate(), qreal(0.0f)); QCOMPARE(translate1.progress(), qreal(1.0f)); QSignalSpy spy1(&translate1, SIGNAL(translateChanged())); QSignalSpy spy2(&translate1, SIGNAL(progressChanged())); translate1.setTranslate(QVector3D(4, -6, 0.5f)); translate1.setProgress(2.0f); QVERIFY(translate1.translate() == QVector3D(4, -6, 0.5f)); QCOMPARE(translate1.xTranslate(), qreal(4.0f)); QCOMPARE(translate1.yTranslate(), qreal(-6.0f)); QCOMPARE(translate1.zTranslate(), qreal(0.5f)); QCOMPARE(translate1.progress(), qreal(2.0f)); QCOMPARE(spy1.size(), 1); QCOMPARE(spy2.size(), 1); QMatrix4x4 m1; translate1.applyTo(&m1); QMatrix4x4 m2; m2.translate(QVector3D(8, -12, 1)); QVERIFY(isSameMatrix(m1, m2)); translate1.setXTranslate(20); QCOMPARE(spy1.size(), 2); translate1.setYTranslate(-4); QCOMPARE(spy1.size(), 3); translate1.setZTranslate(42); QCOMPARE(spy1.size(), 4); translate1.setProgress(0.5f); QCOMPARE(spy2.size(), 2); QVERIFY(translate1.translate() == QVector3D(20, -4, 42)); QCOMPARE(translate1.progress(), qreal(0.5f)); }
void TestQPrefGeocoding::test_signals() { QSignalSpy spy1(qPrefGeocoding::instance(), &qPrefGeocoding::first_taxonomy_categoryChanged); QSignalSpy spy2(qPrefGeocoding::instance(), &qPrefGeocoding::second_taxonomy_categoryChanged); QSignalSpy spy3(qPrefGeocoding::instance(), &qPrefGeocoding::third_taxonomy_categoryChanged); prefs.geocoding.category[0] = TC_NONE; qPrefGeocoding::set_first_taxonomy_category(TC_COUNTRY); prefs.geocoding.category[0] = TC_NONE; qPrefGeocoding::set_second_taxonomy_category(TC_ADMIN_L1); prefs.geocoding.category[0] = TC_NONE; qPrefGeocoding::set_third_taxonomy_category(TC_ADMIN_L2); QCOMPARE(spy1.count(), 1); QCOMPARE(spy2.count(), 1); QCOMPARE(spy3.count(), 1); QVERIFY(spy1.takeFirst().at(0).toInt() == TC_COUNTRY); QVERIFY(spy2.takeFirst().at(0).toInt() == TC_ADMIN_L1); QVERIFY(spy3.takeFirst().at(0).toInt() == TC_ADMIN_L2); }
void medAbstractParameterTestObject::testShowHideDelete() { medTestParameter* testParameter = new medTestParameter(m_name); m_widget = testParameter->getWidget(); m_label = testParameter->getLabel(); QSignalSpy spy1(m_widget, SIGNAL(destroyed())); QSignalSpy spy2(m_label, SIGNAL(destroyed())); testParameter->show(); QVERIFY(m_widget->isVisible()); QVERIFY(m_label->isVisible()); testParameter->hide(); QVERIFY(!m_widget->isVisible()); QVERIFY(!m_label->isVisible()); delete testParameter; QCOMPARE(spy1.count(), 1); QCOMPARE(spy2.count(), 1); m_label = NULL; m_widget = NULL; }
void Test_KCompletion::weightedOrder() { KCompletion completion; completion.setSoundsEnabled(false); QSignalSpy spy1(&completion, SIGNAL(match(QString))); QSignalSpy spy3(&completion, SIGNAL(multipleMatches())); completion.setOrder(KCompletion::Weighted); QVERIFY(completion.order() == KCompletion::Weighted); completion.setItems(wstrings); QVERIFY(completion.items().count() == 4); completion.setCompletionMode(KCompletion::CompletionShell); QCOMPARE(completion.makeCompletion(QStringLiteral("ca")), QStringLiteral("carp")); spy1.takeFirst(); // empty the list QVERIFY(spy3.count() == 1); spy3.takeFirst(); QSignalSpy spy2(&completion, SIGNAL(matches(QStringList))); completion.makeCompletion(QStringLiteral("ca")); QCOMPARE(spy2.count(), 1); QVERIFY(spy3.count() == 0); // shouldn't be signaled on 2nd call QStringList matches = spy2.takeFirst().at(0).toStringList(); QVERIFY(matches.count() == 2); QCOMPARE(matches[0], carpet); QCOMPARE(matches[1], carp); completion.setCompletionMode(KCompletion::CompletionAuto); QCOMPARE(completion.makeCompletion(QStringLiteral("ca")), carpet); matches = completion.substringCompletion(QStringLiteral("ca")); QVERIFY(matches.count() == 3); QCOMPARE(matches[0], carpet); QCOMPARE(matches[1], coolcat); QCOMPARE(matches[2], carp); }
void medStringListParameterTestObject::testShowHideDelete() { medStringListParameter* parameter = new medStringListParameter(m_name); m_widget = parameter->getWidget(); m_comboBox = parameter->getComboBox(); QSignalSpy spy1(m_comboBox, SIGNAL(destroyed())); QSignalSpy spy2(m_widget, SIGNAL(destroyed())); parameter->show(); QVERIFY(m_widget->isVisible()); QVERIFY(m_comboBox->isVisible()); parameter->hide(); QVERIFY(!m_widget->isVisible()); QVERIFY(!m_comboBox->isVisible()); delete parameter; QCOMPARE(spy1.count(), 1); QCOMPARE(spy2.count(), 1); m_comboBox = NULL; m_widget = NULL; }
void ChatTests::testTransmitMessage() { QVERIFY(chat); QSignalSpy spy(session2.data(), SIGNAL(invitationReceived(QSharedPointer<Chat>))); QVERIFY(spy.isValid()); QVERIFY(spy.isEmpty()); QSignalSpy spy2(chat.data(), SIGNAL(userJoined(QSharedPointer<const User>))); QVERIFY(spy2.isValid()); QVERIFY(spy2.isEmpty()); QSharedPointer<const User> u(new User(TEMP_SESSION_USER2, WORKING_DIR "public.pem")); chat->invite(u); waitForResult(spy); QList<QVariant> arguments = spy.takeFirst(); QSharedPointer<Chat> chat2 = arguments.at(0).value<QSharedPointer<Chat> >(); waitForResult(spy2); QSignalSpy spy3(chat2.data(), SIGNAL(sendCompleted(bool, const QString &))); QVERIFY(spy3.isValid()); QVERIFY(spy3.isEmpty()); QSignalSpy spy4(chat.data(), SIGNAL(messageReceived(QSharedPointer<const User>, const QString &))); QVERIFY(spy4.isValid()); QVERIFY(spy4.isEmpty()); QSignalSpy spy5(chat2.data(), SIGNAL(messageReceived(QSharedPointer<const User>, const QString &))); QVERIFY(spy5.isValid()); QVERIFY(spy5.isEmpty()); chat2->send("Cupcakes!!!"); waitForResult(spy3); QList<QVariant> arguments2 = spy3.takeFirst(); QVERIFY(arguments2.at(0) == true); waitForResult(spy4); QList<QVariant> arguments3 = spy4.takeFirst(); QCOMPARE(arguments3.at(1).toString(), QString("Cupcakes!!!")); QSharedPointer<const User> u2 = arguments3.at(0).value<QSharedPointer<const User> >(); QCOMPARE(u2->getName(), u->getName()); waitForResult(spy5); QList<QVariant> arguments4 = spy5.takeFirst(); QCOMPARE(arguments4.at(1).toString(), QString("Cupcakes!!!")); QSharedPointer<const User> u3 = arguments4.at(0).value<QSharedPointer<const User> >(); QCOMPARE(u3->getName(), u->getName()); QSignalSpy spy6(chat.data(), SIGNAL(sendCompleted(bool, const QString &))); QVERIFY(spy6.isValid()); QVERIFY(spy6.isEmpty()); QSignalSpy spy7(chat2.data(), SIGNAL(messageReceived(QSharedPointer<const User>, const QString &))); QVERIFY(spy7.isValid()); QVERIFY(spy7.isEmpty()); QSignalSpy spy8(chat.data(), SIGNAL(messageReceived(QSharedPointer<const User>, const QString &))); QVERIFY(spy8.isValid()); QVERIFY(spy8.isEmpty()); chat->send("Khaaan!!!"); waitForResult(spy6); QList<QVariant> arguments5 = spy6.takeFirst(); QVERIFY(arguments5.at(0) == true); waitForResult(spy7); QList<QVariant> arguments6 = spy7.takeFirst(); QCOMPARE(arguments6.at(1).toString(), QString("Khaaan!!!")); QSharedPointer<const User> u4 = arguments6.at(0).value<QSharedPointer<const User> >(); QCOMPARE(u4->getName(), QString(TEMP_SESSION_USER3)); waitForResult(spy8); QList<QVariant> arguments7 = spy8.takeFirst(); QCOMPARE(arguments7.at(1).toString(), QString("Khaaan!!!")); QSharedPointer<const User> u5 = arguments7.at(0).value<QSharedPointer<const User> >(); QCOMPARE(u5->getName(), QString(TEMP_SESSION_USER3)); }
void TestQPrefDivePlanner::test_signals() { QSignalSpy spy1(qPrefDivePlanner::instance(), &qPrefDivePlanner::ascratelast6mChanged); QSignalSpy spy2(qPrefDivePlanner::instance(), &qPrefDivePlanner::ascratestopsChanged); QSignalSpy spy3(qPrefDivePlanner::instance(), &qPrefDivePlanner::ascrate50Changed); QSignalSpy spy4(qPrefDivePlanner::instance(), &qPrefDivePlanner::ascrate75Changed); QSignalSpy spy5(qPrefDivePlanner::instance(), &qPrefDivePlanner::bestmixendChanged); QSignalSpy spy6(qPrefDivePlanner::instance(), &qPrefDivePlanner::bottompo2Changed); QSignalSpy spy7(qPrefDivePlanner::instance(), &qPrefDivePlanner::bottomsacChanged); QSignalSpy spy8(qPrefDivePlanner::instance(), &qPrefDivePlanner::decopo2Changed); QSignalSpy spy9(qPrefDivePlanner::instance(), &qPrefDivePlanner::decosacChanged); QSignalSpy spy10(qPrefDivePlanner::instance(), &qPrefDivePlanner::descrateChanged); QSignalSpy spy11(qPrefDivePlanner::instance(), &qPrefDivePlanner::display_durationChanged); QSignalSpy spy12(qPrefDivePlanner::instance(), &qPrefDivePlanner::display_runtimeChanged); QSignalSpy spy13(qPrefDivePlanner::instance(), &qPrefDivePlanner::display_transitionsChanged); QSignalSpy spy14(qPrefDivePlanner::instance(), &qPrefDivePlanner::display_variationsChanged); QSignalSpy spy15(qPrefDivePlanner::instance(), &qPrefDivePlanner::doo2breaksChanged); QSignalSpy spy16(qPrefDivePlanner::instance(), &qPrefDivePlanner::drop_stone_modeChanged); QSignalSpy spy17(qPrefDivePlanner::instance(), &qPrefDivePlanner::last_stopChanged); QSignalSpy spy18(qPrefDivePlanner::instance(), &qPrefDivePlanner::min_switch_durationChanged); QSignalSpy spy19(qPrefDivePlanner::instance(), &qPrefDivePlanner::planner_deco_modeChanged); QSignalSpy spy20(qPrefDivePlanner::instance(), &qPrefDivePlanner::problemsolvingtimeChanged); QSignalSpy spy21(qPrefDivePlanner::instance(), &qPrefDivePlanner::reserve_gasChanged); QSignalSpy spy22(qPrefDivePlanner::instance(), &qPrefDivePlanner::sacfactorChanged); QSignalSpy spy23(qPrefDivePlanner::instance(), &qPrefDivePlanner::safetystopChanged); QSignalSpy spy24(qPrefDivePlanner::instance(), &qPrefDivePlanner::switch_at_req_stopChanged); QSignalSpy spy25(qPrefDivePlanner::instance(), &qPrefDivePlanner::verbatim_planChanged); qPrefDivePlanner::set_ascratelast6m(-20); qPrefDivePlanner::set_ascratestops(-21); qPrefDivePlanner::set_ascrate50(-22); qPrefDivePlanner::set_ascrate75(-23); qPrefDivePlanner::set_bestmixend(-21); qPrefDivePlanner::set_bottompo2(-24); qPrefDivePlanner::set_bottomsac(-25); qPrefDivePlanner::set_decopo2(-26); qPrefDivePlanner::set_decosac(-27); qPrefDivePlanner::set_descrate(-28); prefs.display_duration = true; qPrefDivePlanner::set_display_duration(false); prefs.display_runtime = true; qPrefDivePlanner::set_display_runtime(false); prefs.display_transitions = true; qPrefDivePlanner::set_display_transitions(false); prefs.display_variations = true; qPrefDivePlanner::set_display_variations(false); prefs.doo2breaks = true; qPrefDivePlanner::set_doo2breaks(false); prefs.drop_stone_mode = true; qPrefDivePlanner::set_drop_stone_mode(false); prefs.last_stop = true; qPrefDivePlanner::set_last_stop(false); qPrefDivePlanner::set_min_switch_duration(-29); qPrefDivePlanner::set_planner_deco_mode(VPMB); qPrefDivePlanner::set_problemsolvingtime(-30); qPrefDivePlanner::set_reserve_gas(-31); qPrefDivePlanner::set_sacfactor(-32); prefs.safetystop = true; qPrefDivePlanner::set_safetystop(false); prefs.switch_at_req_stop = true; qPrefDivePlanner::set_switch_at_req_stop(false); prefs.verbatim_plan = true; qPrefDivePlanner::set_verbatim_plan(false); QCOMPARE(spy1.count(), 1); QCOMPARE(spy2.count(), 1); QCOMPARE(spy3.count(), 1); QCOMPARE(spy4.count(), 1); QCOMPARE(spy5.count(), 1); QCOMPARE(spy6.count(), 1); QCOMPARE(spy7.count(), 1); QCOMPARE(spy8.count(), 1); QCOMPARE(spy9.count(), 1); QCOMPARE(spy10.count(), 1); QCOMPARE(spy11.count(), 1); QCOMPARE(spy12.count(), 1); QCOMPARE(spy13.count(), 1); QCOMPARE(spy14.count(), 1); QCOMPARE(spy15.count(), 1); QCOMPARE(spy16.count(), 1); QCOMPARE(spy17.count(), 1); QCOMPARE(spy18.count(), 1); QCOMPARE(spy19.count(), 1); QCOMPARE(spy20.count(), 1); QCOMPARE(spy21.count(), 1); QCOMPARE(spy22.count(), 1); QCOMPARE(spy23.count(), 1); QCOMPARE(spy24.count(), 1); QCOMPARE(spy25.count(), 1); QVERIFY(spy1.takeFirst().at(0).toInt() == -20); QVERIFY(spy2.takeFirst().at(0).toInt() == -21); QVERIFY(spy3.takeFirst().at(0).toInt() == -22); QVERIFY(spy4.takeFirst().at(0).toInt() == -23); QVERIFY(spy5.takeFirst().at(0).toInt() == -21); QVERIFY(spy6.takeFirst().at(0).toInt() == -24); QVERIFY(spy7.takeFirst().at(0).toInt() == -25); QVERIFY(spy8.takeFirst().at(0).toInt() == -26); QVERIFY(spy9.takeFirst().at(0).toInt() == -27); QVERIFY(spy10.takeFirst().at(0).toInt() == -28); QVERIFY(spy11.takeFirst().at(0).toBool() == false); QVERIFY(spy12.takeFirst().at(0).toBool() == false); QVERIFY(spy13.takeFirst().at(0).toBool() == false); QVERIFY(spy14.takeFirst().at(0).toBool() == false); QVERIFY(spy15.takeFirst().at(0).toBool() == false); QVERIFY(spy16.takeFirst().at(0).toBool() == false); QVERIFY(spy17.takeFirst().at(0).toBool() == false); QVERIFY(spy18.takeFirst().at(0).toInt() == -29); QVERIFY(spy19.takeFirst().at(0).toInt() == VPMB); QVERIFY(spy20.takeFirst().at(0).toInt() == -30); QVERIFY(spy21.takeFirst().at(0).toInt() == -31); QVERIFY(spy22.takeFirst().at(0).toInt() == -32); QVERIFY(spy23.takeFirst().at(0).toBool() == false); QVERIFY(spy24.takeFirst().at(0).toBool() == false); QVERIFY(spy25.takeFirst().at(0).toBool() == false); }
void TestQgsAttributeForm::testOKButtonStatus() { // make a temporary vector layer QString def = QStringLiteral( "Point?field=col0:integer" ); QgsVectorLayer* layer = new QgsVectorLayer( def, QStringLiteral( "test" ), QStringLiteral( "memory" ) ); // add a feature to the vector layer QgsFeature ft( layer->dataProvider()->fields(), 1 ); ft.setAttribute( QStringLiteral( "col0" ), 0 ); ft.setValid( true ); // set constraint layer->setConstraintExpression( 0, QString() ); // build a form for this feature QgsAttributeForm form( layer ); form.setFeature( ft ); QPushButton *okButton = form.mButtonBox->button( QDialogButtonBox::Ok ); // get wrapper QgsEditorWidgetWrapper *ww; ww = qobject_cast<QgsEditorWidgetWrapper*>( form.mWidgets[0] ); // testing stuff QSignalSpy spy1( &form, SIGNAL( attributeChanged( QString, QVariant ) ) ); QSignalSpy spy2( layer, SIGNAL( editingStarted() ) ); QSignalSpy spy3( layer, SIGNAL( editingStopped() ) ); // no constraint but layer not editable : OK button disabled QCOMPARE( layer->isEditable(), false ); QCOMPARE( okButton->isEnabled(), false ); // no constraint and editable layer : OK button enabled layer->startEditing(); QCOMPARE( spy2.count(), 1 ); QCOMPARE( layer->isEditable(), true ); QCOMPARE( okButton->isEnabled(), true ); // invalid constraint and editable layer : OK button disabled layer->setConstraintExpression( 0, QStringLiteral( "col0 = 0" ) ); QgsAttributeForm form2( layer ); form2.setFeature( ft ); ww = qobject_cast<QgsEditorWidgetWrapper*>( form2.mWidgets[0] ); okButton = form2.mButtonBox->button( QDialogButtonBox::Ok ); ww->setValue( 1 ); QCOMPARE( okButton->isEnabled(), false ); // valid constraint and editable layer : OK button enabled layer->setConstraintExpression( 0, QStringLiteral( "col0 = 2" ) ); QgsAttributeForm form3( layer ); form3.setFeature( ft ); ww = qobject_cast<QgsEditorWidgetWrapper*>( form3.mWidgets[0] ); okButton = form3.mButtonBox->button( QDialogButtonBox::Ok ); ww->setValue( 2 ); QCOMPARE( okButton->isEnabled(), true ); // valid constraint and not editable layer : OK button disabled layer->rollBack(); QCOMPARE( spy3.count(), 1 ); QCOMPARE( layer->isEditable(), false ); QCOMPARE( okButton->isEnabled(), false ); // set soft constraint layer->setFieldConstraint( 0, QgsFieldConstraints::ConstraintExpression, QgsFieldConstraints::ConstraintStrengthSoft ); QgsAttributeForm form4( layer ); form4.setFeature( ft ); ww = qobject_cast<QgsEditorWidgetWrapper*>( form4.mWidgets[0] ); okButton = form4.mButtonBox->button( QDialogButtonBox::Ok ); ww->setValue( 1 ); QVERIFY( !okButton->isEnabled() ); layer->startEditing(); // just a soft constraint, so OK should be enabled QVERIFY( okButton->isEnabled() ); layer->rollBack(); QVERIFY( !okButton->isEnabled() ); }
void TestQgsAttributeForm::testFieldMultiConstraints() { // make a temporary layer to check through QString def = QStringLiteral( "Point?field=col0:integer&field=col1:integer&field=col2:integer&field=col3:integer" ); QgsVectorLayer* layer = new QgsVectorLayer( def, QStringLiteral( "test" ), QStringLiteral( "memory" ) ); // add features to the vector layer QgsFeature ft( layer->dataProvider()->fields(), 1 ); ft.setAttribute( QStringLiteral( "col0" ), 0 ); ft.setAttribute( QStringLiteral( "col1" ), 1 ); ft.setAttribute( QStringLiteral( "col2" ), 2 ); ft.setAttribute( QStringLiteral( "col3" ), 3 ); // set constraints for each field layer->setConstraintExpression( 0, QString() ); layer->setConstraintExpression( 1, QString() ); layer->setConstraintExpression( 2, QString() ); layer->setConstraintExpression( 3, QString() ); // build a form for this feature QgsAttributeForm form( layer ); form.setFeature( ft ); // testing stuff QSignalSpy spy( &form, SIGNAL( attributeChanged( QString, QVariant ) ) ); QString val = QStringLiteral( "<font color=\"green\">✔</font>" ); QString inv = QStringLiteral( "<font color=\"red\">✘</font>" ); // get wrappers for each widget QgsEditorWidgetWrapper *ww0, *ww1, *ww2, *ww3; ww0 = qobject_cast<QgsEditorWidgetWrapper*>( form.mWidgets[0] ); ww1 = qobject_cast<QgsEditorWidgetWrapper*>( form.mWidgets[1] ); ww2 = qobject_cast<QgsEditorWidgetWrapper*>( form.mWidgets[2] ); ww3 = qobject_cast<QgsEditorWidgetWrapper*>( form.mWidgets[3] ); // get label for wrappers QLabel *label0 = form.mBuddyMap.value( ww0->widget() ); QLabel *label1 = form.mBuddyMap.value( ww1->widget() ); QLabel *label2 = form.mBuddyMap.value( ww2->widget() ); QLabel *label3 = form.mBuddyMap.value( ww3->widget() ); // no constraint so we expect a label with just the field name QCOMPARE( label0->text(), QString( "col0" ) ); QCOMPARE( label1->text(), QString( "col1" ) ); QCOMPARE( label2->text(), QString( "col2" ) ); QCOMPARE( label3->text(), QString( "col3" ) ); // update constraint layer->setConstraintExpression( 0, QStringLiteral( "col0 < (col1 * col2)" ) ); layer->setConstraintExpression( 1, QString() ); layer->setConstraintExpression( 2, QString() ); layer->setConstraintExpression( 3, QStringLiteral( "col0 = 2" ) ); QgsAttributeForm form2( layer ); form2.setFeature( ft ); ww0 = qobject_cast<QgsEditorWidgetWrapper*>( form2.mWidgets[0] ); ww1 = qobject_cast<QgsEditorWidgetWrapper*>( form2.mWidgets[1] ); ww2 = qobject_cast<QgsEditorWidgetWrapper*>( form2.mWidgets[2] ); ww3 = qobject_cast<QgsEditorWidgetWrapper*>( form2.mWidgets[3] ); label0 = form2.mBuddyMap.value( ww0->widget() ); label1 = form2.mBuddyMap.value( ww1->widget() ); label2 = form2.mBuddyMap.value( ww2->widget() ); label3 = form2.mBuddyMap.value( ww3->widget() ); QSignalSpy spy2( &form2, SIGNAL( attributeChanged( QString, QVariant ) ) ); // change value ww0->setValue( 2 ); // update col0 QCOMPARE( spy2.count(), 2 ); QCOMPARE( label0->text(), QString( "col0" + inv ) ); // 2 < ( 1 + 2 ) QCOMPARE( label1->text(), QString( "col1" ) ); QCOMPARE( label2->text(), QString( "col2" ) ); QCOMPARE( label3->text(), QString( "col3" + val ) ); // 2 = 2 // change value spy2.clear(); ww0->setValue( 1 ); // update col0 QCOMPARE( spy2.count(), 2 ); QCOMPARE( label0->text(), QString( "col0" + val ) ); // 1 < ( 1 + 2 ) QCOMPARE( label1->text(), QString( "col1" ) ); QCOMPARE( label2->text(), QString( "col2" ) ); QCOMPARE( label3->text(), QString( "col3" + inv ) ); // 2 = 1 }
void TestQPrefTechnicalDetails::test_signals() { QSignalSpy spy1(qPrefTechnicalDetails::instance(), &qPrefTechnicalDetails::calcalltissuesChanged); QSignalSpy spy2(qPrefTechnicalDetails::instance(), &qPrefTechnicalDetails::calcceilingChanged); QSignalSpy spy3(qPrefTechnicalDetails::instance(), &qPrefTechnicalDetails::calcceiling3mChanged); QSignalSpy spy4(qPrefTechnicalDetails::instance(), &qPrefTechnicalDetails::calcndlttsChanged); QSignalSpy spy5(qPrefTechnicalDetails::instance(), &qPrefTechnicalDetails::dcceilingChanged); QSignalSpy spy6(qPrefTechnicalDetails::instance(), &qPrefTechnicalDetails::display_deco_modeChanged); QSignalSpy spy7(qPrefTechnicalDetails::instance(), &qPrefTechnicalDetails::display_unused_tanksChanged); QSignalSpy spy8(qPrefTechnicalDetails::instance(), &qPrefTechnicalDetails::eadChanged); QSignalSpy spy9(qPrefTechnicalDetails::instance(), &qPrefTechnicalDetails::gfhighChanged); QSignalSpy spy10(qPrefTechnicalDetails::instance(), &qPrefTechnicalDetails::gflowChanged); QSignalSpy spy11(qPrefTechnicalDetails::instance(), &qPrefTechnicalDetails::gf_low_at_maxdepthChanged); QSignalSpy spy12(qPrefTechnicalDetails::instance(), &qPrefTechnicalDetails::hrgraphChanged); QSignalSpy spy13(qPrefTechnicalDetails::instance(), &qPrefTechnicalDetails::modChanged); QSignalSpy spy14(qPrefTechnicalDetails::instance(), &qPrefTechnicalDetails::modpO2Changed); QSignalSpy spy15(qPrefTechnicalDetails::instance(), &qPrefTechnicalDetails::percentagegraphChanged); QSignalSpy spy16(qPrefTechnicalDetails::instance(), &qPrefTechnicalDetails::redceilingChanged); QSignalSpy spy17(qPrefTechnicalDetails::instance(), &qPrefTechnicalDetails::rulergraphChanged); QSignalSpy spy18(qPrefTechnicalDetails::instance(), &qPrefTechnicalDetails::show_average_depthChanged); QSignalSpy spy19(qPrefTechnicalDetails::instance(), &qPrefTechnicalDetails::show_ccr_sensorsChanged); QSignalSpy spy20(qPrefTechnicalDetails::instance(), &qPrefTechnicalDetails::show_ccr_setpointChanged); QSignalSpy spy21(qPrefTechnicalDetails::instance(), &qPrefTechnicalDetails::show_icdChanged); QSignalSpy spy22(qPrefTechnicalDetails::instance(), &qPrefTechnicalDetails::show_pictures_in_profileChanged); QSignalSpy spy23(qPrefTechnicalDetails::instance(), &qPrefTechnicalDetails::show_sacChanged); QSignalSpy spy24(qPrefTechnicalDetails::instance(), &qPrefTechnicalDetails::show_scr_ocpo2Changed); QSignalSpy spy25(qPrefTechnicalDetails::instance(), &qPrefTechnicalDetails::tankbarChanged); QSignalSpy spy26(qPrefTechnicalDetails::instance(), &qPrefTechnicalDetails::vpmb_conservatismChanged); QSignalSpy spy27(qPrefTechnicalDetails::instance(), &qPrefTechnicalDetails::zoomed_plotChanged); prefs.calcalltissues = true; qPrefTechnicalDetails::set_calcalltissues(false); prefs.calcceiling = true; qPrefTechnicalDetails::set_calcceiling(false); prefs.calcceiling3m = true; qPrefTechnicalDetails::set_calcceiling3m(false); prefs.calcndltts = true; qPrefTechnicalDetails::set_calcndltts(false); prefs.dcceiling = true; qPrefTechnicalDetails::set_dcceiling(false); qPrefTechnicalDetails::set_display_deco_mode(VPMB); prefs.display_unused_tanks = true; qPrefTechnicalDetails::set_display_unused_tanks(false); prefs.ead = true; qPrefTechnicalDetails::set_ead(false); qPrefTechnicalDetails::set_gfhigh(-29); qPrefTechnicalDetails::set_gflow(-24); prefs.gf_low_at_maxdepth = true; qPrefTechnicalDetails::set_gf_low_at_maxdepth(false); prefs.hrgraph = true; qPrefTechnicalDetails::set_hrgraph(false); prefs.mod = true; qPrefTechnicalDetails::set_mod(false); qPrefTechnicalDetails::set_modpO2(-1.12); prefs.percentagegraph = true; qPrefTechnicalDetails::set_percentagegraph(false); prefs.redceiling = true; qPrefTechnicalDetails::set_redceiling(false); prefs.rulergraph = true; qPrefTechnicalDetails::set_rulergraph(false); prefs.show_average_depth = true; qPrefTechnicalDetails::set_show_average_depth(false); prefs.show_ccr_sensors = true; qPrefTechnicalDetails::set_show_ccr_sensors(false); prefs.show_ccr_setpoint = true; qPrefTechnicalDetails::set_show_ccr_setpoint(false); prefs.show_icd = true; qPrefTechnicalDetails::set_show_icd(false); prefs.show_pictures_in_profile = true; qPrefTechnicalDetails::set_show_pictures_in_profile(false); prefs.show_sac = true; qPrefTechnicalDetails::set_show_sac(false); prefs.show_scr_ocpo2 = true; qPrefTechnicalDetails::set_show_scr_ocpo2(false); prefs.tankbar = true; qPrefTechnicalDetails::set_tankbar(false); qPrefTechnicalDetails::set_vpmb_conservatism(-64); prefs.zoomed_plot = true; qPrefTechnicalDetails::set_zoomed_plot(false); QCOMPARE(spy1.count(), 1); QCOMPARE(spy2.count(), 1); QCOMPARE(spy3.count(), 1); QCOMPARE(spy4.count(), 1); QCOMPARE(spy5.count(), 1); QCOMPARE(spy6.count(), 1); QCOMPARE(spy7.count(), 1); QCOMPARE(spy8.count(), 1); QCOMPARE(spy9.count(), 1); QCOMPARE(spy10.count(), 1); QCOMPARE(spy11.count(), 1); QCOMPARE(spy12.count(), 1); QCOMPARE(spy13.count(), 1); QCOMPARE(spy14.count(), 1); QCOMPARE(spy15.count(), 1); QCOMPARE(spy16.count(), 1); QCOMPARE(spy17.count(), 1); QCOMPARE(spy18.count(), 1); QCOMPARE(spy19.count(), 1); QCOMPARE(spy20.count(), 1); QCOMPARE(spy21.count(), 1); QCOMPARE(spy22.count(), 1); QCOMPARE(spy23.count(), 1); QCOMPARE(spy24.count(), 1); QCOMPARE(spy25.count(), 1); QCOMPARE(spy26.count(), 1); QCOMPARE(spy27.count(), 1); QVERIFY(spy1.takeFirst().at(0).toBool() == false); QVERIFY(spy2.takeFirst().at(0).toBool() == false); QVERIFY(spy3.takeFirst().at(0).toBool() == false); QVERIFY(spy4.takeFirst().at(0).toBool() == false); QVERIFY(spy5.takeFirst().at(0).toBool() == false); QVERIFY(spy6.takeFirst().at(0).toInt() == VPMB); QVERIFY(spy7.takeFirst().at(0).toBool() == false); QVERIFY(spy8.takeFirst().at(0).toBool() == false); QVERIFY(spy9.takeFirst().at(0).toInt() == -29); QVERIFY(spy10.takeFirst().at(0).toInt() == -24); QVERIFY(spy11.takeFirst().at(0).toBool() == false); QVERIFY(spy12.takeFirst().at(0).toBool() == false); QVERIFY(spy13.takeFirst().at(0).toBool() == false); QVERIFY(spy14.takeFirst().at(0).toDouble() == -1.12); QVERIFY(spy15.takeFirst().at(0).toBool() == false); QVERIFY(spy16.takeFirst().at(0).toBool() == false); QVERIFY(spy17.takeFirst().at(0).toBool() == false); QVERIFY(spy18.takeFirst().at(0).toBool() == false); QVERIFY(spy19.takeFirst().at(0).toBool() == false); QVERIFY(spy20.takeFirst().at(0).toBool() == false); QVERIFY(spy21.takeFirst().at(0).toBool() == false); QVERIFY(spy22.takeFirst().at(0).toBool() == false); QVERIFY(spy23.takeFirst().at(0).toBool() == false); QVERIFY(spy24.takeFirst().at(0).toBool() == false); QVERIFY(spy25.takeFirst().at(0).toBool() == false); QVERIFY(spy26.takeFirst().at(0).toInt() == -64); QVERIFY(spy27.takeFirst().at(0).toBool() == false); }