summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorDominik Holland <dominik.holland@qt.io>2020-01-20 10:43:43 +0100
committerDominik Holland <dominik.holland@qt.io>2020-01-20 17:46:20 +0100
commit9ca588c7711e43212e40931ff4a0072bbd1deb28 (patch)
tree4d1af06aeeb494f31be01d4445978fcf616e80b6 /tests
parent9fd63dd467506c35a541fa09dd63d16fb7ebf9bd (diff)
downloadqtivi-9ca588c7711e43212e40931ff4a0072bbd1deb28.tar.gz
Fix registering the QIviPendingReplies at startup
Using a singleShot timer is not the right way as it doesn't make sure the call is really executed in the next event loop run. Instead use QMetaObject::invokeMethod(). Also reorder the qivipendingreply autotest to make sure the QML test is done first, which needs the types to be registered... Change-Id: Id4f8dd1577e653c99fd82e8ab8f93a848f9b1b79 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/core/qivipendingreply/tst_qivipendingreply.cpp36
1 files changed, 19 insertions, 17 deletions
diff --git a/tests/auto/core/qivipendingreply/tst_qivipendingreply.cpp b/tests/auto/core/qivipendingreply/tst_qivipendingreply.cpp
index 9124827..5f0bb73 100644
--- a/tests/auto/core/qivipendingreply/tst_qivipendingreply.cpp
+++ b/tests/auto/core/qivipendingreply/tst_qivipendingreply.cpp
@@ -141,8 +141,10 @@ class tst_QIviPendingReply : public QObject
private Q_SLOTS:
void initTestCase();
- void testSuccess();
+ // This needs to be the first test, as it tests calling a function which returns QIviPendingReply
+ // from QML and for this the basic types have to be registered before automatically.
void testSuccess_qml();
+ void testSuccess();
void testSuccessFromQml();
void testConversion_qml();
void testFailed();
@@ -202,22 +204,6 @@ template <typename T> void tst_QIviPendingReply::test_helper(const QIviPendingRe
QCOMPARE(reply.value(), valueChangedSpy.at(0).at(0));
}
-void tst_QIviPendingReply::testSuccess()
-{
- TestObject testObject;
-
- test_helper<void>(testObject.test_void(), false);
- test<int>(testObject.test_int(500), false, 500);
- test<quint16>(testObject.test_quint16(1234), false, 1234);
- test<float>(testObject.test_float(-1234.56), false, -1234.56);
- test<QString>(testObject.test_QString("HELLO"), false, "HELLO");
- test<QVariant>(testObject.test_QVariant(QVariant("VARIANT")), false, QVariant("VARIANT"));
- test<TestObject::TestEnum>(testObject.test_TestEnum(TestObject::Value_2), false, TestObject::Value_2);
- test<TestObject::TestFlags>(testObject.test_TestFlags(TestObject::TestFlags(TestObject::TestFlag_2 | TestObject::TestFlag_1)), false,
- TestObject::TestFlags(TestObject::TestFlag_2 | TestObject::TestFlag_1));
- test<TestGadget>(testObject.test_TestGadget(TestGadget("FOO", 5)), false, TestGadget("FOO", 5));
-}
-
template <typename T> void tst_QIviPendingReply::testQml(TestObject *testObject, const QByteArray qmlFunction, bool failed, T expectedResult)
{
QVariant result;
@@ -333,6 +319,22 @@ void tst_QIviPendingReply::testSuccess_qml()
testQml<TestGadget>(&testObject, "test_TestGadget(testObject.createGadget('FOO', 5))", false, TestGadget("FOO", 5));
}
+void tst_QIviPendingReply::testSuccess()
+{
+ TestObject testObject;
+
+ test_helper<void>(testObject.test_void(), false);
+ test<int>(testObject.test_int(500), false, 500);
+ test<quint16>(testObject.test_quint16(1234), false, 1234);
+ test<float>(testObject.test_float(-1234.56), false, -1234.56);
+ test<QString>(testObject.test_QString("HELLO"), false, "HELLO");
+ test<QVariant>(testObject.test_QVariant(QVariant("VARIANT")), false, QVariant("VARIANT"));
+ test<TestObject::TestEnum>(testObject.test_TestEnum(TestObject::Value_2), false, TestObject::Value_2);
+ test<TestObject::TestFlags>(testObject.test_TestFlags(TestObject::TestFlags(TestObject::TestFlag_2 | TestObject::TestFlag_1)), false,
+ TestObject::TestFlags(TestObject::TestFlag_2 | TestObject::TestFlag_1));
+ test<TestGadget>(testObject.test_TestGadget(TestGadget("FOO", 5)), false, TestGadget("FOO", 5));
+}
+
void tst_QIviPendingReply::testSuccessFromQml()
{
// Instead of using the PendingReply in QML and react on the result using then()