diff options
author | Marcelo Lira <marcelo.lira@openbossa.org> | 2010-09-20 11:36:12 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-09 19:10:09 -0300 |
commit | c182be3e4c89fe81c15722708d8b712598a528b8 (patch) | |
tree | 7fb9ddb5fe2acda9c4d810df487ca9dca83a8bc9 | |
parent | 266fafd7336016d8326e0ea852584103daed3c3f (diff) |
Added tests for anonymous enums.
-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 |