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

Side by Side Diff: ash/screen_ash_unittest.cc

Issue 138003007: [Cleanup] Screen cleanup (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: make sure screen_for_shutdown is reset everytime Created 6 years, 11 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/screen_ash.cc ('k') | ash/screen_util.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "ash/screen_ash.h"
6
7 #include "ash/root_window_controller.h"
8 #include "ash/shelf/shelf_layout_manager.h"
9 #include "ash/shelf/shelf_widget.h"
10 #include "ash/shell.h"
11 #include "ash/test/ash_test_base.h"
12 #include "ash/wm/window_util.h"
13 #include "ui/aura/env.h"
14 #include "ui/aura/root_window.h"
15 #include "ui/aura/window.h"
16 #include "ui/views/widget/widget.h"
17 #include "ui/views/widget/widget_delegate.h"
18
19 namespace ash {
20 namespace test {
21
22 typedef test::AshTestBase ScreenAshTest;
23
24 TEST_F(ScreenAshTest, Bounds) {
25 if (!SupportsMultipleDisplays())
26 return;
27
28 UpdateDisplay("600x600,500x500");
29 Shell::GetPrimaryRootWindowController()->GetShelfLayoutManager()->
30 SetAutoHideBehavior(ash::SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS);
31
32 views::Widget* primary = views::Widget::CreateWindowWithContextAndBounds(
33 NULL, CurrentContext(), gfx::Rect(10, 10, 100, 100));
34 primary->Show();
35 views::Widget* secondary = views::Widget::CreateWindowWithContextAndBounds(
36 NULL, CurrentContext(), gfx::Rect(610, 10, 100, 100));
37 secondary->Show();
38
39 // Maximized bounds
40 EXPECT_EQ("0,0 600x597",
41 ScreenAsh::GetMaximizedWindowBoundsInParent(
42 primary->GetNativeView()).ToString());
43 EXPECT_EQ("0,0 500x453",
44 ScreenAsh::GetMaximizedWindowBoundsInParent(
45 secondary->GetNativeView()).ToString());
46
47 // Display bounds
48 EXPECT_EQ("0,0 600x600",
49 ScreenAsh::GetDisplayBoundsInParent(
50 primary->GetNativeView()).ToString());
51 EXPECT_EQ("0,0 500x500",
52 ScreenAsh::GetDisplayBoundsInParent(
53 secondary->GetNativeView()).ToString());
54
55 // Work area bounds
56 EXPECT_EQ("0,0 600x597",
57 ScreenAsh::GetDisplayWorkAreaBoundsInParent(
58 primary->GetNativeView()).ToString());
59 EXPECT_EQ("0,0 500x453",
60 ScreenAsh::GetDisplayWorkAreaBoundsInParent(
61 secondary->GetNativeView()).ToString());
62 }
63
64 // Test verifies a stable handling of secondary screen widget changes
65 // (crbug.com/226132).
66 TEST_F(ScreenAshTest, StabilityTest) {
67 if (!SupportsMultipleDisplays())
68 return;
69
70 UpdateDisplay("600x600,500x500");
71 views::Widget* secondary = views::Widget::CreateWindowWithContextAndBounds(
72 NULL, CurrentContext(), gfx::Rect(610, 10, 100, 100));
73 EXPECT_EQ(Shell::GetAllRootWindows()[1],
74 secondary->GetNativeView()->GetRootWindow());
75 secondary->Show();
76 secondary->Maximize();
77 secondary->Show();
78 secondary->SetFullscreen(true);
79 secondary->Hide();
80 secondary->Close();
81 }
82
83 TEST_F(ScreenAshTest, ConvertRect) {
84 if (!SupportsMultipleDisplays())
85 return;
86
87 UpdateDisplay("600x600,500x500");
88
89 views::Widget* primary = views::Widget::CreateWindowWithContextAndBounds(
90 NULL, CurrentContext(), gfx::Rect(10, 10, 100, 100));
91 primary->Show();
92 views::Widget* secondary = views::Widget::CreateWindowWithContextAndBounds(
93 NULL, CurrentContext(), gfx::Rect(610, 10, 100, 100));
94 secondary->Show();
95
96 EXPECT_EQ(
97 "0,0 100x100",
98 ScreenAsh::ConvertRectFromScreen(
99 primary->GetNativeView(), gfx::Rect(10, 10, 100, 100)).ToString());
100 EXPECT_EQ(
101 "10,10 100x100",
102 ScreenAsh::ConvertRectFromScreen(
103 secondary->GetNativeView(), gfx::Rect(620, 20, 100, 100)).ToString());
104
105 EXPECT_EQ(
106 "40,40 100x100",
107 ScreenAsh::ConvertRectToScreen(
108 primary->GetNativeView(), gfx::Rect(30, 30, 100, 100)).ToString());
109 EXPECT_EQ(
110 "650,50 100x100",
111 ScreenAsh::ConvertRectToScreen(
112 secondary->GetNativeView(), gfx::Rect(40, 40, 100, 100)).ToString());
113 }
114
115 } // namespace test
116 } // namespace ash
OLDNEW
« no previous file with comments | « ash/screen_ash.cc ('k') | ash/screen_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698