summaryrefslogtreecommitdiffstats
path: root/src/testlib/qabstractitemmodeltester.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/testlib/qabstractitemmodeltester.cpp')
-rw-r--r--src/testlib/qabstractitemmodeltester.cpp24
1 files changed, 18 insertions, 6 deletions
diff --git a/src/testlib/qabstractitemmodeltester.cpp b/src/testlib/qabstractitemmodeltester.cpp
index e970be2c8d..fc6f696ecd 100644
--- a/src/testlib/qabstractitemmodeltester.cpp
+++ b/src/testlib/qabstractitemmodeltester.cpp
@@ -322,9 +322,10 @@ void QAbstractItemModelTesterPrivate::nonDestructiveBasicTest()
Qt::ItemFlags flags = model->flags(QModelIndex());
MODELTESTER_VERIFY(flags == Qt::ItemIsDropEnabled || flags == 0);
model->hasChildren(QModelIndex());
- model->hasIndex(0, 0);
+ const bool hasRow = model->hasIndex(0, 0);
QVariant cache;
- model->match(QModelIndex(), -1, cache);
+ if (hasRow)
+ model->match(model->index(0, 0), -1, cache);
model->mimeTypes();
MODELTESTER_VERIFY(!model->parent(QModelIndex()).isValid());
MODELTESTER_VERIFY(model->rowCount() >= 0);
@@ -712,8 +713,17 @@ void QAbstractItemModelTesterPrivate::rowsAboutToBeRemoved(const QModelIndex &pa
Changing c;
c.parent = parent;
c.oldSize = model->rowCount(parent);
- c.last = model->data(model->index(start - 1, 0, parent));
- c.next = model->data(model->index(end + 1, 0, parent));
+ if (start > 0) {
+ const QModelIndex startIndex = model->index(start - 1, 0, parent);
+ MODELTESTER_VERIFY(startIndex.isValid());
+ c.last = model->data(startIndex);
+ }
+ if (end < c.oldSize - 1) {
+ const QModelIndex endIndex = model->index(end + 1, 0, parent);
+ MODELTESTER_VERIFY(endIndex.isValid());
+ c.next = model->data(endIndex);
+ }
+
remove.push(c);
}
@@ -732,8 +742,10 @@ void QAbstractItemModelTesterPrivate::rowsRemoved(const QModelIndex &parent, int
Changing c = remove.pop();
MODELTESTER_COMPARE(parent, c.parent);
MODELTESTER_COMPARE(model->rowCount(parent), c.oldSize - (end - start + 1));
- MODELTESTER_COMPARE(model->data(model->index(start - 1, 0, c.parent)), c.last);
- MODELTESTER_COMPARE(model->data(model->index(start, 0, c.parent)), c.next);
+ if (start > 0)
+ MODELTESTER_COMPARE(model->data(model->index(start - 1, 0, c.parent)), c.last);
+ if (end < c.oldSize - 1)
+ MODELTESTER_COMPARE(model->data(model->index(start, 0, c.parent)), c.next);
}
void QAbstractItemModelTesterPrivate::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight)