diff options
author | pinkerton@chromium.org <pinkerton@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-12-16 19:27:09 +0000 |
---|---|---|
committer | pinkerton@chromium.org <pinkerton@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-12-16 19:27:09 +0000 |
commit | b882d76636d5380e88904446c0c5d81a40cef9a1 (patch) | |
tree | c807aced8f268feac0ec1c86806095385209e28a /chrome/browser/tab_menu_model_unittest.cc | |
parent | 03e12a4defe3868fc1ed769925d887355b47309d (diff) | |
download | chromium_src-b882d76636d5380e88904446c0c5d81a40cef9a1.zip chromium_src-b882d76636d5380e88904446c0c5d81a40cef9a1.tar.gz chromium_src-b882d76636d5380e88904446c0c5d81a40cef9a1.tar.bz2 |
Refactor shared menu model testing code into a common baseclass
BUG=28977
TEST=unit tests still work
Review URL: http://codereview.chromium.org/504027
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34735 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/tab_menu_model_unittest.cc')
-rw-r--r-- | chrome/browser/tab_menu_model_unittest.cc | 50 |
1 files changed, 5 insertions, 45 deletions
diff --git a/chrome/browser/tab_menu_model_unittest.cc b/chrome/browser/tab_menu_model_unittest.cc index eb9aa65..3e0fdd3 100644 --- a/chrome/browser/tab_menu_model_unittest.cc +++ b/chrome/browser/tab_menu_model_unittest.cc @@ -5,56 +5,16 @@ #include "chrome/browser/tab_menu_model.h" #include "base/logging.h" +#include "chrome/test/menu_model_test.h" #include "testing/gtest/include/gtest/gtest.h" #include "testing/platform_test.h" -// A menu delegate that counts the number of times certain things are called -// to make sure things are hooked up properly. -class Delegate : public menus::SimpleMenuModel::Delegate { - public: - Delegate() : execute_count_(0), enable_count_(0) { } - virtual bool IsCommandIdChecked(int command_id) const { return false; } - virtual bool IsCommandIdEnabled(int command_id) const { - ++enable_count_; - return true; - } - virtual bool GetAcceleratorForCommandId( - int command_id, - menus::Accelerator* accelerator) { return false; } - virtual void ExecuteCommand(int command_id) { ++execute_count_; } - - int execute_count_; - mutable int enable_count_; -}; - -class TabMenuModelTest : public PlatformTest { +class TabMenuModelTest : public PlatformTest, public MenuModelTest { }; -// Recursively checks the enabled state and executes a command on every item -// that's not a separator or a submenu parent item. The returned count should -// match the number of times the delegate is called to ensure every item works. -static void CountEnabledExecutable(menus::MenuModel* model, int* count) { - for (int i = 0; i < model->GetItemCount(); ++i) { - menus::MenuModel::ItemType type = model->GetTypeAt(i); - switch (type) { - case menus::MenuModel::TYPE_SEPARATOR: - continue; - case menus::MenuModel::TYPE_SUBMENU: - CountEnabledExecutable(model->GetSubmenuModelAt(i), count); - break; - default: - model->IsEnabledAt(i); // Check if it's enabled (ignore answer). - model->ActivatedAt(i); // Execute it. - (*count)++; // Increment the count of executable items seen. - break; - } - } -} - TEST_F(TabMenuModelTest, Basics) { - Delegate delegate; - TabMenuModel model(&delegate); + TabMenuModel model(&delegate_); // Verify it has items. The number varies by platform, so we don't check // the exact number. @@ -63,6 +23,6 @@ TEST_F(TabMenuModelTest, Basics) { int item_count = 0; CountEnabledExecutable(&model, &item_count); EXPECT_GT(item_count, 0); - EXPECT_EQ(item_count, delegate.execute_count_); - EXPECT_EQ(item_count, delegate.enable_count_); + EXPECT_EQ(item_count, delegate_.execute_count_); + EXPECT_EQ(item_count, delegate_.enable_count_); } |