aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMarcelo Lira <marcelo.lira@openbossa.org>2011-12-21 18:43:02 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-09 19:10:21 -0300
commit3fed11c07c214e4c396f2ecfd19236ac1dcedb07 (patch)
treec0bcc5611a7a52eaa88058355182d03167023a20 /tests
parent8550517e9d3a03603ece294e4183853040e16fd8 (diff)
Fixed type resolution for types inside scopes, but their names omit this information.
Diffstat (limited to 'tests')
-rw-r--r--tests/testnestedtypes.cpp35
-rw-r--r--tests/testnestedtypes.h1
2 files changed, 36 insertions, 0 deletions
diff --git a/tests/testnestedtypes.cpp b/tests/testnestedtypes.cpp
index 76c5ccd1a..4e000cb08 100644
--- a/tests/testnestedtypes.cpp
+++ b/tests/testnestedtypes.cpp
@@ -82,6 +82,41 @@ void TestNestedTypes::testNestedTypesModifications()
QVERIFY(removedFunc->isModifiedRemoved());
}
+
+void TestNestedTypes::testDuplicationOfNestedTypes()
+{
+ const char* cppCode ="\
+ namespace Namespace {\
+ class SomeClass {};\
+ };";
+ const char* xmlCode = "\
+ <typesystem package='Foo'> \
+ <namespace-type name='Namespace'>\
+ <value-type name='SomeClass'>\
+ <add-function signature='createSomeClass(SomeClass)'/>\
+ </value-type>\
+ </namespace-type>\
+ </typesystem>";
+
+ TestUtil t(cppCode, xmlCode, false);
+ AbstractMetaClassList classes = t.builder()->classes();
+ QCOMPARE(classes.count(), 2);
+ AbstractMetaClass* nspace = classes.findClass("Namespace");
+ QVERIFY(nspace);
+ AbstractMetaClass* cls1 = classes.findClass("SomeClass");
+ QVERIFY(cls1);
+ AbstractMetaClass* cls2 = classes.findClass("Namespace::SomeClass");
+ QVERIFY(cls2);
+ QCOMPARE(cls1, cls2);
+ QCOMPARE(cls1->name(), QString("SomeClass"));
+ QCOMPARE(cls1->qualifiedCppName(), QString("Namespace::SomeClass"));
+
+ TypeEntry* t1 = TypeDatabase::instance()->findType("Namespace::SomeClass");
+ QVERIFY(t1);
+ TypeEntry* t2 = TypeDatabase::instance()->findType("SomeClass");
+ QCOMPARE(t1, t2);
+}
+
QTEST_APPLESS_MAIN(TestNestedTypes)
#include "testnestedtypes.moc"
diff --git a/tests/testnestedtypes.h b/tests/testnestedtypes.h
index b9980b0a6..d0b828b0c 100644
--- a/tests/testnestedtypes.h
+++ b/tests/testnestedtypes.h
@@ -30,6 +30,7 @@ class TestNestedTypes : public QObject
Q_OBJECT
private slots:
void testNestedTypesModifications();
+ void testDuplicationOfNestedTypes();
};
#endif