Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1702)

Unified Diff: chrome/browser/ui/views/menu_item_view_interactive_uitest.cc

Issue 168033003: Pass in correct parameter to MenuController::SelectByChar() on Linux Aura (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix BookmarkBarViewTest10.KeyEvents Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/views/menu_controller_test.cc ('k') | chrome/browser/ui/views/menu_item_view_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/views/menu_item_view_interactive_uitest.cc
diff --git a/chrome/browser/ui/views/menu_item_view_test.cc b/chrome/browser/ui/views/menu_item_view_interactive_uitest.cc
similarity index 51%
rename from chrome/browser/ui/views/menu_item_view_test.cc
rename to chrome/browser/ui/views/menu_item_view_interactive_uitest.cc
index 8990f0d78d5640186e78a5d1135140aa1cd9ce3c..3a70f91a5cb9d13c0cba7910ceb419b608b59930 100644
--- a/chrome/browser/ui/views/menu_item_view_test.cc
+++ b/chrome/browser/ui/views/menu_item_view_interactive_uitest.cc
@@ -2,128 +2,26 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "base/callback.h"
#include "base/strings/utf_string_conversions.h"
-#include "chrome/test/base/interactive_test_utils.h"
-#include "chrome/test/base/ui_test_utils.h"
-#include "chrome/test/base/view_event_test_base.h"
-#include "ui/base/test/ui_controls.h"
-#include "ui/views/controls/button/menu_button.h"
-#include "ui/views/controls/button/menu_button_listener.h"
-#include "ui/views/controls/menu/menu_controller.h"
+#include "chrome/browser/ui/views/menu_test_base.h"
#include "ui/views/controls/menu/menu_item_view.h"
-#include "ui/views/controls/menu/menu_runner.h"
#include "ui/views/controls/menu/submenu_view.h"
-#include "ui/views/widget/root_view.h"
-#include "ui/views/widget/widget.h"
using base::ASCIIToUTF16;
-// This is a convenience base class for all tests to provide some
-// common functionality. It sets up a MenuButton and a MenuItemView
-// and clicks the MenuButton.
-//
-// Subclasses should implement:
-// BuildMenu() populate the menu
-// DoTestOnMessageLoop() initiate the test
-//
-// Subclasses can call:
-// Click() to post a mouse click on a View
-//
-// Although it should be possible to post a menu multiple times,
-// MenuItemView prevents repeated activation of a menu by clicks too
-// close in time.
-class MenuItemViewTestBase : public ViewEventTestBase,
- public views::MenuButtonListener,
- public views::MenuDelegate {
- public:
- MenuItemViewTestBase()
- : ViewEventTestBase(),
- button_(NULL),
- menu_(NULL) {
- }
-
- virtual ~MenuItemViewTestBase() {
- }
-
- // ViewEventTestBase implementation.
-
- virtual void SetUp() OVERRIDE {
- button_ = new views::MenuButton(
- NULL, ASCIIToUTF16("Menu Test"), this, true);
- menu_ = new views::MenuItemView(this);
- BuildMenu(menu_);
- menu_runner_.reset(new views::MenuRunner(menu_));
-
- ViewEventTestBase::SetUp();
- }
-
- virtual void TearDown() OVERRIDE {
- menu_runner_.reset(NULL);
- menu_ = NULL;
- ViewEventTestBase::TearDown();
- }
-
- virtual views::View* CreateContentsView() OVERRIDE {
- return button_;
- }
-
- virtual gfx::Size GetPreferredSize() OVERRIDE {
- return button_->GetPreferredSize();
- }
-
- // views::MenuButtonListener implementation.
- virtual void OnMenuButtonClicked(views::View* source,
- const gfx::Point& point) OVERRIDE {
- gfx::Point screen_location;
- views::View::ConvertPointToScreen(source, &screen_location);
- gfx::Rect bounds(screen_location, source->size());
- ignore_result(menu_runner_->RunMenuAt(
- source->GetWidget(),
- button_,
- bounds,
- views::MenuItemView::TOPLEFT,
- ui::MENU_SOURCE_NONE,
- views::MenuRunner::HAS_MNEMONICS));
- }
-
- protected:
- // Generate a mouse click on the specified view and post a new task.
- virtual void Click(views::View* view, const base::Closure& next) {
- ui_test_utils::MoveMouseToCenterAndPress(
- view,
- ui_controls::LEFT,
- ui_controls::DOWN | ui_controls::UP,
- next);
- }
-
- virtual void BuildMenu(views::MenuItemView* menu) {
- }
-
- views::MenuButton* button_;
- views::MenuItemView* menu_;
- scoped_ptr<views::MenuRunner> menu_runner_;
-};
-
// Simple test for clicking a menu item. This template class clicks on an
// item and checks that the returned id matches. The index of the item
// is the template argument.
template<int INDEX>
-class MenuItemViewTestBasic : public MenuItemViewTestBase {
+class MenuItemViewTestBasic : public MenuTestBase {
public:
- MenuItemViewTestBasic() :
- last_command_(0) {
+ MenuItemViewTestBasic() {
}
virtual ~MenuItemViewTestBasic() {
}
- // views::MenuDelegate implementation
- virtual void ExecuteCommand(int id) OVERRIDE {
- last_command_ = id;
- }
-
- // MenuItemViewTestBase implementation
+ // MenuTestBase implementation
virtual void BuildMenu(views::MenuItemView* menu) OVERRIDE {
menu->AppendMenuItemWithLabel(1, ASCIIToUTF16("item 1"));
menu->AppendMenuItemWithLabel(2, ASCIIToUTF16("item 2"));
@@ -131,16 +29,9 @@ class MenuItemViewTestBasic : public MenuItemViewTestBase {
menu->AppendMenuItemWithLabel(3, ASCIIToUTF16("item 3"));
}
- // ViewEventTestBase implementation
- virtual void DoTestOnMessageLoop() OVERRIDE {
- Click(button_, CreateEventTask(this, &MenuItemViewTestBasic::Step1));
- }
-
// Click on item INDEX.
- void Step1() {
- ASSERT_TRUE(menu_);
-
- views::SubmenuView* submenu = menu_->GetSubmenu();
+ virtual void DoTestWithMenuOpen() OVERRIDE {
+ views::SubmenuView* submenu = menu()->GetSubmenu();
ASSERT_TRUE(submenu);
ASSERT_TRUE(submenu->IsShowing());
ASSERT_EQ(3, submenu->GetMenuItemCount());
@@ -153,13 +44,13 @@ class MenuItemViewTestBasic : public MenuItemViewTestBase {
// Check the clicked item and complete the test.
void Step2() {
- ASSERT_FALSE(menu_->GetSubmenu()->IsShowing());
- ASSERT_EQ(INDEX + 1,last_command_);
+ ASSERT_FALSE(menu()->GetSubmenu()->IsShowing());
+ ASSERT_EQ(INDEX + 1, last_command());
Done();
}
private:
- int last_command_;
+ DISALLOW_COPY_AND_ASSIGN(MenuItemViewTestBasic);
};
// Click each item of a 3-item menu (with separator).
@@ -172,51 +63,37 @@ VIEW_TEST(MenuItemViewTestBasic2, SelectItem2)
// Test class for inserting a menu item while the menu is open.
template<int INSERT_INDEX, int SELECT_INDEX>
-class MenuItemViewTestInsert : public MenuItemViewTestBase {
+class MenuItemViewTestInsert : public MenuTestBase {
public:
- MenuItemViewTestInsert() :
- last_command_(0),
- inserted_item_(NULL) {
+ MenuItemViewTestInsert() : inserted_item_(NULL) {
}
virtual ~MenuItemViewTestInsert() {
}
- // views::MenuDelegate implementation
- virtual void ExecuteCommand(int id) OVERRIDE {
- last_command_ = id;
- }
-
- // MenuItemViewTestBase implementation
+ // MenuTestBase implementation
virtual void BuildMenu(views::MenuItemView* menu) OVERRIDE {
menu->AppendMenuItemWithLabel(1, ASCIIToUTF16("item 1"));
menu->AppendMenuItemWithLabel(2, ASCIIToUTF16("item 2"));
}
- // ViewEventTestBase implementation
- virtual void DoTestOnMessageLoop() OVERRIDE {
- Click(button_, CreateEventTask(this, &MenuItemViewTestInsert::Step1));
- }
-
// Insert item at INSERT_INDEX and click item at SELECT_INDEX.
- void Step1() {
- ASSERT_TRUE(menu_);
-
- views::SubmenuView* submenu = menu_->GetSubmenu();
+ virtual void DoTestWithMenuOpen() OVERRIDE {
+ views::SubmenuView* submenu = menu()->GetSubmenu();
ASSERT_TRUE(submenu);
ASSERT_TRUE(submenu->IsShowing());
ASSERT_EQ(2, submenu->GetMenuItemCount());
- inserted_item_ = menu_->AddMenuItemAt(INSERT_INDEX,
- 1000,
- ASCIIToUTF16("inserted item"),
- base::string16(),
- base::string16(),
- gfx::ImageSkia(),
- views::MenuItemView::NORMAL,
- ui::NORMAL_SEPARATOR);
+ inserted_item_ = menu()->AddMenuItemAt(INSERT_INDEX,
+ 1000,
+ ASCIIToUTF16("inserted item"),
+ base::string16(),
+ base::string16(),
+ gfx::ImageSkia(),
+ views::MenuItemView::NORMAL,
+ ui::NORMAL_SEPARATOR);
ASSERT_TRUE(inserted_item_);
- menu_->ChildrenChanged();
+ menu()->ChildrenChanged();
// click an item and pass control to the next step
views::MenuItemView* item = submenu->GetMenuItemAt(SELECT_INDEX);
@@ -226,26 +103,25 @@ class MenuItemViewTestInsert : public MenuItemViewTestBase {
// Check clicked item and complete test.
void Step2() {
- ASSERT_TRUE(menu_);
-
- views::SubmenuView* submenu = menu_->GetSubmenu();
+ views::SubmenuView* submenu = menu()->GetSubmenu();
ASSERT_TRUE(submenu);
ASSERT_FALSE(submenu->IsShowing());
ASSERT_EQ(3, submenu->GetMenuItemCount());
if (SELECT_INDEX == INSERT_INDEX)
- ASSERT_EQ(1000, last_command_);
+ ASSERT_EQ(1000, last_command());
else if (SELECT_INDEX < INSERT_INDEX)
- ASSERT_EQ(SELECT_INDEX + 1, last_command_);
+ ASSERT_EQ(SELECT_INDEX + 1, last_command());
else
- ASSERT_EQ(SELECT_INDEX, last_command_);
+ ASSERT_EQ(SELECT_INDEX, last_command());
Done();
}
private:
- int last_command_;
views::MenuItemView* inserted_item_;
+
+ DISALLOW_COPY_AND_ASSIGN(MenuItemViewTestInsert);
};
// MenuItemViewTestInsertXY inserts an item at index X and selects the
@@ -267,10 +143,9 @@ VIEW_TEST(MenuItemViewTestInsert22, InsertItem22)
// Test class for inserting a menu item while a submenu is open.
template<int INSERT_INDEX>
-class MenuItemViewTestInsertWithSubmenu : public MenuItemViewTestBase {
+class MenuItemViewTestInsertWithSubmenu : public MenuTestBase {
public:
MenuItemViewTestInsertWithSubmenu() :
- last_command_(0),
submenu_(NULL),
inserted_item_(NULL) {
}
@@ -278,12 +153,7 @@ class MenuItemViewTestInsertWithSubmenu : public MenuItemViewTestBase {
virtual ~MenuItemViewTestInsertWithSubmenu() {
}
- // views::MenuDelegate implementation
- virtual void ExecuteCommand(int id) OVERRIDE {
- last_command_ = id;
- }
-
- // MenuItemViewTestBase implementation
+ // MenuTestBase implementation
virtual void BuildMenu(views::MenuItemView* menu) OVERRIDE {
submenu_ = menu->AppendSubMenu(1, ASCIIToUTF16("My Submenu"));
submenu_->AppendMenuItemWithLabel(101, ASCIIToUTF16("submenu item 1"));
@@ -291,30 +161,24 @@ class MenuItemViewTestInsertWithSubmenu : public MenuItemViewTestBase {
menu->AppendMenuItemWithLabel(2, ASCIIToUTF16("item 2"));
}
- // ViewEventTestBase implementation
- virtual void DoTestOnMessageLoop() OVERRIDE {
- Click(button_,
- CreateEventTask(this, &MenuItemViewTestInsertWithSubmenu::Step1));
- }
-
// Post submenu.
- void Step1() {
+ virtual void DoTestWithMenuOpen() OVERRIDE {
Click(submenu_,
CreateEventTask(this, &MenuItemViewTestInsertWithSubmenu::Step2));
}
// Insert item at INSERT_INDEX.
void Step2() {
- inserted_item_ = menu_->AddMenuItemAt(INSERT_INDEX,
- 1000,
- ASCIIToUTF16("inserted item"),
- base::string16(),
- base::string16(),
- gfx::ImageSkia(),
- views::MenuItemView::NORMAL,
- ui::NORMAL_SEPARATOR);
+ inserted_item_ = menu()->AddMenuItemAt(INSERT_INDEX,
+ 1000,
+ ASCIIToUTF16("inserted item"),
+ base::string16(),
+ base::string16(),
+ gfx::ImageSkia(),
+ views::MenuItemView::NORMAL,
+ ui::NORMAL_SEPARATOR);
ASSERT_TRUE(inserted_item_);
- menu_->ChildrenChanged();
+ menu()->ChildrenChanged();
Click(inserted_item_,
CreateEventTask(this, &MenuItemViewTestInsertWithSubmenu::Step3));
@@ -325,9 +189,10 @@ class MenuItemViewTestInsertWithSubmenu : public MenuItemViewTestBase {
}
private:
- int last_command_;
views::MenuItemView* submenu_;
views::MenuItemView* inserted_item_;
+
+ DISALLOW_COPY_AND_ASSIGN(MenuItemViewTestInsertWithSubmenu);
};
// MenuItemViewTestInsertWithSubmenuX posts a menu and its submenu,
@@ -339,44 +204,31 @@ VIEW_TEST(MenuItemViewTestInsertWithSubmenu1, InsertItemWithSubmenu1)
// Test class for removing a menu item while the menu is open.
template<int REMOVE_INDEX, int SELECT_INDEX>
-class MenuItemViewTestRemove : public MenuItemViewTestBase {
+class MenuItemViewTestRemove : public MenuTestBase {
public:
- MenuItemViewTestRemove()
- : last_command_(0) {
+ MenuItemViewTestRemove() {
}
virtual ~MenuItemViewTestRemove() {
}
- // views::MenuDelegate implementation
- virtual void ExecuteCommand(int id) OVERRIDE {
- last_command_ = id;
- }
-
- // MenuItemViewTestBase implementation
+ // MenuTestBase implementation
virtual void BuildMenu(views::MenuItemView* menu) OVERRIDE {
menu->AppendMenuItemWithLabel(1, ASCIIToUTF16("item 1"));
menu->AppendMenuItemWithLabel(2, ASCIIToUTF16("item 2"));
menu->AppendMenuItemWithLabel(3, ASCIIToUTF16("item 3"));
}
- // ViewEventTestBase implementation
- virtual void DoTestOnMessageLoop() OVERRIDE {
- Click(button_, CreateEventTask(this, &MenuItemViewTestRemove::Step1));
- }
-
// Remove item at REMOVE_INDEX and click item at SELECT_INDEX.
- void Step1() {
- ASSERT_TRUE(menu_);
-
- views::SubmenuView* submenu = menu_->GetSubmenu();
+ virtual void DoTestWithMenuOpen() OVERRIDE {
+ views::SubmenuView* submenu = menu()->GetSubmenu();
ASSERT_TRUE(submenu);
ASSERT_TRUE(submenu->IsShowing());
ASSERT_EQ(3, submenu->GetMenuItemCount());
// remove
- menu_->RemoveMenuItemAt(REMOVE_INDEX);
- menu_->ChildrenChanged();
+ menu()->RemoveMenuItemAt(REMOVE_INDEX);
+ menu()->ChildrenChanged();
// click
views::MenuItemView* item = submenu->GetMenuItemAt(SELECT_INDEX);
@@ -386,23 +238,21 @@ class MenuItemViewTestRemove : public MenuItemViewTestBase {
// Check clicked item and complete test.
void Step2() {
- ASSERT_TRUE(menu_);
-
- views::SubmenuView* submenu = menu_->GetSubmenu();
+ views::SubmenuView* submenu = menu()->GetSubmenu();
ASSERT_TRUE(submenu);
ASSERT_FALSE(submenu->IsShowing());
ASSERT_EQ(2, submenu->GetMenuItemCount());
if (SELECT_INDEX < REMOVE_INDEX)
- ASSERT_EQ(SELECT_INDEX + 1, last_command_);
+ ASSERT_EQ(SELECT_INDEX + 1, last_command());
else
- ASSERT_EQ(SELECT_INDEX + 2, last_command_);
+ ASSERT_EQ(SELECT_INDEX + 2, last_command());
Done();
}
private:
- int last_command_;
+ DISALLOW_COPY_AND_ASSIGN(MenuItemViewTestRemove);
};
typedef MenuItemViewTestRemove<0,0> MenuItemViewTestRemove00;
@@ -420,22 +270,15 @@ VIEW_TEST(MenuItemViewTestRemove21, RemoveItem21)
// Test class for removing a menu item while a submenu is open.
template<int REMOVE_INDEX>
-class MenuItemViewTestRemoveWithSubmenu : public MenuItemViewTestBase {
+class MenuItemViewTestRemoveWithSubmenu : public MenuTestBase {
public:
- MenuItemViewTestRemoveWithSubmenu() :
- last_command_(0),
- submenu_(NULL) {
+ MenuItemViewTestRemoveWithSubmenu() : submenu_(NULL) {
}
virtual ~MenuItemViewTestRemoveWithSubmenu() {
}
- // views::MenuDelegate implementation
- virtual void ExecuteCommand(int id) OVERRIDE {
- last_command_ = id;
- }
-
- // MenuItemViewTestBase implementation
+ // MenuTestBase implementation
virtual void BuildMenu(views::MenuItemView* menu) OVERRIDE {
menu->AppendMenuItemWithLabel(1, ASCIIToUTF16("item 1"));
submenu_ = menu->AppendSubMenu(2, ASCIIToUTF16("My Submenu"));
@@ -443,17 +286,9 @@ class MenuItemViewTestRemoveWithSubmenu : public MenuItemViewTestBase {
submenu_->AppendMenuItemWithLabel(102, ASCIIToUTF16("submenu item 2"));
}
- // ViewEventTestBase implementation
- virtual void DoTestOnMessageLoop() OVERRIDE {
- Click(button_,
- CreateEventTask(this, &MenuItemViewTestRemoveWithSubmenu::Step1));
- }
-
// Post submenu.
- void Step1() {
- ASSERT_TRUE(menu_);
-
- views::SubmenuView* submenu = menu_->GetSubmenu();
+ virtual void DoTestWithMenuOpen() OVERRIDE {
+ views::SubmenuView* submenu = menu()->GetSubmenu();
ASSERT_TRUE(submenu);
ASSERT_TRUE(submenu->IsShowing());
@@ -461,28 +296,24 @@ class MenuItemViewTestRemoveWithSubmenu : public MenuItemViewTestBase {
CreateEventTask(this, &MenuItemViewTestRemoveWithSubmenu::Step2));
}
- // Remove item at REMOVE_INDEX and select it to exit the menu loop.
+ // Remove item at REMOVE_INDEX and press escape to exit the menu loop.
void Step2() {
- ASSERT_TRUE(menu_);
-
- views::SubmenuView* submenu = menu_->GetSubmenu();
+ views::SubmenuView* submenu = menu()->GetSubmenu();
ASSERT_TRUE(submenu);
ASSERT_TRUE(submenu->IsShowing());
ASSERT_EQ(2, submenu->GetMenuItemCount());
// remove
- menu_->RemoveMenuItemAt(REMOVE_INDEX);
- menu_->ChildrenChanged();
+ menu()->RemoveMenuItemAt(REMOVE_INDEX);
+ menu()->ChildrenChanged();
// click
- Click(button_,
- CreateEventTask(this, &MenuItemViewTestRemoveWithSubmenu::Step3));
+ KeyPress(ui::VKEY_ESCAPE,
+ CreateEventTask(this, &MenuItemViewTestRemoveWithSubmenu::Step3));
}
void Step3() {
- ASSERT_TRUE(menu_);
-
- views::SubmenuView* submenu = menu_->GetSubmenu();
+ views::SubmenuView* submenu = menu()->GetSubmenu();
ASSERT_TRUE(submenu);
ASSERT_FALSE(submenu->IsShowing());
ASSERT_EQ(1, submenu->GetMenuItemCount());
@@ -491,8 +322,9 @@ class MenuItemViewTestRemoveWithSubmenu : public MenuItemViewTestBase {
}
private:
- int last_command_;
views::MenuItemView* submenu_;
+
+ DISALLOW_COPY_AND_ASSIGN(MenuItemViewTestRemoveWithSubmenu);
};
typedef MenuItemViewTestRemoveWithSubmenu<0> MenuItemViewTestRemoveWithSubmenu0;
« no previous file with comments | « chrome/browser/ui/views/menu_controller_test.cc ('k') | chrome/browser/ui/views/menu_item_view_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698