Implement nacl_irt_memory for non-sfi mode.
[chromium-blink-merge.git] / chrome / test / base / menu_model_test.h
blobe47411452513ba681dccbd561d67261b590d1e01
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROME_TEST_BASE_MENU_MODEL_TEST_H_
6 #define CHROME_TEST_BASE_MENU_MODEL_TEST_H_
8 #include "ui/base/accelerators/accelerator.h"
9 #include "ui/base/models/simple_menu_model.h"
11 // A mix-in class to be used in addition to something that derrives from
12 // testing::Test to provide some extra functionality for testing menu models.
13 class MenuModelTest {
14 public:
15 MenuModelTest() {}
16 virtual ~MenuModelTest() {}
18 protected:
19 // A menu delegate that counts the number of times certain things are called
20 // to make sure things are hooked up properly.
21 class Delegate : public ui::SimpleMenuModel::Delegate,
22 public ui::AcceleratorProvider {
23 public:
24 Delegate() : execute_count_(0), enable_count_(0) {}
26 virtual bool IsCommandIdChecked(int command_id) const OVERRIDE;
27 virtual bool IsCommandIdEnabled(int command_id) const OVERRIDE;
28 virtual bool GetAcceleratorForCommandId(
29 int command_id,
30 ui::Accelerator* accelerator) OVERRIDE;
31 virtual void ExecuteCommand(int command_id, int event_flags) OVERRIDE;
33 int execute_count_;
34 mutable int enable_count_;
37 // Recursively checks the enabled state and executes a command on every item
38 // that's not a separator or a submenu parent item. The returned count should
39 // match the number of times the delegate is called to ensure every item
40 // works.
41 void CountEnabledExecutable(ui::MenuModel* model, int* count);
43 Delegate delegate_;
46 #endif // CHROME_TEST_BASE_MENU_MODEL_TEST_H_