QSortFilterProxyModel unittest: add test for filtered-out-after-setData
The row names for this test were very unspecific. After reverse-engineering what they are testing, I gave them proper descriptive names, which allowed me to notice that there were tests for "filtered in after sourceModel->setData" but not for "filtered out after sourceModel->setData". Change-Id: Ib79108db803ae77fb65d29cf0c0ef96c26655980 Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de> Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>bb10
parent
9f1568d18c
commit
8a73085a0d
|
|
@ -1894,6 +1894,7 @@ void tst_QSortFilterProxyModel::changeSourceData_data()
|
|||
QTest::addColumn<QStringList>("sourceItems");
|
||||
QTest::addColumn<int>("sortOrder");
|
||||
QTest::addColumn<QString>("filter");
|
||||
QTest::addColumn<QStringList>("expectedInitialProxyItems");
|
||||
QTest::addColumn<bool>("dynamic");
|
||||
QTest::addColumn<int>("row");
|
||||
QTest::addColumn<QString>("newValue");
|
||||
|
|
@ -1901,10 +1902,11 @@ void tst_QSortFilterProxyModel::changeSourceData_data()
|
|||
QTest::addColumn<IntPairList>("insertIntervals");
|
||||
QTest::addColumn<QStringList>("proxyItems");
|
||||
|
||||
QTest::newRow("changeSourceData (1)")
|
||||
QTest::newRow("move_to_end_ascending")
|
||||
<< (QStringList() << "c" << "b" << "a") // sourceItems
|
||||
<< static_cast<int>(Qt::AscendingOrder) // sortOrder
|
||||
<< "" // filter
|
||||
<< (QStringList() << "a" << "b" << "c") // expectedInitialProxyItems
|
||||
<< true // dynamic
|
||||
<< 2 // row
|
||||
<< "z" // newValue
|
||||
|
|
@ -1913,10 +1915,11 @@ void tst_QSortFilterProxyModel::changeSourceData_data()
|
|||
<< (QStringList() << "b" << "c" << "z") // proxyItems
|
||||
;
|
||||
|
||||
QTest::newRow("changeSourceData (2)")
|
||||
QTest::newRow("move_to_end_descending")
|
||||
<< (QStringList() << "b" << "c" << "z") // sourceItems
|
||||
<< static_cast<int>(Qt::DescendingOrder) // sortOrder
|
||||
<< "" // filter
|
||||
<< (QStringList() << "z" << "c" << "b") // expectedInitialProxyItems
|
||||
<< true // dynamic
|
||||
<< 1 // row
|
||||
<< "a" // newValue
|
||||
|
|
@ -1925,10 +1928,11 @@ void tst_QSortFilterProxyModel::changeSourceData_data()
|
|||
<< (QStringList() << "z" << "b" << "a") // proxyItems
|
||||
;
|
||||
|
||||
QTest::newRow("changeSourceData (3)")
|
||||
QTest::newRow("no_op_change")
|
||||
<< (QStringList() << "a" << "b") // sourceItems
|
||||
<< static_cast<int>(Qt::DescendingOrder) // sortOrder
|
||||
<< "" // filter
|
||||
<< (QStringList() << "b" << "a") // expectedInitialProxyItems
|
||||
<< true // dynamic
|
||||
<< 0 // row
|
||||
<< "a" // newValue
|
||||
|
|
@ -1937,10 +1941,11 @@ void tst_QSortFilterProxyModel::changeSourceData_data()
|
|||
<< (QStringList() << "b" << "a") // proxyItems
|
||||
;
|
||||
|
||||
QTest::newRow("changeSourceData (4)")
|
||||
QTest::newRow("filtered_out_value_stays_out")
|
||||
<< (QStringList() << "a" << "b" << "c" << "d") // sourceItems
|
||||
<< static_cast<int>(Qt::AscendingOrder) // sortOrder
|
||||
<< "a|c" // filter
|
||||
<< (QStringList() << "a" << "c") // expectedInitialProxyItems
|
||||
<< true // dynamic
|
||||
<< 1 // row
|
||||
<< "x" // newValue
|
||||
|
|
@ -1949,10 +1954,11 @@ void tst_QSortFilterProxyModel::changeSourceData_data()
|
|||
<< (QStringList() << "a" << "c") // proxyItems
|
||||
;
|
||||
|
||||
QTest::newRow("changeSourceData (5)")
|
||||
QTest::newRow("filtered_out_now_matches")
|
||||
<< (QStringList() << "a" << "b" << "c" << "d") // sourceItems
|
||||
<< static_cast<int>(Qt::AscendingOrder) // sortOrder
|
||||
<< "a|c|x" // filter
|
||||
<< (QStringList() << "a" << "c") // expectedInitialProxyItems
|
||||
<< true // dynamic
|
||||
<< 1 // row
|
||||
<< "x" // newValue
|
||||
|
|
@ -1961,10 +1967,24 @@ void tst_QSortFilterProxyModel::changeSourceData_data()
|
|||
<< (QStringList() << "a" << "c" << "x") // proxyItems
|
||||
;
|
||||
|
||||
QTest::newRow("changeSourceData (6)")
|
||||
QTest::newRow("value_is_now_filtered_out")
|
||||
<< (QStringList() << "a" << "b" << "c" << "d") // sourceItems
|
||||
<< static_cast<int>(Qt::AscendingOrder) // sortOrder
|
||||
<< "a|c" // filter
|
||||
<< (QStringList() << "a" << "c") // expectedInitialProxyItems
|
||||
<< true // dynamic
|
||||
<< 2 // row
|
||||
<< "x" // newValue
|
||||
<< (IntPairList() << IntPair(1, 1)) // removeIntervals
|
||||
<< IntPairList() // insertIntervals
|
||||
<< (QStringList() << "a") // proxyItems
|
||||
;
|
||||
|
||||
QTest::newRow("non_dynamic_filter_does_not_update_sort")
|
||||
<< (QStringList() << "c" << "b" << "a") // sourceItems
|
||||
<< static_cast<int>(Qt::AscendingOrder) // sortOrder
|
||||
<< "" // filter
|
||||
<< (QStringList() << "a" << "b" << "c") // expectedInitialProxyItems
|
||||
<< false // dynamic
|
||||
<< 2 // row
|
||||
<< "x" // newValue
|
||||
|
|
@ -1979,6 +1999,7 @@ void tst_QSortFilterProxyModel::changeSourceData()
|
|||
QFETCH(QStringList, sourceItems);
|
||||
QFETCH(int, sortOrder);
|
||||
QFETCH(QString, filter);
|
||||
QFETCH(QStringList, expectedInitialProxyItems);
|
||||
QFETCH(bool, dynamic);
|
||||
QFETCH(int, row);
|
||||
QFETCH(QString, newValue);
|
||||
|
|
@ -2004,6 +2025,12 @@ void tst_QSortFilterProxyModel::changeSourceData()
|
|||
|
||||
proxy.setFilterRegExp(filter);
|
||||
|
||||
QCOMPARE(proxy.rowCount(), expectedInitialProxyItems.count());
|
||||
for (int i = 0; i < expectedInitialProxyItems.count(); ++i) {
|
||||
const QModelIndex index = proxy.index(i, 0, QModelIndex());
|
||||
QCOMPARE(proxy.data(index, Qt::DisplayRole).toString(), expectedInitialProxyItems.at(i));
|
||||
}
|
||||
|
||||
QSignalSpy removeSpy(&proxy, &QSortFilterProxyModel::rowsRemoved);
|
||||
QSignalSpy insertSpy(&proxy, &QSortFilterProxyModel::rowsInserted);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue