diff options
author | Marcelo Lira <marcelo.lira@openbossa.org> | 2011-12-21 18:43:02 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-09 19:10:21 -0300 |
commit | 3fed11c07c214e4c396f2ecfd19236ac1dcedb07 (patch) | |
tree | c0bcc5611a7a52eaa88058355182d03167023a20 /tests | |
parent | 8550517e9d3a03603ece294e4183853040e16fd8 (diff) |
Fixed type resolution for types inside scopes, but their names omit this information.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/testnestedtypes.cpp | 35 | ||||
-rw-r--r-- | tests/testnestedtypes.h | 1 |
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 |