┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/tests
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests')
-rw-r--r--src/tests/CMakeLists.txt7
-rw-r--r--src/tests/kfileitemmodeltest.cpp22
-rw-r--r--src/tests/kitemrangetest.cpp75
3 files changed, 104 insertions, 0 deletions
diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt
index 73a9d5c03..13a0abb58 100644
--- a/src/tests/CMakeLists.txt
+++ b/src/tests/CMakeLists.txt
@@ -12,6 +12,13 @@ set(kitemsettest_SRCS
kde4_add_unit_test(kitemsettest TEST ${kitemsettest_SRCS})
target_link_libraries(kitemsettest dolphinprivate ${KDE4_KIO_LIBS} ${QT_QTTEST_LIBRARY})
+# KItemRangeTest
+set(kitemrangetest_SRCS
+ kitemrangetest.cpp
+)
+kde4_add_unit_test(kitemrangetest TEST ${kitemrangetest_SRCS})
+target_link_libraries(kitemrangetest dolphinprivate ${KDE4_KIO_LIBS} ${QT_QTTEST_LIBRARY})
+
# KItemListSelectionManagerTest
set(kitemlistselectionmanagertest_SRCS
kitemlistselectionmanagertest.cpp
diff --git a/src/tests/kfileitemmodeltest.cpp b/src/tests/kfileitemmodeltest.cpp
index 48e72e83f..c584c5e62 100644
--- a/src/tests/kfileitemmodeltest.cpp
+++ b/src/tests/kfileitemmodeltest.cpp
@@ -95,6 +95,7 @@ private slots:
void testRefreshFilteredItems();
void testCollapseFolderWhileLoading();
void testCreateMimeData();
+ void testDeleteFileMoreThanOnce();
private:
QStringList itemsInModel() const;
@@ -1697,6 +1698,27 @@ void KFileItemModelTest::testCollapseFolderWhileLoading()
QVERIFY(!m_model->isExpanded(1));
}
+void KFileItemModelTest::testDeleteFileMoreThanOnce()
+{
+ QStringList files;
+ files << "a.txt" << "b.txt" << "c.txt" << "d.txt";
+ m_testDir->createFiles(files);
+
+ m_model->loadDirectory(m_testDir->url());
+ QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+ QCOMPARE(itemsInModel(), QStringList() << "a.txt" << "b.txt" << "c.txt" << "d.txt");
+
+ const KFileItem fileItemB = m_model->fileItem(1);
+
+ // Tell the model that a list of items has been deleted, where "b.txt" appears twice in the list.
+ KFileItemList list;
+ list << fileItemB << fileItemB;
+ m_model->slotItemsDeleted(list);
+
+ QVERIFY(m_model->isConsistent());
+ QCOMPARE(itemsInModel(), QStringList() << "a.txt" << "c.txt" << "d.txt");
+}
+
QStringList KFileItemModelTest::itemsInModel() const
{
QStringList items;
diff --git a/src/tests/kitemrangetest.cpp b/src/tests/kitemrangetest.cpp
new file mode 100644
index 000000000..9f3f79980
--- /dev/null
+++ b/src/tests/kitemrangetest.cpp
@@ -0,0 +1,75 @@
+/***************************************************************************
+ * Copyright (C) 2014 by Frank Reininghaus <[email protected]> *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA *
+ ***************************************************************************/
+
+#include <qtest_kde.h>
+
+#include "kitemviews/kitemrange.h"
+
+#include <QVector>
+
+Q_DECLARE_METATYPE(QVector<int>);
+Q_DECLARE_METATYPE(KItemRangeList);
+
+class KItemRangeTest : public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void testFromSortedContainer_data();
+ void testFromSortedContainer();
+};
+
+void KItemRangeTest::testFromSortedContainer_data()
+{
+ QTest::addColumn<QVector<int> >("sortedNumbers");
+ QTest::addColumn<KItemRangeList>("expected");
+
+ QTest::newRow("empty") << QVector<int>() << KItemRangeList();
+ QTest::newRow("[1]") << (QVector<int>() << 1) << (KItemRangeList() << KItemRange(1, 1));
+ QTest::newRow("[9]") << (QVector<int>() << 9) << (KItemRangeList() << KItemRange(9, 1));
+ QTest::newRow("[1-2]") << (QVector<int>() << 1 << 2) << (KItemRangeList() << KItemRange(1, 2));
+ QTest::newRow("[1-3]") << (QVector<int>() << 1 << 2 << 3) << (KItemRangeList() << KItemRange(1, 3));
+ QTest::newRow("[1] [4]") << (QVector<int>() << 1 << 4) << (KItemRangeList() << KItemRange(1, 1) << KItemRange(4, 1));
+ QTest::newRow("[1-3] [5]") << (QVector<int>() << 1 << 2 << 3 << 5) << (KItemRangeList() << KItemRange(1, 3) << KItemRange(5, 1));
+ QTest::newRow("[1] [5-6]") << (QVector<int>() << 1 << 5 << 6) << (KItemRangeList() << KItemRange(1, 1) << KItemRange(5, 2));
+ QTest::newRow("duplicates: 1 1") << (QVector<int>() << 1 << 1) << (KItemRangeList() << KItemRange(1, 1));
+ QTest::newRow("duplicates: 1 1 1") << (QVector<int>() << 1 << 1 << 1) << (KItemRangeList() << KItemRange(1, 1));
+ QTest::newRow("duplicates: 1 1 5") << (QVector<int>() << 1 << 1 << 5) << (KItemRangeList() << KItemRange(1, 1) << KItemRange(5, 1));
+ QTest::newRow("duplicates: 1 5 5") << (QVector<int>() << 1 << 5 << 5) << (KItemRangeList() << KItemRange(1, 1) << KItemRange(5, 1));
+ QTest::newRow("duplicates: 1 1 1 5") << (QVector<int>() << 1 << 1 << 1 << 5) << (KItemRangeList() << KItemRange(1, 1) << KItemRange(5, 1));
+ QTest::newRow("duplicates: 1 5 5 5") << (QVector<int>() << 1 << 5 << 5 << 5) << (KItemRangeList() << KItemRange(1, 1) << KItemRange(5, 1));
+ QTest::newRow("duplicates: 1 1 2") << (QVector<int>() << 1 << 1 << 2) << (KItemRangeList() << KItemRange(1, 2));
+ QTest::newRow("duplicates: 1 2 2") << (QVector<int>() << 1 << 2 << 2) << (KItemRangeList() << KItemRange(1, 2));
+ QTest::newRow("duplicates: 1 1 2 3") << (QVector<int>() << 1 << 1 << 2 << 3) << (KItemRangeList() << KItemRange(1, 3));
+ QTest::newRow("duplicates: 1 2 2 3") << (QVector<int>() << 1 << 2 << 2 << 3) << (KItemRangeList() << KItemRange(1, 3));
+ QTest::newRow("duplicates: 1 2 3 3") << (QVector<int>() << 1 << 2 << 3 << 3) << (KItemRangeList() << KItemRange(1, 3));
+}
+
+void KItemRangeTest::testFromSortedContainer()
+{
+ QFETCH(QVector<int>, sortedNumbers);
+ QFETCH(KItemRangeList, expected);
+
+ const KItemRangeList result = KItemRangeList::fromSortedContainer(sortedNumbers);
+ QCOMPARE(expected, result);
+}
+
+QTEST_KDEMAIN(KItemRangeTest, NoGUI)
+
+#include "kitemrangetest.moc"