aboutsummaryrefslogtreecommitdiff
path: root/tests/dbus-types
diff options
context:
space:
mode:
authorXavi Garcia Mena <xavi.garcia.mena@canonical.com>2015-12-02 14:44:58 +0100
committerXavi Garcia Mena <xavi.garcia.mena@canonical.com>2015-12-02 14:44:58 +0100
commitd9a00604c1d8e3103444053da39a4af17230903b (patch)
treea58e2a32d3e7c9fd603be00262914612e2efb902 /tests/dbus-types
parent7c69f81a079a08d58241cc50365dde7d37ad3345 (diff)
downloadayatana-indicator-sound-d9a00604c1d8e3103444053da39a4af17230903b.tar.gz
ayatana-indicator-sound-d9a00604c1d8e3103444053da39a4af17230903b.tar.bz2
ayatana-indicator-sound-d9a00604c1d8e3103444053da39a4af17230903b.zip
Added integration tests
Diffstat (limited to 'tests/dbus-types')
-rw-r--r--tests/dbus-types/CMakeLists.txt4
-rw-r--r--tests/dbus-types/dbus-action-result.cpp93
-rw-r--r--tests/dbus-types/dbus-action-result.h50
-rw-r--r--tests/dbus-types/dbus-types.h2
-rw-r--r--tests/dbus-types/org.gtk.Actions.xml5
5 files changed, 153 insertions, 1 deletions
diff --git a/tests/dbus-types/CMakeLists.txt b/tests/dbus-types/CMakeLists.txt
index cb7f512..a50a5bb 100644
--- a/tests/dbus-types/CMakeLists.txt
+++ b/tests/dbus-types/CMakeLists.txt
@@ -26,7 +26,8 @@ set_source_files_properties(${dbusinterface_properties_xml} PROPERTIES
set(dbusinterface_actions_xml "org.gtk.Actions.xml")
set_source_files_properties(${dbusinterface_actions_xml} PROPERTIES
- CLASSNAME MenusInterface)
+ CLASSNAME MenusInterface
+ INCLUDE "dbus-action-result.h")
set(dbusinterface_notifications_xml "org.freedesktop.Notifications.xml")
set_source_files_properties(${dbusinterface_notifications_xml} PROPERTIES
@@ -44,6 +45,7 @@ add_library(
STATIC
${interface_files}
pulseaudio-volume.cpp
+ dbus-action-result.cpp
)
qt5_use_modules(
diff --git a/tests/dbus-types/dbus-action-result.cpp b/tests/dbus-types/dbus-action-result.cpp
new file mode 100644
index 0000000..2ef812e
--- /dev/null
+++ b/tests/dbus-types/dbus-action-result.cpp
@@ -0,0 +1,93 @@
+/*
+ * Copyright (C) 2015 Canonical, Ltd.
+ *
+ * This program is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 3, as published
+ * by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranties of
+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Author: Xavi Garcia <xavi.garcia.mena@canonical.com>
+ */
+#include "dbus-action-result.h"
+
+DBusActionResult::DBusActionResult()
+ : enabled_(false)
+{}
+
+DBusActionResult::~DBusActionResult()
+{}
+
+DBusActionResult::DBusActionResult(bool enabled, QDBusSignature signature, QVariantList value)
+ : enabled_(enabled)
+ , signature_(signature)
+ , value_(value)
+{
+}
+
+DBusActionResult::DBusActionResult(const DBusActionResult &other)
+ : enabled_(other.enabled_)
+ , signature_(other.signature_)
+ , value_(other.value_)
+{
+}
+
+DBusActionResult& DBusActionResult::operator=(const DBusActionResult &other)
+{
+ enabled_ = other.enabled_;
+ signature_ = other.signature_;
+ value_ = other.value_;
+
+ return *this;
+}
+
+QVariantList DBusActionResult::getValue() const
+{
+ return value_;
+}
+
+bool DBusActionResult::getEnabled() const
+{
+ return enabled_;
+}
+
+QDBusSignature DBusActionResult::getSignature() const
+{
+ return signature_;
+}
+
+//register Message with the Qt type system
+void DBusActionResult::registerMetaType()
+{
+ qRegisterMetaType<DBusActionResult>("DBusActionResult");
+
+ qDBusRegisterMetaType<DBusActionResult>();
+}
+
+QDBusArgument &operator<<(QDBusArgument &argument, const DBusActionResult &result)
+{
+ argument.beginStructure();
+ argument << result.enabled_;
+ argument << result.signature_;
+ argument << result.value_;
+ argument.endStructure();
+
+ return argument;
+}
+
+const QDBusArgument &operator>>(const QDBusArgument &argument, DBusActionResult &result)
+{
+ argument.beginStructure();
+ argument >> result.enabled_;
+ argument >> result.signature_;
+ argument >> result.value_;
+ argument.endStructure();
+
+ return argument;
+}
diff --git a/tests/dbus-types/dbus-action-result.h b/tests/dbus-types/dbus-action-result.h
new file mode 100644
index 0000000..2fe732f
--- /dev/null
+++ b/tests/dbus-types/dbus-action-result.h
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2015 Canonical, Ltd.
+ *
+ * This program is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 3, as published
+ * by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranties of
+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Author: Xavi Garcia <xavi.garcia.mena@canonical.com>
+ */
+#pragma once
+
+#include <QtDBus>
+#include <QDBusSignature>
+
+class DBusActionResult
+{
+public:
+ DBusActionResult();
+ DBusActionResult(bool enabled, QDBusSignature signature, QVariantList value);
+ ~DBusActionResult();
+
+ DBusActionResult(const DBusActionResult &other);
+ DBusActionResult& operator=(const DBusActionResult &other);
+
+ friend QDBusArgument &operator<<(QDBusArgument &argument, const DBusActionResult &result);
+ friend const QDBusArgument &operator>>(const QDBusArgument &argument, DBusActionResult &result);
+
+ bool getEnabled() const;
+ QVariantList getValue() const;
+ QDBusSignature getSignature() const;
+
+ //register Message with the Qt type system
+ static void registerMetaType();
+
+private:
+ bool enabled_;
+ QDBusSignature signature_;
+ QVariantList value_;
+};
+
+Q_DECLARE_METATYPE(DBusActionResult)
+
diff --git a/tests/dbus-types/dbus-types.h b/tests/dbus-types/dbus-types.h
index b75acf0..ac86027 100644
--- a/tests/dbus-types/dbus-types.h
+++ b/tests/dbus-types/dbus-types.h
@@ -19,6 +19,7 @@
#include <QDBusMetaType>
#include "pulseaudio-volume.h"
+#include "dbus-action-result.h"
namespace DBusTypes
{
@@ -26,6 +27,7 @@ namespace DBusTypes
{
PulseaudioVolume::registerMetaType();
PulseaudioVolumeArray::registerMetaType();
+ DBusActionResult::registerMetaType();
}
static constexpr char const* DBUS_NAME = "com.canonical.indicator.sound";
diff --git a/tests/dbus-types/org.gtk.Actions.xml b/tests/dbus-types/org.gtk.Actions.xml
index b691f1f..30780d5 100644
--- a/tests/dbus-types/org.gtk.Actions.xml
+++ b/tests/dbus-types/org.gtk.Actions.xml
@@ -9,5 +9,10 @@
<arg name="actionsAdded" type="a{s(bgav)}" direction="in" />
<annotation name="org.qtproject.QtDBus.QtTypeName.In3" value="QVariantMap"/>
</signal>
+ <method name="Describe">
+ <arg name="action" type="s" direction="in"/>
+ <arg name="result" type="(bgav)" direction="out"/>
+ <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="DBusActionResult"/>
+ </method>
</interface>
</node>