summaryrefslogtreecommitdiff
path: root/tests/unit_tests/src/test_shortcut_manager.cc
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit_tests/src/test_shortcut_manager.cc')
-rw-r--r--tests/unit_tests/src/test_shortcut_manager.cc165
1 files changed, 136 insertions, 29 deletions
diff --git a/tests/unit_tests/src/test_shortcut_manager.cc b/tests/unit_tests/src/test_shortcut_manager.cc
index 95a32f1..94f3242 100644
--- a/tests/unit_tests/src/test_shortcut_manager.cc
+++ b/tests/unit_tests/src/test_shortcut_manager.cc
@@ -24,11 +24,13 @@
#include "system_info_mock.h"
#include "gio_mock.h"
#include "test_fixture.h"
+#include <glib.h>
using ::testing::_;
using ::testing::DoAll;
using ::testing::Return;
using ::testing::SetArgPointee;
+using ::testing::SaveArg;
class Mocks : public ::testing::NiceMock<SystemInfoMock>,
public ::testing::NiceMock<GioMock> {};
@@ -48,10 +50,14 @@ class ShortcutTest : public TestFixture {
TEST_F(ShortcutTest, shortcut_add_to_home) {
int ret;
bool is_supported = true;
- GDBusConnection* _conn = (GDBusConnection*)g_object_new(G_TYPE_OBJECT, NULL);
- GDBusMessage* _msg = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, NULL);
- GDBusMessage* _msg2 = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, NULL);
- GDBusMessage* _msg3 = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, NULL);
+ GDBusConnection* _conn = (GDBusConnection*)g_object_new(G_TYPE_OBJECT, nullptr);
+ GDBusMessage* _msg = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, nullptr);
+ GDBusMessage* _msg2 = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, nullptr);
+ GDBusMessage* _msg3 = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, nullptr);
+ GDBusMessage* _msg4 = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, nullptr);
+ GVariant* reply_body;
+ GAsyncReadyCallback async_cb;
+ gpointer async_cb_data;
EXPECT_CALL(GetMock<SystemInfoMock>(),
system_info_get_platform_bool(_, _)).
@@ -59,10 +65,6 @@ TEST_F(ShortcutTest, shortcut_add_to_home) {
Return(0)));
EXPECT_CALL(GetMock<GioMock>(),
- g_bus_get_sync(_, _, _)).
- WillOnce(Return(_conn));
-
- EXPECT_CALL(GetMock<GioMock>(),
g_dbus_message_new_method_call(_, _, _, _)).
WillOnce(Return(_msg)).
WillOnce(Return(_msg2));
@@ -75,24 +77,47 @@ TEST_F(ShortcutTest, shortcut_add_to_home) {
EXPECT_CALL(GetMock<GioMock>(),
g_dbus_connection_send_message_with_reply(
_, _, _, _, _, _, _, _)).
- Times(1);
+ WillOnce(DoAll(SaveArg<6>(&async_cb), SaveArg<7>(&async_cb_data)));
EXPECT_CALL(GetMock<GioMock>(),
g_dbus_message_to_gerror(_, _)).
WillOnce(Return(FALSE));
ret = shortcut_add_to_home("test_name", LAUNCH_BY_URI, "test_uri", "test_icon",
- 0, NULL, NULL);
+ 0, nullptr, nullptr);
EXPECT_EQ(ret, SHORTCUT_ERROR_NONE);
+
+ EXPECT_CALL(GetMock<GioMock>(),
+ g_dbus_connection_send_message_with_reply_finish(_, _, _)).
+ WillOnce(Return(_msg4));
+
+ reply_body = g_variant_new("(i)", 0);
+
+ EXPECT_CALL(GetMock<GioMock>(),
+ g_dbus_message_get_body(_)).
+ WillOnce(Return(g_variant_ref(reply_body)));
+
+ EXPECT_CALL(GetMock<GioMock>(),
+ g_dbus_message_to_gerror(_, _)).
+ WillOnce(Return(FALSE));
+
+ async_cb((GObject*)_conn, nullptr, async_cb_data);
+
+ g_variant_unref(reply_body);
}
TEST_F(ShortcutTest, shortcut_remove_from_home) {
int ret;
bool is_supported = true;
- GDBusMessage* _msg = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, NULL);
- GDBusMessage* _msg2 = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, NULL);
- GDBusMessage* _msg3 = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, NULL);
+ GDBusConnection* _conn = (GDBusConnection*)g_object_new(G_TYPE_OBJECT, nullptr);
+ GDBusMessage* _msg = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, nullptr);
+ GDBusMessage* _msg2 = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, nullptr);
+ GDBusMessage* _msg3 = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, nullptr);
+ GDBusMessage* _msg4 = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, nullptr);
+ GVariant* reply_body;
+ GAsyncReadyCallback async_cb;
+ gpointer async_cb_data;
EXPECT_CALL(GetMock<SystemInfoMock>(),
system_info_get_platform_bool(_, _)).
@@ -112,7 +137,7 @@ TEST_F(ShortcutTest, shortcut_remove_from_home) {
EXPECT_CALL(GetMock<GioMock>(),
g_dbus_connection_send_message_with_reply(
_, _, _, _, _, _, _, _)).
- Times(1);
+ WillOnce(DoAll(SaveArg<6>(&async_cb), SaveArg<7>(&async_cb_data)));
EXPECT_CALL(GetMock<GioMock>(),
g_dbus_message_to_gerror(_, _)).
@@ -121,9 +146,27 @@ TEST_F(ShortcutTest, shortcut_remove_from_home) {
ret = shortcut_remove_from_home("test_name",
[](int ret, void* user_data) -> int {
return 0;
- } ,NULL);
+ } ,nullptr);
EXPECT_EQ(ret, SHORTCUT_ERROR_NONE);
+
+ EXPECT_CALL(GetMock<GioMock>(),
+ g_dbus_connection_send_message_with_reply_finish(_, _, _)).
+ WillOnce(Return(_msg4));
+
+ reply_body = g_variant_new("(i)", 0);
+
+ EXPECT_CALL(GetMock<GioMock>(),
+ g_dbus_message_get_body(_)).
+ WillOnce(Return(g_variant_ref(reply_body)));
+
+ EXPECT_CALL(GetMock<GioMock>(),
+ g_dbus_message_to_gerror(_, _)).
+ WillOnce(Return(FALSE));
+
+ async_cb((GObject*)_conn, nullptr, async_cb_data);
+
+ g_variant_unref(reply_body);
}
TEST_F(ShortcutTest, shortcut_get_list) {
@@ -132,8 +175,8 @@ TEST_F(ShortcutTest, shortcut_get_list) {
GVariantBuilder *builder;
GVariant* body;
GVariant* reply_body;
- GDBusMessage* _msg = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, NULL);
- GDBusMessage* _msg2 = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, NULL);
+ GDBusMessage* _msg = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, nullptr);
+ GDBusMessage* _msg2 = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, nullptr);
body = g_variant_new("(sssss)",
"test_pkg", "test_icon", "test_name", "test_extra", "");
@@ -170,7 +213,7 @@ TEST_F(ShortcutTest, shortcut_get_list) {
const char* name, const char* extra_key,
const char* extra_data, void* user_data) -> int {
return 0;
- }, NULL);
+ }, nullptr);
g_variant_builder_unref(builder);
g_variant_unref(body);
@@ -181,8 +224,8 @@ TEST_F(ShortcutTest, shortcut_get_list) {
TEST_F(ShortcutTest, shortcut_set_request_cb) {
int ret;
bool is_supported = true;
- GDBusMessage* _msg = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, NULL);
- GDBusMessage* _msg2 = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, NULL);
+ GDBusMessage* _msg = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, nullptr);
+ GDBusMessage* _msg2 = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, nullptr);
EXPECT_CALL(GetMock<SystemInfoMock>(),
system_info_get_platform_bool(_, _)).
@@ -218,15 +261,15 @@ TEST_F(ShortcutTest, shortcut_set_request_cb) {
int pid, double period, int allow_duplicate,
void* user_data) -> int {
return 0;
- } ,NULL);
+ } ,nullptr);
EXPECT_EQ(ret, SHORTCUT_ERROR_NONE);
}
TEST_F(ShortcutTest, shortcut_unset_request_cb) {
bool is_supported = true;
- GDBusMessage* _msg = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, NULL);
- GDBusMessage* _msg2 = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, NULL);
+ GDBusMessage* _msg = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, nullptr);
+ GDBusMessage* _msg2 = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, nullptr);
EXPECT_CALL(GetMock<SystemInfoMock>(),
system_info_get_platform_bool(_, _)).
@@ -254,9 +297,9 @@ TEST_F(ShortcutTest, shortcut_unset_request_cb) {
TEST_F(ShortcutTest, shortcut_set_remove_cb) {
int ret;
bool is_supported = true;
- GDBusConnection* _conn = (GDBusConnection*)g_object_new(G_TYPE_OBJECT, NULL);
- GDBusMessage* _msg = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, NULL);
- GDBusMessage* _msg2 = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, NULL);
+ GDBusConnection* _conn = (GDBusConnection*)g_object_new(G_TYPE_OBJECT, nullptr);
+ GDBusMessage* _msg = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, nullptr);
+ GDBusMessage* _msg2 = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, nullptr);
EXPECT_CALL(GetMock<SystemInfoMock>(),
system_info_get_platform_bool(_, _)).
@@ -294,15 +337,15 @@ TEST_F(ShortcutTest, shortcut_set_remove_cb) {
[](const char* package_name, const char* name,
int sender_pid, void* user_data) -> int {
return 0;
- } ,NULL);
+ } ,nullptr);
EXPECT_EQ(ret, SHORTCUT_ERROR_NONE);
}
TEST_F(ShortcutTest, shortcut_unset_remove_cb) {
bool is_supported = true;
- GDBusMessage* _msg = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, NULL);
- GDBusMessage* _msg2 = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, NULL);
+ GDBusMessage* _msg = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, nullptr);
+ GDBusMessage* _msg2 = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, nullptr);
EXPECT_CALL(GetMock<SystemInfoMock>(),
system_info_get_platform_bool(_, _)).
@@ -326,3 +369,67 @@ TEST_F(ShortcutTest, shortcut_unset_remove_cb) {
EXPECT_EQ(get_last_result(), SHORTCUT_ERROR_NONE);
}
+
+TEST_F(ShortcutTest, shortcut_add_to_home_widget) {
+ int ret;
+ bool is_supported = true;
+ GDBusConnection* _conn = (GDBusConnection*)g_object_new(G_TYPE_OBJECT, nullptr);
+ GDBusMessage* _msg = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, nullptr);
+ GDBusMessage* _msg2 = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, nullptr);
+ GDBusMessage* _msg3 = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, nullptr);
+ GDBusMessage* _msg4 = (GDBusMessage*)g_object_new(G_TYPE_OBJECT, nullptr);
+ GVariant* reply_body;
+ GAsyncReadyCallback async_cb;
+ gpointer async_cb_data;
+
+ EXPECT_CALL(GetMock<SystemInfoMock>(),
+ system_info_get_platform_bool(_, _)).
+ WillOnce(DoAll(SetArgPointee<1>(is_supported),
+ Return(0)));
+
+ EXPECT_CALL(GetMock<GioMock>(),
+ g_bus_get_sync(_, _, _)).
+ WillOnce(Return(_conn));
+
+ EXPECT_CALL(GetMock<GioMock>(),
+ g_dbus_message_new_method_call(_, _, _, _)).
+ WillOnce(Return(_msg)).
+ WillOnce(Return(_msg2));
+
+ EXPECT_CALL(GetMock<GioMock>(),
+ g_dbus_connection_send_message_with_reply_sync(
+ _, _, _, _, _, _, _)).
+ WillOnce(Return(_msg3));
+
+ EXPECT_CALL(GetMock<GioMock>(),
+ g_dbus_connection_send_message_with_reply(
+ _, _, _, _, _, _, _, _)).
+ WillOnce(DoAll(SaveArg<6>(&async_cb), SaveArg<7>(&async_cb_data)));
+
+ EXPECT_CALL(GetMock<GioMock>(),
+ g_dbus_message_to_gerror(_, _)).
+ WillOnce(Return(FALSE));
+
+ ret = shortcut_add_to_home_widget("test_name", WIDGET_SIZE_DEFAULT, "test_id", "test_icon",
+ 0, 0, nullptr, nullptr);
+
+ EXPECT_EQ(ret, SHORTCUT_ERROR_NONE);
+
+ EXPECT_CALL(GetMock<GioMock>(),
+ g_dbus_connection_send_message_with_reply_finish(_, _, _)).
+ WillOnce(Return(_msg4));
+
+ reply_body = g_variant_new("(i)", 0);
+
+ EXPECT_CALL(GetMock<GioMock>(),
+ g_dbus_message_get_body(_)).
+ WillOnce(Return(g_variant_ref(reply_body)));
+
+ EXPECT_CALL(GetMock<GioMock>(),
+ g_dbus_message_to_gerror(_, _)).
+ WillOnce(Return(FALSE));
+
+ async_cb((GObject*)_conn, nullptr, async_cb_data);
+
+ g_variant_unref(reply_body);
+}