summaryrefslogtreecommitdiffstats
path: root/chrome/browser/tab_menu_model_unittest.cc
diff options
context:
space:
mode:
authorpinkerton@chromium.org <pinkerton@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-16 19:27:09 +0000
committerpinkerton@chromium.org <pinkerton@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-16 19:27:09 +0000
commitb882d76636d5380e88904446c0c5d81a40cef9a1 (patch)
treec807aced8f268feac0ec1c86806095385209e28a /chrome/browser/tab_menu_model_unittest.cc
parent03e12a4defe3868fc1ed769925d887355b47309d (diff)
downloadchromium_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.cc50
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_);
}