diff options
-rw-r--r-- | tests/testenum.cpp | 30 | ||||
-rw-r--r-- | tests/testenum.h | 1 |
2 files changed, 31 insertions, 0 deletions
diff --git a/tests/testenum.cpp b/tests/testenum.cpp index a7c0d9003..4ae6cb58a 100644 --- a/tests/testenum.cpp +++ b/tests/testenum.cpp @@ -96,6 +96,36 @@ void TestEnum::testEnumWithApiVersion() QCOMPARE(classes[0]->enums().count(), 1); } +void TestEnum::testAnonymousEnum() +{ + const char* cppCode ="\ + enum { Global0, Global1 }; \ + struct A {\ + enum { A0, A1 };\ + };\ + "; + const char* xmlCode = "\ + <typesystem package=\"Foo\"> \ + <value-type name='A'/> \ + <!-- Uses the first value of the enum to identify it. -->\ + <enum-type identified-by-value='Global0'/>\ + <!-- Uses the second value of the enum to identify it. -->\ + <enum-type identified-by-value='A::A1'/>\ + </typesystem>"; + + TestUtil t(cppCode, xmlCode, false); + + AbstractMetaEnumList globalEnums = t.builder()->globalEnums(); + QCOMPARE(globalEnums.count(), 1); + QCOMPARE(globalEnums.first()->typeEntry()->qualifiedCppName(), QString("Global0")); + QVERIFY(globalEnums.first()->isAnonymous()); + + AbstractMetaClassList classes = t.builder()->classes(); + QCOMPARE(classes.count(), 1); + QCOMPARE(classes[0]->enums().count(), 1); + QCOMPARE(classes[0]->enums().first()->typeEntry()->qualifiedCppName(), QString("A::A1")); + QVERIFY(classes[0]->enums().first()->isAnonymous()); +} QTEST_APPLESS_MAIN(TestEnum) diff --git a/tests/testenum.h b/tests/testenum.h index f5011b265..9074f754f 100644 --- a/tests/testenum.h +++ b/tests/testenum.h @@ -31,6 +31,7 @@ class TestEnum : public QObject private slots: void testEnumCppSignature(); void testEnumWithApiVersion(); + void testAnonymousEnum(); }; #endif |