diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/testnamespace.cpp | 29 | ||||
-rw-r--r-- | tests/testnamespace.h | 1 |
2 files changed, 30 insertions, 0 deletions
diff --git a/tests/testnamespace.cpp b/tests/testnamespace.cpp index a860b35eb..3833700a7 100644 --- a/tests/testnamespace.cpp +++ b/tests/testnamespace.cpp @@ -51,6 +51,35 @@ void TestNamespace::testNamespaceMembers() QVERIFY(func); } +void TestNamespace::testNamespaceInnerClassMembers() +{ + const char* cppCode = "\ + namespace OuterNamespace\ + {\ + namespace InnerNamespace {\ + struct SomeClass {\ + void method();\ + };\ + };\ + };"; + const char* xmlCode = "\ + <typesystem package='Foo'> \ + <namespace-type name='OuterNamespace' />\ + <namespace-type name='OuterNamespace::InnerNamespace' />\ + <value-type name='OuterNamespace::InnerNamespace::SomeClass' /> \ + </typesystem>"; + TestUtil t(cppCode, xmlCode, false); + AbstractMetaClassList classes = t.builder()->classes(); + AbstractMetaClass* ons = classes.findClass("OuterNamespace"); + QVERIFY(ons); + AbstractMetaClass* ins = classes.findClass("OuterNamespace::InnerNamespace"); + QVERIFY(ins); + AbstractMetaClass* sc = classes.findClass("OuterNamespace::InnerNamespace::SomeClass"); + QVERIFY(sc); + const AbstractMetaFunction* meth = sc->findFunction("method"); + QVERIFY(meth); +} + QTEST_APPLESS_MAIN(TestNamespace) #include "testnamespace.moc" diff --git a/tests/testnamespace.h b/tests/testnamespace.h index 69595d141..77f24eb9b 100644 --- a/tests/testnamespace.h +++ b/tests/testnamespace.h @@ -31,6 +31,7 @@ class TestNamespace : public QObject Q_OBJECT private slots: void testNamespaceMembers(); + void testNamespaceInnerClassMembers(); }; #endif |