| Index: ui/views/controls/menu/menu_controller_unittest.cc
|
| diff --git a/ui/views/controls/menu/menu_controller_unittest.cc b/ui/views/controls/menu/menu_controller_unittest.cc
|
| index 1fd47a55a8eaf19a4be82451077a4092641fd9d2..6360fb92f81dade23ed88ff2bf069a1ac510fd6c 100644
|
| --- a/ui/views/controls/menu/menu_controller_unittest.cc
|
| +++ b/ui/views/controls/menu/menu_controller_unittest.cc
|
| @@ -46,6 +46,26 @@ class TestMenuItemView : public MenuItemView {
|
| DISALLOW_COPY_AND_ASSIGN(TestMenuItemView);
|
| };
|
|
|
| +class SubmenuViewShown : public SubmenuView {
|
| + public:
|
| + SubmenuViewShown(MenuItemView* parent) : SubmenuView(parent) {}
|
| + ~SubmenuViewShown() override {}
|
| + bool IsShowing() override { return true; }
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(SubmenuViewShown);
|
| +};
|
| +
|
| +class TestMenuItemViewShown : public MenuItemView {
|
| + public:
|
| + TestMenuItemViewShown() : MenuItemView(nullptr) {}
|
| + ~TestMenuItemViewShown() override {}
|
| + SubmenuView* CreateSubmenu() override { return new SubmenuViewShown(this); }
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(TestMenuItemViewShown);
|
| +};
|
| +
|
| class TestPlatformEventSource : public ui::PlatformEventSource {
|
| public:
|
| TestPlatformEventSource() {
|
| @@ -170,6 +190,7 @@ class MenuControllerTest : public ViewsTestBase {
|
|
|
| void SetPendingStateItem(MenuItemView* item) {
|
| controller_->pending_state_.item = item;
|
| + controller_->pending_state_.submenu_open = true;
|
| }
|
|
|
| void ResetSelection() {
|
| @@ -445,4 +466,25 @@ TEST_F(MenuControllerTest, NextSelectedItem) {
|
| ResetSelection();
|
| }
|
|
|
| +TEST_F(MenuControllerTest, NextSelectedItemUp) {
|
| + scoped_ptr<Widget> owner(CreateOwnerWidget());
|
| + scoped_ptr<TestMenuItemViewShown> menu_item(new TestMenuItemViewShown);
|
| + menu_item->AppendMenuItemWithLabel(1, base::ASCIIToUTF16("One"));
|
| + menu_item->AppendMenuItemWithLabel(2, base::ASCIIToUTF16("Two"));
|
| + menu_item->AppendMenuItemWithLabel(3, base::ASCIIToUTF16("Three"));
|
| + menu_item->AppendMenuItemWithLabel(4, base::ASCIIToUTF16("Four"));
|
| + // Disabling the item "Four" gets it skipped when using keyboard to navigate.
|
| + menu_item->GetSubmenu()->GetMenuItemAt(3)->SetEnabled(false);
|
| +
|
| + SetupMenu(owner.get(), menu_item.get());
|
| +
|
| + // Fake initial root item selection and submenu showing.
|
| + SetPendingStateItem(menu_item.get());
|
| + EXPECT_EQ(0, pending_state_item()->GetCommand());
|
| +
|
| + // Move up and select a previous (in our case the last enabled) item.
|
| + IncrementSelection(-1);
|
| + EXPECT_EQ(3, pending_state_item()->GetCommand());
|
| +}
|
| +
|
| } // namespace views
|
|
|