aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qml/qjsvalueiterator
diff options
context:
space:
mode:
authorGunnar Sletta <gunnar.sletta@jollamobile.com>2014-05-14 09:30:37 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-05-14 12:16:12 +0200
commit32398200fbb5b7e9ad4a1d1bfcf51b9fbd34a758 (patch)
tree7d0aefee335da67bf287e0130e14261f896f19a1 /tests/auto/qml/qjsvalueiterator
parentc4a8d4a747559433e94d4af56c810ef86244d91f (diff)
Fix regression in QJSValueIterator::next() since Qt 5.1.1
Iteration on the form "while (next) { .. }" would skip the last element. Change-Id: I50692a5a75e23e423e82b7a39e1892f505e4c612 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'tests/auto/qml/qjsvalueiterator')
-rw-r--r--tests/auto/qml/qjsvalueiterator/tst_qjsvalueiterator.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/auto/qml/qjsvalueiterator/tst_qjsvalueiterator.cpp b/tests/auto/qml/qjsvalueiterator/tst_qjsvalueiterator.cpp
index fa6ac3249b..73c880cc2d 100644
--- a/tests/auto/qml/qjsvalueiterator/tst_qjsvalueiterator.cpp
+++ b/tests/auto/qml/qjsvalueiterator/tst_qjsvalueiterator.cpp
@@ -66,6 +66,7 @@ private slots:
void assignObjectToIterator();
void iterateNonObject();
void iterateOverObjectFromDeletedEngine();
+ void iterateWithNext();
};
tst_QJSValueIterator::tst_QJSValueIterator()
@@ -516,5 +517,31 @@ void tst_QJSValueIterator::iterateOverObjectFromDeletedEngine()
}
+void tst_QJSValueIterator::iterateWithNext()
+{
+ QJSEngine engine;
+ QJSValue value = engine.newObject();
+ value.setProperty("one", 1);
+ value.setProperty("two", 2);
+ value.setProperty("three", 3);
+
+ QStringList list;
+ list << QStringLiteral("one") << QStringLiteral("three") << QStringLiteral("two");
+
+ int counter = 0;
+ QJSValueIterator it(value);
+ QStringList actualList;
+ while (it.next()) {
+ ++counter;
+ actualList << it.name();
+ }
+
+ std::sort(actualList.begin(), actualList.end());
+
+ QCOMPARE(counter, 3);
+ QCOMPARE(list, actualList);
+
+}
+
QTEST_MAIN(tst_QJSValueIterator)
#include "tst_qjsvalueiterator.moc"