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

Unified Diff: ui/views/controls/button/menu_button_unittest.cc

Issue 851853002: It is time. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Trying to reup because the last upload failed. Created 5 years, 11 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
« no previous file with comments | « ui/views/controls/button/menu_button_listener.h ('k') | ui/views/controls/button/radio_button.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/views/controls/button/menu_button_unittest.cc
diff --git a/ui/views/controls/button/menu_button_unittest.cc b/ui/views/controls/button/menu_button_unittest.cc
deleted file mode 100644
index 3b153ad1f85992a0db6dd263f0c65e3f836dd3f5..0000000000000000000000000000000000000000
--- a/ui/views/controls/button/menu_button_unittest.cc
+++ /dev/null
@@ -1,233 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ui/views/controls/button/menu_button.h"
-
-#include "base/memory/scoped_ptr.h"
-#include "base/strings/utf_string_conversions.h"
-#include "ui/events/test/event_generator.h"
-#include "ui/views/controls/button/menu_button_listener.h"
-#include "ui/views/test/views_test_base.h"
-
-using base::ASCIIToUTF16;
-
-namespace views {
-
-class MenuButtonTest : public ViewsTestBase {
- public:
- MenuButtonTest() : widget_(NULL), button_(NULL) {}
- virtual ~MenuButtonTest() {}
-
- virtual void TearDown() override {
- if (widget_ && !widget_->IsClosed())
- widget_->Close();
-
- ViewsTestBase::TearDown();
- }
-
- Widget* widget() { return widget_; }
- MenuButton* button() { return button_; }
-
- protected:
- // Creates a MenuButton with no button listener.
- void CreateMenuButtonWithNoListener() {
- CreateMenuButton(NULL, NULL);
- }
-
- // Creates a MenuButton with a ButtonListener. In this case, the MenuButton
- // acts like a regular button.
- void CreateMenuButtonWithButtonListener(ButtonListener* button_listener) {
- CreateMenuButton(button_listener, NULL);
- }
-
- // Creates a MenuButton with a MenuButtonListener. In this case, when the
- // MenuButton is pushed, it notifies the MenuButtonListener to open a
- // drop-down menu.
- void CreateMenuButtonWithMenuButtonListener(
- MenuButtonListener* menu_button_listener) {
- CreateMenuButton(NULL, menu_button_listener);
- }
-
- private:
- void CreateMenuButton(ButtonListener* button_listener,
- MenuButtonListener* menu_button_listener) {
- CreateWidget();
-
- const base::string16 label(ASCIIToUTF16("button"));
- button_ =
- new MenuButton(button_listener, label, menu_button_listener, false);
- button_->SetBoundsRect(gfx::Rect(0, 0, 200, 20));
- widget_->SetContentsView(button_);
-
- widget_->Show();
- }
-
- void CreateWidget() {
- DCHECK(!widget_);
-
- widget_ = new Widget;
- Widget::InitParams params =
- CreateParams(Widget::InitParams::TYPE_WINDOW_FRAMELESS);
- params.bounds = gfx::Rect(0, 0, 200, 200);
- widget_->Init(params);
- }
-
- Widget* widget_;
- MenuButton* button_;
-};
-
-class TestButtonListener : public ButtonListener {
- public:
- TestButtonListener()
- : last_sender_(NULL),
- last_sender_state_(Button::STATE_NORMAL),
- last_event_type_(ui::ET_UNKNOWN) {}
- virtual ~TestButtonListener() {}
-
- virtual void ButtonPressed(Button* sender, const ui::Event& event) override {
- last_sender_ = sender;
- CustomButton* custom_button = CustomButton::AsCustomButton(sender);
- DCHECK(custom_button);
- last_sender_state_ = custom_button->state();
- last_event_type_ = event.type();
- }
-
- Button* last_sender() { return last_sender_; }
- Button::ButtonState last_sender_state() { return last_sender_state_; }
- ui::EventType last_event_type() { return last_event_type_; }
-
- private:
- Button* last_sender_;
- Button::ButtonState last_sender_state_;
- ui::EventType last_event_type_;
-
- DISALLOW_COPY_AND_ASSIGN(TestButtonListener);
-};
-
-class TestMenuButtonListener : public MenuButtonListener {
- public:
- TestMenuButtonListener() {}
- virtual ~TestMenuButtonListener() {}
-
- virtual void OnMenuButtonClicked(View* source,
- const gfx::Point& /*point*/) override {
- last_source_ = source;
- CustomButton* custom_button = CustomButton::AsCustomButton(source);
- DCHECK(custom_button);
- last_source_state_ = custom_button->state();
- }
-
- View* last_source() { return last_source_; }
- Button::ButtonState last_source_state() { return last_source_state_; }
-
- private:
- View* last_source_;
- Button::ButtonState last_source_state_;
-};
-
-// Tests if the listener is notified correctly, when a mouse click happens on a
-// MenuButton that has a regular ButtonListener.
-TEST_F(MenuButtonTest, ActivateNonDropDownOnMouseClick) {
- scoped_ptr<TestButtonListener> button_listener(new TestButtonListener);
- CreateMenuButtonWithButtonListener(button_listener.get());
-
- ui::test::EventGenerator generator(GetContext(), widget()->GetNativeWindow());
-
- generator.set_current_location(gfx::Point(10, 10));
- generator.ClickLeftButton();
-
- // Check that MenuButton has notified the listener on mouse-released event,
- // while it was in hovered state.
- EXPECT_EQ(button(), button_listener->last_sender());
- EXPECT_EQ(ui::ET_MOUSE_RELEASED, button_listener->last_event_type());
- EXPECT_EQ(Button::STATE_HOVERED, button_listener->last_sender_state());
-}
-
-// Tests if the listener is notified correctly when a gesture tap happens on a
-// MenuButton that has a regular ButtonListener.
-TEST_F(MenuButtonTest, ActivateNonDropDownOnGestureTap) {
- scoped_ptr<TestButtonListener> button_listener(new TestButtonListener);
- CreateMenuButtonWithButtonListener(button_listener.get());
-
- ui::test::EventGenerator generator(GetContext(), widget()->GetNativeWindow());
- generator.GestureTapAt(gfx::Point(10, 10));
-
- // Check that MenuButton has notified the listener on gesture tap event, while
- // it was in hovered state.
- EXPECT_EQ(button(), button_listener->last_sender());
- EXPECT_EQ(ui::ET_GESTURE_TAP, button_listener->last_event_type());
- EXPECT_EQ(Button::STATE_HOVERED, button_listener->last_sender_state());
-}
-
-// Tests if the listener is notified correctly when a mouse click happens on a
-// MenuButton that has a MenuButtonListener.
-TEST_F(MenuButtonTest, ActivateDropDownOnMouseClick) {
- scoped_ptr<TestMenuButtonListener> menu_button_listener(
- new TestMenuButtonListener);
- CreateMenuButtonWithMenuButtonListener(menu_button_listener.get());
-
- ui::test::EventGenerator generator(GetContext(), widget()->GetNativeWindow());
-
- generator.set_current_location(gfx::Point(10, 10));
- generator.ClickLeftButton();
-
- // Check that MenuButton has notified the listener, while it was in pressed
- // state.
- EXPECT_EQ(button(), menu_button_listener->last_source());
- EXPECT_EQ(Button::STATE_PRESSED, menu_button_listener->last_source_state());
-}
-
-// Tests if the listener is notified correctly when a gesture tap happens on a
-// MenuButton that has a MenuButtonListener.
-TEST_F(MenuButtonTest, ActivateDropDownOnGestureTap) {
- scoped_ptr<TestMenuButtonListener> menu_button_listener(
- new TestMenuButtonListener);
- CreateMenuButtonWithMenuButtonListener(menu_button_listener.get());
-
- ui::test::EventGenerator generator(GetContext(), widget()->GetNativeWindow());
- generator.GestureTapAt(gfx::Point(10, 10));
-
- // Check that MenuButton has notified the listener, while it was in pressed
- // state.
- EXPECT_EQ(button(), menu_button_listener->last_source());
- EXPECT_EQ(Button::STATE_PRESSED, menu_button_listener->last_source_state());
-}
-
-// Test that the MenuButton stays pressed while there are any PressedLocks.
-TEST_F(MenuButtonTest, MenuButtonPressedLock) {
- CreateMenuButtonWithNoListener();
-
- // Move the mouse over the button; the button should be in a hovered state.
- ui::test::EventGenerator generator(GetContext(), widget()->GetNativeWindow());
- generator.MoveMouseTo(gfx::Point(10, 10));
- EXPECT_EQ(Button::STATE_HOVERED, button()->state());
-
- // Introduce a PressedLock, which should make the button pressed.
- scoped_ptr<MenuButton::PressedLock> pressed_lock1(
- new MenuButton::PressedLock(button()));
- EXPECT_EQ(Button::STATE_PRESSED, button()->state());
-
- // Even if we move the mouse outside of the button, it should remain pressed.
- generator.MoveMouseTo(gfx::Point(300, 10));
- EXPECT_EQ(Button::STATE_PRESSED, button()->state());
-
- // Creating a new lock should obviously keep the button pressed.
- scoped_ptr<MenuButton::PressedLock> pressed_lock2(
- new MenuButton::PressedLock(button()));
- EXPECT_EQ(Button::STATE_PRESSED, button()->state());
-
- // The button should remain pressed while any locks are active.
- pressed_lock1.reset();
- EXPECT_EQ(Button::STATE_PRESSED, button()->state());
-
- // Reseting the final lock should return the button's state to normal...
- pressed_lock2.reset();
- EXPECT_EQ(Button::STATE_NORMAL, button()->state());
-
- // ...And it should respond to mouse movement again.
- generator.MoveMouseTo(gfx::Point(10, 10));
- EXPECT_EQ(Button::STATE_HOVERED, button()->state());
-}
-
-} // namespace views
« no previous file with comments | « ui/views/controls/button/menu_button_listener.h ('k') | ui/views/controls/button/radio_button.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698