diff options
author | Marcelo Lira <marcelo.lira@openbossa.org> | 2010-09-23 16:51:16 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-09 19:10:10 -0300 |
commit | 7e0b83f158ee45657c0824d2dc05dd2b28d1798a (patch) | |
tree | 44956c805d4974928d733ec64b82a4d85c28938e /tests | |
parent | 3f4f28d14b3dfc7be0834ef13a0a04350dec752b (diff) |
Added tests for global enums.
They check if the AbstractMetaEnumValues hold the correct value
information about the enum item described.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/testenum.cpp | 37 | ||||
-rw-r--r-- | tests/testenum.h | 1 |
2 files changed, 38 insertions, 0 deletions
diff --git a/tests/testenum.cpp b/tests/testenum.cpp index 82a0288ac..4df31899f 100644 --- a/tests/testenum.cpp +++ b/tests/testenum.cpp @@ -130,6 +130,43 @@ void TestEnum::testAnonymousEnum() QVERIFY(classes[0]->enums().first()->isAnonymous()); } +void TestEnum::testGlobalEnums() +{ + const char* cppCode ="\ + enum EnumA { A0, A1 }; \ + enum EnumB { B0 = 2, B1 = 4 }; \ + "; + const char* xmlCode = "\ + <typesystem package=\"Foo\"> \ + <enum-type name='EnumA'/>\ + <enum-type name='EnumB'/>\ + </typesystem>"; + + TestUtil t(cppCode, xmlCode, false); + + AbstractMetaEnumList globalEnums = t.builder()->globalEnums(); + QCOMPARE(globalEnums.count(), 2); + + AbstractMetaEnum* enumA = globalEnums.first(); + QCOMPARE(enumA->typeEntry()->qualifiedCppName(), QString("EnumA")); + AbstractMetaEnumValue* enumValueA0 = enumA->values().first(); + QCOMPARE(enumValueA0->name(), QString("A0")); + QCOMPARE(enumValueA0->value(), 0); + AbstractMetaEnumValue* enumValueA1 = enumA->values().last(); + QCOMPARE(enumValueA1->name(), QString("A1")); + QCOMPARE(enumValueA1->value(), 1); + + AbstractMetaEnum* enumB = globalEnums.last(); + QCOMPARE(enumB->typeEntry()->qualifiedCppName(), QString("EnumB")); + + AbstractMetaEnumValue* enumValueB0 = enumB->values().first(); + QCOMPARE(enumValueB0->name(), QString("B0")); + QCOMPARE(enumValueB0->value(), 2); + AbstractMetaEnumValue* enumValueB1 = enumB->values().last(); + QCOMPARE(enumValueB1->name(), QString("B1")); + QCOMPARE(enumValueB1->value(), 4); +} + QTEST_APPLESS_MAIN(TestEnum) #include "testenum.moc" diff --git a/tests/testenum.h b/tests/testenum.h index 9074f754f..38826ccfb 100644 --- a/tests/testenum.h +++ b/tests/testenum.h @@ -32,6 +32,7 @@ private slots: void testEnumCppSignature(); void testEnumWithApiVersion(); void testAnonymousEnum(); + void testGlobalEnums(); }; #endif |