180
180
EXPECT_TRUE(mock_icon->IsActive());
183
TEST_F(TestApplicationLauncherIcon, NoWindowListMenusWithOneWindow)
185
auto win = std::make_shared<MockApplicationWindow>(g_random_int());
186
mock_app->window_list_ = { win };
188
auto const& menus = mock_icon->Menus();
189
auto menu_it = std::find_if(menus.begin(), menus.end(), [win] (glib::Object<DbusmenuMenuitem> it) {
190
auto* label = dbusmenu_menuitem_property_get(it, DBUSMENU_MENUITEM_PROP_LABEL);
191
return (label && std::string(label) == win->title());
194
EXPECT_EQ(menu_it, menus.end());
197
TEST_F(TestApplicationLauncherIcon, WindowListMenusWithTwoWindows)
199
auto win1 = std::make_shared<MockApplicationWindow>(1);
200
auto wm_win1 = std::make_shared<StandaloneWindow>(win1->window_id());
201
auto win2 = std::make_shared<MockApplicationWindow>(2);
202
auto wm_win2 = std::make_shared<StandaloneWindow>(win2->window_id());
204
mock_app->window_list_ = { win1, win2 };
205
WM->AddStandaloneWindow(wm_win1);
206
WM->AddStandaloneWindow(wm_win2);
207
ASSERT_TRUE(wm_win2->active());
209
auto const& menus = mock_icon->Menus();
211
auto menu1_it = std::find_if(menus.begin(), menus.end(), [win1] (glib::Object<DbusmenuMenuitem> it) {
212
auto* label = dbusmenu_menuitem_property_get(it, DBUSMENU_MENUITEM_PROP_LABEL);
213
return (label && std::string(label) == win1->title());
216
ASSERT_NE(menu1_it, menus.end());
217
EXPECT_TRUE(dbusmenu_menuitem_property_get_bool(*menu1_it, DBUSMENU_MENUITEM_PROP_ENABLED));
218
EXPECT_TRUE(dbusmenu_menuitem_property_get_bool(*menu1_it, DBUSMENU_MENUITEM_PROP_VISIBLE));
219
EXPECT_TRUE(dbusmenu_menuitem_property_get_bool(*menu1_it, QuicklistMenuItem::MARKUP_ACCEL_DISABLED_PROPERTY));
220
EXPECT_EQ(dbusmenu_menuitem_property_get_int(*menu1_it, QuicklistMenuItem::MAXIMUM_LABEL_WIDTH_PROPERTY), 300);
222
auto menu2_it = std::find_if(menus.begin(), menus.end(), [win2] (glib::Object<DbusmenuMenuitem> it) {
223
auto* label = dbusmenu_menuitem_property_get(it, DBUSMENU_MENUITEM_PROP_LABEL);
224
return (label && std::string(label) == win2->title());
227
ASSERT_NE(menu2_it, menus.end());
228
EXPECT_TRUE(dbusmenu_menuitem_property_get_bool(*menu2_it, DBUSMENU_MENUITEM_PROP_ENABLED));
229
EXPECT_TRUE(dbusmenu_menuitem_property_get_bool(*menu2_it, DBUSMENU_MENUITEM_PROP_VISIBLE));
230
EXPECT_TRUE(dbusmenu_menuitem_property_get_bool(*menu2_it, QuicklistMenuItem::MARKUP_ACCEL_DISABLED_PROPERTY));
231
EXPECT_EQ(dbusmenu_menuitem_property_get_int(*menu2_it, QuicklistMenuItem::MAXIMUM_LABEL_WIDTH_PROPERTY), 300);
233
bool activated = false;
234
wm_win1->active.changed.connect([&activated] (bool a) { activated = a; });
235
g_signal_emit_by_name(*menu1_it, DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, 0);
237
EXPECT_TRUE(wm_win1->active());
238
EXPECT_TRUE(activated);
241
wm_win2->active.changed.connect([&activated] (bool a) { activated = a; });
242
g_signal_emit_by_name(*menu2_it, DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, 0);
244
EXPECT_TRUE(wm_win2->active());
245
EXPECT_TRUE(activated);
248
TEST_F(TestApplicationLauncherIcon, WindowListMenusWithEmptyTitles)
250
auto win1 = std::make_shared<MockApplicationWindow>(1);
251
auto win2 = std::make_shared<MockApplicationWindow>(2);
252
win1->title_.clear();
254
mock_app->window_list_ = { win1, win2 };
255
auto const& menus = mock_icon->Menus();
257
auto menu1_it = std::find_if(menus.begin(), menus.end(), [win1] (glib::Object<DbusmenuMenuitem> it) {
258
auto* label = dbusmenu_menuitem_property_get(it, DBUSMENU_MENUITEM_PROP_LABEL);
259
return (label && std::string(label) == win1->title());
262
ASSERT_EQ(menu1_it, menus.end());