736 QTest::newRow("template3") << "QMap<QString, int>" << "QMap<QString,int>"; |
738 QTest::newRow("template3") << "QMap<QString, int>" << "QMap<QString,int>"; |
737 QTest::newRow("template4") << "const QMap<QString, int> &" << "QMap<QString,int>"; |
739 QTest::newRow("template4") << "const QMap<QString, int> &" << "QMap<QString,int>"; |
738 QTest::newRow("template5") << "QList< ::Foo::Bar>" << "QList< ::Foo::Bar>"; |
740 QTest::newRow("template5") << "QList< ::Foo::Bar>" << "QList< ::Foo::Bar>"; |
739 QTest::newRow("template6") << "QList<::Foo::Bar>" << "QList<::Foo::Bar>"; |
741 QTest::newRow("template6") << "QList<::Foo::Bar>" << "QList<::Foo::Bar>"; |
740 QTest::newRow("template7") << "QList<QList<int> >" << "QList<QList<int> >"; |
742 QTest::newRow("template7") << "QList<QList<int> >" << "QList<QList<int> >"; |
|
743 QTest::newRow("template8") << "QMap<const int, const short*>" << "QMap<const int,const short*>"; |
|
744 QTest::newRow("template9") << "QPair<const QPair<int, int const *> , QPair<QHash<int, const char*> > >" << "QPair<const QPair<int,const int*>,QPair<QHash<int,const char*> > >"; |
741 QTest::newRow("value1") << "const QString &" << "QString"; |
745 QTest::newRow("value1") << "const QString &" << "QString"; |
742 QTest::newRow("value2") << "QString const &" << "QString"; |
746 QTest::newRow("value2") << "QString const &" << "QString"; |
743 QTest::newRow("constInName1") << "constconst" << "constconst"; |
747 QTest::newRow("constInName1") << "constconst" << "constconst"; |
744 QTest::newRow("constInName2") << "constconst*" << "constconst*"; |
748 QTest::newRow("constInName2") << "constconst*" << "constconst*"; |
745 QTest::newRow("constInName3") << "const constconst&" << "constconst"; |
749 QTest::newRow("constInName3") << "const constconst&" << "constconst"; |
884 QCOMPARE(index, 0); |
888 QCOMPARE(index, 0); |
885 QVERIFY(index <= b.metaObject()->classInfoOffset()); |
889 QVERIFY(index <= b.metaObject()->classInfoOffset()); |
886 QCOMPARE(QLatin1String(b.metaObject()->classInfo(index).value()), QLatin1String("Christopher Pike")); |
890 QCOMPARE(QLatin1String(b.metaObject()->classInfo(index).value()), QLatin1String("Christopher Pike")); |
887 } |
891 } |
888 |
892 |
|
893 void tst_QMetaObject::metaMethod() |
|
894 { |
|
895 QString str("foo"); |
|
896 QString ret("bar"); |
|
897 QMetaMethod method; |
|
898 QVERIFY(!method.invoke(this)); |
|
899 QVERIFY(!method.invoke(this, Q_ARG(QString, str))); |
|
900 QVERIFY(!method.invoke(this, Q_RETURN_ARG(QString, ret), Q_ARG(QString, str))); |
|
901 QCOMPARE(str, QString("foo")); |
|
902 QCOMPARE(ret, QString("bar")); |
|
903 |
|
904 |
|
905 QtTestObject obj; |
|
906 QString t1("1"); QString t2("2"); QString t3("3"); QString t4("4"); QString t5("5"); |
|
907 QString t6("6"); QString t7("7"); QString t8("8"); QString t9("9"); QString t10("X"); |
|
908 |
|
909 int index = QtTestObject::staticMetaObject.indexOfMethod("sl5(QString,QString,QString,QString,QString)"); |
|
910 QVERIFY(index > 0); |
|
911 method = QtTestObject::staticMetaObject.method(index); |
|
912 //wrong args |
|
913 QVERIFY(!method.invoke(&obj, Q_ARG(QString, "1"), Q_ARG(QString, "2"), Q_ARG(QString, "3"), Q_ARG(QString, "4"))); |
|
914 //QVERIFY(!method.invoke(&obj, Q_ARG(QString, "1"), Q_ARG(QString, "2"), Q_ARG(QString, "3"), Q_ARG(QString, "4"), Q_ARG(QString, "5"), Q_ARG(QString, "6"))); |
|
915 //QVERIFY(!method.invoke(&obj, Q_ARG(QString, "1"), Q_ARG(QString, "2"), Q_ARG(QString, "3"), Q_ARG(QString, "4"), Q_ARG(int, 5))); |
|
916 QVERIFY(!method.invoke(&obj, Q_RETURN_ARG(QString, ret), Q_ARG(QString, "1"), Q_ARG(QString, "2"), Q_ARG(QString, "3"), Q_ARG(QString, "4"), Q_ARG(QString, "5"))); |
|
917 |
|
918 //wrong object |
|
919 //QVERIFY(!method.invoke(this, Q_ARG(QString, "1"), Q_ARG(QString, "2"), Q_ARG(QString, "3"), Q_ARG(QString, "4"), Q_ARG(QString, "5"))); |
|
920 QVERIFY(!method.invoke(0, Q_ARG(QString, "1"), Q_ARG(QString, "2"), Q_ARG(QString, "3"), Q_ARG(QString, "4"), Q_ARG(QString, "5"))); |
|
921 QCOMPARE(ret, QString("bar")); |
|
922 QCOMPARE(obj.slotResult, QString()); |
|
923 |
|
924 QVERIFY(method.invoke(&obj, Q_ARG(QString, "1"), Q_ARG(QString, "2"), Q_ARG(QString, "3"), Q_ARG(QString, "4"), Q_ARG(QString, "5"))); |
|
925 QCOMPARE(obj.slotResult, QString("sl5:12345")); |
|
926 |
|
927 index = QtTestObject::staticMetaObject.indexOfMethod("sl13(QList<QString>)"); |
|
928 QVERIFY(index > 0); |
|
929 QMetaMethod sl13 = QtTestObject::staticMetaObject.method(index); |
|
930 QList<QString> returnValue, argument; |
|
931 argument << QString("one") << QString("two") << QString("three"); |
|
932 //wrong object |
|
933 //QVERIFY(!sl13.invoke(this, Q_RETURN_ARG(QList<QString>, returnValue), Q_ARG(QList<QString>, argument))); |
|
934 QVERIFY(!sl13.invoke(0, Q_RETURN_ARG(QList<QString>, returnValue), Q_ARG(QList<QString>, argument))); |
|
935 QCOMPARE(returnValue, QList<QString>()); |
|
936 |
|
937 QVERIFY(sl13.invoke(&obj, Q_RETURN_ARG(QList<QString>, returnValue), Q_ARG(QList<QString>, argument))); |
|
938 QCOMPARE(returnValue, argument); |
|
939 QCOMPARE(obj.slotResult, QString("sl13")); |
|
940 } |
|
941 |
889 QTEST_MAIN(tst_QMetaObject) |
942 QTEST_MAIN(tst_QMetaObject) |
890 #include "tst_qmetaobject.moc" |
943 #include "tst_qmetaobject.moc" |