File indexing completed on 2024-05-19 04:39:59
0001 /* 0002 SPDX-FileCopyrightText: 2014 Kevin Funk <kfunk@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 */ 0006 0007 #include "test_objectlist.h" 0008 0009 #include "objectlist.h" 0010 0011 #include <QTest> 0012 #include <QStandardPaths> 0013 0014 QTEST_MAIN(TestObjectList) 0015 0016 using namespace KDevelop; 0017 0018 void TestObjectList::initTestCase() 0019 { 0020 QStandardPaths::setTestModeEnabled(true); 0021 } 0022 0023 void TestObjectList::testBasicInterface() 0024 { 0025 ObjectList<QObject> list; 0026 0027 QObject o; 0028 list.append(&o); 0029 QCOMPARE(list.data().size(), 1); 0030 QCOMPARE(list.data().at(0), &o); 0031 QCOMPARE(list.data().value(0), &o); 0032 0033 QCOMPARE(list.data().size(), 1); 0034 QCOMPARE(list.data().at(0), &o); 0035 0036 QVERIFY(list.remove(&o)); 0037 QCOMPARE(list.data().size(), 0); 0038 //QCOMPARE(list.at(0)), &o); // would crash 0039 QVERIFY(!list.data().value(0)); 0040 0041 QVERIFY(list.data().isEmpty()); 0042 0043 // try removing it again 0044 QVERIFY(!list.remove(&o)); 0045 } 0046 0047 void TestObjectList::testDeleteAll() 0048 { 0049 ObjectList<QObject> list; 0050 0051 QPointer<QObject> p(new QObject); 0052 list.append(p.data()); 0053 list.deleteAll(); 0054 QVERIFY(!p); 0055 } 0056 0057 void TestObjectList::testBehaviorOnDestruction() 0058 { 0059 QPointer<QObject> p(new QObject); 0060 0061 { 0062 ObjectList<QObject> list; 0063 list.append(p.data()); 0064 // nothing is supposed to happen on destruction 0065 } 0066 QVERIFY(p); 0067 0068 { 0069 ObjectList<QObject> list(ObjectListTracker::CleanupWhenDone); 0070 list.append(p.data()); 0071 } 0072 QVERIFY(!p); 0073 } 0074 0075 #include "moc_test_objectlist.cpp"