From fff2628c407b0e53bab6b47bcb82621f37111c0b Mon Sep 17 00:00:00 2001 From: Marcelo Lira Date: Wed, 30 Jun 2010 16:08:24 -0300 Subject: Added test for a class inheriting from a container template. The test is simple and only checks if the classes were inherited properly. --- tests/testtemplates.cpp | 36 ++++++++++++++++++++++++++++++++++++ tests/testtemplates.h | 1 + 2 files changed, 37 insertions(+) diff --git a/tests/testtemplates.cpp b/tests/testtemplates.cpp index 2eb66acb2..d0ea40e3d 100644 --- a/tests/testtemplates.cpp +++ b/tests/testtemplates.cpp @@ -110,6 +110,42 @@ void TestTemplates::testTemplateOnContainers() QCOMPARE(instance2->typeEntry()->qualifiedCppName(), QString("Namespace::E1")); } +void TestTemplates::testInheritanceFromContainterTemplate() +{ + const char cppCode[] = "\ + template\ + struct ListContainer {\ + inline void push_front(const T& t);\ + inline T& front();\ + };\ + struct FooBar {};\ + struct FooBars : public ListContainer {};\ + "; + + const char xmlCode[] = "\ + \ + \ + \ + \ + \ + \ + \ + \ + "; + + TestUtil t(cppCode, xmlCode, false); + AbstractMetaClassList classes = t.builder()->classes(); + AbstractMetaClassList templates = t.builder()->templates(); + QCOMPARE(classes.count(), 2); + QCOMPARE(templates.count(), 1); + + const AbstractMetaClass* foobars = classes.findClass("FooBars"); + QCOMPARE(foobars->functions().count(), 4); + + const AbstractMetaClass* lc = templates.first(); + QCOMPARE(lc->functions().count(), 2); +} + void TestTemplates::testTemplateInheritanceMixedWithForwardDeclaration() { const char cppCode[] = "\ diff --git a/tests/testtemplates.h b/tests/testtemplates.h index a7a61c795..df75db1d8 100644 --- a/tests/testtemplates.h +++ b/tests/testtemplates.h @@ -32,6 +32,7 @@ class TestTemplates : public QObject private slots: void testTemplateOnContainers(); void testTemplateWithNamespace(); + void testInheritanceFromContainterTemplate(); void testTemplateInheritanceMixedWithForwardDeclaration(); void testTemplateInheritanceMixedWithNamespaceAndForwardDeclaration(); }; -- cgit v1.2.3