aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMarcelo Lira <marcelo.lira@openbossa.org>2010-09-20 11:36:12 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-09 19:10:09 -0300
commitc182be3e4c89fe81c15722708d8b712598a528b8 (patch)
tree7fb9ddb5fe2acda9c4d810df487ca9dca83a8bc9 /tests
parent266fafd7336016d8326e0ea852584103daed3c3f (diff)
Added tests for anonymous enums.
Diffstat (limited to 'tests')
-rw-r--r--tests/testenum.cpp30
-rw-r--r--tests/testenum.h1
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