Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4480)

Unified Diff: chrome/browser/ui/views/toolbar/toolbar_action_view_unittest.cc

Issue 1798523003: Moved AppMenu ACTIVATED/DEACTIVATED ink drop handling in to MenuButton. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2661
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/views/toolbar/toolbar_action_view_unittest.cc
diff --git a/chrome/browser/ui/views/toolbar/toolbar_action_view_unittest.cc b/chrome/browser/ui/views/toolbar/toolbar_action_view_unittest.cc
index a7afc4194b910b72af2d0f01ae9e20f5c764552f..4375812baeae0a409e2b96b4e13adb7b282e3ecf 100644
--- a/chrome/browser/ui/views/toolbar/toolbar_action_view_unittest.cc
+++ b/chrome/browser/ui/views/toolbar/toolbar_action_view_unittest.cc
@@ -15,6 +15,7 @@
#include "content/public/test/test_web_contents_factory.h"
#include "ui/accessibility/ax_view_state.h"
#include "ui/events/test/event_generator.h"
+#include "ui/views/animation/test/test_ink_drop_delegate.h"
#include "ui/views/test/views_test_base.h"
namespace {
@@ -129,12 +130,70 @@ class ToolbarActionViewUnitTest : public views::ViewsTestBase {
DISALLOW_COPY_AND_ASSIGN(ToolbarActionViewUnitTest);
};
+// A MenuButton subclass that provides access to some MenuButton internals.
+class TestToolbarActionView : public ToolbarActionView {
+ public:
+ TestToolbarActionView(ToolbarActionViewController* view_controller,
+ Delegate* delegate)
+ : ToolbarActionView(view_controller, delegate) {}
+
+ ~TestToolbarActionView() override {}
+
+ // Accessors to protected ToolbarActionView methods.
+ void set_ink_drop_delegate(views::InkDropDelegate* ink_drop_delegate) {
+ ToolbarActionView::set_ink_drop_delegate(ink_drop_delegate);
+ }
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(TestToolbarActionView);
+};
+
+// Verifies there is no crash when a ToolbarActionView with an InkDropDelegate
+// is destroyed while holding a |pressed_lock_|.
+TEST_F(ToolbarActionViewUnitTest,
+ NoCrashWhenDestroyingToolbarActionViewThatHasAPressedLock) {
+ TestToolbarActionViewController controller("fake controller");
+ TestToolbarActionViewDelegate action_view_delegate;
+
+ // Create a new toolbar action view.
+ scoped_ptr<ToolbarActionView> view(
+ new ToolbarActionView(&controller, &action_view_delegate));
+ view->set_owned_by_client();
+ view->SetBoundsRect(gfx::Rect(0, 0, 200, 20));
+ widget()->SetContentsView(view.get());
+ widget()->Show();
+
+ controller.ShowPopup(true);
+
+ view.reset();
+}
+
+// Verifies the InkDropAnimation used by the ToolbarActionView doesn't fail a
+// DCHECK for an unsupported transition from ACTIVATED to ACTION_PENDING.
+TEST_F(ToolbarActionViewUnitTest,
+ NoCrashWhenPressingMouseOnToolbarActionViewThatHasAPressedLock) {
+ TestToolbarActionViewController controller("fake controller");
+ TestToolbarActionViewDelegate action_view_delegate;
+
+ // Create a new toolbar action view.
+ ToolbarActionView view(&controller, &action_view_delegate);
+ view.set_owned_by_client();
+ view.SetBoundsRect(gfx::Rect(0, 0, 200, 20));
+ widget()->SetContentsView(&view);
+ widget()->Show();
+
+ ui::test::EventGenerator generator(GetContext(), widget()->GetNativeWindow());
+
+ controller.ShowPopup(true);
+ generator.PressLeftButton();
+}
+
// Test the basic ui of a ToolbarActionView and that it responds correctly to
// a controller's state.
TEST_F(ToolbarActionViewUnitTest, BasicToolbarActionViewTest) {
TestingProfile profile;
- // ViewsTestBase initializees the aura environment, so the factory shouldn't.
+ // ViewsTestBase initializes the aura environment, so the factory shouldn't.
content::TestWebContentsFactory web_contents_factory;
TestToolbarActionViewController controller("fake controller");
« no previous file with comments | « chrome/browser/ui/views/toolbar/toolbar_action_view.cc ('k') | ui/views/animation/test/test_ink_drop_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698