Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(172)

Side by Side Diff: ash/root_window_controller_unittest.cc

Issue 565373002: Move virtual keyboard behind context menus. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ash/root_window_controller.h" 5 #include "ash/root_window_controller.h"
6 6
7 #include "ash/session/session_state_delegate.h" 7 #include "ash/session/session_state_delegate.h"
8 #include "ash/shelf/shelf_layout_manager.h" 8 #include "ash/shelf/shelf_layout_manager.h"
9 #include "ash/shell.h" 9 #include "ash/shell.h"
10 #include "ash/shell_window_ids.h" 10 #include "ash/shell_window_ids.h"
(...skipping 629 matching lines...) Expand 10 before | Expand all | Expand 10 after
640 const gfx::Rect& visible_rect() const { 640 const gfx::Rect& visible_rect() const {
641 return visible_rect_; 641 return visible_rect_;
642 } 642 }
643 643
644 private: 644 private:
645 gfx::Rect visible_rect_; 645 gfx::Rect visible_rect_;
646 646
647 DISALLOW_COPY_AND_ASSIGN(MockTextInputClient); 647 DISALLOW_COPY_AND_ASSIGN(MockTextInputClient);
648 }; 648 };
649 649
650 class TargetHitTestEventHandler : public ui::test::TestEventHandler {
651 public:
652 TargetHitTestEventHandler() : ui::test::TestEventHandler() {}
James Cook 2014/09/12 22:01:52 nit: "ui::test::TestEventHandler" not needed
kevers 2014/09/15 17:23:46 Done.
653
654 virtual void OnMouseEvent(ui::MouseEvent* event) OVERRIDE {
James Cook 2014/09/12 22:01:52 nit: "// ui::test::TestEventHandler overrides:" or
kevers 2014/09/15 17:23:45 Done.
655 if (event->type() == ui::ET_MOUSE_PRESSED)
James Cook 2014/09/12 22:01:52 nit: one space after ==
kevers 2014/09/15 17:23:45 Done.
656 ui::test::TestEventHandler::OnMouseEvent(event);
657 event->StopPropagation();
658 }
659
660 private:
661 DISALLOW_COPY_AND_ASSIGN(TargetHitTestEventHandler);
662 };
663
650 // Test for http://crbug.com/297858. Virtual keyboard container should only show 664 // Test for http://crbug.com/297858. Virtual keyboard container should only show
651 // on primary root window. 665 // on primary root window.
652 TEST_F(VirtualKeyboardRootWindowControllerTest, 666 TEST_F(VirtualKeyboardRootWindowControllerTest,
653 VirtualKeyboardOnPrimaryRootWindowOnly) { 667 VirtualKeyboardOnPrimaryRootWindowOnly) {
654 if (!SupportsMultipleDisplays()) 668 if (!SupportsMultipleDisplays())
655 return; 669 return;
656 670
657 UpdateDisplay("500x500,500x500"); 671 UpdateDisplay("500x500,500x500");
658 672
659 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); 673 aura::Window::Windows root_windows = Shell::GetAllRootWindows();
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
834 text_input_client.visible_rect().height()); 848 text_input_client.visible_rect().height());
835 849
836 if (switches::IsTextInputFocusManagerEnabled()) { 850 if (switches::IsTextInputFocusManagerEnabled()) {
837 ui::TextInputFocusManager::GetInstance()->BlurTextInputClient( 851 ui::TextInputFocusManager::GetInstance()->BlurTextInputClient(
838 &text_input_client); 852 &text_input_client);
839 } else { 853 } else {
840 input_method->SetFocusedTextInputClient(NULL); 854 input_method->SetFocusedTextInputClient(NULL);
841 } 855 }
842 } 856 }
843 857
858 TEST_F(VirtualKeyboardRootWindowControllerTest, ZOrderTest) {
James Cook 2014/09/12 22:01:52 Add a brief comment about what this test is testin
kevers 2014/09/15 17:23:45 Done.
859 UpdateDisplay("800x600");
860 keyboard::KeyboardController* keyboard_controller =
861 keyboard::KeyboardController::GetInstance();
862 keyboard::KeyboardControllerProxy* proxy = keyboard_controller->proxy();
863
864 aura::Window* root_window = Shell::GetPrimaryRootWindow();
865 aura::Window* keyboard_container =
866 Shell::GetContainer(root_window, kShellWindowId_VirtualKeyboardContainer);
867 ASSERT_TRUE(keyboard_container);
868 keyboard_container->Show();
869
870 const int keyboard_height = 200;
871 aura::Window* keyboard_window =proxy->GetKeyboardWindow();
James Cook 2014/09/12 22:01:52 nit: space after = Or just run "git cl format"
kevers 2014/09/15 17:23:45 Whoops...done.
872 keyboard_container->AddChild(keyboard_window);
873 keyboard_window->set_owned_by_parent(false);
874 gfx::Rect keyboard_bounds = keyboard::KeyboardBoundsFromWindowBounds(
875 keyboard_container->bounds(), keyboard_height);
876 keyboard_window->SetBounds(keyboard_bounds);
877 keyboard_window->Show();
878
879 ui::test::EventGenerator generator(root_window);
880
881 int window_height = keyboard_bounds.bottom();
882 int window_width = keyboard_bounds.width() / 2;
883
884 // Normal window is should be partially occluded by the virtual keyboard.
James Cook 2014/09/12 22:01:52 nit: "is should be"?
kevers 2014/09/15 17:23:45 Fixed wording.
885 aura::test::TestWindowDelegate delegate;
886 aura::Window* normal = CreateTestWindowInShellWithDelegateAndType(
887 &delegate, ui::wm::WINDOW_TYPE_NORMAL, 0,
888 gfx::Rect(0, 0, window_width, window_height));
889 normal->set_owned_by_parent(false);
890 normal->Show();
891 TargetHitTestEventHandler normal_handler;
892 normal->AddPreTargetHandler(&normal_handler);
893
894 // Menu overlaps virtual keyboard.
895 aura::test::TestWindowDelegate delegate2;
896 aura::Window* menu = CreateTestWindowInShellWithDelegateAndType(
897 &delegate2, ui::wm::WINDOW_TYPE_MENU, 0,
898 gfx::Rect(window_width, 0, window_width, window_height));
899 menu->set_owned_by_parent(false);
900 menu->Show();
901 TargetHitTestEventHandler menu_handler;
902 menu->AddPreTargetHandler(&menu_handler);
903
904 int left = window_width / 2;
James Cook 2014/09/12 22:01:52 I'm having a hard time visualizing the coordinates
kevers 2014/09/15 17:23:45 Added comment block. I do feel that numbers are mo
905 int right = 3 * window_width / 2;
906 int top = keyboard_bounds.y() / 2;
907 int bottom = window_height - keyboard_height / 2;
908
909 // Test that only the click on the top portion of the window is pickd up.
James Cook 2014/09/12 22:01:52 This block might be clearer if it was moved up to
kevers 2014/09/15 17:23:45 Done.
910 generator.MoveMouseTo(left, top);
911 generator.ClickLeftButton();
912 EXPECT_EQ(1, normal_handler.num_mouse_events());
913 generator.MoveMouseTo(left, bottom);
914 generator.ClickLeftButton();
915 EXPECT_EQ(1, normal_handler.num_mouse_events());
916
917 // Test that both clicks register.
918 generator.MoveMouseTo(right, top);
919 generator.ClickLeftButton();
920 EXPECT_EQ(1, menu_handler.num_mouse_events());
921 generator.MoveMouseTo(right, bottom);
922 generator.ClickLeftButton();
923 EXPECT_EQ(2, menu_handler.num_mouse_events());
924
925 delete normal;
James Cook 2014/09/12 22:01:53 Can you use scoped_ptr<> for these?
926 delete menu;
927 }
James Cook 2014/09/12 22:01:53 Thanks for writing a nice test for this! It's alw
928
844 } // namespace test 929 } // namespace test
845 } // namespace ash 930 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698