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

Side by Side Diff: ash/shell_unittest.cc

Issue 9630002: Ash: Remove compact window mode. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: OpaqueBrowserFrameView, MultipleWindowIndicatorButton Created 8 years, 9 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_delegate.h ('k') | ash/test/ash_test_base.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/ash_switches.h" 5 #include "ash/ash_switches.h"
6 #include "ash/launcher/launcher.h" 6 #include "ash/launcher/launcher.h"
7 #include "ash/shell.h" 7 #include "ash/shell.h"
8 #include "ash/shell_window_ids.h" 8 #include "ash/shell_window_ids.h"
9 #include "ash/test/ash_test_base.h" 9 #include "ash/test/ash_test_base.h"
10 #include "ash/wm/root_window_layout_manager.h" 10 #include "ash/wm/root_window_layout_manager.h"
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 lock_modal_widget->Show(); 280 lock_modal_widget->Show();
281 EXPECT_FALSE(Shell::GetInstance()->IsScreenLocked()); 281 EXPECT_FALSE(Shell::GetInstance()->IsScreenLocked());
282 lock_widget->Show(); 282 lock_widget->Show();
283 EXPECT_TRUE(Shell::GetInstance()->IsScreenLocked()); 283 EXPECT_TRUE(Shell::GetInstance()->IsScreenLocked());
284 lock_modal_widget->Close(); 284 lock_modal_widget->Close();
285 EXPECT_TRUE(Shell::GetInstance()->IsScreenLocked()); 285 EXPECT_TRUE(Shell::GetInstance()->IsScreenLocked());
286 lock_widget->Close(); 286 lock_widget->Close();
287 EXPECT_FALSE(Shell::GetInstance()->IsScreenLocked()); 287 EXPECT_FALSE(Shell::GetInstance()->IsScreenLocked());
288 } 288 }
289 289
290 TEST_F(ShellTest, ComputeWindowMode) {
291 // By default, we use managed mode.
292 Shell* shell = Shell::GetInstance();
293 Shell::TestApi test_api(shell);
294 CommandLine command_line_blank(CommandLine::NO_PROGRAM);
295 EXPECT_EQ(Shell::MODE_MANAGED,
296 test_api.ComputeWindowMode(&command_line_blank));
297
298 // Sometimes we force compact mode.
299 CommandLine command_line_force(CommandLine::NO_PROGRAM);
300 command_line_force.AppendSwitch(switches::kAuraForceCompactWindowMode);
301 EXPECT_EQ(Shell::MODE_COMPACT,
302 test_api.ComputeWindowMode(&command_line_force));
303
304 // The user can set compact mode.
305 CommandLine command_line_compact(CommandLine::NO_PROGRAM);
306 command_line_compact.AppendSwitchASCII(switches::kAuraWindowMode,
307 switches::kAuraWindowModeCompact);
308 EXPECT_EQ(Shell::MODE_COMPACT,
309 test_api.ComputeWindowMode(&command_line_compact));
310
311 // The user can set managed.
312 CommandLine command_line_managed(CommandLine::NO_PROGRAM);
313 command_line_managed.AppendSwitchASCII(switches::kAuraWindowMode,
314 switches::kAuraWindowModeManaged);
315 EXPECT_EQ(Shell::MODE_MANAGED,
316 test_api.ComputeWindowMode(&command_line_managed));
317 }
318
319 // Fails on Mac, see http://crbug.com/115662 290 // Fails on Mac, see http://crbug.com/115662
320 #if defined(OS_MACOSX) 291 #if defined(OS_MACOSX)
321 #define MAYBE_ManagedWindowModeBasics FAILS_ManagedWindowModeBasics 292 #define MAYBE_ManagedWindowModeBasics FAILS_ManagedWindowModeBasics
322 #else 293 #else
323 #define MAYBE_ManagedWindowModeBasics ManagedWindowModeBasics 294 #define MAYBE_ManagedWindowModeBasics ManagedWindowModeBasics
324 #endif 295 #endif
325 TEST_F(ShellTest, MAYBE_ManagedWindowModeBasics) { 296 TEST_F(ShellTest, MAYBE_ManagedWindowModeBasics) {
326 Shell* shell = Shell::GetInstance(); 297 Shell* shell = Shell::GetInstance();
327 Shell::TestApi test_api(shell); 298 Shell::TestApi test_api(shell);
328 299
329 // We start with the usual window containers. 300 // We start with the usual window containers.
330 ExpectAllContainers(); 301 ExpectAllContainers();
331 // We're not in compact window mode by default.
332 EXPECT_FALSE(shell->IsWindowModeCompact());
333 // We have a default container event filter (for window drags). 302 // We have a default container event filter (for window drags).
334 EXPECT_TRUE(GetDefaultContainer()->event_filter()); 303 EXPECT_TRUE(GetDefaultContainer()->event_filter());
335 // Launcher is visible. 304 // Launcher is visible.
336 views::Widget* launcher_widget = shell->launcher()->widget(); 305 views::Widget* launcher_widget = shell->launcher()->widget();
337 EXPECT_TRUE(launcher_widget->IsVisible()); 306 EXPECT_TRUE(launcher_widget->IsVisible());
338 // Launcher is at bottom-left of screen. 307 // Launcher is at bottom-left of screen.
339 EXPECT_EQ(0, launcher_widget->GetWindowScreenBounds().x()); 308 EXPECT_EQ(0, launcher_widget->GetWindowScreenBounds().x());
340 EXPECT_EQ(Shell::GetRootWindow()->GetHostSize().height(), 309 EXPECT_EQ(Shell::GetRootWindow()->GetHostSize().height(),
341 launcher_widget->GetWindowScreenBounds().bottom()); 310 launcher_widget->GetWindowScreenBounds().bottom());
342 // We have a desktop background but not a bare layer. 311 // We have a desktop background but not a bare layer.
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
374 EXPECT_FALSE(Shell::GetInstance()->shelf()->visible()); 343 EXPECT_FALSE(Shell::GetInstance()->shelf()->visible());
375 344
376 // Restoring the window restores it. 345 // Restoring the window restores it.
377 widget->Restore(); 346 widget->Restore();
378 EXPECT_TRUE(Shell::GetInstance()->shelf()->visible()); 347 EXPECT_TRUE(Shell::GetInstance()->shelf()->visible());
379 348
380 // Clean up. 349 // Clean up.
381 widget->Close(); 350 widget->Close();
382 } 351 }
383 352
384 // By implementing GetOverrideWindowMode we make the Shell come up in compact
385 // window mode.
386 class ShellCompactWindowModeTest : public test::AshTestBase {
387 public:
388 ShellCompactWindowModeTest() {}
389 virtual ~ShellCompactWindowModeTest() {}
390
391 protected:
392 virtual bool GetOverrideWindowMode(Shell::WindowMode* window_mode) {
393 *window_mode = Shell::MODE_COMPACT;
394 return true;
395 }
396
397 private:
398 DISALLOW_COPY_AND_ASSIGN(ShellCompactWindowModeTest);
399 };
400
401 TEST_F(ShellCompactWindowModeTest, CompactWindowModeBasics) {
402 Shell* shell = Shell::GetInstance();
403 Shell::TestApi test_api(shell);
404
405 EXPECT_TRUE(shell->IsWindowModeCompact());
406 // Compact mode does not use a default container event filter.
407 EXPECT_FALSE(GetDefaultContainer()->event_filter());
408 // We have all the usual containers.
409 ExpectAllContainers();
410
411 // Compact mode has no shelf.
412 EXPECT_TRUE(shell->shelf() == NULL);
413
414 // Create a window. In compact mode, windows are created maximized.
415 views::Widget::InitParams widget_params(
416 views::Widget::InitParams::TYPE_WINDOW);
417 widget_params.bounds.SetRect(11, 22, 300, 400);
418 widget_params.show_state = ui::SHOW_STATE_MAXIMIZED;
419 views::Widget* widget = CreateTestWindow(widget_params);
420 widget->Show();
421
422 // Window bounds got updated to fill the work area.
423 EXPECT_EQ(widget->GetWorkAreaBoundsInScreen(),
424 widget->GetWindowScreenBounds());
425 // Launcher is hidden.
426 views::Widget* launcher_widget = shell->launcher()->widget();
427 EXPECT_FALSE(launcher_widget->IsVisible());
428 // Desktop background widget is gone but we have a layer.
429 EXPECT_FALSE(test_api.root_window_layout()->background_widget());
430 EXPECT_TRUE(test_api.root_window_layout()->background_layer());
431
432 // Clean up.
433 widget->Close();
434 }
435
436 } // namespace ash 353 } // namespace ash
OLDNEW
« no previous file with comments | « ash/shell_delegate.h ('k') | ash/test/ash_test_base.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698