diff options
author | Nick Dedekind <nicholas.dedekind@gmail.com> | 2013-08-15 12:48:55 +0100 |
---|---|---|
committer | Nick Dedekind <nicholas.dedekind@gmail.com> | 2013-08-15 12:48:55 +0100 |
commit | 67394e49c25cb273b53cd2034bb2d31b14a7402a (patch) | |
tree | eb8d157af84308e4a733a3b0745fa0e2ca5a4748 /tests/client | |
parent | bac9f37d6fc619e3c1c57754e0afe7b197c7668c (diff) | |
download | qmenumodel-67394e49c25cb273b53cd2034bb2d31b14a7402a.tar.gz qmenumodel-67394e49c25cb273b53cd2034bb2d31b14a7402a.tar.bz2 qmenumodel-67394e49c25cb273b53cd2034bb2d31b14a7402a.zip |
Added toGVariantWithSchema for UnityMenuModel::changeState
Diffstat (limited to 'tests/client')
-rw-r--r-- | tests/client/convertertest.cpp | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/tests/client/convertertest.cpp b/tests/client/convertertest.cpp index f382332..db2807f 100644 --- a/tests/client/convertertest.cpp +++ b/tests/client/convertertest.cpp @@ -45,6 +45,22 @@ private: g_variant_unref(gv); return result; } + bool compareWithSchema(const QVariant &qv, const QString strType) + { + GVariantType* expected_type; + expected_type = g_variant_type_new(strType.toUtf8().data()); + + bool result; + GVariant *gv = Converter::toGVariantWithSchema(qv, strType.toUtf8().data()); + result = g_variant_type_equal(g_variant_get_type(gv), expected_type); + if (!result) { + qWarning() << "types are different: QVariant:" << qv.typeName() + << "Result:" << (const char*) g_variant_get_type(gv) + << "Expected:"<< (const char*) expected_type; + } + g_variant_unref(gv); + return result; + } private Q_SLOTS: @@ -118,6 +134,43 @@ private Q_SLOTS: g_variant_unref(gTuple); } + void testSchemaConvert() + { + // convert to integer + compareWithSchema(QVariant::fromValue<int>(1), "i"); + compareWithSchema(QVariant::fromValue<double>(1.1), "i"); + + // convert to integer + compareWithSchema(QVariant::fromValue<bool>(true), "b"); + compareWithSchema(QVariant::fromValue<int>(1), "b"); + + // convert to double + compareWithSchema(QVariant::fromValue<double>(1.0), "d"); + compareWithSchema(QVariant::fromValue<int>(1), "d"); + + // convert to string + compareWithSchema(QVariant::fromValue<int>(1), "s"); + compareWithSchema(QVariant::fromValue<double>(1.1), "s"); + + // convert to tuple + compareWithSchema(QVariantList() << QVariant::fromValue<bool>(true) << QVariant::fromValue<int>(1) << QVariant::fromValue<int>(1) << QVariant::fromValue<QString>("test1"), "(bdis)"); + + // convert to array + compareWithSchema(QVariantList() << QVariant::fromValue<int>(1) << QVariant::fromValue<int>(1), "ad"); + compareWithSchema(QVariantList() << QVariant::fromValue<QString>("test1") << QVariant::fromValue<QString>("test2"), "as"); + + // convert to array of tuple + QVariantList si1(QVariantList() << QVariant::fromValue<QString>("test1") << QVariant::fromValue<int>(1)); + QVariantList si2(QVariantList() << QVariant::fromValue<QString>("test1") << QVariant::fromValue<int>(1)); + compareWithSchema(QVariantList() << QVariant::fromValue(si1) << QVariant::fromValue(si2), "a(sd)"); + + // convert to vardict + QVariantMap map; + map["test1"] = QVariant::fromValue<int>(1); + map["test2"] = QVariant::fromValue<double>(1); + compareWithSchema(map, "a{sv}"); + } + }; QTEST_MAIN(ConverterTest) |