diff options
Diffstat (limited to 'tests/testnamespace.cpp')
-rw-r--r-- | tests/testnamespace.cpp | 29 |
1 files changed, 29 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" |