diff options
author | Hugo Lima <hugo.lima@openbossa.org> | 2009-09-11 11:21:05 -0300 |
---|---|---|
committer | Hugo Lima <hugo.lima@openbossa.org> | 2009-09-15 14:01:38 -0300 |
commit | 2ed8b4dcc030ce0274ea056dd541f48d57629ee8 (patch) | |
tree | f5e6f65859c5478b0fe6c5053fbd402f35f94387 /tests | |
parent | 752c22056f4ba61961a01819992f9af71a3b0416 (diff) |
Added more tests for APIExtractor.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/testabstractmetatype.cpp | 31 | ||||
-rw-r--r-- | tests/testabstractmetatype.h | 1 |
2 files changed, 32 insertions, 0 deletions
diff --git a/tests/testabstractmetatype.cpp b/tests/testabstractmetatype.cpp index fdd9a16b5..21044a1fc 100644 --- a/tests/testabstractmetatype.cpp +++ b/tests/testabstractmetatype.cpp @@ -106,6 +106,37 @@ void TestAbstractMetaType::testTypedef() QVERIFY(c->isTypeAlias()); } +void TestAbstractMetaType::testTypedefWithTemplates() +{ + const char* cppCode ="\ + template<typename T>\ + class A {};\ + \ + class B {};\ + typedef A<B> C;\ + \ + void func(C c);\ + "; + const char* xmlCode = "<typesystem package=\"Foo\">\ + <container-type name='A' type='list'/>\ + <value-type name='B' />\ + </typesystem>"; + TestUtil t(cppCode, xmlCode); + + AbstractMetaClassList classes = t.builder()->classes(); + QCOMPARE(classes.size(), 1); + AbstractMetaFunctionList functions = t.builder()->globalFunctions(); + QCOMPARE(functions.count(), 1); + AbstractMetaFunction* function = functions.first(); + AbstractMetaArgumentList args = function->arguments(); + QCOMPARE(args.count(), 1); + AbstractMetaArgument* arg = args.first(); + AbstractMetaType* metaType = arg->type(); + QCOMPARE(metaType->cppSignature(), QString("A<B >")); + qDebug() << metaType->typeEntry()->isContainer(); +// QVERIFY(c->isTypeAlias()); +} + QTEST_APPLESS_MAIN(TestAbstractMetaType) #include "testabstractmetatype.moc" diff --git a/tests/testabstractmetatype.h b/tests/testabstractmetatype.h index 3d741edf4..fa3a825ef 100644 --- a/tests/testabstractmetatype.h +++ b/tests/testabstractmetatype.h @@ -33,6 +33,7 @@ private slots: void testConstCharPtrType(); void testCharType(); void testTypedef(); + void testTypedefWithTemplates(); }; #endif |