aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/quick/qquicktableview/testmodel.h7
-rw-r--r--tests/auto/quick/qquicktableview/tst_qquicktableview.cpp21
2 files changed, 25 insertions, 3 deletions
diff --git a/tests/auto/quick/qquicktableview/testmodel.h b/tests/auto/quick/qquicktableview/testmodel.h
index 211beee9cb..ab18af7871 100644
--- a/tests/auto/quick/qquicktableview/testmodel.h
+++ b/tests/auto/quick/qquicktableview/testmodel.h
@@ -120,6 +120,13 @@ public:
return true;
}
+ void clear() {
+ beginResetModel();
+ m_rows = 0;
+ m_columns = 0;
+ endResetModel();
+ }
+
signals:
void rowCountChanged();
void columnCountChanged();
diff --git a/tests/auto/quick/qquicktableview/tst_qquicktableview.cpp b/tests/auto/quick/qquicktableview/tst_qquicktableview.cpp
index 9ba8d8a394..ba9638e6cb 100644
--- a/tests/auto/quick/qquicktableview/tst_qquicktableview.cpp
+++ b/tests/auto/quick/qquicktableview/tst_qquicktableview.cpp
@@ -1066,11 +1066,26 @@ void tst_QQuickTableView::modelSignals()
QCOMPARE(tableView->columns(), 10);
model.setColumnCount(0);
- // TODO: When the QAbstractItemModel's column count is set to 0,
- // QQmlAdaptorModel::columnCount() likes to return whatever it was previously,
- // even though the model doesn't actually have any columns... not sure what to do about that.
+ WAIT_UNTIL_POLISHED;
+ // When the QAbstractItemModel's column count is set to 0,
+ // QQmlAdaptorModel::columnCount() returns 1 as long as it is "valid".
QCOMPARE(tableView->rows(), 0);
+ QCOMPARE(tableView->columns(), 1);
+
+ model.setRowCount(10);
+ WAIT_UNTIL_POLISHED;
+ QCOMPARE(tableView->rows(), 10);
+ QCOMPARE(tableView->columns(), 1);
+
+ model.setColumnCount(10);
+ WAIT_UNTIL_POLISHED;
+ QCOMPARE(tableView->rows(), 10);
QCOMPARE(tableView->columns(), 10);
+
+ model.clear();
+ WAIT_UNTIL_POLISHED;
+ QCOMPARE(tableView->rows(), 0);
+ QCOMPARE(tableView->columns(), 1);
}
QTEST_MAIN(tst_QQuickTableView)