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

Side by Side Diff: ash/shell_unittest.cc

Issue 224113005: Eliminate ash::internal namespace (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « ash/shell_factory.h ('k') | ash/shell_window_ids.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 "ash/shell.h" 5 #include "ash/shell.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <vector> 8 #include <vector>
9 9
10 #include "ash/ash_switches.h" 10 #include "ash/ash_switches.h"
(...skipping 27 matching lines...) Expand all
38 #include "ui/views/widget/widget_delegate.h" 38 #include "ui/views/widget/widget_delegate.h"
39 #include "ui/views/window/dialog_delegate.h" 39 #include "ui/views/window/dialog_delegate.h"
40 40
41 using aura::RootWindow; 41 using aura::RootWindow;
42 42
43 namespace ash { 43 namespace ash {
44 44
45 namespace { 45 namespace {
46 46
47 aura::Window* GetDefaultContainer() { 47 aura::Window* GetDefaultContainer() {
48 return Shell::GetContainer( 48 return Shell::GetContainer(Shell::GetPrimaryRootWindow(),
49 Shell::GetPrimaryRootWindow(), 49 kShellWindowId_DefaultContainer);
50 internal::kShellWindowId_DefaultContainer);
51 } 50 }
52 51
53 aura::Window* GetAlwaysOnTopContainer() { 52 aura::Window* GetAlwaysOnTopContainer() {
54 return Shell::GetContainer( 53 return Shell::GetContainer(Shell::GetPrimaryRootWindow(),
55 Shell::GetPrimaryRootWindow(), 54 kShellWindowId_AlwaysOnTopContainer);
56 internal::kShellWindowId_AlwaysOnTopContainer);
57 } 55 }
58 56
59 // Expect ALL the containers! 57 // Expect ALL the containers!
60 void ExpectAllContainers() { 58 void ExpectAllContainers() {
61 aura::Window* root_window = Shell::GetPrimaryRootWindow(); 59 aura::Window* root_window = Shell::GetPrimaryRootWindow();
60 EXPECT_TRUE(Shell::GetContainer(root_window,
61 kShellWindowId_DesktopBackgroundContainer));
62 EXPECT_TRUE(
63 Shell::GetContainer(root_window, kShellWindowId_DefaultContainer));
64 EXPECT_TRUE(
65 Shell::GetContainer(root_window, kShellWindowId_AlwaysOnTopContainer));
66 EXPECT_TRUE(Shell::GetContainer(root_window, kShellWindowId_PanelContainer));
67 EXPECT_TRUE(Shell::GetContainer(root_window, kShellWindowId_ShelfContainer));
68 EXPECT_TRUE(
69 Shell::GetContainer(root_window, kShellWindowId_SystemModalContainer));
62 EXPECT_TRUE(Shell::GetContainer( 70 EXPECT_TRUE(Shell::GetContainer(
63 root_window, internal::kShellWindowId_DesktopBackgroundContainer)); 71 root_window, kShellWindowId_LockScreenBackgroundContainer));
72 EXPECT_TRUE(
73 Shell::GetContainer(root_window, kShellWindowId_LockScreenContainer));
74 EXPECT_TRUE(Shell::GetContainer(root_window,
75 kShellWindowId_LockSystemModalContainer));
76 EXPECT_TRUE(Shell::GetContainer(root_window, kShellWindowId_StatusContainer));
77 EXPECT_TRUE(Shell::GetContainer(root_window, kShellWindowId_MenuContainer));
78 EXPECT_TRUE(Shell::GetContainer(root_window,
79 kShellWindowId_DragImageAndTooltipContainer));
80 EXPECT_TRUE(
81 Shell::GetContainer(root_window, kShellWindowId_SettingBubbleContainer));
82 EXPECT_TRUE(
83 Shell::GetContainer(root_window, kShellWindowId_OverlayContainer));
64 EXPECT_TRUE(Shell::GetContainer( 84 EXPECT_TRUE(Shell::GetContainer(
65 root_window, internal::kShellWindowId_DefaultContainer)); 85 root_window, kShellWindowId_VirtualKeyboardParentContainer));
66 EXPECT_TRUE(Shell::GetContainer(
67 root_window, internal::kShellWindowId_AlwaysOnTopContainer));
68 EXPECT_TRUE(Shell::GetContainer(
69 root_window, internal::kShellWindowId_PanelContainer));
70 EXPECT_TRUE(Shell::GetContainer(
71 root_window, internal::kShellWindowId_ShelfContainer));
72 EXPECT_TRUE(Shell::GetContainer(
73 root_window, internal::kShellWindowId_SystemModalContainer));
74 EXPECT_TRUE(Shell::GetContainer(
75 root_window, internal::kShellWindowId_LockScreenBackgroundContainer));
76 EXPECT_TRUE(Shell::GetContainer(
77 root_window, internal::kShellWindowId_LockScreenContainer));
78 EXPECT_TRUE(Shell::GetContainer(
79 root_window, internal::kShellWindowId_LockSystemModalContainer));
80 EXPECT_TRUE(Shell::GetContainer(
81 root_window, internal::kShellWindowId_StatusContainer));
82 EXPECT_TRUE(Shell::GetContainer(
83 root_window, internal::kShellWindowId_MenuContainer));
84 EXPECT_TRUE(Shell::GetContainer(
85 root_window, internal::kShellWindowId_DragImageAndTooltipContainer));
86 EXPECT_TRUE(Shell::GetContainer(
87 root_window, internal::kShellWindowId_SettingBubbleContainer));
88 EXPECT_TRUE(Shell::GetContainer(
89 root_window, internal::kShellWindowId_OverlayContainer));
90 EXPECT_TRUE(Shell::GetContainer(
91 root_window, internal::kShellWindowId_VirtualKeyboardParentContainer));
92 #if defined(OS_CHROMEOS) 86 #if defined(OS_CHROMEOS)
93 EXPECT_TRUE(Shell::GetContainer( 87 EXPECT_TRUE(
94 root_window, internal::kShellWindowId_MouseCursorContainer)); 88 Shell::GetContainer(root_window, kShellWindowId_MouseCursorContainer));
95 #endif 89 #endif
96 } 90 }
97 91
98 class ModalWindow : public views::WidgetDelegateView { 92 class ModalWindow : public views::WidgetDelegateView {
99 public: 93 public:
100 ModalWindow() {} 94 ModalWindow() {}
101 virtual ~ModalWindow() {} 95 virtual ~ModalWindow() {}
102 96
103 // Overridden from views::WidgetDelegate: 97 // Overridden from views::WidgetDelegate:
104 virtual views::View* GetContentsView() OVERRIDE { 98 virtual views::View* GetContentsView() OVERRIDE {
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 DCHECK(menu_controller); 173 DCHECK(menu_controller);
180 EXPECT_EQ(views::MenuController::EXIT_NONE, menu_controller->exit_type()); 174 EXPECT_EQ(views::MenuController::EXIT_NONE, menu_controller->exit_type());
181 175
182 // Create a LockScreen window. 176 // Create a LockScreen window.
183 views::Widget::InitParams widget_params( 177 views::Widget::InitParams widget_params(
184 views::Widget::InitParams::TYPE_WINDOW); 178 views::Widget::InitParams::TYPE_WINDOW);
185 SessionStateDelegate* delegate = 179 SessionStateDelegate* delegate =
186 Shell::GetInstance()->session_state_delegate(); 180 Shell::GetInstance()->session_state_delegate();
187 delegate->LockScreen(); 181 delegate->LockScreen();
188 views::Widget* lock_widget = CreateTestWindow(widget_params); 182 views::Widget* lock_widget = CreateTestWindow(widget_params);
189 ash::Shell::GetContainer( 183 ash::Shell::GetContainer(Shell::GetPrimaryRootWindow(),
190 Shell::GetPrimaryRootWindow(), 184 ash::kShellWindowId_LockScreenContainer)
191 ash::internal::kShellWindowId_LockScreenContainer)-> 185 ->AddChild(lock_widget->GetNativeView());
192 AddChild(lock_widget->GetNativeView());
193 lock_widget->Show(); 186 lock_widget->Show();
194 EXPECT_TRUE(delegate->IsScreenLocked()); 187 EXPECT_TRUE(delegate->IsScreenLocked());
195 EXPECT_TRUE(lock_widget->GetNativeView()->HasFocus()); 188 EXPECT_TRUE(lock_widget->GetNativeView()->HasFocus());
196 189
197 // Verify menu is closed. 190 // Verify menu is closed.
198 EXPECT_NE(views::MenuController::EXIT_NONE, menu_controller->exit_type()); 191 EXPECT_NE(views::MenuController::EXIT_NONE, menu_controller->exit_type());
199 lock_widget->Close(); 192 lock_widget->Close();
200 delegate->UnlockScreen(); 193 delegate->UnlockScreen();
201 194
202 // In case the menu wasn't closed, cancel the menu to exit the nested menu 195 // In case the menu wasn't closed, cancel the menu to exit the nested menu
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 EXPECT_TRUE(GetDefaultContainer()->Contains( 260 EXPECT_TRUE(GetDefaultContainer()->Contains(
268 widget->GetNativeWindow()->parent())); 261 widget->GetNativeWindow()->parent()));
269 262
270 // Create a modal window. 263 // Create a modal window.
271 views::Widget* modal_widget = views::Widget::CreateWindowWithParent( 264 views::Widget* modal_widget = views::Widget::CreateWindowWithParent(
272 new ModalWindow(), widget->GetNativeView()); 265 new ModalWindow(), widget->GetNativeView());
273 modal_widget->Show(); 266 modal_widget->Show();
274 267
275 // It should be in modal container. 268 // It should be in modal container.
276 aura::Window* modal_container = Shell::GetContainer( 269 aura::Window* modal_container = Shell::GetContainer(
277 Shell::GetPrimaryRootWindow(), 270 Shell::GetPrimaryRootWindow(), kShellWindowId_SystemModalContainer);
278 internal::kShellWindowId_SystemModalContainer);
279 EXPECT_EQ(modal_container, modal_widget->GetNativeWindow()->parent()); 271 EXPECT_EQ(modal_container, modal_widget->GetNativeWindow()->parent());
280 272
281 modal_widget->Close(); 273 modal_widget->Close();
282 widget->Close(); 274 widget->Close();
283 } 275 }
284 276
285 class TestModalDialogDelegate : public views::DialogDelegateView { 277 class TestModalDialogDelegate : public views::DialogDelegateView {
286 public: 278 public:
287 TestModalDialogDelegate() {} 279 TestModalDialogDelegate() {}
288 280
(...skipping 12 matching lines...) Expand all
301 widget->Show(); 293 widget->Show();
302 EXPECT_TRUE(widget->GetNativeView()->HasFocus()); 294 EXPECT_TRUE(widget->GetNativeView()->HasFocus());
303 295
304 // It should be in default container. 296 // It should be in default container.
305 EXPECT_TRUE(GetDefaultContainer()->Contains( 297 EXPECT_TRUE(GetDefaultContainer()->Contains(
306 widget->GetNativeWindow()->parent())); 298 widget->GetNativeWindow()->parent()));
307 299
308 Shell::GetInstance()->session_state_delegate()->LockScreen(); 300 Shell::GetInstance()->session_state_delegate()->LockScreen();
309 // Create a LockScreen window. 301 // Create a LockScreen window.
310 views::Widget* lock_widget = CreateTestWindow(widget_params); 302 views::Widget* lock_widget = CreateTestWindow(widget_params);
311 ash::Shell::GetContainer( 303 ash::Shell::GetContainer(Shell::GetPrimaryRootWindow(),
312 Shell::GetPrimaryRootWindow(), 304 ash::kShellWindowId_LockScreenContainer)
313 ash::internal::kShellWindowId_LockScreenContainer)-> 305 ->AddChild(lock_widget->GetNativeView());
314 AddChild(lock_widget->GetNativeView());
315 lock_widget->Show(); 306 lock_widget->Show();
316 EXPECT_TRUE(lock_widget->GetNativeView()->HasFocus()); 307 EXPECT_TRUE(lock_widget->GetNativeView()->HasFocus());
317 308
318 // It should be in LockScreen container. 309 // It should be in LockScreen container.
319 aura::Window* lock_screen = Shell::GetContainer( 310 aura::Window* lock_screen = Shell::GetContainer(
320 Shell::GetPrimaryRootWindow(), 311 Shell::GetPrimaryRootWindow(), ash::kShellWindowId_LockScreenContainer);
321 ash::internal::kShellWindowId_LockScreenContainer);
322 EXPECT_EQ(lock_screen, lock_widget->GetNativeWindow()->parent()); 312 EXPECT_EQ(lock_screen, lock_widget->GetNativeWindow()->parent());
323 313
324 // Create a modal window with a lock window as parent. 314 // Create a modal window with a lock window as parent.
325 views::Widget* lock_modal_widget = views::Widget::CreateWindowWithParent( 315 views::Widget* lock_modal_widget = views::Widget::CreateWindowWithParent(
326 new ModalWindow(), lock_widget->GetNativeView()); 316 new ModalWindow(), lock_widget->GetNativeView());
327 lock_modal_widget->Show(); 317 lock_modal_widget->Show();
328 EXPECT_TRUE(lock_modal_widget->GetNativeView()->HasFocus()); 318 EXPECT_TRUE(lock_modal_widget->GetNativeView()->HasFocus());
329 319
330 // It should be in LockScreen modal container. 320 // It should be in LockScreen modal container.
331 aura::Window* lock_modal_container = Shell::GetContainer( 321 aura::Window* lock_modal_container =
332 Shell::GetPrimaryRootWindow(), 322 Shell::GetContainer(Shell::GetPrimaryRootWindow(),
333 ash::internal::kShellWindowId_LockSystemModalContainer); 323 ash::kShellWindowId_LockSystemModalContainer);
334 EXPECT_EQ(lock_modal_container, 324 EXPECT_EQ(lock_modal_container,
335 lock_modal_widget->GetNativeWindow()->parent()); 325 lock_modal_widget->GetNativeWindow()->parent());
336 326
337 // Create a modal window with a normal window as parent. 327 // Create a modal window with a normal window as parent.
338 views::Widget* modal_widget = views::Widget::CreateWindowWithParent( 328 views::Widget* modal_widget = views::Widget::CreateWindowWithParent(
339 new ModalWindow(), widget->GetNativeView()); 329 new ModalWindow(), widget->GetNativeView());
340 modal_widget->Show(); 330 modal_widget->Show();
341 // Window on lock screen shouldn't lost focus. 331 // Window on lock screen shouldn't lost focus.
342 EXPECT_FALSE(modal_widget->GetNativeView()->HasFocus()); 332 EXPECT_FALSE(modal_widget->GetNativeView()->HasFocus());
343 EXPECT_TRUE(lock_modal_widget->GetNativeView()->HasFocus()); 333 EXPECT_TRUE(lock_modal_widget->GetNativeView()->HasFocus());
344 334
345 // It should be in non-LockScreen modal container. 335 // It should be in non-LockScreen modal container.
346 aura::Window* modal_container = Shell::GetContainer( 336 aura::Window* modal_container = Shell::GetContainer(
347 Shell::GetPrimaryRootWindow(), 337 Shell::GetPrimaryRootWindow(), ash::kShellWindowId_SystemModalContainer);
348 ash::internal::kShellWindowId_SystemModalContainer);
349 EXPECT_EQ(modal_container, modal_widget->GetNativeWindow()->parent()); 338 EXPECT_EQ(modal_container, modal_widget->GetNativeWindow()->parent());
350 339
351 // Modal dialog without parent, caused crash see crbug.com/226141 340 // Modal dialog without parent, caused crash see crbug.com/226141
352 views::Widget* modal_dialog = views::DialogDelegate::CreateDialogWidget( 341 views::Widget* modal_dialog = views::DialogDelegate::CreateDialogWidget(
353 new TestModalDialogDelegate(), CurrentContext(), NULL); 342 new TestModalDialogDelegate(), CurrentContext(), NULL);
354 343
355 modal_dialog->Show(); 344 modal_dialog->Show();
356 EXPECT_FALSE(modal_dialog->GetNativeView()->HasFocus()); 345 EXPECT_FALSE(modal_dialog->GetNativeView()->HasFocus());
357 EXPECT_TRUE(lock_modal_widget->GetNativeView()->HasFocus()); 346 EXPECT_TRUE(lock_modal_widget->GetNativeView()->HasFocus());
358 347
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
401 ExpectAllContainers(); 390 ExpectAllContainers();
402 // Shelf is visible. 391 // Shelf is visible.
403 ShelfWidget* shelf_widget = Shelf::ForPrimaryDisplay()->shelf_widget(); 392 ShelfWidget* shelf_widget = Shelf::ForPrimaryDisplay()->shelf_widget();
404 EXPECT_TRUE(shelf_widget->IsVisible()); 393 EXPECT_TRUE(shelf_widget->IsVisible());
405 // Shelf is at bottom-left of screen. 394 // Shelf is at bottom-left of screen.
406 EXPECT_EQ(0, shelf_widget->GetWindowBoundsInScreen().x()); 395 EXPECT_EQ(0, shelf_widget->GetWindowBoundsInScreen().x());
407 EXPECT_EQ(Shell::GetPrimaryRootWindow()->GetHost()->GetBounds().height(), 396 EXPECT_EQ(Shell::GetPrimaryRootWindow()->GetHost()->GetBounds().height(),
408 shelf_widget->GetWindowBoundsInScreen().bottom()); 397 shelf_widget->GetWindowBoundsInScreen().bottom());
409 // We have a desktop background but not a bare layer. 398 // We have a desktop background but not a bare layer.
410 // TODO (antrim): enable once we find out why it fails component build. 399 // TODO (antrim): enable once we find out why it fails component build.
411 // internal::DesktopBackgroundWidgetController* background = 400 // DesktopBackgroundWidgetController* background =
412 // Shell::GetPrimaryRootWindow()-> 401 // Shell::GetPrimaryRootWindow()->
413 // GetProperty(internal::kWindowDesktopComponent); 402 // GetProperty(kWindowDesktopComponent);
414 // EXPECT_TRUE(background); 403 // EXPECT_TRUE(background);
415 // EXPECT_TRUE(background->widget()); 404 // EXPECT_TRUE(background->widget());
416 // EXPECT_FALSE(background->layer()); 405 // EXPECT_FALSE(background->layer());
417 406
418 // Create a normal window. It is not maximized. 407 // Create a normal window. It is not maximized.
419 views::Widget::InitParams widget_params( 408 views::Widget::InitParams widget_params(
420 views::Widget::InitParams::TYPE_WINDOW); 409 views::Widget::InitParams::TYPE_WINDOW);
421 widget_params.bounds.SetRect(11, 22, 300, 400); 410 widget_params.bounds.SetRect(11, 22, 300, 400);
422 views::Widget* widget = CreateTestWindow(widget_params); 411 views::Widget* widget = CreateTestWindow(widget_params);
423 widget->Show(); 412 widget->Show();
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
542 private: 531 private:
543 DISALLOW_COPY_AND_ASSIGN(ShellTest2); 532 DISALLOW_COPY_AND_ASSIGN(ShellTest2);
544 }; 533 };
545 534
546 TEST_F(ShellTest2, DontCrashWhenWindowDeleted) { 535 TEST_F(ShellTest2, DontCrashWhenWindowDeleted) {
547 window_.reset(new aura::Window(NULL)); 536 window_.reset(new aura::Window(NULL));
548 window_->Init(aura::WINDOW_LAYER_NOT_DRAWN); 537 window_->Init(aura::WINDOW_LAYER_NOT_DRAWN);
549 } 538 }
550 539
551 } // namespace ash 540 } // namespace ash
OLDNEW
« no previous file with comments | « ash/shell_factory.h ('k') | ash/shell_window_ids.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698