summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib
diff options
context:
space:
mode:
authorJędrzej Nowacki <jedrzej.nowacki@digia.com>2014-10-21 17:08:57 +0200
committerJędrzej Nowacki <jedrzej.nowacki@digia.com>2014-10-24 16:27:42 +0200
commit8c4deff51c8064f5a15cae0342bfa66b6663662b (patch)
treeaf53315891fcb8fec0397e03450c2e9c1802ed3a /tests/auto/corelib
parent9c92a18b975173383454c13d34f4438636f0450c (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.cpp45
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