aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorHugo Lima <hugo.lima@openbossa.org>2009-09-11 11:21:05 -0300
committerHugo Lima <hugo.lima@openbossa.org>2009-09-15 14:01:38 -0300
commit2ed8b4dcc030ce0274ea056dd541f48d57629ee8 (patch)
treef5e6f65859c5478b0fe6c5053fbd402f35f94387 /tests
parent752c22056f4ba61961a01819992f9af71a3b0416 (diff)
Added more tests for APIExtractor.
Diffstat (limited to 'tests')
-rw-r--r--tests/testabstractmetatype.cpp31
-rw-r--r--tests/testabstractmetatype.h1
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