summaryrefslogtreecommitdiff
diff options
-rw-r--r--tests/test_quicklist_menu_item.cpp72
1 files changed, 71 insertions, 1 deletions
diff --git a/tests/test_quicklist_menu_item.cpp b/tests/test_quicklist_menu_item.cpp
index 47289c3d8..dbba9d078 100644
--- a/tests/test_quicklist_menu_item.cpp
+++ b/tests/test_quicklist_menu_item.cpp
@@ -20,12 +20,16 @@
#include <gmock/gmock.h>
#include <libdbusmenu-glib/client.h>
+#include <UnityCore/GLibSignal.h>
#include "QuicklistMenuItem.h"
#include "QuicklistMenuItemCheckmark.h"
#include "QuicklistMenuItemLabel.h"
#include "QuicklistMenuItemRadio.h"
#include "QuicklistMenuItemSeparator.h"
+#include "unity-shared/UBusWrapper.h"
+#include "unity-shared/UBusMessages.h"
+#include "test_utils.h"
using namespace unity;
using namespace testing;
@@ -64,7 +68,7 @@ TEST_F(TestQuicklistMenuItem, QuicklistMenuItemLabel)
{
dbusmenu_menuitem_property_set(item, DBUSMENU_MENUITEM_PROP_LABEL, "A Label");
dbusmenu_menuitem_property_set_bool(item, DBUSMENU_MENUITEM_PROP_ENABLED, true);
- dbusmenu_menuitem_property_set_bool(item, "unity-use-markup", true);
+ dbusmenu_menuitem_property_set_bool(item, QuicklistMenuItem::MARKUP_ENABLED_PROPERTY, true);
nux::ObjectPtr<QuicklistMenuItemLabel> qlitem(new QuicklistMenuItemLabel(item));
@@ -104,4 +108,70 @@ TEST_F(TestQuicklistMenuItem, QuicklistMenuItemSeparator)
EXPECT_FALSE(qlitem->GetSelectable());
}
+TEST_F(TestQuicklistMenuItem, OverlayMenuitem)
+{
+ dbusmenu_menuitem_property_set(item, DBUSMENU_MENUITEM_PROP_LABEL, "Label");
+ dbusmenu_menuitem_property_set_bool(item, DBUSMENU_MENUITEM_PROP_ENABLED, true);
+
+ nux::ObjectPtr<QuicklistMenuItemLabel> qlitem(new QuicklistMenuItemLabel(item));
+
+ EXPECT_FALSE(qlitem->IsOverlayQuicklist());
+
+ dbusmenu_menuitem_property_set_bool(item, QuicklistMenuItem::OVERLAY_MENU_ITEM_PROPERTY, true);
+ EXPECT_TRUE(qlitem->IsOverlayQuicklist());
+}
+
+TEST_F(TestQuicklistMenuItem, ItemActivate)
+{
+ dbusmenu_menuitem_property_set(item, DBUSMENU_MENUITEM_PROP_LABEL, "Label");
+ dbusmenu_menuitem_property_set_bool(item, DBUSMENU_MENUITEM_PROP_ENABLED, true);
+
+ nux::ObjectPtr<QuicklistMenuItemLabel> qlitem(new QuicklistMenuItemLabel(item));
+
+ bool item_activated = false;
+ glib::Signal<void, DbusmenuMenuitem*, int> signal(item, DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED,
+ [&] (DbusmenuMenuitem* menu_item, int time) {
+ EXPECT_EQ(menu_item, item);
+ item_activated = true;
+ });
+
+ qlitem->Activate();
+ EXPECT_TRUE(item_activated);
+}
+
+TEST_F(TestQuicklistMenuItem, ItemActivateClosesDash)
+{
+ dbusmenu_menuitem_property_set(item, DBUSMENU_MENUITEM_PROP_LABEL, "Label");
+ dbusmenu_menuitem_property_set_bool(item, DBUSMENU_MENUITEM_PROP_ENABLED, true);
+
+ nux::ObjectPtr<QuicklistMenuItemLabel> qlitem(new QuicklistMenuItemLabel(item));
+
+ bool closes_dash = false;
+ UBusManager manager;
+ manager.RegisterInterest(UBUS_PLACE_VIEW_CLOSE_REQUEST, [&] (GVariant*) { closes_dash = true; });
+
+ qlitem->Activate();
+ Utils::WaitUntil(closes_dash);
+
+ EXPECT_TRUE(closes_dash);
+}
+
+TEST_F(TestQuicklistMenuItem, OverlayItemActivateDoesNotCloseDash)
+{
+ dbusmenu_menuitem_property_set(item, DBUSMENU_MENUITEM_PROP_LABEL, "Label");
+ dbusmenu_menuitem_property_set_bool(item, DBUSMENU_MENUITEM_PROP_ENABLED, true);
+ dbusmenu_menuitem_property_set_bool(item, QuicklistMenuItem::OVERLAY_MENU_ITEM_PROPERTY, true);
+
+ nux::ObjectPtr<QuicklistMenuItemLabel> qlitem(new QuicklistMenuItemLabel(item));
+
+ bool closes_dash = false;
+ UBusManager manager;
+ manager.RegisterInterest(UBUS_PLACE_VIEW_CLOSE_REQUEST, [&] (GVariant*) { closes_dash = true; });
+
+ qlitem->Activate();
+ Utils::WaitForTimeoutMSec(100);
+
+ EXPECT_FALSE(closes_dash);
+}
+
}