summaryrefslogtreecommitdiffstats
path: root/tests/auto/tools/moc/tst_moc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/tools/moc/tst_moc.cpp')
-rw-r--r--tests/auto/tools/moc/tst_moc.cpp37
1 files changed, 36 insertions, 1 deletions
diff --git a/tests/auto/tools/moc/tst_moc.cpp b/tests/auto/tools/moc/tst_moc.cpp
index 1ce6f0c4ef..aad095d490 100644
--- a/tests/auto/tools/moc/tst_moc.cpp
+++ b/tests/auto/tools/moc/tst_moc.cpp
@@ -66,10 +66,10 @@
#include "escapes-in-string-literals.h"
#include "cstyle-enums.h"
-
#if defined(PARSE_BOOST)
#include "parse-boost.h"
#endif
+#include "cxx11-enums.h"
QT_USE_NAMESPACE
@@ -511,6 +511,8 @@ private slots:
void warnings();
#endif
void privateClass();
+ void cxx11Enums_data();
+ void cxx11Enums();
signals:
void sigWithUnsignedArg(unsigned foo);
@@ -1630,6 +1632,39 @@ void tst_Moc::privateClass()
QVERIFY(PrivateClass::staticMetaObject.indexOfSignal("someSignal()") > 0);
}
+void tst_Moc::cxx11Enums_data()
+{
+ QTest::addColumn<QByteArray>("enumName");
+ QTest::addColumn<char>("prefix");
+
+ QTest::newRow("EnumClass") << QByteArray("EnumClass") << 'A';
+ QTest::newRow("TypedEnum") << QByteArray("TypedEnum") << 'B';
+ QTest::newRow("TypedEnumClass") << QByteArray("TypedEnumClass") << 'C';
+ QTest::newRow("NormalEnum") << QByteArray("NormalEnum") << 'D';
+}
+
+
+void tst_Moc::cxx11Enums()
+{
+ const QMetaObject *meta = &CXX11Enums::staticMetaObject;
+ QCOMPARE(meta->enumeratorOffset(), 0);
+
+ QFETCH(QByteArray, enumName);
+ QFETCH(char, prefix);
+
+ int idx;
+ idx = meta->indexOfEnumerator(enumName);
+ QVERIFY(idx != -1);
+ QCOMPARE(meta->enumerator(idx).enclosingMetaObject(), meta);
+ QCOMPARE(meta->enumerator(idx).isValid(), true);
+ QCOMPARE(meta->enumerator(idx).keyCount(), 4);
+ QCOMPARE(meta->enumerator(idx).name(), enumName.constData());
+ for (int i = 0; i < 4; i++) {
+ QByteArray v = prefix + QByteArray::number(i);
+ QCOMPARE(meta->enumerator(idx).keyToValue(v), i);
+ QCOMPARE(meta->enumerator(idx).valueToKey(i), v.constData());
+ }
+}
QTEST_APPLESS_MAIN(tst_Moc)
#include "tst_moc.moc"