diff options
author | Gunnar Sletta <gunnar.sletta@jollamobile.com> | 2014-05-14 09:30:37 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-05-14 12:16:12 +0200 |
commit | 32398200fbb5b7e9ad4a1d1bfcf51b9fbd34a758 (patch) | |
tree | 7d0aefee335da67bf287e0130e14261f896f19a1 /tests | |
parent | c4a8d4a747559433e94d4af56c810ef86244d91f (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')
-rw-r--r-- | tests/auto/qml/qjsvalueiterator/tst_qjsvalueiterator.cpp | 27 |
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" |