From 6fda7c1130e1ca7512ea2936ce2336722381fe07 Mon Sep 17 00:00:00 2001 From: Marcelo Lira Date: Wed, 16 Feb 2011 08:22:04 -0300 Subject: Added a test for dropped type system entries. Also updated the TestUtil class to deal with dropped entries. --- tests/testdroptypeentries.cpp | 110 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 tests/testdroptypeentries.cpp (limited to 'tests/testdroptypeentries.cpp') diff --git a/tests/testdroptypeentries.cpp b/tests/testdroptypeentries.cpp new file mode 100644 index 000000000..159bb67a9 --- /dev/null +++ b/tests/testdroptypeentries.cpp @@ -0,0 +1,110 @@ +/* +* This file is part of the API Extractor project. +* +* Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +* +* Contact: PySide team +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* version 2 as published by the Free Software Foundation. +* +* This program is distributed in the hope that it will be useful, but +* WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +* General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +* 02110-1301 USA +* +*/ + +#include "testdroptypeentries.h" +#include +#include "testutil.h" + +static const char* cppCode ="\ + struct ValueA {};\ + struct ValueB {};\ + struct ObjectA {};\ + struct ObjectB {};\ + namespace NamespaceA {\ + struct InnerClassA {};\ + namespace InnerNamespaceA {}\ + }\ + namespace NamespaceB {}\ + enum EnumA { Value0 };\ + enum EnumB { Value1 };\ + void funcA();\ + void funcB();\ +"; + +static const char* xmlCode = "\ +\ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ +"; + +void TestDropTypeEntries::testDropEntries() +{ + QStringList droppedEntries("Foo.ValueB"); + droppedEntries << "Foo.ObjectB" << "Foo.NamespaceA.InnerClassA"; + droppedEntries << "Foo.NamespaceB" << "Foo.EnumB" << "Foo.funcB()"; + droppedEntries << "Foo.NamespaceA.InnerNamespaceA"; + TestUtil t(cppCode, xmlCode, false, 0, droppedEntries); + + AbstractMetaClassList classes = t.builder()->classes(); + QVERIFY(classes.findClass("ValueA")); + QVERIFY(!classes.findClass("ValueB")); + QVERIFY(classes.findClass("ObjectA")); + QVERIFY(!classes.findClass("ObjectB")); + QVERIFY(classes.findClass("NamespaceA")); + QVERIFY(!classes.findClass("NamespaceA::InnerClassA")); + QVERIFY(!classes.findClass("NamespaceB")); + + AbstractMetaEnumList globalEnums = t.builder()->globalEnums(); + QCOMPARE(globalEnums.count(), 1); + QCOMPARE(globalEnums.first()->name(), QString("EnumA")); + + TypeDatabase* td = TypeDatabase::instance(); + QVERIFY(td->findType("funcA")); + QVERIFY(!td->findType("funcB")); +} + +void TestDropTypeEntries::testDontDropEntries() +{ + TestUtil t(cppCode, xmlCode, false); + + AbstractMetaClassList classes = t.builder()->classes(); + QVERIFY(classes.findClass("ValueA")); + QVERIFY(classes.findClass("ValueB")); + QVERIFY(classes.findClass("ObjectA")); + QVERIFY(classes.findClass("ObjectB")); + QVERIFY(classes.findClass("NamespaceA")); + QVERIFY(classes.findClass("NamespaceA::InnerClassA")); + QVERIFY(classes.findClass("NamespaceB")); + + QCOMPARE(t.builder()->globalEnums().size(), 2); + + TypeDatabase* td = TypeDatabase::instance(); + QVERIFY(td->findType("funcA")); + QVERIFY(td->findType("funcB")); +} + +QTEST_APPLESS_MAIN(TestDropTypeEntries) + +#include "testdroptypeentries.moc" + -- cgit v1.2.3