From 4b495fc2651d2626a5fd0bf1c19263ad4b11ce8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Sat, 22 Oct 2016 18:54:58 +0200 Subject: convertertest: create QGVariantType wrapper to avoid reinterperating a QString --- tests/client/convertertest.cpp | 54 +++++++++++++++++++++++++++--------------- 1 file changed, 35 insertions(+), 19 deletions(-) (limited to 'tests') diff --git a/tests/client/convertertest.cpp b/tests/client/convertertest.cpp index 05656ed..9e563cd 100644 --- a/tests/client/convertertest.cpp +++ b/tests/client/convertertest.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2012 Canonical Ltd. + * Copyright 2012-2016 Canonical Ltd. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by @@ -15,6 +15,7 @@ * * Authors: * Renato Araujo Oliveira Filho + * Marco Trevisan */ extern "C" { @@ -27,6 +28,21 @@ extern "C" { #include #include +class QGVariantType : public QObject +{ + Q_OBJECT +public: + QGVariantType() : type(nullptr) {} + QGVariantType(const GVariantType *gvtype) : type(gvtype) {} + QGVariantType(const QGVariantType &other) : type(other.type) {} + const GVariantType *getType() const { return type; } + operator const GVariantType*() const { return type; } + +private: + const GVariantType *type; +}; +Q_DECLARE_METATYPE(QGVariantType); + class ConverterTest : public QObject { Q_OBJECT @@ -71,30 +87,30 @@ private Q_SLOTS: void testConvertToGVariant_data() { QTest::addColumn("value"); - QTest::addColumn("expectedType"); - - QTest::newRow("Boolean") << QVariant(true) << reinterpret_cast(G_VARIANT_TYPE_BOOLEAN); - QTest::newRow("Byte") << QVariant::fromValue(42) << reinterpret_cast(G_VARIANT_TYPE_BYTE); - QTest::newRow("Int16") << QVariant::fromValue(-42) << reinterpret_cast(G_VARIANT_TYPE_INT16); - QTest::newRow("UInt16") << QVariant::fromValue(-42) << reinterpret_cast(G_VARIANT_TYPE_UINT16); - QTest::newRow("Int32") << QVariant(-42) << reinterpret_cast(G_VARIANT_TYPE_INT32); - QTest::newRow("UInt32") << QVariant((uint)42) << reinterpret_cast(G_VARIANT_TYPE_UINT32); - QTest::newRow("Int64") << QVariant::fromValue(-42) << reinterpret_cast(G_VARIANT_TYPE_INT64); - QTest::newRow("UInt64") << QVariant::fromValue(42) << reinterpret_cast(G_VARIANT_TYPE_UINT64); - QTest::newRow("Int64") << QVariant::fromValue(-42) << reinterpret_cast(G_VARIANT_TYPE_INT64); - QTest::newRow("UInt64") << QVariant::fromValue(42) << reinterpret_cast(G_VARIANT_TYPE_UINT64); - QTest::newRow("Double") << QVariant((double)42.42) << reinterpret_cast(G_VARIANT_TYPE_DOUBLE); - QTest::newRow("String") << QVariant(QString("42")) << reinterpret_cast(G_VARIANT_TYPE_STRING); - QTest::newRow("ByteArray") << QVariant(QByteArray("42")) << reinterpret_cast(G_VARIANT_TYPE_BYTESTRING); - QTest::newRow("Map") << QVariant(QVariantMap()) << reinterpret_cast(G_VARIANT_TYPE_VARDICT); + QTest::addColumn("expectedType"); + + QTest::newRow("Boolean") << QVariant(true) << QGVariantType(G_VARIANT_TYPE_BOOLEAN); + QTest::newRow("Byte") << QVariant::fromValue(42) << QGVariantType(G_VARIANT_TYPE_BYTE); + QTest::newRow("Int16") << QVariant::fromValue(-42) << QGVariantType(G_VARIANT_TYPE_INT16); + QTest::newRow("UInt16") << QVariant::fromValue(-42) << QGVariantType(G_VARIANT_TYPE_UINT16); + QTest::newRow("Int32") << QVariant(-42) << QGVariantType(G_VARIANT_TYPE_INT32); + QTest::newRow("UInt32") << QVariant((uint)42) << QGVariantType(G_VARIANT_TYPE_UINT32); + QTest::newRow("Int64") << QVariant::fromValue(-42) << QGVariantType(G_VARIANT_TYPE_INT64); + QTest::newRow("UInt64") << QVariant::fromValue(42) << QGVariantType(G_VARIANT_TYPE_UINT64); + QTest::newRow("Int64") << QVariant::fromValue(-42) << QGVariantType(G_VARIANT_TYPE_INT64); + QTest::newRow("UInt64") << QVariant::fromValue(42) << QGVariantType(G_VARIANT_TYPE_UINT64); + QTest::newRow("Double") << QVariant((double)42.42) << QGVariantType(G_VARIANT_TYPE_DOUBLE); + QTest::newRow("String") << QVariant(QString("42")) << QGVariantType(G_VARIANT_TYPE_STRING); + QTest::newRow("ByteArray") << QVariant(QByteArray("42")) << QGVariantType(G_VARIANT_TYPE_BYTESTRING); + QTest::newRow("Map") << QVariant(QVariantMap()) << QGVariantType(G_VARIANT_TYPE_VARDICT); } void testConvertToGVariant() { QFETCH(QVariant, value); - QFETCH(QString, expectedType); + QFETCH(QGVariantType, expectedType); - QVERIFY(compare(value, g_variant_type_new(expectedType.toUtf8().data()))); + QVERIFY(compare(value, expectedType)); } void testTupleConversion() -- cgit v1.2.3