1
#include "test-local-menu.h"
7
#ifdef META_HAS_LOCAL_MENUS
11
void initializeMetaButtonLayout (MetaButtonLayout *layout)
13
memset (layout, 0, sizeof (MetaButtonLayout));
17
for (i = 0; i < MAX_BUTTONS_PER_CORNER; i++)
19
layout->right_buttons[i] = META_BUTTON_FUNCTION_LAST;
20
layout->left_buttons[i] = META_BUTTON_FUNCTION_LAST;
25
class GtkWindowDecoratorTestLocalMenuLayout :
26
public GtkWindowDecoratorTestLocalMenu
30
MetaButtonLayout * getLayout () { return &mLayout; }
34
GtkWindowDecoratorTestLocalMenu::SetUp ();
35
::initializeMetaButtonLayout (&mLayout);
36
g_settings_set_enum (getSettings (), "menu-mode", LOCAL);
38
Window xid = getWindow ();
39
Atom ubuntu_appmenu_unique_name = XInternAtom (gdk_x11_display_get_xdisplay (gdk_display_get_default ()), "_UBUNTU_APPMENU_UNIQUE_NAME", FALSE);
40
Atom utf8_string = XInternAtom (gdk_x11_display_get_xdisplay (gdk_display_get_default ()), "UTF8_STRING", FALSE);
41
const char data[] = ":abcd1234";
43
XChangeProperty (gdk_x11_display_get_xdisplay (gdk_display_get_default ()), xid, ubuntu_appmenu_unique_name, utf8_string, 8, PropModeReplace, (const unsigned char *) data, strlen (data));
45
gdk_display_sync (gdk_display_get_default ());
47
ASSERT_TRUE (gwd_window_should_have_local_menu (getWindow ()));
52
MetaButtonLayout mLayout;
55
TEST_F (GtkWindowDecoratorTestLocalMenuLayout, TestForceNoButtonsSet)
57
force_local_menus_on (getWindow (), getLayout ());
59
EXPECT_EQ (getLayout ()->right_buttons[0], META_BUTTON_FUNCTION_LAST);
60
EXPECT_EQ (getLayout ()->left_buttons[0], META_BUTTON_FUNCTION_LAST);
63
TEST_F (GtkWindowDecoratorTestLocalMenuLayout, TestForceNoCloseButtonSet)
65
getLayout ()->right_buttons[0] = META_BUTTON_FUNCTION_CLOSE;
67
force_local_menus_on (getWindow (), getLayout ());
69
EXPECT_EQ (getLayout ()->right_buttons[1], META_BUTTON_FUNCTION_WINDOW_MENU);
70
EXPECT_EQ (getLayout ()->left_buttons[0], META_BUTTON_FUNCTION_LAST);
73
TEST_F (GtkWindowDecoratorTestLocalMenuLayout, TestForceNoCloseMinimizeMaximizeButtonSet)
75
getLayout ()->left_buttons[0] = META_BUTTON_FUNCTION_CLOSE;
76
getLayout ()->left_buttons[1] = META_BUTTON_FUNCTION_CLOSE;
77
getLayout ()->left_buttons[2] = META_BUTTON_FUNCTION_CLOSE;
79
force_local_menus_on (getWindow (), getLayout ());
81
EXPECT_EQ (getLayout ()->right_buttons[0], META_BUTTON_FUNCTION_LAST);
82
EXPECT_EQ (getLayout ()->left_buttons[3], META_BUTTON_FUNCTION_WINDOW_MENU);
85
TEST_F (GtkWindowDecoratorTestLocalMenu, NoMenus)
87
ASSERT_TRUE (true) << "Local menus tests not enabled because META_HAS_LOCAL_MENUS is off";