diff options
-rw-r--r-- | tests/testabstractmetaclass.cpp | 23 | ||||
-rw-r--r-- | tests/testabstractmetaclass.h | 1 |
2 files changed, 24 insertions, 0 deletions
diff --git a/tests/testabstractmetaclass.cpp b/tests/testabstractmetaclass.cpp index 244caa0c4..1248ee318 100644 --- a/tests/testabstractmetaclass.cpp +++ b/tests/testabstractmetaclass.cpp @@ -197,6 +197,29 @@ void TestAbstractMetaClass::testModifiedDefaultValues() QCOMPARE(arg->originalDefaultValueExpression(), QString("A::B()")); } +void TestAbstractMetaClass::testInnerClassOfAPolymorphicOne() +{ + const char* cppCode ="\ + struct A {\ + class B {};\ + virtual void method();\ + };\ + "; + const char* xmlCode = "\ + <typesystem package=\"Foo\"> \ + <object-type name='A' /> \ + <value-type name='A::B' /> \ + </typesystem>"; + TestUtil t(cppCode, xmlCode); + AbstractMetaClassList classes = t.builder()->classes(); + QCOMPARE(classes.count(), 2); + AbstractMetaClass* classA = classes.findClass("A"); + QVERIFY(classA); + QVERIFY(classA->isPolymorphic()); + AbstractMetaClass* classB = classes.findClass("A::B"); + QVERIFY(classB); + QVERIFY(!classB->isPolymorphic()); +} QTEST_APPLESS_MAIN(TestAbstractMetaClass) diff --git a/tests/testabstractmetaclass.h b/tests/testabstractmetaclass.h index c89cbc5d1..ef41c2fce 100644 --- a/tests/testabstractmetaclass.h +++ b/tests/testabstractmetaclass.h @@ -37,6 +37,7 @@ private slots: void testVirtualMethods(); void testDefaultValues(); void testModifiedDefaultValues(); + void testInnerClassOfAPolymorphicOne(); }; #endif // TESTABSTRACTMETACLASS_H |