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

Side by Side Diff: views/view_unittest.cc

Issue 6685069: Disambiguate OnMouseCaptureLost from OnMouseReleased, etc. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments, fix tests, cleanup, etc. Created 9 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « views/view.cc ('k') | views/widget/root_view.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <map> 5 #include <map>
6 6
7 #include "base/string_util.h" 7 #include "base/string_util.h"
8 #include "base/utf_string_conversions.h" 8 #include "base/utf_string_conversions.h"
9 #include "testing/gmock/include/gmock/gmock.h" 9 #include "testing/gmock/include/gmock/gmock.h"
10 #include "ui/base/clipboard/clipboard.h" 10 #include "ui/base/clipboard/clipboard.h"
11 #include "ui/base/keycodes/keyboard_codes.h" 11 #include "ui/base/keycodes/keyboard_codes.h"
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 #endif 150 #endif
151 last_clip_.setEmpty(); 151 last_clip_.setEmpty();
152 accelerator_count_map_.clear(); 152 accelerator_count_map_.clear();
153 } 153 }
154 154
155 virtual void OnBoundsChanged(const gfx::Rect& previous_bounds) OVERRIDE; 155 virtual void OnBoundsChanged(const gfx::Rect& previous_bounds) OVERRIDE;
156 virtual void ViewHierarchyChanged( 156 virtual void ViewHierarchyChanged(
157 bool is_add, View *parent, View *child) OVERRIDE; 157 bool is_add, View *parent, View *child) OVERRIDE;
158 virtual bool OnMousePressed(const MouseEvent& event) OVERRIDE; 158 virtual bool OnMousePressed(const MouseEvent& event) OVERRIDE;
159 virtual bool OnMouseDragged(const MouseEvent& event) OVERRIDE; 159 virtual bool OnMouseDragged(const MouseEvent& event) OVERRIDE;
160 virtual void OnMouseReleased(const MouseEvent& event, bool canceled) OVERRIDE; 160 virtual void OnMouseReleased(const MouseEvent& event) OVERRIDE;
161 #if defined(TOUCH_UI) 161 #if defined(TOUCH_UI)
162 virtual TouchStatus OnTouchEvent(const TouchEvent& event); 162 virtual TouchStatus OnTouchEvent(const TouchEvent& event);
163 #endif 163 #endif
164 virtual void Paint(gfx::Canvas* canvas) OVERRIDE; 164 virtual void Paint(gfx::Canvas* canvas) OVERRIDE;
165 virtual void SchedulePaintInRect(const gfx::Rect& rect) OVERRIDE; 165 virtual void SchedulePaintInRect(const gfx::Rect& rect) OVERRIDE;
166 virtual bool AcceleratorPressed(const Accelerator& accelerator) OVERRIDE; 166 virtual bool AcceleratorPressed(const Accelerator& accelerator) OVERRIDE;
167 167
168 // OnBoundsChanged test 168 // OnBoundsChanged test
169 bool did_change_bounds_; 169 bool did_change_bounds_;
170 gfx::Rect new_bounds_; 170 gfx::Rect new_bounds_;
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
350 location_.SetPoint(event.x(), event.y()); 350 location_.SetPoint(event.x(), event.y());
351 return true; 351 return true;
352 } 352 }
353 353
354 bool TestView::OnMouseDragged(const MouseEvent& event) { 354 bool TestView::OnMouseDragged(const MouseEvent& event) {
355 last_mouse_event_type_ = event.type(); 355 last_mouse_event_type_ = event.type();
356 location_.SetPoint(event.x(), event.y()); 356 location_.SetPoint(event.x(), event.y());
357 return true; 357 return true;
358 } 358 }
359 359
360 void TestView::OnMouseReleased(const MouseEvent& event, bool canceled) { 360 void TestView::OnMouseReleased(const MouseEvent& event) {
361 last_mouse_event_type_ = event.type(); 361 last_mouse_event_type_ = event.type();
362 location_.SetPoint(event.x(), event.y()); 362 location_.SetPoint(event.x(), event.y());
363 } 363 }
364 364
365 TEST_F(ViewTest, MouseEvent) { 365 TEST_F(ViewTest, MouseEvent) {
366 TestView* v1 = new TestView(); 366 TestView* v1 = new TestView();
367 v1->SetBounds(0, 0, 300, 300); 367 v1->SetBounds(0, 0, 300, 300);
368 368
369 TestView* v2 = new TestView(); 369 TestView* v2 = new TestView();
370 v2->SetBounds(100, 100, 100, 100); 370 v2->SetBounds(100, 100, 100, 100);
(...skipping 1100 matching lines...) Expand 10 before | Expand all | Expand 10 after
1471 DISALLOW_COPY_AND_ASSIGN(ButtonDropDownTest); 1471 DISALLOW_COPY_AND_ASSIGN(ButtonDropDownTest);
1472 }; 1472 };
1473 1473
1474 // Ensure that regular clicks on the drop down button still work. (i.e. - the 1474 // Ensure that regular clicks on the drop down button still work. (i.e. - the
1475 // click events are processed and the listener gets the click) 1475 // click events are processed and the listener gets the click)
1476 TEST_F(ButtonDropDownTest, RegularClickTest) { 1476 TEST_F(ButtonDropDownTest, RegularClickTest) {
1477 MouseEvent press_event(ui::ET_MOUSE_PRESSED, 1, 1, ui::EF_LEFT_BUTTON_DOWN); 1477 MouseEvent press_event(ui::ET_MOUSE_PRESSED, 1, 1, ui::EF_LEFT_BUTTON_DOWN);
1478 MouseEvent release_event(ui::ET_MOUSE_RELEASED, 1, 1, 1478 MouseEvent release_event(ui::ET_MOUSE_RELEASED, 1, 1,
1479 ui::EF_LEFT_BUTTON_DOWN); 1479 ui::EF_LEFT_BUTTON_DOWN);
1480 button_as_view_->OnMousePressed(press_event); 1480 button_as_view_->OnMousePressed(press_event);
1481 button_as_view_->OnMouseReleased(release_event, false); 1481 button_as_view_->OnMouseReleased(release_event);
1482 EXPECT_EQ(test_dialog_->last_pressed_button_, test_dialog_->button_drop_); 1482 EXPECT_EQ(test_dialog_->last_pressed_button_, test_dialog_->button_drop_);
1483 } 1483 }
1484 1484
1485 #if defined(OS_WIN) 1485 #if defined(OS_WIN)
1486 // Ensure that dragging downwards on the button shows the menu while keeping the 1486 // Ensure that dragging downwards on the button shows the menu while keeping the
1487 // button depressed. 1487 // button depressed.
1488 TEST_F(ButtonDropDownTest, DragMenuTest) { 1488 TEST_F(ButtonDropDownTest, DragMenuTest) {
1489 test_dialog_->last_pressed_button_ = NULL; 1489 test_dialog_->last_pressed_button_ = NULL;
1490 MouseEvent press_event(ui::ET_MOUSE_PRESSED, 1, 1, ui::EF_LEFT_BUTTON_DOWN); 1490 MouseEvent press_event(ui::ET_MOUSE_PRESSED, 1, 1, ui::EF_LEFT_BUTTON_DOWN);
1491 MouseEvent drag_event(ui::ET_MOUSE_DRAGGED, 1, 99, ui::EF_LEFT_BUTTON_DOWN); 1491 MouseEvent drag_event(ui::ET_MOUSE_DRAGGED, 1, 99, ui::EF_LEFT_BUTTON_DOWN);
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
1746 MouseEvent pressed(ui::ET_MOUSE_PRESSED, 1746 MouseEvent pressed(ui::ET_MOUSE_PRESSED,
1747 110, 210, 1747 110, 210,
1748 ui::EF_LEFT_BUTTON_DOWN); 1748 ui::EF_LEFT_BUTTON_DOWN);
1749 root->OnMousePressed(pressed); 1749 root->OnMousePressed(pressed);
1750 EXPECT_EQ(0, v1->last_mouse_event_type_); 1750 EXPECT_EQ(0, v1->last_mouse_event_type_);
1751 EXPECT_EQ(ui::ET_MOUSE_PRESSED, v2->last_mouse_event_type_); 1751 EXPECT_EQ(ui::ET_MOUSE_PRESSED, v2->last_mouse_event_type_);
1752 EXPECT_EQ(190, v2->location_.x()); 1752 EXPECT_EQ(190, v2->location_.x());
1753 EXPECT_EQ(10, v2->location_.y()); 1753 EXPECT_EQ(10, v2->location_.y());
1754 1754
1755 MouseEvent released(ui::ET_MOUSE_RELEASED, 0, 0, 0); 1755 MouseEvent released(ui::ET_MOUSE_RELEASED, 0, 0, 0);
1756 root->OnMouseReleased(released, false); 1756 root->OnMouseReleased(released);
1757 1757
1758 // Now rotate |v2| inside |v1| clockwise. 1758 // Now rotate |v2| inside |v1| clockwise.
1759 v2->SetRotation(90.0); 1759 v2->SetRotation(90.0);
1760 v2->SetTranslateX(100); 1760 v2->SetTranslateX(100);
1761 1761
1762 // Now, |v2| occupies (100, 100) to (200, 300) in |v1|, and (100, 300) to 1762 // Now, |v2| occupies (100, 100) to (200, 300) in |v1|, and (100, 300) to
1763 // (300, 400) in |root|. 1763 // (300, 400) in |root|.
1764 1764
1765 v1->Reset(); 1765 v1->Reset();
1766 v2->Reset(); 1766 v2->Reset();
1767 1767
1768 MouseEvent p2(ui::ET_MOUSE_PRESSED, 1768 MouseEvent p2(ui::ET_MOUSE_PRESSED,
1769 110, 320, 1769 110, 320,
1770 ui::EF_LEFT_BUTTON_DOWN); 1770 ui::EF_LEFT_BUTTON_DOWN);
1771 root->OnMousePressed(p2); 1771 root->OnMousePressed(p2);
1772 EXPECT_EQ(0, v1->last_mouse_event_type_); 1772 EXPECT_EQ(0, v1->last_mouse_event_type_);
1773 EXPECT_EQ(ui::ET_MOUSE_PRESSED, v2->last_mouse_event_type_); 1773 EXPECT_EQ(ui::ET_MOUSE_PRESSED, v2->last_mouse_event_type_);
1774 EXPECT_EQ(10, v2->location_.x()); 1774 EXPECT_EQ(10, v2->location_.x());
1775 EXPECT_EQ(20, v2->location_.y()); 1775 EXPECT_EQ(20, v2->location_.y());
1776 1776
1777 root->OnMouseReleased(released, false); 1777 root->OnMouseReleased(released);
1778 1778
1779 v1->ResetTransform(); 1779 v1->ResetTransform();
1780 v2->ResetTransform(); 1780 v2->ResetTransform();
1781 1781
1782 TestView* v3 = new TestView(); 1782 TestView* v3 = new TestView();
1783 v3->SetBounds(10, 10, 20, 30); 1783 v3->SetBounds(10, 10, 20, 30);
1784 v2->AddChildView(v3); 1784 v2->AddChildView(v3);
1785 1785
1786 // Rotate |v3| clockwise with respect to |v2|. 1786 // Rotate |v3| clockwise with respect to |v2|.
1787 v3->SetRotation(90.0); 1787 v3->SetRotation(90.0);
(...skipping 10 matching lines...) Expand all
1798 1798
1799 MouseEvent p3(ui::ET_MOUSE_PRESSED, 1799 MouseEvent p3(ui::ET_MOUSE_PRESSED,
1800 112, 110, 1800 112, 110,
1801 ui::EF_LEFT_BUTTON_DOWN); 1801 ui::EF_LEFT_BUTTON_DOWN);
1802 root->OnMousePressed(p3); 1802 root->OnMousePressed(p3);
1803 1803
1804 EXPECT_EQ(ui::ET_MOUSE_PRESSED, v3->last_mouse_event_type_); 1804 EXPECT_EQ(ui::ET_MOUSE_PRESSED, v3->last_mouse_event_type_);
1805 EXPECT_EQ(10, v3->location_.x()); 1805 EXPECT_EQ(10, v3->location_.x());
1806 EXPECT_EQ(25, v3->location_.y()); 1806 EXPECT_EQ(25, v3->location_.y());
1807 1807
1808 root->OnMouseReleased(released, false); 1808 root->OnMouseReleased(released);
1809 1809
1810 v1->ResetTransform(); 1810 v1->ResetTransform();
1811 v2->ResetTransform(); 1811 v2->ResetTransform();
1812 v3->ResetTransform(); 1812 v3->ResetTransform();
1813 1813
1814 v1->Reset(); 1814 v1->Reset();
1815 v2->Reset(); 1815 v2->Reset();
1816 v3->Reset(); 1816 v3->Reset();
1817 1817
1818 // Rotate |v3| clockwise with respect to |v2|, and scale it along both axis. 1818 // Rotate |v3| clockwise with respect to |v2|, and scale it along both axis.
(...skipping 11 matching lines...) Expand all
1830 1830
1831 MouseEvent p4(ui::ET_MOUSE_PRESSED, 1831 MouseEvent p4(ui::ET_MOUSE_PRESSED,
1832 124, 125, 1832 124, 125,
1833 ui::EF_LEFT_BUTTON_DOWN); 1833 ui::EF_LEFT_BUTTON_DOWN);
1834 root->OnMousePressed(p4); 1834 root->OnMousePressed(p4);
1835 1835
1836 EXPECT_EQ(ui::ET_MOUSE_PRESSED, v3->last_mouse_event_type_); 1836 EXPECT_EQ(ui::ET_MOUSE_PRESSED, v3->last_mouse_event_type_);
1837 EXPECT_EQ(10, v3->location_.x()); 1837 EXPECT_EQ(10, v3->location_.x());
1838 EXPECT_EQ(25, v3->location_.y()); 1838 EXPECT_EQ(25, v3->location_.y());
1839 1839
1840 root->OnMouseReleased(released, false); 1840 root->OnMouseReleased(released);
1841 1841
1842 widget->CloseNow(); 1842 widget->CloseNow();
1843 } 1843 }
1844 1844
1845 //////////////////////////////////////////////////////////////////////////////// 1845 ////////////////////////////////////////////////////////////////////////////////
1846 // OnVisibleBoundsChanged() 1846 // OnVisibleBoundsChanged()
1847 1847
1848 class VisibleBoundsView : public View { 1848 class VisibleBoundsView : public View {
1849 public: 1849 public:
1850 VisibleBoundsView() : received_notification_(false) {} 1850 VisibleBoundsView() : received_notification_(false) {}
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
1933 top_view->scheduled_paint_rects_.clear(); 1933 top_view->scheduled_paint_rects_.clear();
1934 child_view->SetBounds(30, 30, 20, 20); 1934 child_view->SetBounds(30, 30, 20, 20);
1935 EXPECT_EQ(2U, top_view->scheduled_paint_rects_.size()); 1935 EXPECT_EQ(2U, top_view->scheduled_paint_rects_.size());
1936 1936
1937 // There should be 2 rects, spanning from (10, 10) to (50, 50). 1937 // There should be 2 rects, spanning from (10, 10) to (50, 50).
1938 gfx::Rect paint_rect = 1938 gfx::Rect paint_rect =
1939 top_view->scheduled_paint_rects_[0].Union( 1939 top_view->scheduled_paint_rects_[0].Union(
1940 top_view->scheduled_paint_rects_[1]); 1940 top_view->scheduled_paint_rects_[1]);
1941 EXPECT_EQ(gfx::Rect(10, 10, 40, 40), paint_rect); 1941 EXPECT_EQ(gfx::Rect(10, 10, 40, 40), paint_rect);
1942 } 1942 }
OLDNEW
« no previous file with comments | « views/view.cc ('k') | views/widget/root_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698