summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorKent Hansen <kent.hansen@nokia.com>2012-02-17 22:12:05 +0100
committerQt by Nokia <qt-info@nokia.com>2012-02-20 11:28:38 +0100
commit5640b0b4439941c621b4f0efec541e387abb7daf (patch)
tree4f038d4270c54a56415d34dc141520be8dac4ade /tests/auto
parent9c1680a7eda7f465d1db0fe1298d7aabd744bd15 (diff)
Add QMetaMethod::isValid() function
This function provides a proper way of determining whether a function returned by QMetaObject::method() is valid. (Checking whether signature() returns a 0 pointer, which e.g. testlib does, is not an ideal API -- especially given that signature() will soon be removed and replaced by a function that returns a QByteArray.) Change-Id: I644f476b09904925f2042945f5d0ad744482b682 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/corelib/kernel/qmetamethod/tst_qmetamethod.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/tests/auto/corelib/kernel/qmetamethod/tst_qmetamethod.cpp b/tests/auto/corelib/kernel/qmetamethod/tst_qmetamethod.cpp
index cb34d411fd..1651d00738 100644
--- a/tests/auto/corelib/kernel/qmetamethod/tst_qmetamethod.cpp
+++ b/tests/auto/corelib/kernel/qmetamethod/tst_qmetamethod.cpp
@@ -52,6 +52,8 @@ class tst_QMetaMethod : public QObject
private slots:
void method_data();
void method();
+
+ void invalidMethod();
};
struct CustomType { };
@@ -597,6 +599,7 @@ void tst_QMetaMethod::method()
QVERIFY(index != -1);
QMetaMethod method = (methodType == QMetaMethod::Constructor)
? mo->constructor(index) : mo->method(index);
+ QVERIFY(method.isValid());
QCOMPARE(method.methodType(), methodType);
QCOMPARE(method.access(), access);
@@ -611,5 +614,17 @@ void tst_QMetaMethod::method()
QCOMPARE(method.parameterNames(), parameterNames);
}
+void tst_QMetaMethod::invalidMethod()
+{
+ QMetaMethod method;
+ QVERIFY(!method.isValid());
+
+ QMetaMethod method2 = staticMetaObject.method(staticMetaObject.methodCount());
+ QVERIFY(!method2.isValid());
+
+ QMetaMethod method3 = staticMetaObject.method(-1);
+ QVERIFY(!method3.isValid());
+}
+
QTEST_MAIN(tst_QMetaMethod)
#include "tst_qmetamethod.moc"