diff options
author | Jędrzej Nowacki <jedrzej.nowacki@digia.com> | 2014-10-21 17:08:57 +0200 |
---|---|---|
committer | Jędrzej Nowacki <jedrzej.nowacki@digia.com> | 2014-10-24 16:27:42 +0200 |
commit | 8c4deff51c8064f5a15cae0342bfa66b6663662b (patch) | |
tree | af53315891fcb8fec0397e03450c2e9c1802ed3a /tests/auto/corelib | |
parent | 9c92a18b975173383454c13d34f4438636f0450c (diff) |
Fix QVariant associative container conversion from built-in types.
Task-number: QTBUG-41403
Change-Id: I9dab0f9450cac11678eb6d20abd2dd08e86e0900
Reviewed-by: Stephen Kelly <steveire@gmail.com>
Diffstat (limited to 'tests/auto/corelib')
-rw-r--r-- | tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp index b3e683a29b..4264c96745 100644 --- a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp +++ b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp @@ -35,6 +35,7 @@ #include <qvariant.h> #include <qbitarray.h> +#include <qbytearraylist.h> #include <qdatetime.h> #include <qmap.h> #include <qiodevice.h> @@ -208,6 +209,7 @@ private slots: void convertBoolToByteArray_data() const; void convertByteArrayToBool() const; void convertByteArrayToBool_data() const; + void convertIterables() const; void toIntFromQString() const; void toIntFromDouble() const; void setValue(); @@ -2838,6 +2840,49 @@ void tst_QVariant::convertByteArrayToBool_data() const << QByteArray("true"); } +void tst_QVariant::convertIterables() const +{ + { + QStringList list; + list.append("Hello"); + QCOMPARE(QVariant::fromValue(list).value<QVariantList>().count(), list.count()); + } + { + QByteArrayList list; + list.append("Hello"); + QCOMPARE(QVariant::fromValue(list).value<QVariantList>().count(), list.count()); + } + { + QVariantList list; + list.append("World"); + QCOMPARE(QVariant::fromValue(list).value<QVariantList>().count(), list.count()); + } + { + QMap<QString, int> map; + map.insert("3", 4); + QCOMPARE(QVariant::fromValue(map).value<QVariantHash>().count(), map.count()); + QCOMPARE(QVariant::fromValue(map).value<QVariantMap>().count(), map.count()); + } + { + QVariantMap map; + map.insert("3", 4); + QCOMPARE(QVariant::fromValue(map).value<QVariantHash>().count(), map.count()); + QCOMPARE(QVariant::fromValue(map).value<QVariantMap>().count(), map.count()); + } + { + QHash<QString, int> hash; + hash.insert("3", 4); + QCOMPARE(QVariant::fromValue(hash).value<QVariantHash>().count(), hash.count()); + QCOMPARE(QVariant::fromValue(hash).value<QVariantMap>().count(), hash.count()); + } + { + QVariantHash hash; + hash.insert("3", 4); + QCOMPARE(QVariant::fromValue(hash).value<QVariantHash>().count(), hash.count()); + QCOMPARE(QVariant::fromValue(hash).value<QVariantMap>().count(), hash.count()); + } +} + /*! We verify that: 1. Converting the string "9.9" to int fails. This is the behavior of |