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

Side by Side Diff: ui/aura/root_window_unittest.cc

Issue 11299219: Rework FocusManager as FocusClient. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years 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 | Annotate | Revision Log
« no previous file with comments | « ui/aura/root_window.cc ('k') | ui/aura/test/aura_test_helper.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "ui/aura/root_window.h" 5 #include "ui/aura/root_window.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 #include "ui/aura/client/event_client.h" 10 #include "ui/aura/client/event_client.h"
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 delegate ? delegate : 95 delegate ? delegate :
96 test::TestWindowDelegate::CreateSelfDestroyingDelegate()); 96 test::TestWindowDelegate::CreateSelfDestroyingDelegate());
97 window->set_id(id); 97 window->set_id(id);
98 window->Init(ui::LAYER_TEXTURED); 98 window->Init(ui::LAYER_TEXTURED);
99 window->SetParent(parent); 99 window->SetParent(parent);
100 window->SetBounds(gfx::Rect(0, 0, 100, 100)); 100 window->SetBounds(gfx::Rect(0, 0, 100, 100));
101 window->Show(); 101 window->Show();
102 return window; 102 return window;
103 } 103 }
104 104
105 bool IsFocusedWindow(aura::Window* window) {
106 return client::GetFocusClient(window)->GetFocusedWindow() == window;
107 }
108
105 } // namespace 109 } // namespace
106 110
107 typedef test::AuraTestBase RootWindowTest; 111 typedef test::AuraTestBase RootWindowTest;
108 112
109 TEST_F(RootWindowTest, OnHostMouseEvent) { 113 TEST_F(RootWindowTest, OnHostMouseEvent) {
110 // Create two non-overlapping windows so we don't have to worry about which 114 // Create two non-overlapping windows so we don't have to worry about which
111 // is on top. 115 // is on top.
112 scoped_ptr<NonClientDelegate> delegate1(new NonClientDelegate()); 116 scoped_ptr<NonClientDelegate> delegate1(new NonClientDelegate());
113 scoped_ptr<NonClientDelegate> delegate2(new NonClientDelegate()); 117 scoped_ptr<NonClientDelegate> delegate2(new NonClientDelegate());
114 const int kWindowWidth = 123; 118 const int kWindowWidth = 123;
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
326 client.GetNonLockWindow()); 330 client.GetNonLockWindow());
327 w1->set_id(1); 331 w1->set_id(1);
328 Window* w2 = test::CreateTestWindowWithBounds(gfx::Rect(30, 30, 20, 20), 332 Window* w2 = test::CreateTestWindowWithBounds(gfx::Rect(30, 30, 20, 20),
329 client.GetNonLockWindow()); 333 client.GetNonLockWindow());
330 w2->set_id(2); 334 w2->set_id(2);
331 scoped_ptr<Window> w3( 335 scoped_ptr<Window> w3(
332 test::CreateTestWindowWithDelegate(&d, 3, gfx::Rect(30, 30, 20, 20), 336 test::CreateTestWindowWithDelegate(&d, 3, gfx::Rect(30, 30, 20, 20),
333 client.GetLockWindow())); 337 client.GetLockWindow()));
334 338
335 w1->Focus(); 339 w1->Focus();
336 EXPECT_TRUE(w1->GetFocusManager()->IsFocusedWindow(w1)); 340 EXPECT_TRUE(IsFocusedWindow(w1));
337 341
338 client.Lock(); 342 client.Lock();
339 343
340 // Since we're locked, the attempt to focus w2 will be ignored. 344 // Since we're locked, the attempt to focus w2 will be ignored.
341 w2->Focus(); 345 w2->Focus();
342 EXPECT_TRUE(w1->GetFocusManager()->IsFocusedWindow(w1)); 346 EXPECT_TRUE(IsFocusedWindow(w1));
343 EXPECT_FALSE(w1->GetFocusManager()->IsFocusedWindow(w2)); 347 EXPECT_FALSE(IsFocusedWindow(w2));
344 348
345 { 349 {
346 // Attempting to send a key event to w1 (not in the lock container) should 350 // Attempting to send a key event to w1 (not in the lock container) should
347 // cause focus to be reset. 351 // cause focus to be reset.
348 test::EventGenerator generator(root_window()); 352 test::EventGenerator generator(root_window());
349 generator.PressKey(ui::VKEY_SPACE, 0); 353 generator.PressKey(ui::VKEY_SPACE, 0);
350 EXPECT_EQ(NULL, w1->GetFocusManager()->GetFocusedWindow()); 354 EXPECT_EQ(NULL, client::GetFocusClient(w1)->GetFocusedWindow());
351 } 355 }
352 356
353 { 357 {
354 // Events sent to a window not in the lock container will not be processed. 358 // Events sent to a window not in the lock container will not be processed.
355 // i.e. never sent to the non-lock container's event filter. 359 // i.e. never sent to the non-lock container's event filter.
356 test::EventGenerator generator(root_window(), w1); 360 test::EventGenerator generator(root_window(), w1);
357 generator.PressLeftButton(); 361 generator.PressLeftButton();
358 EXPECT_EQ(0, nonlock_ef->num_mouse_events()); 362 EXPECT_EQ(0, nonlock_ef->num_mouse_events());
359 363
360 // Events sent to a window in the lock container will be processed. 364 // Events sent to a window in the lock container will be processed.
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after
695 TEST_F(RootWindowTest, DeleteWindowDuringDispatch) { 699 TEST_F(RootWindowTest, DeleteWindowDuringDispatch) {
696 // Verifies that we can delete a window during each phase of event handling. 700 // Verifies that we can delete a window during each phase of event handling.
697 // Deleting the window should not cause a crash, only prevent further 701 // Deleting the window should not cause a crash, only prevent further
698 // processing from occurring. 702 // processing from occurring.
699 scoped_ptr<Window> w1(CreateWindow(1, root_window(), NULL)); 703 scoped_ptr<Window> w1(CreateWindow(1, root_window(), NULL));
700 DeletingWindowDelegate d11; 704 DeletingWindowDelegate d11;
701 Window* w11 = CreateWindow(11, w1.get(), &d11); 705 Window* w11 = CreateWindow(11, w1.get(), &d11);
702 WindowTracker tracker; 706 WindowTracker tracker;
703 DeletingEventFilter* w1_filter = new DeletingEventFilter; 707 DeletingEventFilter* w1_filter = new DeletingEventFilter;
704 w1->SetEventFilter(w1_filter); 708 w1->SetEventFilter(w1_filter);
705 w1->GetFocusManager()->SetFocusedWindow(w11, NULL); 709 client::GetFocusClient(w1.get())->FocusWindow(w11, NULL);
706 710
707 test::EventGenerator generator(root_window(), w11); 711 test::EventGenerator generator(root_window(), w11);
708 712
709 // First up, no one deletes anything. 713 // First up, no one deletes anything.
710 tracker.Add(w11); 714 tracker.Add(w11);
711 d11.Reset(w11, false); 715 d11.Reset(w11, false);
712 716
713 generator.PressLeftButton(); 717 generator.PressLeftButton();
714 EXPECT_TRUE(tracker.Contains(w11)); 718 EXPECT_TRUE(tracker.Contains(w11));
715 EXPECT_TRUE(d11.got_event()); 719 EXPECT_TRUE(d11.got_event());
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
764 TEST_F(RootWindowTest, GestureRecognizerResetsTargetWhenParentHides) { 768 TEST_F(RootWindowTest, GestureRecognizerResetsTargetWhenParentHides) {
765 scoped_ptr<Window> w1(CreateWindow(1, root_window(), NULL)); 769 scoped_ptr<Window> w1(CreateWindow(1, root_window(), NULL));
766 DetachesParentOnTapDelegate delegate; 770 DetachesParentOnTapDelegate delegate;
767 scoped_ptr<Window> parent(CreateWindow(22, w1.get(), NULL)); 771 scoped_ptr<Window> parent(CreateWindow(22, w1.get(), NULL));
768 Window* child = CreateWindow(11, parent.get(), &delegate); 772 Window* child = CreateWindow(11, parent.get(), &delegate);
769 test::EventGenerator generator(root_window(), child); 773 test::EventGenerator generator(root_window(), child);
770 generator.GestureTapAt(gfx::Point(40, 40)); 774 generator.GestureTapAt(gfx::Point(40, 40));
771 } 775 }
772 776
773 } // namespace aura 777 } // namespace aura
OLDNEW
« no previous file with comments | « ui/aura/root_window.cc ('k') | ui/aura/test/aura_test_helper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698