Chromium Code Reviews| Index: chrome/browser/ui/views/menu_controller_interactive_uitest.cc |
| diff --git a/chrome/browser/ui/views/menu_controller_interactive_uitest.cc b/chrome/browser/ui/views/menu_controller_interactive_uitest.cc |
| index 498d2177c26b77c16a4bdfaac6505813b40c2b92..3a7ad3d6d88005bc54b6ac2f2c9939be35661fc5 100644 |
| --- a/chrome/browser/ui/views/menu_controller_interactive_uitest.cc |
| +++ b/chrome/browser/ui/views/menu_controller_interactive_uitest.cc |
| @@ -93,3 +93,34 @@ typedef MenuControllerMnemonicTest<ui::VKEY_A,0> |
| #endif |
| VIEW_TEST(MenuControllerMnemonicTestNoMatch, MAYBE_NoMatch); |
| + |
| +class MenuRunnerCancelTest : public MenuTestBase { |
| + public: |
| + MenuRunnerCancelTest() {} |
| + |
| + ~MenuRunnerCancelTest() override {} |
|
tapted
2016/05/27 02:58:55
nit: not needed?
karandeepb
2016/05/27 03:36:04
Done.
|
| + |
| + // MenuTestBase overrides: |
| + void BuildMenu(views::MenuItemView* menu) override { |
| + menu->AppendMenuItemWithLabel(1, base::ASCIIToUTF16("One&/")); |
| + menu->AppendMenuItemWithLabel(2, base::ASCIIToUTF16("Two")); |
| + } |
| + |
| + void DoTestWithMenuOpen() override { |
| + ASSERT_EQ(true, menu_runner()->IsRunning()); |
| + menu_runner()->Cancel(); |
| + // On calling Cancel, the nested message loop spun by the menu, should be |
| + // marked for termination. However, since we are still in the last |
| + // iteration of the nested message loop, MenuRunner::IsRunning(), should |
| + // return true. |
| + ASSERT_EQ(true, menu_runner()->IsRunning()); |
| + Done(); |
| + } |
| + |
| + private: |
| + DISALLOW_COPY_AND_ASSIGN(MenuRunnerCancelTest); |
| +}; |
| + |
| +// Test that MenuRunner::IsRunning() returns true, immediately after calling |
| +// MenuRunner::Cancel() for a syncronous menu. |
| +VIEW_TEST(MenuRunnerCancelTest, IsRunningAfterCancel); |