1558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch// Copyright 2013 The Chromium Authors. All rights reserved. 2558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 3558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch// found in the LICENSE file. 4558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch 5558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch#include "ui/aura/client/aura_constants.h" 6558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch#include "ui/aura/window.h" 758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "ui/base/ime/dummy_input_method_delegate.h" 8a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include "ui/base/ime/input_method_minimal.h" 9558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch#include "ui/base/ime/text_input_client.h" 10558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch#include "ui/views/ime/input_method.h" 11558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch#include "ui/views/test/views_test_base.h" 12558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch#include "ui/views/widget/desktop_aura/desktop_native_widget_aura.h" 13558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch#include "ui/views/widget/native_widget_aura.h" 14558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch#include "ui/views/widget/widget.h" 15558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch 16558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdochnamespace views { 17558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch 18558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdochtypedef ViewsTestBase InputMethodBridgeTest; 19558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch 20558790d6acca3451cf3a6b497803a5f07d0bec58Ben MurdochTEST_F(InputMethodBridgeTest, DestructTest) { 2158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) ui::internal::DummyInputMethodDelegate input_method_delegate; 22a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) ui::InputMethodMinimal input_method(&input_method_delegate); 2358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 24558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch GetContext()->SetProperty(aura::client::kRootWindowInputMethodKey, 25558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch static_cast<ui::InputMethod*>(&input_method)); 26558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch 27558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch Widget* toplevel = new Widget; 28558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch Widget::InitParams toplevel_params = 29558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch CreateParams(Widget::InitParams::TYPE_WINDOW); 30558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch // |child| owns |native_widget|. 31558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch toplevel_params.native_widget = new DesktopNativeWidgetAura(toplevel); 32558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch toplevel->Init(toplevel_params); 33558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch 34558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch Widget* child = new Widget; 35558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch Widget::InitParams child_params = 36558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch CreateParams(Widget::InitParams::TYPE_POPUP); 37558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch child_params.parent = toplevel->GetNativeView(); 38558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch // |child| owns |native_widget|. 39558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch child_params.native_widget = new NativeWidgetAura(child); 40558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch child->Init(child_params); 41558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch 42558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch child->GetInputMethod()->OnFocus(); 43558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch 44558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch toplevel->CloseNow(); 45558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch 46558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch GetContext()->SetProperty(aura::client::kRootWindowInputMethodKey, 47558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch static_cast<ui::InputMethod*>(NULL)); 48558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch} 49558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch 50558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch} // namespace views 51