aboutsummaryrefslogtreecommitdiffstats
path: root/tests/testenum.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/testenum.cpp')
-rw-r--r--tests/testenum.cpp30
1 files changed, 30 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)