* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
***************************************************************************/
-#include <qtest_kde.h>
-
#include "kitemviews/kitemmodelbase.h"
#include "kitemviews/kitemlistselectionmanager.h"
+#include <QTest>
+#include <QSignalSpy>
+
class DummyModel : public KItemModelBase
{
+ Q_OBJECT
public:
DummyModel();
void setCount(int count);
- virtual int count() const;
- virtual QHash<QByteArray, QVariant> data(int index) const;
+ int count() const override;
+ QHash<QByteArray, QVariant> data(int index) const override;
private:
int m_count;
};
}
-Q_DECLARE_METATYPE(KItemSet);
-Q_DECLARE_METATYPE(ChangeType);
-Q_DECLARE_METATYPE(KItemRange);
-Q_DECLARE_METATYPE(KItemRangeList);
-Q_DECLARE_METATYPE(KItemListSelectionManager::SelectionMode);
-Q_DECLARE_METATYPE(QList<int>);
+Q_DECLARE_METATYPE(KItemSet)
+Q_DECLARE_METATYPE(ChangeType)
+Q_DECLARE_METATYPE(KItemRange)
+Q_DECLARE_METATYPE(KItemRangeList)
+Q_DECLARE_METATYPE(KItemListSelectionManager::SelectionMode)
+Q_DECLARE_METATYPE(QList<int>)
/**
* The following function provides a generic way to test the selection functionality.
*
* The test is data-driven and takes the following arguments:
*
- * \param initialSelection The selection at the beginning.
- * \param anchor This item will be the anchor item.
- * \param current This item will be the current item.
- * \param expectedSelection Expected selection after anchor and current are set.
- * \param changeType Type of the change that is done then:
- * - NoChange
- * - InsertItems -> data.at(0) provides the KItemRangeList. \sa KItemListSelectionManager::itemsInserted()
- * - RemoveItems -> data.at(0) provides the KItemRangeList. \sa KItemListSelectionManager::itemsRemoved()
- * - MoveItems -> data.at(0) provides the KItemRange containing the original indices,
- * data.at(1) provides the list containing the new indices
- * \sa KItemListSelectionManager::itemsMoved(), KItemModelBase::itemsMoved()
- * - EndAnchoredSelection
- * - SetSelected -> data.at(0) provides the index where the selection process starts,
- * data.at(1) provides the number of indices to be selected,
- * data.at(2) provides the selection mode.
- * \sa KItemListSelectionManager::setSelected()
- * \param data A list of QVariants which will be cast to the arguments needed for the chosen ChangeType (see above).
- * \param finalSelection The expected final selection.
+ * param initialSelection The selection at the beginning.
+ * param anchor This item will be the anchor item.
+ * param current This item will be the current item.
+ * param expectedSelection Expected selection after anchor and current are set.
+ * param changeType Type of the change that is done then:
+ * - NoChange
+ * - InsertItems -> data.at(0) provides the KItemRangeList. \sa KItemListSelectionManager::itemsInserted()
+ * - RemoveItems -> data.at(0) provides the KItemRangeList. \sa KItemListSelectionManager::itemsRemoved()
+ * - MoveItems -> data.at(0) provides the KItemRange containing the original indices,
+ * data.at(1) provides the list containing the new indices
+ * \sa KItemListSelectionManager::itemsMoved(), KItemModelBase::itemsMoved()
+ * - EndAnchoredSelection
+ * - SetSelected -> data.at(0) provides the index where the selection process starts,
+ * data.at(1) provides the number of indices to be selected,
+ * data.at(2) provides the selection mode.
+ * \sa KItemListSelectionManager::setSelected()
+ * param data A list of QVariants which will be cast to the arguments needed for the chosen ChangeType (see above).
+ * param finalSelection The expected final selection.
*
*/
-
void KItemListSelectionManagerTest::testChangeSelection_data()
{
QTest::addColumn<KItemSet>("initialSelection");
<< 2 << 3
<< (KItemSet() << 2 << 3 << 5 << 6)
<< NoChange
- << QList<QVariant>()
+ << QList<QVariant>{}
<< (KItemSet() << 2 << 3 << 5 << 6);
QTest::newRow("Insert Items")
<< 2 << 3
<< (KItemSet() << 2 << 3 << 5 << 6)
<< InsertItems
- << (QList<QVariant>() << QVariant::fromValue(KItemRangeList() << KItemRange(1, 1) << KItemRange(5, 2) << KItemRange(10, 5)))
+ << QList<QVariant>{QVariant::fromValue(KItemRangeList() << KItemRange(1, 1) << KItemRange(5, 2) << KItemRange(10, 5))}
<< (KItemSet() << 3 << 4 << 8 << 9);
QTest::newRow("Remove Items")
<< 2 << 3
<< (KItemSet() << 2 << 3 << 5 << 6)
<< RemoveItems
- << (QList<QVariant>() << QVariant::fromValue(KItemRangeList() << KItemRange(1, 1) << KItemRange(3, 1) << KItemRange(10, 5)))
+ << QList<QVariant>{QVariant::fromValue(KItemRangeList() << KItemRange(1, 1) << KItemRange(3, 1) << KItemRange(10, 5))}
<< (KItemSet() << 1 << 2 << 3 << 4);
QTest::newRow("Empty Anchored Selection")
<< 2 << 2
<< KItemSet()
<< EndAnchoredSelection
- << QList<QVariant>()
+ << QList<QVariant>{}
<< KItemSet();
QTest::newRow("Toggle selection")
<< 6 << 8
<< (KItemSet() << 1 << 3 << 4 << 6 << 7 << 8)
<< SetSelected
- << (QList<QVariant>() << 0 << 10 << QVariant::fromValue(KItemListSelectionManager::Toggle))
+ << QList<QVariant>{0, 10, QVariant::fromValue(KItemListSelectionManager::Toggle)}
<< (KItemSet() << 0 << 2 << 5 << 9);
// Swap items 2, 3 and 4, 5
<< -1 << -1
<< (KItemSet() << 0 << 1 << 2 << 3)
<< MoveItems
- << (QList<QVariant>() << QVariant::fromValue(KItemRange(2, 4))
- << QVariant::fromValue(QList<int>() << 4 << 5 << 2 << 3))
+ << QList<QVariant>{QVariant::fromValue(KItemRange(2, 4)),
+ QVariant::fromValue(QList<int>{4, 5, 2, 3})}
<< (KItemSet() << 0 << 1 << 4 << 5);
QTest::newRow("Move items with active anchored selection")
<< 0 << 3
<< (KItemSet() << 0 << 1 << 2 << 3)
<< MoveItems
- << (QList<QVariant>() << QVariant::fromValue(KItemRange(2, 4))
- << QVariant::fromValue(QList<int>() << 4 << 5 << 2 << 3))
+ << QList<QVariant>{QVariant::fromValue(KItemRange(2, 4)),
+ QVariant::fromValue(QList<int>{4, 5, 2, 3})}
<< (KItemSet() << 0 << 1 << 4 << 5);
// Revert sort order
<< 3 << 4
<< (KItemSet() << 0 << 1 << 3 << 4)
<< MoveItems
- << (QList<QVariant>() << QVariant::fromValue(KItemRange(0, 10))
- << QVariant::fromValue(QList<int>() << 9 << 8 << 7 << 6 << 5 << 4 << 3 << 2 << 1 << 0))
+ << QList<QVariant>{QVariant::fromValue(KItemRange(0, 10)),
+ QVariant::fromValue(QList<int>{9, 8, 7, 6, 5, 4, 3, 2, 1, 0})}
<< (KItemSet() << 5 << 6 << 8 << 9);
}
break;
case MoveItems:
m_selectionManager->itemsMoved(data.at(0).value<KItemRange>(),
- data.at(1).value<QList<int> >());
+ data.at(1).value<QList<int>>());
break;
case EndAnchoredSelection:
m_selectionManager->endAnchoredSelection();
m_selectionManager->beginAnchoredSelection(4);
// Reverse the items between 0 and 5.
- m_selectionManager->itemsMoved(KItemRange(0, 6), QList<int>() << 5 << 4 << 3 << 2 << 1 << 0);
+ m_selectionManager->itemsMoved(KItemRange(0, 6), {5, 4, 3, 2, 1, 0});
QCOMPARE(m_selectionManager->currentItem(), 1);
QCOMPARE(m_selectionManager->m_anchorItem, 1);
}
}
-QTEST_KDEMAIN(KItemListSelectionManagerTest, NoGUI)
+QTEST_GUILESS_MAIN(KItemListSelectionManagerTest)
#include "kitemlistselectionmanagertest.moc"