aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMarcelo Lira <marcelo.lira@openbossa.org>2010-09-23 16:51:16 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-09 19:10:10 -0300
commit7e0b83f158ee45657c0824d2dc05dd2b28d1798a (patch)
tree44956c805d4974928d733ec64b82a4d85c28938e /tests
parent3f4f28d14b3dfc7be0834ef13a0a04350dec752b (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.cpp37
-rw-r--r--tests/testenum.h1
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