aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/testnamespace.cpp29
-rw-r--r--tests/testnamespace.h1
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