Chromium Code Reviews| Index: ui/views/widget/widget_interactive_uitest.cc |
| diff --git a/ui/views/widget/widget_interactive_uitest.cc b/ui/views/widget/widget_interactive_uitest.cc |
| index ae547ad61d74c98f78ebac29920d15f72022df0e..0a2ddac50b4cc58d1b5d6d78fd7fdff80b86c25a 100644 |
| --- a/ui/views/widget/widget_interactive_uitest.cc |
| +++ b/ui/views/widget/widget_interactive_uitest.cc |
| @@ -4,19 +4,25 @@ |
| #include "base/basictypes.h" |
| #include "base/bind.h" |
| +#include "base/command_line.h" |
| #include "base/path_service.h" |
| #include "base/run_loop.h" |
| #include "base/strings/stringprintf.h" |
| +#include "base/strings/utf_string_conversions.h" |
| #include "ui/aura/client/focus_client.h" |
| #include "ui/aura/env.h" |
| +#include "ui/aura/test/event_generator.h" |
| #include "ui/aura/window.h" |
| #include "ui/aura/window_tree_host.h" |
| #include "ui/base/resource/resource_bundle.h" |
| #include "ui/base/ui_base_paths.h" |
| +#include "ui/base/ui_base_switches.h" |
| #include "ui/events/event_processor.h" |
| #include "ui/gfx/native_widget_types.h" |
| #include "ui/gl/gl_surface.h" |
| +#include "ui/views/controls/textfield/textfield.h" |
| #include "ui/views/test/widget_test.h" |
| +#include "ui/views/touchui/touch_selection_controller_impl.h" |
| #include "ui/views/widget/widget.h" |
| #include "ui/views/window/dialog_delegate.h" |
| #include "ui/wm/public/activation_client.h" |
| @@ -702,6 +708,55 @@ TEST_F(WidgetTestInteractive, SystemModalWindowReleasesCapture) { |
| #endif |
| +TEST_F(WidgetTestInteractive, CanActivateFlagIsHonored) { |
| + Widget widget; |
| + Widget::InitParams init_params = |
| + CreateParams(Widget::InitParams::TYPE_WINDOW); |
| + init_params.bounds = gfx::Rect(0, 0, 200, 200); |
| + init_params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; |
| + init_params.can_activate = false; |
| +#if !defined(OS_CHROMEOS) |
| + init_params.native_widget = new DesktopNativeWidgetAura(&widget); |
| +#endif // !defined(OS_CHROMEOS) |
| + widget.Init(init_params); |
| + |
| + widget.Show(); |
| + EXPECT_FALSE(widget.IsActive()); |
| +} |
| + |
| +// Test that touch selection quick menu is not activated when opened. |
| +TEST_F(WidgetTestInteractive, TouchSelectionQuickMenuIsNotActivated) { |
| + CommandLine::ForCurrentProcess()->AppendSwitch(switches::kEnableTouchEditing); |
| + TouchSelectionControllerImpl::SetOpenQuickMenuImmediatelyForTest(true); |
| +#if defined(OS_WIN) |
| + views_delegate().SetUseDesktopNativeWidgets(true); |
| +#endif // !defined(OS_WIN) |
| + |
| + Widget widget; |
| + Widget::InitParams init_params = |
| + CreateParams(Widget::InitParams::TYPE_WINDOW_FRAMELESS); |
| + init_params.bounds = gfx::Rect(0, 0, 200, 200); |
| + init_params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; |
| + widget.Init(init_params); |
| + |
| + Textfield* textfield = new Textfield; |
| + textfield->SetBounds(0, 0, 200, 20); |
| + textfield->SetText(base::ASCIIToUTF16("some text")); |
| + widget.GetRootView()->AddChildView(textfield); |
| + |
| + widget.Show(); |
| + textfield->RequestFocus(); |
| + textfield->SelectAll(true); |
| + |
| + RunPendingMessages(); |
| + |
| + aura::test::EventGenerator generator(widget.GetNativeView()->GetRootWindow()); |
| + generator.GestureTapAt(gfx::Point(10, 10)); |
| + |
| + EXPECT_TRUE(textfield->HasFocus()); |
| + EXPECT_TRUE(widget.IsActive()); |
|
sadrul
2014/05/15 12:52:02
Do you want to verify that the touch-selection men
mohsen
2014/05/16 15:56:09
Done.
|
| +} |
| + |
| namespace { |
| // Used to veirfy OnMouseCaptureLost() has been invoked. |