| Index: chrome/browser/wrench_menu_model_unittest.cc
|
| diff --git a/chrome/browser/wrench_menu_model_unittest.cc b/chrome/browser/wrench_menu_model_unittest.cc
|
| index 2b50bb0f7d1bb0551f714f66683de8540e606077..d38147e19d921d65782f2e5773570dfa8acc3ff5 100644
|
| --- a/chrome/browser/wrench_menu_model_unittest.cc
|
| +++ b/chrome/browser/wrench_menu_model_unittest.cc
|
| @@ -12,12 +12,51 @@
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| class WrenchMenuModelTest : public BrowserWithTestWindowTest,
|
| - public MenuModelTest {
|
| + public menus::AcceleratorProvider {
|
| + public:
|
| + // Don't handle accelerators.
|
| + virtual bool GetAcceleratorForCommandId(
|
| + int command_id,
|
| + menus::Accelerator* accelerator) { return false; }
|
| +};
|
| +
|
| +// Copies parts of MenuModelTest::Delegate and combines them with the
|
| +// WrenchMenuModel since WrenchMenuModel is now a SimpleMenuModel::Delegate and
|
| +// not derived from SimpleMenuModel.
|
| +class TestWrenchMenuModel : public WrenchMenuModel {
|
| + public:
|
| + TestWrenchMenuModel(menus::AcceleratorProvider* provider,
|
| + Browser* browser)
|
| + : WrenchMenuModel(provider, browser),
|
| + execute_count_(0),
|
| + checked_count_(0),
|
| + enable_count_(0) {
|
| + }
|
| +
|
| + // Testing overrides to menus::SimpleMenuModel::Delegate:
|
| + virtual bool IsCommandIdChecked(int command_id) const {
|
| + bool val = WrenchMenuModel::IsCommandIdChecked(command_id);
|
| + if (val)
|
| + checked_count_++;
|
| + return val;
|
| + }
|
| +
|
| + virtual bool IsCommandIdEnabled(int command_id) const {
|
| + ++enable_count_;
|
| + return true;
|
| + }
|
| +
|
| + virtual void ExecuteCommand(int command_id) { ++execute_count_; }
|
| +
|
| + int execute_count_;
|
| + mutable int checked_count_;
|
| + mutable int enable_count_;
|
| };
|
|
|
| TEST_F(WrenchMenuModelTest, Basics) {
|
| - WrenchMenuModel model(&delegate_, browser());
|
| - int itemCount = model.GetItemCount();
|
| + TestWrenchMenuModel wrench(this, browser());
|
| + menus::SimpleMenuModel* model = wrench.menu_model();
|
| + int itemCount = model->GetItemCount();
|
|
|
| // Verify it has items. The number varies by platform, so we don't check
|
| // the exact number.
|
| @@ -26,34 +65,34 @@ TEST_F(WrenchMenuModelTest, Basics) {
|
| // Execute a couple of the items and make sure it gets back to our delegate.
|
| // We can't use CountEnabledExecutable() here because the encoding menu's
|
| // delegate is internal, it doesn't use the one we pass in.
|
| - model.ActivatedAt(0);
|
| - EXPECT_TRUE(model.IsEnabledAt(0));
|
| + model->ActivatedAt(0);
|
| + EXPECT_TRUE(model->IsEnabledAt(0));
|
| // Make sure to use the index that is not separator in all configurations.
|
| - model.ActivatedAt(2);
|
| - EXPECT_TRUE(model.IsEnabledAt(2));
|
| - EXPECT_EQ(delegate_.execute_count_, 2);
|
| - EXPECT_EQ(delegate_.enable_count_, 2);
|
| + model->ActivatedAt(2);
|
| + EXPECT_TRUE(model->IsEnabledAt(2));
|
| + EXPECT_EQ(wrench.execute_count_, 2);
|
| + EXPECT_EQ(wrench.enable_count_, 2);
|
|
|
| - delegate_.execute_count_ = 0;
|
| - delegate_.enable_count_ = 0;
|
| + wrench.execute_count_ = 0;
|
| + wrench.enable_count_ = 0;
|
|
|
| // Choose something from the tools submenu and make sure it makes it back to
|
| // the delegate as well. Use the first submenu as the tools one.
|
| int toolsModelIndex = -1;
|
| for (int i = 0; i < itemCount; ++i) {
|
| - if (model.GetTypeAt(i) == menus::MenuModel::TYPE_SUBMENU) {
|
| + if (model->GetTypeAt(i) == menus::MenuModel::TYPE_SUBMENU) {
|
| toolsModelIndex = i;
|
| break;
|
| }
|
| }
|
| EXPECT_GT(toolsModelIndex, -1);
|
| - menus::MenuModel* toolsModel = model.GetSubmenuModelAt(toolsModelIndex);
|
| + menus::MenuModel* toolsModel = model->GetSubmenuModelAt(toolsModelIndex);
|
| EXPECT_TRUE(toolsModel);
|
| EXPECT_GT(toolsModel->GetItemCount(), 2);
|
| toolsModel->ActivatedAt(2);
|
| EXPECT_TRUE(toolsModel->IsEnabledAt(2));
|
| - EXPECT_EQ(delegate_.execute_count_, 1);
|
| - EXPECT_EQ(delegate_.enable_count_, 1);
|
| + EXPECT_EQ(wrench.execute_count_, 1);
|
| + EXPECT_EQ(wrench.enable_count_, 1);
|
| }
|
|
|
| class EncodingMenuModelTest : public BrowserWithTestWindowTest,
|
|
|