diff options
author | Allan Sandfeld Jensen <allan.jensen@digia.com> | 2016-10-14 00:57:02 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@qt.io> | 2017-08-04 11:19:44 +0000 |
commit | 74197140be68fd7fe54c3a346a0e769928d7a3ea (patch) | |
tree | 331604236f096caa0c47b2949a386855f9f03fde /tests/auto/corelib/kernel/qvariant | |
parent | fbe84a1a19f93bc99bcb9e9333642466cb984cad (diff) |
Implement conversion from nullptr QVariant to QString and QByteArray
A nullptr QVariant should become a null QString or QByteArray,
since null strings have previous in our APIs represented the null value
in the absence of a dedicated null metatype.
Change-Id: I3b8f6386ece314d7c196959fbcf042c4fe0508a0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'tests/auto/corelib/kernel/qvariant')
-rw-r--r-- | tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp index a5973276f2..0d45159d09 100644 --- a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp +++ b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp @@ -1062,6 +1062,7 @@ void tst_QVariant::toByteArray_data() QTest::newRow( "longlong" ) << QVariant( (qlonglong)34 ) << QByteArray( "34" ); QTest::newRow( "ulonglong" ) << QVariant( (qulonglong)34 ) << QByteArray( "34" ); + QTest::newRow( "nullptr" ) << QVariant::fromValue(nullptr) << QByteArray(); } void tst_QVariant::toByteArray() @@ -1071,7 +1072,13 @@ void tst_QVariant::toByteArray() QVERIFY( value.isValid() ); QVERIFY( value.canConvert( QVariant::ByteArray ) ); QByteArray ba = value.toByteArray(); + QCOMPARE( ba.isNull(), result.isNull() ); QCOMPARE( ba, result ); + + QVERIFY( value.convert( QVariant::ByteArray ) ); + QCOMPARE( value.isNull(), result.isNull() ); + QCOMPARE( value.toByteArray().isNull(), result.isNull() ); + QCOMPARE( value.toByteArray(), result ); } void tst_QVariant::toString_data() @@ -1098,6 +1105,7 @@ void tst_QVariant::toString_data() QString( "123456789012" ); QTest::newRow("QJsonValue") << QVariant(QJsonValue(QString("hello"))) << QString("hello"); QTest::newRow("QJsonValue(Null)") << QVariant(QJsonValue(QJsonValue::Null)) << QString(); + QTest::newRow("nullptr") << QVariant::fromValue(nullptr) << QString(); } void tst_QVariant::toString() @@ -1107,7 +1115,13 @@ void tst_QVariant::toString() QVERIFY( value.isValid() ); QVERIFY( value.canConvert( QVariant::String ) ); QString str = value.toString(); + QCOMPARE( str.isNull(), result.isNull() ); QCOMPARE( str, result ); + + QVERIFY( value.convert( QVariant::String ) ); + QCOMPARE( value.isNull(), result.isNull() ); + QCOMPARE( value.toString().isNull(), result.isNull() ); + QCOMPARE( value.toString(), result ); } void tst_QVariant::toDate_data() |