From 7e0b83f158ee45657c0824d2dc05dd2b28d1798a Mon Sep 17 00:00:00 2001 From: Marcelo Lira Date: Thu, 23 Sep 2010 16:51:16 -0300 Subject: Added tests for global enums. They check if the AbstractMetaEnumValues hold the correct value information about the enum item described. --- tests/testenum.cpp | 37 +++++++++++++++++++++++++++++++++++++ tests/testenum.h | 1 + 2 files changed, 38 insertions(+) (limited to 'tests') 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 = "\ + \ + \ + \ + "; + + 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 -- cgit v1.2.3