summaryrefslogtreecommitdiffstats
path: root/src/testlib
diff options
context:
space:
mode:
authorAndreas Buhr <andreas.buhr@qt.io>2022-02-16 10:45:46 +0100
committerAndreas Buhr <andreas.buhr@qt.io>2022-05-18 12:58:06 +0200
commit2f35653a3058840e042ed92aba8f04d0abdf7d61 (patch)
tree0abae182c916906ab4d779ec16b7381f2827a8d4 /src/testlib
parentec7989aa66f172e731667e8cf647932262956423 (diff)
Use QAbstractItemModelTester or QFileSystemModel
This patch enables usage of QAbstractItemModelTester on QFileSystemModel. QAbstractItemModelTester called fetchMore() on all items. QFileSystemModel represents the whole file system. This led to very long test runs. To avoid this, this patch introduces a new feature in QAbstractItemModelTester, namely to disable calling of fetchMore(). Change-Id: Ie5d2e22fa4c143be7c080d9f79632cd2cbe07aac Reviewed-by: David Faure <david.faure@kdab.com>
Diffstat (limited to 'src/testlib')
-rw-r--r--src/testlib/qabstractitemmodeltester.cpp24
-rw-r--r--src/testlib/qabstractitemmodeltester.h1
2 files changed, 21 insertions, 4 deletions
diff --git a/src/testlib/qabstractitemmodeltester.cpp b/src/testlib/qabstractitemmodeltester.cpp
index 39db02831a..e7aa8979d5 100644
--- a/src/testlib/qabstractitemmodeltester.cpp
+++ b/src/testlib/qabstractitemmodeltester.cpp
@@ -91,6 +91,7 @@ private:
QStack<Changing> insert;
QStack<Changing> remove;
+ bool useFetchMore = true;
bool fetchingMore;
enum class ChangeInFlight {
@@ -315,6 +316,19 @@ QAbstractItemModelTester::FailureReportingMode QAbstractItemModelTester::failure
return d->failureReportingMode;
}
+/*!
+ If \a value is true, enables dynamic population of the
+ tested model, which is the default.
+ If \a value is false, it disables it.
+
+ \since 6.4
+*/
+void QAbstractItemModelTester::setUseFetchMore(bool value)
+{
+ Q_D(QAbstractItemModelTester);
+ d->useFetchMore = value;
+}
+
bool QAbstractItemModelTester::verify(bool statement, const char *statementStr, const char *description, const char *file, int line)
{
Q_D(QAbstractItemModelTester);
@@ -349,9 +363,11 @@ void QAbstractItemModelTesterPrivate::nonDestructiveBasicTest()
MODELTESTER_VERIFY(!model->buddy(QModelIndex()).isValid());
model->canFetchMore(QModelIndex());
MODELTESTER_VERIFY(model->columnCount(QModelIndex()) >= 0);
- fetchingMore = true;
- model->fetchMore(QModelIndex());
- fetchingMore = false;
+ if (useFetchMore) {
+ fetchingMore = true;
+ model->fetchMore(QModelIndex());
+ fetchingMore = false;
+ }
Qt::ItemFlags flags = model->flags(QModelIndex());
MODELTESTER_VERIFY(flags == Qt::ItemIsDropEnabled || flags == 0);
model->hasChildren(QModelIndex());
@@ -529,7 +545,7 @@ void QAbstractItemModelTesterPrivate::checkChildren(const QModelIndex &parent, i
p = p.parent();
// For models that are dynamically populated
- if (model->canFetchMore(parent)) {
+ if (model->canFetchMore(parent) && useFetchMore) {
fetchingMore = true;
model->fetchMore(parent);
fetchingMore = false;
diff --git a/src/testlib/qabstractitemmodeltester.h b/src/testlib/qabstractitemmodeltester.h
index dc58685e5e..c4d94be261 100644
--- a/src/testlib/qabstractitemmodeltester.h
+++ b/src/testlib/qabstractitemmodeltester.h
@@ -47,6 +47,7 @@ public:
QAbstractItemModel *model() const;
FailureReportingMode failureReportingMode() const;
+ void setUseFetchMore(bool value);
private:
friend inline bool QTestPrivate::testDataGuiRoles(QAbstractItemModelTester *tester);