diff options
author | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2012-01-09 10:07:00 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-01-10 07:43:35 +0100 |
commit | 560e814f7e51a158ee6668ae3e9ceecf8a0d6834 (patch) | |
tree | dbb6723fb7b4ec93befa9ed14b188986de01fc6f /tests/auto/qscriptextqobject/tst_qscriptextqobject.cpp | |
parent | a86c24675f4de9ef17932c6ee6fcc21cb0774cd8 (diff) | |
download | qtscript-560e814f7e51a158ee6668ae3e9ceecf8a0d6834.tar.gz |
Improve tst_qscriptextqobject.
- Improve test to output more information on failure reasons should
further signals, slots, properties be added.
Change-Id: I1a6df8c0689a1082037d43a1d8ddea2d44bbe5ef
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Diffstat (limited to 'tests/auto/qscriptextqobject/tst_qscriptextqobject.cpp')
-rw-r--r-- | tests/auto/qscriptextqobject/tst_qscriptextqobject.cpp | 33 |
1 files changed, 27 insertions, 6 deletions
diff --git a/tests/auto/qscriptextqobject/tst_qscriptextqobject.cpp b/tests/auto/qscriptextqobject/tst_qscriptextqobject.cpp index 4ae58f2..6216809 100644 --- a/tests/auto/qscriptextqobject/tst_qscriptextqobject.cpp +++ b/tests/auto/qscriptextqobject/tst_qscriptextqobject.cpp @@ -46,6 +46,7 @@ #include <qscriptcontext.h> #include <qscriptvalueiterator.h> #include <qwidget.h> +#include <qtextstream.h> #include <qpushbutton.h> #include <qlineedit.h> @@ -3001,6 +3002,30 @@ void tst_QScriptExtQObject::enumerate_data() << "mySignal()"); } +// Message for easily identifying mismatches in string list. +static QByteArray msgEnumerationFail(const QStringList &actual, const QStringList &expected) +{ + QString result; + QTextStream str(&result); + str << "\nActual " << actual.size() << ":\n"; + for (int i = 0; i < actual.size(); ++i) { + const int index = expected.indexOf(actual.at(i)); + if (index < 0) + str << "*** "; + str << " #" << i << " '"<< actual.at(i) + << "'\tin expected at: " << index << '\n'; + } + str << "Expected " << expected.size() << ":\n"; + for (int i = 0; i < expected.size(); ++i) { + const int index = actual.indexOf(expected.at(i)); + if (index < 0) + str << "*** "; + str << " #" << i << " '"<< expected.at(i) + << "'\t in actual at: " << index << '\n'; + } + return result.toLocal8Bit(); +} + void tst_QScriptExtQObject::enumerate() { QFETCH( int, wrapOptions ); @@ -3021,9 +3046,7 @@ void tst_QScriptExtQObject::enumerate() eng.evaluate("var enumeratedProperties = []"); eng.evaluate("for (var p in myEnumObject) { enumeratedProperties.push(p); }"); QStringList result = qscriptvalue_cast<QStringList>(eng.evaluate("enumeratedProperties")); - QCOMPARE(result.size(), expectedNames.size()); - for (int i = 0; i < expectedNames.size(); ++i) - QCOMPARE(result.at(i), expectedNames.at(i)); + QVERIFY2(result == expectedNames, msgEnumerationFail(result, expectedNames).constData()); } // enumerate in C++ { @@ -3034,9 +3057,7 @@ void tst_QScriptExtQObject::enumerate() QCOMPARE(it.flags(), obj.propertyFlags(it.name())); result.append(it.name()); } - QCOMPARE(result.size(), expectedNames.size()); - for (int i = 0; i < expectedNames.size(); ++i) - QCOMPARE(result.at(i), expectedNames.at(i)); + QVERIFY2(result == expectedNames, msgEnumerationFail(result, expectedNames).constData()); } } |