File indexing completed on 2024-04-21 04:57:52
0001 /* This file is part of KDE 0002 SPDX-FileCopyrightText: 2007 David Faure <faure@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include <konqcloseditem.h> 0008 #include <qtest_gui.h> 0009 #include <QSignalSpy> 0010 #include <konqundomanager.h> 0011 #include <konqsessionmanager.h> 0012 #include <konqclosedwindowsmanager.h> 0013 0014 class UndoManagerTest : public QObject 0015 { 0016 Q_OBJECT 0017 0018 private Q_SLOTS: 0019 void initTestCase(); 0020 void testAddClosedTabItem(); 0021 void testUndoLastClosedTab(); 0022 0023 private: 0024 KonqClosedWindowsManager m_cwManager; 0025 }; 0026 0027 QTEST_MAIN(UndoManagerTest) 0028 0029 void UndoManagerTest::initTestCase() 0030 { 0031 // Make sure we start clean 0032 QStandardPaths::setTestModeEnabled(true); 0033 KonqSessionManager::self()->disableAutosave(); 0034 KonqUndoManager manager(&m_cwManager, nullptr); 0035 QSignalSpy spyUndoAvailable(&manager, SIGNAL(undoAvailable(bool))); 0036 QVERIFY(spyUndoAvailable.isValid()); 0037 manager.clearClosedItemsList(); 0038 QCOMPARE(spyUndoAvailable.count(), 1); 0039 QCOMPARE(spyUndoAvailable[0][0], QVariant(false)); 0040 QVERIFY(!manager.undoAvailable()); 0041 } 0042 0043 void UndoManagerTest::testAddClosedTabItem() 0044 { 0045 KonqUndoManager manager(&m_cwManager, nullptr); 0046 QVERIFY(!manager.undoAvailable()); 0047 KonqClosedTabItem *item = new KonqClosedTabItem(QStringLiteral("url"), m_cwManager.memoryStore(), 0048 QStringLiteral("title"), 0, manager.newCommandSerialNumber()); 0049 QCOMPARE(item->url(), QString("url")); 0050 QCOMPARE(item->serialNumber(), quint64(1001)); 0051 QCOMPARE(item->pos(), 0); 0052 KConfigGroup configGroup = item->configGroup(); 0053 QVERIFY(!configGroup.exists()); 0054 0055 QSignalSpy spyUndoAvailable(&manager, SIGNAL(undoAvailable(bool))); 0056 QVERIFY(spyUndoAvailable.isValid()); 0057 QSignalSpy spyTextChanged(&manager, SIGNAL(undoTextChanged(QString))); 0058 QVERIFY(spyTextChanged.isValid()); 0059 manager.addClosedTabItem(item); 0060 0061 QVERIFY(manager.undoAvailable()); 0062 QCOMPARE(spyUndoAvailable.count(), 1); 0063 QCOMPARE(spyTextChanged.count(), 1); 0064 QCOMPARE(manager.closedItemsList().count(), 1); 0065 configGroup.writeEntry("RootItem", "test"); 0066 QVERIFY(!configGroup.keyList().isEmpty()); 0067 0068 // This requires a default constructor... 0069 //qRegisterMetaType<KonqClosedTabItem>("KonqClosedTabItem"); 0070 QSignalSpy spyOpenClosedTab(&manager, SIGNAL(openClosedTab(KonqClosedTabItem))); 0071 manager.undo(); 0072 QCOMPARE(spyUndoAvailable.count(), 2); 0073 QVERIFY(!manager.undoAvailable()); 0074 QCOMPARE(spyOpenClosedTab.count(), 1); 0075 QCOMPARE(manager.closedItemsList().count(), 0); 0076 QVERIFY(configGroup.keyList().isEmpty()); // was deleted by the KonqClosedTabItem destructor 0077 } 0078 0079 void UndoManagerTest::testUndoLastClosedTab() 0080 { 0081 0082 } 0083 0084 #include "undomanagertest.moc"