diff options
author | oshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-07 23:37:10 +0000 |
---|---|---|
committer | oshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-07 23:37:10 +0000 |
commit | 4c616541cf6e73dfebaf3cd68128c1e49e7d111b (patch) | |
tree | 416afc64dc37a1438e87eb9eb80c2c06494754cb /ash | |
parent | 1e0771efa8db5353eea04c3e29781e7e902edd02 (diff) | |
download | chromium_src-4c616541cf6e73dfebaf3cd68128c1e49e7d111b.zip chromium_src-4c616541cf6e73dfebaf3cd68128c1e49e7d111b.tar.gz chromium_src-4c616541cf6e73dfebaf3cd68128c1e49e7d111b.tar.bz2 |
* Widget with WIDGET_OWNS_NATIVE_WIDGET has to be deleted explicitly.
* Delegate needs to be deleted but window has to be deleted prior to it.
* a few minor leak fixes.
BUG=none
TEST=none
Review URL: https://chromiumcodereview.appspot.com/9350013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120856 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash')
-rw-r--r-- | ash/accelerators/accelerator_controller_unittest.cc | 24 | ||||
-rw-r--r-- | ash/accelerators/accelerator_filter_unittest.cc | 26 | ||||
-rw-r--r-- | ash/drag_drop/drag_drop_controller_unittest.cc | 12 | ||||
-rw-r--r-- | ash/ime/input_method_event_filter_unittest.cc | 18 | ||||
-rw-r--r-- | ash/tooltips/tooltip_controller_unittest.cc | 14 |
5 files changed, 58 insertions, 36 deletions
diff --git a/ash/accelerators/accelerator_controller_unittest.cc b/ash/accelerators/accelerator_controller_unittest.cc index 4f878a8..1cba03a 100644 --- a/ash/accelerators/accelerator_controller_unittest.cc +++ b/ash/accelerators/accelerator_controller_unittest.cc @@ -294,12 +294,13 @@ TEST_F(AcceleratorControllerTest, ProcessOnce) { aura::Window* default_container = ash::Shell::GetInstance()->GetContainer( internal::kShellWindowId_DefaultContainer); - aura::Window* window = aura::test::CreateTestWindowWithDelegate( - new aura::test::TestWindowDelegate, + aura::test::TestWindowDelegate test_delegate; + scoped_ptr<aura::Window> window(aura::test::CreateTestWindowWithDelegate( + &test_delegate, -1, gfx::Rect(), - default_container); - ActivateWindow(window); + default_container)); + ActivateWindow(window.get()); const ui::Accelerator accelerator_a(ui::VKEY_A, false, false, false); TestTarget target; @@ -338,6 +339,9 @@ TEST_F(AcceleratorControllerTest, ProcessOnce) { EXPECT_FALSE(aura::RootWindow::GetInstance()->DispatchKeyEvent(&key_event3)); #endif EXPECT_EQ(1, target.accelerator_pressed_count()); + + // Reset window before |test_delegate| gets deleted. + window.reset(); } #endif @@ -346,12 +350,13 @@ TEST_F(AcceleratorControllerTest, GlobalAccelerators) { aura::Window* default_container = ash::Shell::GetInstance()->GetContainer( internal::kShellWindowId_DefaultContainer); - aura::Window* window = aura::test::CreateTestWindowWithDelegate( - new aura::test::TestWindowDelegate, + aura::test::TestWindowDelegate test_delegate; + scoped_ptr<aura::Window> window(aura::test::CreateTestWindowWithDelegate( + &test_delegate, -1, gfx::Rect(), - default_container); - ActivateWindow(window); + default_container)); + ActivateWindow(window.get()); // CycleBackward EXPECT_TRUE(GetController()->Process( @@ -537,6 +542,9 @@ TEST_F(AcceleratorControllerTest, GlobalAccelerators) { EXPECT_TRUE(GetController()->Process( ui::Accelerator(ui::VKEY_L, true, true, false))); #endif + + // Reset window before |test_delegate| gets deleted. + window.reset(); } } // namespace test diff --git a/ash/accelerators/accelerator_filter_unittest.cc b/ash/accelerators/accelerator_filter_unittest.cc index 152a266..f8edc563 100644 --- a/ash/accelerators/accelerator_filter_unittest.cc +++ b/ash/accelerators/accelerator_filter_unittest.cc @@ -11,10 +11,12 @@ #include "ash/test/aura_shell_test_base.h" #include "ash/wm/root_window_event_filter.h" #include "ash/wm/window_util.h" +#include "base/memory/scoped_ptr.h" #include "testing/gtest/include/gtest/gtest.h" #include "ui/aura/test/aura_test_base.h" #include "ui/aura/test/event_generator.h" #include "ui/aura/test/test_windows.h" +#include "ui/aura/window.h" #include "ui/gfx/rect.h" namespace ash { @@ -72,12 +74,13 @@ TEST_F(AcceleratorFilterTest, TestFilterWithoutFocus) { TEST_F(AcceleratorFilterTest, TestFilterWithFocus) { aura::Window* default_container = Shell::GetInstance()->GetContainer( internal::kShellWindowId_DefaultContainer); - aura::Window* window = aura::test::CreateTestWindowWithDelegate( - new aura::test::TestWindowDelegate, + aura::test::TestWindowDelegate test_delegate; + scoped_ptr<aura::Window> window(aura::test::CreateTestWindowWithDelegate( + &test_delegate, -1, gfx::Rect(), - default_container); - ActivateWindow(window); + default_container)); + ActivateWindow(window.get()); DummyScreenshotDelegate* delegate = new DummyScreenshotDelegate; GetController()->SetScreenshotDelegate( @@ -89,18 +92,22 @@ TEST_F(AcceleratorFilterTest, TestFilterWithFocus) { EXPECT_EQ(1, delegate->handle_take_screenshot_count()); generator_.ReleaseKey(ui::VKEY_PRINT, 0); EXPECT_EQ(1, delegate->handle_take_screenshot_count()); + + // Reset window before |test_delegate| gets deleted. + window.reset(); } // Tests if AcceleratorFilter ignores the flag for Caps Lock. TEST_F(AcceleratorFilterTest, TestCapsLockMask) { aura::Window* default_container = Shell::GetInstance()->GetContainer( internal::kShellWindowId_DefaultContainer); - aura::Window* window = aura::test::CreateTestWindowWithDelegate( - new aura::test::TestWindowDelegate, + aura::test::TestWindowDelegate test_delegate; + scoped_ptr<aura::Window> window(aura::test::CreateTestWindowWithDelegate( + &test_delegate, -1, gfx::Rect(), - default_container); - ActivateWindow(window); + default_container)); + ActivateWindow(window.get()); DummyScreenshotDelegate* delegate = new DummyScreenshotDelegate; GetController()->SetScreenshotDelegate( @@ -119,6 +126,9 @@ TEST_F(AcceleratorFilterTest, TestCapsLockMask) { EXPECT_EQ(2, delegate->handle_take_screenshot_count()); generator_.ReleaseKey(ui::VKEY_PRINT, ui::EF_CAPS_LOCK_DOWN); EXPECT_EQ(2, delegate->handle_take_screenshot_count()); + + // Reset window before |test_delegate| gets deleted. + window.reset(); } } // namespace test diff --git a/ash/drag_drop/drag_drop_controller_unittest.cc b/ash/drag_drop/drag_drop_controller_unittest.cc index 62c6ccb..659e992 100644 --- a/ash/drag_drop/drag_drop_controller_unittest.cc +++ b/ash/drag_drop/drag_drop_controller_unittest.cc @@ -355,8 +355,8 @@ TEST_F(DragDropControllerTest, DragDropInMultipleViewsMultipleWidgetsTest) { TEST_F(DragDropControllerTest, ViewRemovedWhileInDragDropTest) { scoped_ptr<views::Widget> widget(CreateNewWidget()); - DragTestView* drag_view = new DragTestView; - AddViewToWidgetAndResize(widget.get(), drag_view); + scoped_ptr<DragTestView> drag_view(new DragTestView); + AddViewToWidgetAndResize(widget.get(), drag_view.get()); gfx::Point point = gfx::Rect(drag_view->bounds()).CenterPoint(); ui::OSExchangeData data; data.SetString(UTF8ToUTF16("I am being dragged")); @@ -376,7 +376,7 @@ TEST_F(DragDropControllerTest, ViewRemovedWhileInDragDropTest) { generator.MoveMouseBy(0, 1); } - drag_view->parent()->RemoveChildView(drag_view); + drag_view->parent()->RemoveChildView(drag_view.get()); // View has been removed. We will not get any of the following drag updates. int num_drags_2 = 23; for (int i = 0; i < num_drags_2; ++i) { @@ -433,9 +433,9 @@ TEST_F(DragDropControllerTest, DragCopiesDataToClipboardTest) { } TEST_F(DragDropControllerTest, WindowDestroyedDuringDragDrop) { - views::Widget* widget = CreateNewWidget(); + scoped_ptr<views::Widget> widget(CreateNewWidget()); DragTestView* drag_view = new DragTestView; - AddViewToWidgetAndResize(widget, drag_view); + AddViewToWidgetAndResize(widget.get(), drag_view); aura::Window* window = widget->GetNativeView(); ui::OSExchangeData data; @@ -456,7 +456,7 @@ TEST_F(DragDropControllerTest, WindowDestroyedDuringDragDrop) { EXPECT_EQ(window, GetDraggedWindow()); } - delete window; + widget->CloseNow(); EXPECT_FALSE(GetDraggedWindow()); num_drags = 23; diff --git a/ash/ime/input_method_event_filter_unittest.cc b/ash/ime/input_method_event_filter_unittest.cc index d475db0..83fe1fd 100644 --- a/ash/ime/input_method_event_filter_unittest.cc +++ b/ash/ime/input_method_event_filter_unittest.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 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. @@ -34,8 +34,8 @@ typedef AuraShellTestBase InputMethodEventFilterTest; // Tests if InputMethodEventFilter adds a window property on its construction. TEST_F(InputMethodEventFilterTestWithoutShell, TestInputMethodProperty) { aura::RootWindow* root_window = aura::RootWindow::GetInstance(); - internal::RootWindowEventFilter* root_filter = - new internal::RootWindowEventFilter; + scoped_ptr<internal::RootWindowEventFilter> root_filter( + new internal::RootWindowEventFilter); EXPECT_FALSE(root_window->GetProperty(aura::client::kRootWindowInputMethod)); internal::InputMethodEventFilter ime_filter; root_filter->AddFilter(&ime_filter); @@ -60,12 +60,13 @@ TEST_F(InputMethodEventFilterTest, TestInputMethodKeyEventPropagation) { // event to event filters. aura::Window* default_container = Shell::GetInstance()->GetContainer( internal::kShellWindowId_DefaultContainer); - aura::Window* window = aura::test::CreateTestWindowWithDelegate( - new aura::test::TestWindowDelegate, + aura::test::TestWindowDelegate test_delegate; + scoped_ptr<aura::Window> window(aura::test::CreateTestWindowWithDelegate( + &test_delegate, -1, gfx::Rect(), - default_container); - ActivateWindow(window); + default_container)); + ActivateWindow(window.get()); // Send a fake key event to the root window. InputMethodEventFilter, which is // automatically set up by AuraShellTestBase, consumes it and sends a new @@ -79,6 +80,9 @@ TEST_F(InputMethodEventFilterTest, TestInputMethodKeyEventPropagation) { EXPECT_EQ(2, test_filter.key_event_count()); root_filter->RemoveFilter(&test_filter); + + // Reset window before |test_delegate| gets deleted. + window.reset(); } } // namespace test diff --git a/ash/tooltips/tooltip_controller_unittest.cc b/ash/tooltips/tooltip_controller_unittest.cc index 9f3e19a..84d9e95 100644 --- a/ash/tooltips/tooltip_controller_unittest.cc +++ b/ash/tooltips/tooltip_controller_unittest.cc @@ -105,9 +105,9 @@ TEST_F(TooltipControllerTest, NonNullTooltipClient) { } TEST_F(TooltipControllerTest, ViewTooltip) { - views::Widget* widget = CreateNewWidget(); + scoped_ptr<views::Widget> widget(CreateNewWidget()); TooltipTestView* view = new TooltipTestView; - AddViewToWidgetAndResize(widget, view); + AddViewToWidgetAndResize(widget.get(), view); view->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); EXPECT_EQ(ASCIIToUTF16(""), GetTooltipText()); EXPECT_EQ(NULL, GetTooltipWindow()); @@ -137,15 +137,15 @@ TEST_F(TooltipControllerTest, ViewTooltip) { } TEST_F(TooltipControllerTest, TooltipsInMultipleViews) { - views::Widget* widget = CreateNewWidget(); + scoped_ptr<views::Widget> widget(CreateNewWidget()); TooltipTestView* view1 = new TooltipTestView; - AddViewToWidgetAndResize(widget, view1); + AddViewToWidgetAndResize(widget.get(), view1); view1->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); EXPECT_EQ(ASCIIToUTF16(""), GetTooltipText()); EXPECT_EQ(NULL, GetTooltipWindow()); TooltipTestView* view2 = new TooltipTestView; - AddViewToWidgetAndResize(widget, view2); + AddViewToWidgetAndResize(widget.get(), view2); aura::Window* window = widget->GetNativeView(); @@ -182,9 +182,9 @@ TEST_F(TooltipControllerTest, TooltipsInMultipleViews) { } TEST_F(TooltipControllerTest, EnableOrDisableTooltips) { - views::Widget* widget = CreateNewWidget(); + scoped_ptr<views::Widget> widget(CreateNewWidget()); TooltipTestView* view = new TooltipTestView; - AddViewToWidgetAndResize(widget, view); + AddViewToWidgetAndResize(widget.get(), view); view->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); EXPECT_EQ(ASCIIToUTF16(""), GetTooltipText()); EXPECT_EQ(NULL, GetTooltipWindow()); |