1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "ui/views/widget/desktop_aura/desktop_root_window_host_win.h"
7 #include "ui/aura/root_window.h"
8 #include "ui/views/test/views_test_base.h"
9 #include "ui/views/widget/desktop_aura/desktop_native_widget_aura.h"
10 #include "ui/views/widget/widget.h"
14 typedef ViewsTestBase DesktopWindowTreeHostWinTest;
18 // See description above SaveFocusOnDeactivateFromHandleCreate.
19 class TestDesktopWindowTreeHostWin : public DesktopWindowTreeHostWin {
21 TestDesktopWindowTreeHostWin(
22 internal::NativeWidgetDelegate* native_widget_delegate,
23 DesktopNativeWidgetAura* desktop_native_widget_aura)
24 : DesktopWindowTreeHostWin(native_widget_delegate,
25 desktop_native_widget_aura) {}
26 virtual ~TestDesktopWindowTreeHostWin() {}
28 // DesktopWindowTreeHostWin overrides:
29 virtual void HandleCreate() OVERRIDE {
30 DesktopWindowTreeHostWin::HandleCreate();
31 SaveFocusOnDeactivate();
35 DISALLOW_COPY_AND_ASSIGN(TestDesktopWindowTreeHostWin);
40 // Verifies if SaveFocusOnDeactivate() is invoked from
41 // DesktopWindowTreeHostWin::HandleCreate we don't crash.
42 TEST_F(DesktopWindowTreeHostWinTest, SaveFocusOnDeactivateFromHandleCreate) {
44 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_WINDOW);
45 params.bounds = gfx::Rect(0, 0, 200, 200);
46 params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
47 DesktopNativeWidgetAura* desktop_native_widget_aura =
48 new DesktopNativeWidgetAura(&widget);
49 params.native_widget = desktop_native_widget_aura;
50 params.desktop_root_window_host = new TestDesktopWindowTreeHostWin(
51 &widget, desktop_native_widget_aura);