diff options
author | Jukka Halonen <ext-jukka.a.halonen@nokia.com> | 2010-11-25 13:17:03 +0200 |
---|---|---|
committer | Adrian Yanes <ext-adrian.yanes@nokia.com> | 2010-12-01 15:36:05 +0000 |
commit | fbab127e10e34e33fcaa663dffe53744e851c1e9 (patch) | |
tree | e50014134a0d1e95964aea207444e03c75c09956 /tests | |
parent | b64e0a9244ebb567a996c6c30ef5e5505c21e1e3 (diff) |
Fixes: NB#196347 - (appmenu_no_button) MApplicationMenu: the MButton is not added to the menu if it has been shown previously
RevBy: Janne Heikkilä
Diffstat (limited to 'tests')
-rw-r--r-- | tests/ut_mapplicationmenu/ut_mapplicationmenu.cpp | 69 | ||||
-rw-r--r-- | tests/ut_mapplicationmenu/ut_mapplicationmenu.h | 6 |
2 files changed, 71 insertions, 4 deletions
diff --git a/tests/ut_mapplicationmenu/ut_mapplicationmenu.cpp b/tests/ut_mapplicationmenu/ut_mapplicationmenu.cpp index dd56b897..1b04991c 100644 --- a/tests/ut_mapplicationmenu/ut_mapplicationmenu.cpp +++ b/tests/ut_mapplicationmenu/ut_mapplicationmenu.cpp @@ -146,6 +146,60 @@ void Ut_MApplicationMenu::testInsertAction() } +void Ut_MApplicationMenu::testSetWidgetAfterWidgetActionIsAdded() +{ + MWidgetAction *action = new MWidgetAction(m_subject); + action->setLocation(MAction::ApplicationMenuLocation); + m_subject->addAction(action); + QVERIFY(m_subject->actions().count() == 1); + + MComboBox *widgetInAction = new MComboBox; + action->setWidget(widgetInAction); + + const MApplicationMenuViewPrivate *viewPrivate = menuViewPrivate(); + QVERIFY(viewPrivate); + MWidget *widgetInMenu = viewPrivate->getWidget(action); + QVERIFY(widgetInMenu == widgetInAction); +} + +void Ut_MApplicationMenu::testChangeWidgetInWidgetAction() +{ + MWidgetAction *action = new MWidgetAction(m_subject); + action->setLocation(MAction::ApplicationMenuLocation); + MComboBox *widgetInAction = new MComboBox; + action->setWidget(widgetInAction); + m_subject->addAction(action); + + action->releaseWidget(widgetInAction); + + MButton *newWidgetInAction = new MButton; + action->setWidget(newWidgetInAction); + + const MApplicationMenuViewPrivate *viewPrivate = menuViewPrivate(); + QVERIFY(viewPrivate); + MWidget *widgetInMenu = viewPrivate->getWidget(action); + QVERIFY(widgetInMenu == newWidgetInAction); +} + +void Ut_MApplicationMenu::testRemoveWidgetFromWidgetAction() +{ + MWidgetAction *action = new MWidgetAction(m_subject); + action->setLocation(MAction::ApplicationMenuLocation); + MComboBox *widgetInAction = new MComboBox; + action->setWidget(widgetInAction); + m_subject->addAction(action); + + action->releaseWidget(widgetInAction); + + action->setWidget(0); + + const MApplicationMenuViewPrivate *viewPrivate = menuViewPrivate(); + QVERIFY(viewPrivate); + MWidget *widgetInMenu = viewPrivate->getWidget(action); + QVERIFY(widgetInMenu); + QVERIFY(widgetInMenu != widgetInAction); +} + void Ut_MApplicationMenu::testActionVisiblity() { @@ -226,10 +280,8 @@ void Ut_MApplicationMenu::testOpeningAndClosingAppMenuWithDisabledAction() action->setEnabled(true); m_subject->addAction(action); - const MApplicationMenuView *view = dynamic_cast<const MApplicationMenuView *>(m_subject->view()); - QVERIFY(view); - const MApplicationMenuViewPrivate *viewPrivate = view->d_func(); - + const MApplicationMenuViewPrivate *viewPrivate = menuViewPrivate(); + QVERIFY(viewPrivate); MWidget *widget = viewPrivate->getWidget(action); QVERIFY(widget); QVERIFY(widget->isEnabled()); @@ -243,6 +295,15 @@ void Ut_MApplicationMenu::testOpeningAndClosingAppMenuWithDisabledAction() } +const MApplicationMenuViewPrivate* Ut_MApplicationMenu::menuViewPrivate() +{ + const MApplicationMenuView *view = dynamic_cast<const MApplicationMenuView *>(m_subject->view()); + if (!view) + return 0; + const MApplicationMenuViewPrivate *viewPrivate = view->d_func(); + return viewPrivate; +} + void Ut_MApplicationMenu::actionSlot(bool checked) { Q_UNUSED(checked); diff --git a/tests/ut_mapplicationmenu/ut_mapplicationmenu.h b/tests/ut_mapplicationmenu/ut_mapplicationmenu.h index c7a0f580..9b174450 100644 --- a/tests/ut_mapplicationmenu/ut_mapplicationmenu.h +++ b/tests/ut_mapplicationmenu/ut_mapplicationmenu.h @@ -25,6 +25,7 @@ class MAction; class MApplicationMenu; +class MApplicationMenuViewPrivate; class Ut_MApplicationMenu : public QObject { @@ -42,6 +43,9 @@ private Q_SLOTS: void testDestructor(); void testAddAction(); void testInsertAction(); + void testSetWidgetAfterWidgetActionIsAdded(); + void testChangeWidgetInWidgetAction(); + void testRemoveWidgetFromWidgetAction(); void testActionVisiblity(); void testOpeningAndClosingAppMenuWithDisabledAction(); void testClear(); @@ -55,6 +59,8 @@ private: MAction *senderAction; bool testValue; + + const MApplicationMenuViewPrivate* menuViewPrivate(); }; #endif |