]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/tests/kitemlistselectionmanagertest.cpp
Two small selection improvements in DolphinView
[dolphin.git] / src / tests / kitemlistselectionmanagertest.cpp
index 3174a8b4d7b85483d3d29ea5cd4ca70b26ce68b6..5a3ffd55c71247378a362cd80581559157b550a2 100644 (file)
@@ -311,15 +311,17 @@ void KItemListSelectionManagerTest::testAnchoredSelection()
 }
 
 namespace {
-    enum ModelChangeType {
+    enum ChangeType {
         NoChange,
         InsertItems,
-        RemoveItems
+        RemoveItems,
+        EndAnchoredSelection,
+        ToggleSelected
     };
 }
 
 Q_DECLARE_METATYPE(QSet<int>);
-Q_DECLARE_METATYPE(ModelChangeType);
+Q_DECLARE_METATYPE(ChangeType);
 Q_DECLARE_METATYPE(KItemRangeList);
 
 void KItemListSelectionManagerTest::testChangeSelection_data()
@@ -328,7 +330,7 @@ void KItemListSelectionManagerTest::testChangeSelection_data()
     QTest::addColumn<int>("anchor");
     QTest::addColumn<int>("current");
     QTest::addColumn<QSet<int> >("expectedSelection");
-    QTest::addColumn<ModelChangeType>("changeType");
+    QTest::addColumn<ChangeType>("changeType");
     QTest::addColumn<KItemRangeList>("changedItems");
     QTest::addColumn<QSet<int> >("finalSelection");
 
@@ -352,6 +354,20 @@ void KItemListSelectionManagerTest::testChangeSelection_data()
         << (QSet<int>() << 2 << 3 << 5 << 6)
         << RemoveItems << (KItemRangeList() << KItemRange(1, 1) << KItemRange(3, 1) << KItemRange(10, 5))
         << (QSet<int>() << 1 << 2 << 3 << 4);
+
+    QTest::newRow("Empty Anchored Selection")
+        << QSet<int>()
+        << 2 << 2
+        << QSet<int>()
+        << EndAnchoredSelection << KItemRangeList()
+        << QSet<int>();
+
+    QTest::newRow("Toggle selection")
+        << (QSet<int>() << 1 << 3 << 4)
+        << 6 << 8
+        << (QSet<int>() << 1 << 3 << 4 << 6 << 7 << 8)
+        << ToggleSelected << (KItemRangeList() << KItemRange(0, 10))
+        << (QSet<int>() << 0 << 2 << 5 << 9);
 }
 
 void KItemListSelectionManagerTest::testChangeSelection()
@@ -360,7 +376,7 @@ void KItemListSelectionManagerTest::testChangeSelection()
     QFETCH(int, anchor);
     QFETCH(int, current);
     QFETCH(QSet<int> , expectedSelection);
-    QFETCH(ModelChangeType, changeType);
+    QFETCH(ChangeType, changeType);
     QFETCH(KItemRangeList, changedItems);
     QFETCH(QSet<int> , finalSelection);
 
@@ -411,6 +427,15 @@ void KItemListSelectionManagerTest::testChangeSelection()
     case RemoveItems:
         m_selectionManager->itemsRemoved(changedItems);
         break;
+    case EndAnchoredSelection:
+        m_selectionManager->endAnchoredSelection();
+        QVERIFY(!m_selectionManager->isAnchoredSelectionActive());
+        break;
+    case ToggleSelected:
+        foreach(const KItemRange& range, changedItems) {
+            m_selectionManager->setSelected(range.index, range.count, KItemListSelectionManager::Toggle);
+        }
+        break;
     case NoChange:
         break;
     }