| 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/gfx/native_widget_types.h" |    10 #include "ui/gfx/native_widget_types.h" | 
| (...skipping 808 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   819   toplevel->CloseNow(); |   819   toplevel->CloseNow(); | 
|   820  |   820  | 
|   821   // The NativeWidget won't be deleted until after a return to the message loop |   821   // The NativeWidget won't be deleted until after a return to the message loop | 
|   822   // so we have to run pending messages before testing the destruction status. |   822   // so we have to run pending messages before testing the destruction status. | 
|   823   RunPendingMessages(); |   823   RunPendingMessages(); | 
|   824  |   824  | 
|   825   EXPECT_TRUE(state.widget_deleted); |   825   EXPECT_TRUE(state.widget_deleted); | 
|   826   EXPECT_TRUE(state.native_widget_deleted); |   826   EXPECT_TRUE(state.native_widget_deleted); | 
|   827 } |   827 } | 
|   828  |   828  | 
 |   829 // Widget owns its NativeWidget and has a WidgetDelegateView as its contents. | 
 |   830 TEST_F(WidgetOwnershipTest, | 
 |   831        Ownership_WidgetOwnsNativeWidgetWithWithWidgetDelegateView) { | 
 |   832   OwnershipTestState state; | 
 |   833  | 
 |   834   WidgetDelegateView* delegate_view = new WidgetDelegateView; | 
 |   835  | 
 |   836   scoped_ptr<Widget> widget(new OwnershipTestWidget(&state)); | 
 |   837   Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); | 
 |   838   params.native_widget = | 
 |   839       new OwnershipTestNativeWidgetPlatform(widget.get(), &state); | 
 |   840   params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; | 
 |   841   params.delegate = delegate_view; | 
 |   842   widget->Init(params); | 
 |   843   widget->SetContentsView(delegate_view); | 
 |   844  | 
 |   845   // Now delete the Widget. There should be no crash or use-after-free. | 
 |   846   widget.reset(); | 
 |   847  | 
 |   848   EXPECT_TRUE(state.widget_deleted); | 
 |   849   EXPECT_TRUE(state.native_widget_deleted); | 
 |   850 } | 
 |   851  | 
|   829 //////////////////////////////////////////////////////////////////////////////// |   852 //////////////////////////////////////////////////////////////////////////////// | 
|   830 // Widget observer tests. |   853 // Widget observer tests. | 
|   831 // |   854 // | 
|   832  |   855  | 
|   833 class WidgetObserverTest : public WidgetTest, public WidgetObserver { |   856 class WidgetObserverTest : public WidgetTest, public WidgetObserver { | 
|   834  public: |   857  public: | 
|   835   WidgetObserverTest() |   858   WidgetObserverTest() | 
|   836       : active_(NULL), |   859       : active_(NULL), | 
|   837         widget_closed_(NULL), |   860         widget_closed_(NULL), | 
|   838         widget_activated_(NULL), |   861         widget_activated_(NULL), | 
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   895  |   918  | 
|   896   const Widget* active() const { return active_; } |   919   const Widget* active() const { return active_; } | 
|   897   const Widget* widget_closed() const { return widget_closed_; } |   920   const Widget* widget_closed() const { return widget_closed_; } | 
|   898   const Widget* widget_activated() const { return widget_activated_; } |   921   const Widget* widget_activated() const { return widget_activated_; } | 
|   899   const Widget* widget_deactivated() const { return widget_deactivated_; } |   922   const Widget* widget_deactivated() const { return widget_deactivated_; } | 
|   900   const Widget* widget_shown() const { return widget_shown_; } |   923   const Widget* widget_shown() const { return widget_shown_; } | 
|   901   const Widget* widget_hidden() const { return widget_hidden_; } |   924   const Widget* widget_hidden() const { return widget_hidden_; } | 
|   902   const Widget* widget_bounds_changed() const { return widget_bounds_changed_; } |   925   const Widget* widget_bounds_changed() const { return widget_bounds_changed_; } | 
|   903  |   926  | 
|   904  private: |   927  private: | 
|   905  |  | 
|   906   Widget* active_; |   928   Widget* active_; | 
|   907  |   929  | 
|   908   Widget* widget_closed_; |   930   Widget* widget_closed_; | 
|   909   Widget* widget_activated_; |   931   Widget* widget_activated_; | 
|   910   Widget* widget_deactivated_; |   932   Widget* widget_deactivated_; | 
|   911   Widget* widget_shown_; |   933   Widget* widget_shown_; | 
|   912   Widget* widget_hidden_; |   934   Widget* widget_hidden_; | 
|   913   Widget* widget_bounds_changed_; |   935   Widget* widget_bounds_changed_; | 
|   914 }; |   936 }; | 
|   915  |   937  | 
| (...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1370     EXPECT_EQ(1, scroll_view->GetEventCount(ui::ET_GESTURE_SCROLL_BEGIN)); |  1392     EXPECT_EQ(1, scroll_view->GetEventCount(ui::ET_GESTURE_SCROLL_BEGIN)); | 
|  1371     EXPECT_EQ(1, scroll_view->GetEventCount(ui::ET_GESTURE_SCROLL_UPDATE)); |  1393     EXPECT_EQ(1, scroll_view->GetEventCount(ui::ET_GESTURE_SCROLL_UPDATE)); | 
|  1372     EXPECT_EQ(1, scroll_view->GetEventCount(ui::ET_GESTURE_SCROLL_END)); |  1394     EXPECT_EQ(1, scroll_view->GetEventCount(ui::ET_GESTURE_SCROLL_END)); | 
|  1373   } |  1395   } | 
|  1374  |  1396  | 
|  1375   widget->CloseNow(); |  1397   widget->CloseNow(); | 
|  1376 } |  1398 } | 
|  1377  |  1399  | 
|  1378 }  // namespace |  1400 }  // namespace | 
|  1379 }  // namespace views |  1401 }  // namespace views | 
| OLD | NEW |