| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/basictypes.h" | 5 #include "base/basictypes.h" |
| 6 #include "base/memory/scoped_ptr.h" | 6 #include "base/memory/scoped_ptr.h" |
| 7 #include "base/message_loop.h" | 7 #include "base/message_loop.h" |
| 8 #include "base/utf_string_conversions.h" | 8 #include "base/utf_string_conversions.h" |
| 9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
| 10 #include "ui/base/events/event_utils.h" | 10 #include "ui/base/events/event_utils.h" |
| (...skipping 1726 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1737 EXPECT_TRUE(delegate->on_before_init_called()); | 1737 EXPECT_TRUE(delegate->on_before_init_called()); |
| 1738 EXPECT_TRUE(delegate->is_top_level()); | 1738 EXPECT_TRUE(delegate->is_top_level()); |
| 1739 } | 1739 } |
| 1740 | 1740 |
| 1741 // A scumbag View that deletes its owning widget OnMousePressed. | 1741 // A scumbag View that deletes its owning widget OnMousePressed. |
| 1742 class WidgetDeleterView : public View { | 1742 class WidgetDeleterView : public View { |
| 1743 public: | 1743 public: |
| 1744 WidgetDeleterView() : View() {} | 1744 WidgetDeleterView() : View() {} |
| 1745 | 1745 |
| 1746 // Overridden from View. | 1746 // Overridden from View. |
| 1747 bool OnMousePressed(const ui::MouseEvent& event) OVERRIDE { | 1747 virtual bool OnMousePressed(const ui::MouseEvent& event) OVERRIDE { |
| 1748 delete GetWidget(); | 1748 delete GetWidget(); |
| 1749 return true; | 1749 return true; |
| 1750 } | 1750 } |
| 1751 | 1751 |
| 1752 private: | 1752 private: |
| 1753 DISALLOW_COPY_AND_ASSIGN(WidgetDeleterView); | 1753 DISALLOW_COPY_AND_ASSIGN(WidgetDeleterView); |
| 1754 }; | 1754 }; |
| 1755 | 1755 |
| 1756 TEST_F(WidgetTest, TestWidgetDeletedInOnMousePressed) { | 1756 TEST_F(WidgetTest, TestWidgetDeletedInOnMousePressed) { |
| 1757 Widget* widget = new Widget; | 1757 Widget* widget = new Widget; |
| (...skipping 10 matching lines...) Expand all Loading... |
| 1768 gfx::Point click_location(45, 15); | 1768 gfx::Point click_location(45, 15); |
| 1769 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, click_location, click_location, | 1769 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, click_location, click_location, |
| 1770 ui::EF_LEFT_MOUSE_BUTTON); | 1770 ui::EF_LEFT_MOUSE_BUTTON); |
| 1771 widget->OnMouseEvent(&press); | 1771 widget->OnMouseEvent(&press); |
| 1772 | 1772 |
| 1773 // Yay we did not crash! | 1773 // Yay we did not crash! |
| 1774 } | 1774 } |
| 1775 | 1775 |
| 1776 } // namespace | 1776 } // namespace |
| 1777 } // namespace views | 1777 } // namespace views |
| OLD | NEW |