@@ -21,6 +21,7 @@
22#include <unitymenumodel.h>
22#include <unitymenumodel.h>
23#include <QtTest>
23#include <QtTest>
25class RootActionStateTest : public QObject
26class RootActionStateTest : public QObject
@@ -52,6 +53,42 @@ private Q_SLOTS:
52 QVERIFY(rootState->menu() == NULL);
53 QVERIFY(rootState->menu() == NULL);
53 delete rootState;
54 delete rootState;
57+ void testToQVariantIcons()
59+ GVariantBuilder builderIcons;
60+ g_variant_builder_init(&builderIcons, G_VARIANT_TYPE("av"));
61+ for (int i = 0; i < 3; i ++) {
64+ icon = g_icon_new_for_string (QString("testIcon%1").arg(i).toUtf8().constData(), NULL);
66+ g_variant_builder_add(&builderIcons,
68+ g_icon_serialize (icon));
69+ g_object_unref(icon);
72+ GVariantBuilder builderParams;
73+ g_variant_builder_init(&builderParams, G_VARIANT_TYPE_ARRAY);
74+ GVariant* icons = g_variant_builder_end (&builderIcons);
75+ g_variant_ref_sink (icons);
76+ g_variant_builder_add (&builderParams, "{sv}", g_strdup ("icons"), icons, NULL);
78+ GVariant* params = g_variant_builder_end (&builderParams);
80+ RootActionState rootState;
81+ QVariant result = rootState.toQVariant(params);
82+ g_variant_unref(params);
84+ QVariantMap paramResult = result.toMap();
85+ QVERIFY(paramResult.contains("icons"));
87+ QStringList serializedIcons = paramResult["icons"].toStringList();
88+ QVERIFY(serializedIcons[0] == "image://theme/testIcon0");
89+ QVERIFY(serializedIcons[1] == "image://theme/testIcon1");
90+ QVERIFY(serializedIcons[2] == "image://theme/testIcon2");
57QTEST_GUILESS_MAIN(RootActionStateTest)
94QTEST_GUILESS_MAIN(RootActionStateTest)