From d9a00604c1d8e3103444053da39a4af17230903b Mon Sep 17 00:00:00 2001 From: Xavi Garcia Mena Date: Wed, 2 Dec 2015 14:44:58 +0100 Subject: Added integration tests --- tests/dbus-types/CMakeLists.txt | 4 +- tests/dbus-types/dbus-action-result.cpp | 93 +++++++++++++++++++++++++++++++++ tests/dbus-types/dbus-action-result.h | 50 ++++++++++++++++++ tests/dbus-types/dbus-types.h | 2 + tests/dbus-types/org.gtk.Actions.xml | 5 ++ 5 files changed, 153 insertions(+), 1 deletion(-) create mode 100644 tests/dbus-types/dbus-action-result.cpp create mode 100644 tests/dbus-types/dbus-action-result.h (limited to 'tests/dbus-types') 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 . + * + * Author: Xavi Garcia + */ +#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"); + + qDBusRegisterMetaType(); +} + +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 . + * + * Author: Xavi Garcia + */ +#pragma once + +#include +#include + +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 #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 @@ + + + + + -- cgit v1.2.3