diff options
author | Nick Dedekind <nicholas.dedekind@gmail.com> | 2013-08-26 14:08:39 +0000 |
---|---|---|
committer | Tarmac <> | 2013-08-26 14:08:39 +0000 |
commit | 50563a1ab243436c8c8fa86f88ef4a4b25b9a107 (patch) | |
tree | 5220ed33b70c5b6d5fdf555b4a7f75d4e66d7c1d /tests/client | |
parent | 346f5fce5ddaf12dff92f467d69a1dd5841012c8 (diff) | |
parent | 67394e49c25cb273b53cd2034bb2d31b14a7402a (diff) | |
download | qmenumodel-50563a1ab243436c8c8fa86f88ef4a4b25b9a107.tar.gz qmenumodel-50563a1ab243436c8c8fa86f88ef4a4b25b9a107.tar.bz2 qmenumodel-50563a1ab243436c8c8fa86f88ef4a4b25b9a107.zip |
UnityMenuModel::changeState now uses current state parameter type as a base for parameter GVariant conversion.
Approved by Lars Uebernickel, PS Jenkins bot.
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) |