MenuBuilder returns class Menu 13/158713/6
authorPawel Kurowski <p.kurowski2@samsung.com>
Thu, 2 Nov 2017 13:02:46 +0000 (14:02 +0100)
committerPawel Kurowski <p.kurowski2@samsung.com>
Tue, 7 Nov 2017 11:42:30 +0000 (12:42 +0100)
Menu contains MenuItems colection, information about Alignment, and NavigateToSuperMenu.
AutoScroll Menu will be displayed at the bottom of screen.
MenuItems in AutoScroll Menu will be repeatable.
multimap changed to unordered_map.

Change-Id: I06df0bd41877fe9d67390d83eeb22ed428341066

res/universal-switch.edc
src/MenuBuilder.cpp
src/MenuBuilder.hpp
src/SelectActivity.cpp
tests/no-ui-scenarios/OptionalTests.cpp
tests/no-ui-scenarios/TranslationsTests.cpp
tests/no-ui-scenarios/VConfImplTests.cpp
tests/ui-scenarios/MenuBuilderTests.cpp

index 6c843e5..05a7ce7 100644 (file)
@@ -109,8 +109,8 @@ group { name: "elm/notify/center/universalSwitchTransparent";
       }
       part { name: "base"; type: RECT;
          description { state: "default" 0.0;
-            rel1.offset: 10 10;
-            rel2.offset: -10 -10;
+            rel1.offset: 0;
+            rel2.offset: 0;
             rel1.relative: 0.0 0.0;
             rel2.relative: 1.0 1.0;
             color: 0 0 0 0;
@@ -120,9 +120,9 @@ group { name: "elm/notify/center/universalSwitchTransparent";
          clip_to: "clip";
          description { state: "default" 0.0;
             rel1.to: "base";
-            rel1.offset: 12 12;
+            rel1.offset: 0 0;
             rel2.to: "base";
-            rel2.offset: -13 -13;
+            rel2.offset: 0 0;
          }
       }
    }
@@ -154,6 +154,14 @@ group { name: "elm/notify/center/popup/universalSwitchTransparent";
    inherit: "elm/notify/center/universalSwitchTransparent";
 }
 
+group { name: "elm/notify/bottom/universalSwitchTransparent";
+   inherit: "elm/notify/center/universalSwitchTransparent";
+}
+
+group { name: "elm/notify/bottom/popup/universalSwitchTransparent";
+   inherit: "elm/notify/center/universalSwitchTransparent";
+}
+
 group { name: "elm/button/base/universalSwitchTransparent";
    parts {
       spacer { "base";
index 1063bff..36ec1e7 100644 (file)
@@ -7,7 +7,7 @@
 #include "Window.hpp"
 #include "Quickpanel.hpp"
 
-#include <map>
+#include <unordered_map>
 #include <stack>
 
 enum class RepetitionPolicy : bool {
@@ -85,17 +85,32 @@ public:
        std::string getName() const override;
 };
 
+class MenuImplementation : public Menu
+{
+public:
+       MenuImplementation(std::vector<std::shared_ptr<MenuItem>> menuItems,
+                                          Alignment alignment = Alignment::CENTER, NavigateToSuperMenu navigateToSuperMenu = NavigateToSuperMenu::ALLOW);
+       const std::vector<std::shared_ptr<MenuItem>> &getMenuItems() override;
+       Alignment getAlignment() override;
+       NavigateToSuperMenu getNavigateToSuperMenu() override;
+
+private:
+       std::vector<std::shared_ptr<MenuItem>> menuItems;
+       Alignment alignment;
+       NavigateToSuperMenu navigateToSuperMenu;
+};
+
 class MenuBuilderImplementation : public MenuBuilder
 {
 public:
        MenuBuilderImplementation();
 
-       std::vector<std::shared_ptr<MenuItem>> build(std::string) override;
+       std::shared_ptr<Menu> build(std::string) override;
 
 private:
-       void addToMap(const std::string &, const std::vector<std::shared_ptr<MenuItem>> &);
+       void addToMap(const std::string &, const std::shared_ptr<Menu> &);
 
-       std::multimap<std::string, std::shared_ptr<MenuItem>> map;
+       std::unordered_map<std::string, std::shared_ptr<Menu>> map;
 };
 
 MenuItemImplementation::MenuItemImplementation(std::vector<std::string> names, std::string iconPath, std::string activityType,
@@ -211,6 +226,24 @@ std::string QuickpanelTypeMenuItem::getName() const
        return gettext(names[window->getQuickpanel()->isVisible() ? 1 : 0].c_str());
 }
 
+MenuImplementation::MenuImplementation(std::vector<std::shared_ptr<MenuItem>> menuItems, Alignment alignment, NavigateToSuperMenu navigateToSuperMenu)
+       : menuItems(std::move(menuItems)), alignment(alignment), navigateToSuperMenu(navigateToSuperMenu) {}
+
+const std::vector<std::shared_ptr<MenuItem>> &MenuImplementation::getMenuItems()
+{
+       return menuItems;
+}
+
+Alignment MenuImplementation::getAlignment()
+{
+       return alignment;
+}
+
+NavigateToSuperMenu MenuImplementation::getNavigateToSuperMenu()
+{
+       return navigateToSuperMenu;
+}
+
 MenuBuilderImplementation::MenuBuilderImplementation()
 {
        const std::string defaultImg = ICONS_DIR "/tizen.png";
@@ -582,101 +615,120 @@ MenuBuilderImplementation::MenuBuilderImplementation()
        auto emptyItem                          =       std::make_shared<MenuItemImplementation>();
 
 
-       addToMap("IDS_MENU_MAIN_NORMAL", {
-               tap, gestures, actions, settings,
-               recentApps, homeScreen, back, buttonsAndKeys
-       });
-       addToMap("IDS_MENU_MAIN_HOME_APPS", {
-               tap, leftPage, rightPage, emptyItem,
-               gestures, actions, settings, recentApps,
-               homeScreen, back, buttonsAndKeys
-       });
-       addToMap("IDS_MENU_MAIN_SLIDER", {
-               increase, decrease, emptyItem, emptyItem,
-               tap, gestures, actions, settings,
-               recentApps, homeScreen, back, buttonsAndKeys
-       });
-       addToMap("IDS_MENU_MAIN_EDITABLE_TEXT", {
-               tap, editText, emptyItem, emptyItem,
-               gestures, actions, settings, recentApps,
-               homeScreen, back, buttonsAndKeys
-       });
-       addToMap("IDS_MENU_MAIN_SIP", {
-               tap, touchHold
-       });
-       addToMap("IDS_MENU_MAIN_INCOMING_CALL", {
-               tap, accept, reject, emptyItem,
-               gestures, actions, settings, recentApps,
-               homeScreen, back, buttonsAndKeys
-       });
-       addToMap("IDS_MENU_MAIN_DURING_CALL", {
-               tap, endCall, emptyItem, emptyItem,
-               gestures, actions, settings, recentApps,
-               homeScreen, back, buttonsAndKeys
-       });
-       addToMap("IDS_MENU_GESTURES", {
-               swipeUp, swipeDown, swipeLeft, swipeRight,
-               autoScroll, touchHold, drag, touchHoldThenDrag
-       });
-       addToMap("IDS_MENU_ACTIONS", {
-               zoomIn, zoomOut, ScreenRotation, soundVibrationMute,
-               lock, openCloseNotifications, captureScreenshot
-       });
-       addToMap("IDS_MENU_ROTATE_SCREEN", {
-               rotateLeft, rotateToPortrait, rotateRight
-       });
-       addToMap("IDS_MENU_SETTINGS_AUTO_SCAN_OFF", {
-               scanMethod, scanVerticalDirection, turnOnOffVoice, turnOnOffSound,
-               moreSettings
-       });
-       addToMap("IDS_MENU_SETTINGS_AUTO_SCAN_ON", {
-               speedUpScaning, slowDownScaning, scanMethod, scanVerticalDirection,
-               turnOnOffVoice, turnOnOffSound, moreSettings
-       });
-       addToMap("IDS_MENU_BUTTONS_KEYS", {
-               ringtoneVolIncrease, ringtoneVolDecrease, mediaVolumeIncrease, mediaVolumeDecrease,
-               tapHomeButtonx2, tapHomeButtonx3, viewPowerKeyMenu
-       });
-       addToMap("IDS_MENU_BUTTONS_KEYS_WIFI", {
-               notiVolumeIncrease, notiVolumeDecrease, mediaVolumeIncrease, mediaVolumeDecrease,
-               tapHomeButtonx2, tapHomeButtonx3, viewPowerKeyMenu
-       });
-       addToMap("IDS_MENU_EDIT_TEXT", {
-               textEditionMode, selectAll, previous, next,
-               copy, paste, cut, granularitySettings
-       });
-       addToMap("IDS_MENU_AUTO_SCROLL_OFF", {
-               turnOnOffAutoScroll, scrollUp, scrollDown, scrollTop
-       });
-       addToMap("IDS_MENU_AUTO_SCROLL_ON", {
-               turnOnOffAutoScroll, speedUpAutoScroll, slowDownAutoScroll
-       });
-       addToMap("IDS_MENU_GRANULARITY", {
-               character, word, line, paragraph
-       });
+       addToMap("IDS_MENU_MAIN_NORMAL", std::make_shared<MenuImplementation>(MenuImplementation {
+               {
+                       tap, gestures, actions, settings,
+                       recentApps, homeScreen, back, buttonsAndKeys
+               }
+       }));
+       addToMap("IDS_MENU_MAIN_HOME_APPS", std::make_shared<MenuImplementation>(MenuImplementation {
+               {
+                       tap, leftPage, rightPage, emptyItem,
+                       gestures, actions, settings, recentApps,
+                       homeScreen, back, buttonsAndKeys
+               }
+       }));
+       addToMap("IDS_MENU_MAIN_SLIDER", std::make_shared<MenuImplementation>(MenuImplementation {
+               {
+                       increase, decrease, emptyItem, emptyItem,
+                       tap, gestures, actions, settings,
+                       recentApps, homeScreen, back, buttonsAndKeys
+               }
+       }));
+       addToMap("IDS_MENU_MAIN_EDITABLE_TEXT", std::make_shared<MenuImplementation>(MenuImplementation {
+               {
+                       tap, editText, emptyItem, emptyItem,
+                       gestures, actions, settings, recentApps,
+                       homeScreen, back, buttonsAndKeys
+               }
+       }));
+       addToMap("IDS_MENU_MAIN_SIP", std::make_shared<MenuImplementation>(MenuImplementation {
+               {tap, touchHold}
+       }));
+       addToMap("IDS_MENU_MAIN_INCOMING_CALL", std::make_shared<MenuImplementation>(MenuImplementation {
+               {
+                       tap, accept, reject, emptyItem,
+                       gestures, actions, settings, recentApps,
+                       homeScreen, back, buttonsAndKeys
+               }
+       }));
+       addToMap("IDS_MENU_MAIN_DURING_CALL", std::make_shared<MenuImplementation>(MenuImplementation {
+               {
+                       tap, endCall, emptyItem, emptyItem,
+                       gestures, actions, settings, recentApps,
+                       homeScreen, back, buttonsAndKeys
+               }
+       }));
+       addToMap("IDS_MENU_GESTURES", std::make_shared<MenuImplementation>(MenuImplementation {
+               {
+                       swipeUp, swipeDown, swipeLeft, swipeRight,
+                       autoScroll, touchHold, drag, touchHoldThenDrag
+               }
+       }));
+       addToMap("IDS_MENU_ACTIONS", std::make_shared<MenuImplementation>(MenuImplementation {
+               {
+                       zoomIn, zoomOut, ScreenRotation, soundVibrationMute,
+                       lock, openCloseNotifications, captureScreenshot
+               }
+       }));
+       addToMap("IDS_MENU_ROTATE_SCREEN", std::make_shared<MenuImplementation>(MenuImplementation {
+               {rotateLeft, rotateToPortrait, rotateRight}
+       }));
+       addToMap("IDS_MENU_SETTINGS_AUTO_SCAN_OFF", std::make_shared<MenuImplementation>(MenuImplementation {
+               {
+                       scanMethod, scanVerticalDirection, turnOnOffVoice, turnOnOffSound,
+                       moreSettings
+               }
+       }));
+       addToMap("IDS_MENU_SETTINGS_AUTO_SCAN_ON", std::make_shared<MenuImplementation>(MenuImplementation {
+               {
+                       speedUpScaning, slowDownScaning, scanMethod, scanVerticalDirection,
+                       turnOnOffVoice, turnOnOffSound, moreSettings
+               }
+       }));
+       addToMap("IDS_MENU_BUTTONS_KEYS", std::make_shared<MenuImplementation>(MenuImplementation {
+               {
+                       ringtoneVolIncrease, ringtoneVolDecrease, mediaVolumeIncrease, mediaVolumeDecrease,
+                       tapHomeButtonx2, tapHomeButtonx3, viewPowerKeyMenu
+               }
+       }));
+       addToMap("IDS_MENU_BUTTONS_KEYS_WIFI", std::make_shared<MenuImplementation>(MenuImplementation {
+               {
+                       notiVolumeIncrease, notiVolumeDecrease, mediaVolumeIncrease, mediaVolumeDecrease,
+                       tapHomeButtonx2, tapHomeButtonx3, viewPowerKeyMenu
+               }
+       }));
+       addToMap("IDS_MENU_EDIT_TEXT", std::make_shared<MenuImplementation>(MenuImplementation {
+               {
+                       textEditionMode, selectAll, previous, next,
+                       copy, paste, cut, granularitySettings
+               }
+       }));
+       addToMap("IDS_MENU_AUTO_SCROLL_OFF", std::make_shared<MenuImplementation>(MenuImplementation {
+               {turnOnOffAutoScroll, scrollUp, scrollDown, scrollTop},
+               Alignment::BOTTOM, NavigateToSuperMenu::DENY
+       }));
+       addToMap("IDS_MENU_AUTO_SCROLL_ON", std::make_shared<MenuImplementation>(MenuImplementation {
+               {turnOnOffAutoScroll, speedUpAutoScroll, slowDownAutoScroll},
+               Alignment::BOTTOM, NavigateToSuperMenu::DENY
+       }));
+       addToMap("IDS_MENU_GRANULARITY", std::make_shared<MenuImplementation>(MenuImplementation {
+               {character, word, line, paragraph}
+       }));
 }
 
-std::vector<std::shared_ptr<MenuItem>> MenuBuilderImplementation::build(std::string menuLabel)
+std::shared_ptr<Menu> MenuBuilderImplementation::build(std::string menuLabel)
 {
-
        if (menuLabel.find("IDS_MENU_MAIN") != std::string::npos &&
                        !Singleton<VConfInterface>::instance().get(VCONF_KEY_SHOW_CONTEXTUAL_MENU, false))
                menuLabel = "IDS_MENU_MAIN_NORMAL";
 
-       std::vector<std::shared_ptr<MenuItem>> foundMenuItems;
-       auto keyRange = map.equal_range(menuLabel);
-       for (auto ii = keyRange.first; ii != keyRange.second; ++ii) {
-               if (ii->second->isDisplayed())
-                       foundMenuItems.push_back(ii->second);
-       }
-
-       return foundMenuItems;
+       return map.find(menuLabel)->second;
 }
 
-void MenuBuilderImplementation::addToMap(const std::string &menuLabel, const std::vector<std::shared_ptr<MenuItem>> &menuItems)
+void MenuBuilderImplementation::addToMap(const std::string &menuLabel, const std::shared_ptr<Menu> &menu)
 {
-       for (auto &menuItem : menuItems)
-               map.emplace(menuLabel, std::move(menuItem));
+       map.emplace(menuLabel, std::move(menu));
 }
 
 template<>
index 6d545df..ba81909 100644 (file)
@@ -18,10 +18,28 @@ public:
        virtual bool isRepeatable() const = 0;
 };
 
+enum class Alignment {
+       CENTER,
+       BOTTOM
+};
+
+enum class NavigateToSuperMenu : bool {
+       ALLOW = true,
+       DENY = false
+};
+
+class Menu
+{
+public:
+       virtual const std::vector<std::shared_ptr<MenuItem>> &getMenuItems() = 0;
+       virtual Alignment getAlignment() = 0;
+       virtual NavigateToSuperMenu getNavigateToSuperMenu() = 0;
+};
+
 class MenuBuilder
 {
 public:
-       virtual std::vector<std::shared_ptr<MenuItem>> build(std::string) = 0;
+       virtual std::shared_ptr<Menu> build(std::string) = 0;
 };
 
 #endif
index b2010e5..6f4544c 100644 (file)
@@ -60,7 +60,7 @@ private:
        bool isRealUIElementSlider();
        bool hasRealUIElementEditableTextIface();
        std::string getCompleteLabelOfButtonsKeysMenu();
-       int addItemsToMenu(Evas_Object *, const std::string &);
+       void addItemsToMenu(Evas_Object *);
        void gengridItemSelected(Elm_Gengrid_Item *);
 
        static void popupDismissedCb(void *, Evas_Object *, void *);
@@ -72,6 +72,7 @@ private:
        std::vector<std::string> nestedMenusLabels;
        VConfInterface::CallbackHandle callbackHandle;
        std::vector<GengridItemData> gengridItemsData;
+       std::shared_ptr<Menu> menu;
        std::shared_ptr<UIElement> realUiElement;
        Optional<bool> realUiElementIsSlider;
        Optional<bool> realUiElementHasEditableText;
@@ -154,14 +155,22 @@ void SelectActivity::createMenu()
        }
 
        popup.reset(elm_popup_add(Singleton<UniversalSwitch>::instance().getMainWindow()->getHandler()));
-       elm_popup_orient_set(popup.get(), ELM_POPUP_ORIENT_CENTER);
+       evas_object_size_hint_weight_set(popup.get(), EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_smart_callback_add(popup.get(), "dismissed", popupDismissedCb, this);
+       menu = Singleton<MenuBuilder>::instance().build(getCompleteLabelOfMenu());
+       if (menu->getAlignment() == Alignment::BOTTOM) {
+               elm_popup_orient_set(popup.get(), ELM_POPUP_ORIENT_BOTTOM);
+               elm_popup_align_set(popup.get(), ELM_NOTIFY_ALIGN_FILL, EVAS_HINT_EXPAND);
+       } else {
+               elm_popup_orient_set(popup.get(), ELM_POPUP_ORIENT_CENTER);
+       }
+
        elm_theme_extension_add(NULL, UNIVERSAL_SWITCH_EDJ);
        elm_object_style_set(popup.get(), "universalSwitchTransparent");
+
        elm_atspi_accessible_attribute_append(popup.get(), "ScanningMethod", "RowScanner");
        elm_atspi_accessible_attribute_append(popup.get(), "EscapeFrameEnabled", "true");
        createMenuContent();
-       evas_object_size_hint_weight_set(popup.get(), EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       evas_object_smart_callback_add(popup.get(), "dismissed", popupDismissedCb, this);
 
        dbusClient = std::make_unique<DBus::DBusClient>(dbusLocators::accessibilityEMod::BUS,
                                 dbusLocators::accessibilityEMod::OBJ_PATH, dbusLocators::accessibilityEMod::INTERFACE, DBus::ConnectionType::SYSTEM);
@@ -194,6 +203,8 @@ void SelectActivity::removeMenu()
                popup.reset();
        }
 
+       menu.reset();
+
        timer.reset();
 
        if (dbusClient) {
@@ -213,7 +224,7 @@ void SelectActivity::createMenuContent()
        elm_object_content_set(popup.get(), content);
        elm_object_part_content_set(content, "elm.swallow.content", gengrid);
 
-       if (nestedMenusLabels.size() > 1)
+       if (nestedMenusLabels.size() > 1 &&  menu->getNavigateToSuperMenu() == NavigateToSuperMenu::ALLOW)
                addBackButton(content);
 
        auto screenWidth = 0;
@@ -223,8 +234,7 @@ void SelectActivity::createMenuContent()
        int itemHeight = itemWidth * GENGRID_ITEM_HEIGHT_WIDTH_PROPORTION;
        elm_gengrid_item_size_set(gengrid, itemWidth, itemHeight);
 
-       auto completeLabelOfMenu = getCompleteLabelOfMenu();
-       addItemsToMenu(gengrid, completeLabelOfMenu);
+       addItemsToMenu(gengrid);
 
        evas_object_size_hint_min_set(gengrid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        evas_object_size_hint_weight_set(gengrid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
@@ -433,16 +443,17 @@ std::string SelectActivity::getCompleteLabelOfButtonsKeysMenu()
        return "IDS_MENU_BUTTONS_KEYS_WIFI";
 }
 
-int SelectActivity::addItemsToMenu(Evas_Object *gengrid, const std::string &completeLabelOfMenu)
+void SelectActivity::addItemsToMenu(Evas_Object *gengrid)
 {
        Elm_Gengrid_Item_Class *gic = elm_gengrid_item_class_new();
        gic->item_style = "default";
        gic->func.text_get = gengridItemLabelGetCb;
        gic->func.content_get = gengridItemContentGetCb;
 
-       auto menuItems = Singleton<MenuBuilder>::instance().build(completeLabelOfMenu);
-       auto numberOfItems = menuItems.size();
-       for (auto &menuItem : menuItems) {
+       for (auto &menuItem : menu->getMenuItems()) {
+               if (!menuItem->isDisplayed())
+                       continue;
+
                menuItem->attach(std::dynamic_pointer_cast<SelectActivity>(shared_from_this()), std::make_shared<ConditionAll<MenuItem>>());
                auto object = elm_gengrid_item_append(gengrid, gic, menuItem.get(), gengridItemSelectedCb, this);
                if (object && menuItem->getName().empty())
@@ -451,8 +462,6 @@ int SelectActivity::addItemsToMenu(Evas_Object *gengrid, const std::string &comp
        }
 
        elm_gengrid_item_class_free(gic);
-
-       return numberOfItems;
 }
 
 void SelectActivity::gengridItemSelected(Elm_Gengrid_Item *item)
index b115037..ef6b563 100644 (file)
@@ -326,7 +326,7 @@ TEST_F(OptionalTestsFixture, IntClearingFailure)
 
 int main(int argc, char *argv[])
 {
-       int r;
+       int r = 1;
        try {
                ::testing::InitGoogleTest(&argc, argv);
                r = RUN_ALL_TESTS();
index 66fc95c..21793a5 100644 (file)
@@ -5,7 +5,8 @@
 
 TEST(Translations, testTranslations)
 {
-       auto menuItem = Singleton<MenuBuilder>::instance().build("IDS_MENU_MAIN_NORMAL").front();
+       auto menu = Singleton<MenuBuilder>::instance().build("IDS_MENU_MAIN_NORMAL");
+       auto menuItem = menu->getMenuItems().front();
        EXPECT_EQ(menuItem->getName(), "IDS_TAP");
        bindtextdomain(PROJECT_NAME, LOCALE_DIR);
        textdomain(PROJECT_NAME);
@@ -15,7 +16,7 @@ TEST(Translations, testTranslations)
 
 int main(int argc, char *argv[])
 {
-       int r;
+       int r = 1;
        try {
                ::testing::InitGoogleTest(&argc, argv);
                r = RUN_ALL_TESTS();
index 970c8a4..f627d18 100644 (file)
@@ -551,7 +551,7 @@ TEST(VconfImplTest, registerKeyChangedCb_restoreDefault)
 
 int main(int argc, char *argv[])
 {
-       int r;
+       int r = 1;
        try {
                ::testing::InitGoogleTest(&argc, argv);
                r = RUN_ALL_TESTS();
index 321395c..7472c55 100644 (file)
@@ -87,7 +87,8 @@ public:
        void testMenuContent(const std::string &menuName, std::vector<std::string> expectedMenuItemsNames)
        {
                //This test will check content of menu, with each item in default state.
-               auto actualMenuItems = Singleton<MenuBuilder>::instance().build(menuName);
+               auto actualMenu = Singleton<MenuBuilder>::instance().build(menuName);
+               auto actualMenuItems = actualMenu->getMenuItems();
 
                EXPECT_EQ(actualMenuItems.size(), expectedMenuItemsNames.size());
 
@@ -167,10 +168,15 @@ TEST_F(MenuBuilderTest, testImpactOfContextualMenuVconfValueOnMenuMain)
 
 TEST_F(MenuBuilderTest, testHidingMenuItems)
 {
+       auto actualMenu = Singleton<MenuBuilder>::instance().build("IDS_MENU_MAIN_NORMAL");
+       auto actualMenuItems = actualMenu->getMenuItems();
        setMenuKeys(true);
-       testIfMenuMainIsEqualToNormal("IDS_MENU_MAIN_NORMAL");
+       for (auto &menuItem : actualMenuItems)
+               EXPECT_TRUE(menuItem->isDisplayed());
+
        setMenuKeys(false);
-       testMenuContent("IDS_MENU_MAIN_NORMAL", {"IDS_TAP"});
+       for (auto &menuItem : actualMenuItems)
+               EXPECT_EQ(menuItem->isDisplayed(), menuItem->getName() == "IDS_TAP");
 }
 
 TEST_F(MenuBuilderTest, testContentOfMenuMainHomeApps)
@@ -329,7 +335,8 @@ TEST_F(MenuBuilderTest, testContentOfMenuGranularity)
 
 TEST_F(MenuBuilderTest, testMenuItemsStates)
 {
-       auto actualMenuItems = Singleton<MenuBuilder>::instance().build("IDS_MENU_EDIT_TEXT");
+       auto actualMenu = Singleton<MenuBuilder>::instance().build("IDS_MENU_EDIT_TEXT");
+       auto actualMenuItems = actualMenu->getMenuItems();
 
        auto next = actualMenuItems[3]; //Named variables are created here to increase test readability
        testVconfIntTypeMenuItemStates(next.get(), VCONF_KEY_GRANULARITY_UNIT,
@@ -339,13 +346,15 @@ TEST_F(MenuBuilderTest, testMenuItemsStates)
        testVconfIntTypeMenuItemStates(prev.get(), VCONF_KEY_GRANULARITY_UNIT,
        {"IDS_PREVIOUS_CHARACTER", "IDS_PREVIOUS_WORD", "IDS_PREVIOUS_LINE", "IDS_PREVIOUS_PARAGRAPH"});
 
-       actualMenuItems = Singleton<MenuBuilder>::instance().build("IDS_MENU_AUTO_SCROLL_ON");
+       actualMenu = Singleton<MenuBuilder>::instance().build("IDS_MENU_AUTO_SCROLL_ON");
+       actualMenuItems = actualMenu->getMenuItems();
 
        auto turnOnOffAutoScroll = actualMenuItems[0];
        testVconfBoolTypeMenuItemStates(turnOnOffAutoScroll.get(), VCONF_KEY_AUTO_SCROLL_ENABLED,
        {"IDS_TURN_ON_AUTO_SCROLL", "IDS_TURN_OFF_AUTO_SCROLL"});
 
-       actualMenuItems = Singleton<MenuBuilder>::instance().build("IDS_MENU_SETTINGS_AUTO_SCAN_ON");
+       actualMenu = Singleton<MenuBuilder>::instance().build("IDS_MENU_SETTINGS_AUTO_SCAN_ON");
+       actualMenuItems = actualMenu->getMenuItems();
 
        auto scanMethod = actualMenuItems[2];
        testVconfIntTypeMenuItemStates(scanMethod.get(), VCONF_KEY_SCAN_METHOD,