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

Side by Side Diff: chrome/browser/ui/views/constrained_window_views_browsertest.cc

Issue 8508055: Move views::Accelerator to ui in order to use it from aura code. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Rebase Created 9 years, 1 month 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "base/memory/weak_ptr.h" 5 #include "base/memory/weak_ptr.h"
6 #include "chrome/browser/ui/browser.h" 6 #include "chrome/browser/ui/browser.h"
7 #include "chrome/browser/ui/constrained_window_tab_helper.h" 7 #include "chrome/browser/ui/constrained_window_tab_helper.h"
8 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" 8 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
9 #include "chrome/browser/ui/views/constrained_window_views.h" 9 #include "chrome/browser/ui/views/constrained_window_views.h"
10 #include "chrome/test/base/in_process_browser_test.h" 10 #include "chrome/test/base/in_process_browser_test.h"
11 #include "chrome/test/base/ui_test_utils.h" 11 #include "chrome/test/base/ui_test_utils.h"
12 #include "views/accelerator.h" 12 #include "ui/base/models/accelerator.h"
13 #include "views/controls/textfield/textfield.h" 13 #include "views/controls/textfield/textfield.h"
14 #include "views/focus/focus_manager.h" 14 #include "views/focus/focus_manager.h"
15 #include "views/layout/fill_layout.h" 15 #include "views/layout/fill_layout.h"
16 #include "views/window/dialog_delegate.h" 16 #include "views/window/dialog_delegate.h"
17 17
18 namespace { 18 namespace {
19 19
20 class TestConstrainedDialogContentsView 20 class TestConstrainedDialogContentsView
21 : public views::View, 21 : public views::View,
22 public base::SupportsWeakPtr<TestConstrainedDialogContentsView> { 22 public base::SupportsWeakPtr<TestConstrainedDialogContentsView> {
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 113
114 // Create a constrained dialog. It will attach itself to tab_contents. 114 // Create a constrained dialog. It will attach itself to tab_contents.
115 scoped_ptr<TestConstrainedDialog> test_dialog1(new TestConstrainedDialog); 115 scoped_ptr<TestConstrainedDialog> test_dialog1(new TestConstrainedDialog);
116 ConstrainedWindowViews* window1 = 116 ConstrainedWindowViews* window1 =
117 new ConstrainedWindowViews(tab_contents, test_dialog1.get()); 117 new ConstrainedWindowViews(tab_contents, test_dialog1.get());
118 118
119 views::FocusManager* focus_manager = window1->GetFocusManager(); 119 views::FocusManager* focus_manager = window1->GetFocusManager();
120 ASSERT_TRUE(focus_manager); 120 ASSERT_TRUE(focus_manager);
121 121
122 // old_target should be the OK button for test_dialog1. 122 // old_target should be the OK button for test_dialog1.
123 views::AcceleratorTarget* old_target = 123 ui::AcceleratorTarget* old_target =
124 focus_manager->GetCurrentTargetForAccelerator( 124 focus_manager->GetCurrentTargetForAccelerator(
125 views::Accelerator(ui::VKEY_RETURN, false, false, false)); 125 ui::Accelerator(ui::VKEY_RETURN, false, false, false));
126 ASSERT_TRUE(old_target != NULL); 126 ASSERT_TRUE(old_target != NULL);
127 // test_dialog1's text field should be focused. 127 // test_dialog1's text field should be focused.
128 EXPECT_EQ(test_dialog1->GetInitiallyFocusedView(), 128 EXPECT_EQ(test_dialog1->GetInitiallyFocusedView(),
129 focus_manager->GetFocusedView()); 129 focus_manager->GetFocusedView());
130 130
131 // Now create a second constrained dialog. This will also be attached to 131 // Now create a second constrained dialog. This will also be attached to
132 // tab_contents, but will remain hidden since the test_dialog1 is still 132 // tab_contents, but will remain hidden since the test_dialog1 is still
133 // showing. 133 // showing.
134 scoped_ptr<TestConstrainedDialog> test_dialog2(new TestConstrainedDialog); 134 scoped_ptr<TestConstrainedDialog> test_dialog2(new TestConstrainedDialog);
135 ConstrainedWindowViews* window2 = 135 ConstrainedWindowViews* window2 =
136 new ConstrainedWindowViews(tab_contents, test_dialog2.get()); 136 new ConstrainedWindowViews(tab_contents, test_dialog2.get());
137 // Should be the same focus_manager. 137 // Should be the same focus_manager.
138 ASSERT_EQ(focus_manager, window2->GetFocusManager()); 138 ASSERT_EQ(focus_manager, window2->GetFocusManager());
139 139
140 // new_target should be the same as old_target since test_dialog2 is still 140 // new_target should be the same as old_target since test_dialog2 is still
141 // hidden. 141 // hidden.
142 views::AcceleratorTarget* new_target = 142 ui::AcceleratorTarget* new_target =
143 focus_manager->GetCurrentTargetForAccelerator( 143 focus_manager->GetCurrentTargetForAccelerator(
144 views::Accelerator(ui::VKEY_RETURN, false, false, false)); 144 ui::Accelerator(ui::VKEY_RETURN, false, false, false));
145 ASSERT_TRUE(new_target != NULL); 145 ASSERT_TRUE(new_target != NULL);
146 EXPECT_EQ(old_target, new_target); 146 EXPECT_EQ(old_target, new_target);
147 147
148 // test_dialog1's text field should still be the view that has focus. 148 // test_dialog1's text field should still be the view that has focus.
149 EXPECT_EQ(test_dialog1->GetInitiallyFocusedView(), 149 EXPECT_EQ(test_dialog1->GetInitiallyFocusedView(),
150 focus_manager->GetFocusedView()); 150 focus_manager->GetFocusedView());
151 ASSERT_EQ(2u, constrained_window_helper->constrained_window_count()); 151 ASSERT_EQ(2u, constrained_window_helper->constrained_window_count());
152 152
153 // Now send a VKEY_RETURN to the browser. This should result in closing 153 // Now send a VKEY_RETURN to the browser. This should result in closing
154 // test_dialog1. 154 // test_dialog1.
155 EXPECT_TRUE(focus_manager->ProcessAccelerator( 155 EXPECT_TRUE(focus_manager->ProcessAccelerator(
156 views::Accelerator(ui::VKEY_RETURN, false, false, false))); 156 ui::Accelerator(ui::VKEY_RETURN, false, false, false)));
157 ui_test_utils::RunAllPendingInMessageLoop(); 157 ui_test_utils::RunAllPendingInMessageLoop();
158 158
159 EXPECT_TRUE(test_dialog1->done()); 159 EXPECT_TRUE(test_dialog1->done());
160 EXPECT_FALSE(test_dialog2->done()); 160 EXPECT_FALSE(test_dialog2->done());
161 EXPECT_EQ(1u, constrained_window_helper->constrained_window_count()); 161 EXPECT_EQ(1u, constrained_window_helper->constrained_window_count());
162 162
163 // test_dialog2 will be shown. Focus should be on test_dialog2's text field. 163 // test_dialog2 will be shown. Focus should be on test_dialog2's text field.
164 EXPECT_EQ(test_dialog2->GetInitiallyFocusedView(), 164 EXPECT_EQ(test_dialog2->GetInitiallyFocusedView(),
165 focus_manager->GetFocusedView()); 165 focus_manager->GetFocusedView());
166 166
167 // Send another VKEY_RETURN, closing test_dialog2 167 // Send another VKEY_RETURN, closing test_dialog2
168 EXPECT_TRUE(focus_manager->ProcessAccelerator( 168 EXPECT_TRUE(focus_manager->ProcessAccelerator(
169 views::Accelerator(ui::VKEY_RETURN, false, false, false))); 169 ui::Accelerator(ui::VKEY_RETURN, false, false, false)));
170 ui_test_utils::RunAllPendingInMessageLoop(); 170 ui_test_utils::RunAllPendingInMessageLoop();
171 EXPECT_TRUE(test_dialog2->done()); 171 EXPECT_TRUE(test_dialog2->done());
172 EXPECT_EQ(0u, constrained_window_helper->constrained_window_count()); 172 EXPECT_EQ(0u, constrained_window_helper->constrained_window_count());
173 } 173 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/bubble/bubble.cc ('k') | chrome/browser/ui/views/critical_notification_bubble_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698