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

Side by Side Diff: ash/shell_unittest.cc

Issue 11418114: Add policy for ash launcher auto-hide behavior (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased. 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 | « ash/shell/context_menu.cc ('k') | ash/wm/shelf_layout_manager.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 334 matching lines...) Expand 10 before | Expand all | Expand 10 after
345 std::vector<aura::Window*> results; 345 std::vector<aura::Window*> results;
346 while (window) { 346 while (window) {
347 results.push_back(window); 347 results.push_back(window);
348 window = window->parent(); 348 window = window->parent();
349 } 349 }
350 return results; 350 return results;
351 } 351 }
352 352
353 } // namespace 353 } // namespace
354 354
355 // Various assertions around IsAutoHideMenuHideChecked() and 355 // Various assertions around SetShelfAutoHideBehavior() and
356 // ToggleAutoHideMenu(). 356 // GetShelfAutoHideBehavior().
357 TEST_F(ShellTest, ToggleAutoHide) { 357 TEST_F(ShellTest, ToggleAutoHide) {
358 scoped_ptr<aura::Window> window(new aura::Window(NULL)); 358 scoped_ptr<aura::Window> window(new aura::Window(NULL));
359 window->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_NORMAL); 359 window->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_NORMAL);
360 window->SetType(aura::client::WINDOW_TYPE_NORMAL); 360 window->SetType(aura::client::WINDOW_TYPE_NORMAL);
361 window->Init(ui::LAYER_TEXTURED); 361 window->Init(ui::LAYER_TEXTURED);
362 SetDefaultParentByPrimaryRootWindow(window.get()); 362 SetDefaultParentByPrimaryRootWindow(window.get());
363 window->Show(); 363 window->Show();
364 wm::ActivateWindow(window.get()); 364 wm::ActivateWindow(window.get());
365 365
366 internal::RootWindowController* controller = 366 Shell* shell = Shell::GetInstance();
367 Shell::GetPrimaryRootWindowController(); 367 aura::RootWindow* root_window = Shell::GetPrimaryRootWindow();
368 controller->SetShelfAutoHideBehavior(ash::SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); 368 shell->SetShelfAutoHideBehavior(ash::SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS,
369 root_window);
369 EXPECT_EQ(ash::SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, 370 EXPECT_EQ(ash::SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS,
370 controller->GetShelfAutoHideBehavior()); 371 shell->GetShelfAutoHideBehavior(root_window));
371 EXPECT_TRUE(controller->IsShelfAutoHideMenuHideChecked()); 372 shell->SetShelfAutoHideBehavior(ash::SHELF_AUTO_HIDE_BEHAVIOR_NEVER,
372 controller->SetShelfAutoHideBehavior( 373 root_window);
373 controller->GetToggledShelfAutoHideBehavior());
374 EXPECT_EQ(ash::SHELF_AUTO_HIDE_BEHAVIOR_NEVER, 374 EXPECT_EQ(ash::SHELF_AUTO_HIDE_BEHAVIOR_NEVER,
375 controller->GetShelfAutoHideBehavior()); 375 shell->GetShelfAutoHideBehavior(root_window));
376
377 window->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED); 376 window->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED);
378 EXPECT_FALSE(controller->IsShelfAutoHideMenuHideChecked()); 377 EXPECT_EQ(ash::SHELF_AUTO_HIDE_BEHAVIOR_NEVER,
379 controller->SetShelfAutoHideBehavior( 378 shell->GetShelfAutoHideBehavior(root_window));
380 controller->GetToggledShelfAutoHideBehavior()); 379 shell->SetShelfAutoHideBehavior(ash::SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS,
380 root_window);
381 EXPECT_EQ(ash::SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, 381 EXPECT_EQ(ash::SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS,
382 controller->GetShelfAutoHideBehavior()); 382 shell->GetShelfAutoHideBehavior(root_window));
383 EXPECT_TRUE(controller->IsShelfAutoHideMenuHideChecked()); 383 shell->SetShelfAutoHideBehavior(ash::SHELF_AUTO_HIDE_BEHAVIOR_NEVER,
384 controller->SetShelfAutoHideBehavior( 384 root_window);
385 controller->GetToggledShelfAutoHideBehavior());
386 EXPECT_EQ(ash::SHELF_AUTO_HIDE_BEHAVIOR_NEVER, 385 EXPECT_EQ(ash::SHELF_AUTO_HIDE_BEHAVIOR_NEVER,
387 controller->GetShelfAutoHideBehavior()); 386 shell->GetShelfAutoHideBehavior(root_window));
388 } 387 }
389 388
390 // This verifies WindowObservers are removed when a window is destroyed after 389 // This verifies WindowObservers are removed when a window is destroyed after
391 // the Shell is destroyed. This scenario (aura::Windows being deleted after the 390 // the Shell is destroyed. This scenario (aura::Windows being deleted after the
392 // Shell) occurs if someone is holding a reference to an unparented Window, as 391 // Shell) occurs if someone is holding a reference to an unparented Window, as
393 // is the case with a RenderWidgetHostViewAura that isn't on screen. As long as 392 // is the case with a RenderWidgetHostViewAura that isn't on screen. As long as
394 // everything is ok, we won't crash. If there is a bug, window's destructor will 393 // everything is ok, we won't crash. If there is a bug, window's destructor will
395 // notify some deleted object (say VideoDetector or ActivationController) and 394 // notify some deleted object (say VideoDetector or ActivationController) and
396 // this will crash. 395 // this will crash.
397 class ShellTest2 : public test::AshTestBase { 396 class ShellTest2 : public test::AshTestBase {
398 public: 397 public:
399 ShellTest2() {} 398 ShellTest2() {}
400 virtual ~ShellTest2() {} 399 virtual ~ShellTest2() {}
401 400
402 protected: 401 protected:
403 scoped_ptr<aura::Window> window_; 402 scoped_ptr<aura::Window> window_;
404 403
405 private: 404 private:
406 DISALLOW_COPY_AND_ASSIGN(ShellTest2); 405 DISALLOW_COPY_AND_ASSIGN(ShellTest2);
407 }; 406 };
408 407
409 TEST_F(ShellTest2, DontCrashWhenWindowDeleted) { 408 TEST_F(ShellTest2, DontCrashWhenWindowDeleted) {
410 window_.reset(new aura::Window(NULL)); 409 window_.reset(new aura::Window(NULL));
411 window_->Init(ui::LAYER_NOT_DRAWN); 410 window_->Init(ui::LAYER_NOT_DRAWN);
412 } 411 }
413 412
414 } // namespace ash 413 } // namespace ash
OLDNEW
« no previous file with comments | « ash/shell/context_menu.cc ('k') | ash/wm/shelf_layout_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698