summaryrefslogtreecommitdiffstats
path: root/ash
diff options
context:
space:
mode:
authoroshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-07 23:37:10 +0000
committeroshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-07 23:37:10 +0000
commit4c616541cf6e73dfebaf3cd68128c1e49e7d111b (patch)
tree416afc64dc37a1438e87eb9eb80c2c06494754cb /ash
parent1e0771efa8db5353eea04c3e29781e7e902edd02 (diff)
downloadchromium_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.cc24
-rw-r--r--ash/accelerators/accelerator_filter_unittest.cc26
-rw-r--r--ash/drag_drop/drag_drop_controller_unittest.cc12
-rw-r--r--ash/ime/input_method_event_filter_unittest.cc18
-rw-r--r--ash/tooltips/tooltip_controller_unittest.cc14
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());