OLD | NEW |
---|---|
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 "chrome/browser/ui/panels/base_panel_browser_test.h" | 5 #include "chrome/browser/ui/panels/base_panel_browser_test.h" |
6 #include "chrome/browser/ui/panels/detached_panel_strip.h" | 6 #include "chrome/browser/ui/panels/detached_panel_strip.h" |
7 #include "chrome/browser/ui/panels/panel.h" | 7 #include "chrome/browser/ui/panels/panel.h" |
8 #include "chrome/browser/ui/panels/panel_manager.h" | 8 #include "chrome/browser/ui/panels/panel_manager.h" |
9 #include "chrome/browser/ui/panels/panel_resize_controller.h" | 9 #include "chrome/browser/ui/panels/panel_resize_controller.h" |
10 | 10 |
11 class PanelResizeBrowserTest : public BasePanelBrowserTest { | 11 class PanelResizeBrowserTest : public BasePanelBrowserTest { |
12 public: | 12 public: |
13 PanelResizeBrowserTest() : BasePanelBrowserTest() { | 13 PanelResizeBrowserTest() : BasePanelBrowserTest() { |
14 } | 14 } |
15 | 15 |
16 virtual ~PanelResizeBrowserTest() { | 16 virtual ~PanelResizeBrowserTest() { |
17 } | 17 } |
18 | 18 |
19 virtual void SetUpOnMainThread() OVERRIDE { | 19 virtual void SetUpOnMainThread() OVERRIDE { |
20 BasePanelBrowserTest::SetUpOnMainThread(); | 20 BasePanelBrowserTest::SetUpOnMainThread(); |
21 | 21 |
22 // All the tests here assume 800x600 work area. Do the check now. | 22 // All the tests here assume 800x600 work area. Do the check now. |
23 gfx::Rect display_area = PanelManager::GetInstance()-> | 23 gfx::Rect display_area = PanelManager::GetInstance()-> |
24 display_settings_provider()->GetDisplayArea(); | 24 display_settings_provider()->GetDisplayArea(); |
25 DCHECK(display_area.width() == 800); | 25 DCHECK(display_area.width() == 800); |
26 DCHECK(display_area.height() == 600); | 26 DCHECK(display_area.height() == 600); |
27 } | 27 } |
28 }; | 28 }; |
29 | 29 |
30 IN_PROC_BROWSER_TEST_F(PanelResizeBrowserTest, DockedPanelsAreNotResizable) { | 30 IN_PROC_BROWSER_TEST_F(PanelResizeBrowserTest, DockedPanelResizability) { |
31 PanelManager* panel_manager = PanelManager::GetInstance(); | 31 PanelManager* panel_manager = PanelManager::GetInstance(); |
32 Panel* panel = CreatePanel("Panel"); | 32 Panel* panel = CreatePanel("Panel"); |
33 | 33 |
34 EXPECT_FALSE(panel->CanResizeByMouse()); | 34 EXPECT_EQ(panel::ALL_SIDES_EXCEPT_BOTTOM, panel->CanResizeByMouse()); |
35 | 35 |
36 gfx::Rect bounds = panel->GetBounds(); | 36 gfx::Rect bounds = panel->GetBounds(); |
37 | 37 |
38 // Try resizing by the top left corner; verify resize won't work. | 38 // Try resizing by the top left corner; verify resize works. |
jianli
2012/04/13 00:52:36
I think it would be better to test all other edges
jennb
2012/04/13 19:48:04
Done.
| |
39 gfx::Point mouse_location = bounds.origin(); | 39 gfx::Point mouse_location = bounds.origin(); |
40 panel_manager->StartResizingByMouse(panel, mouse_location, | 40 panel_manager->StartResizingByMouse(panel, mouse_location, |
41 panel::RESIZE_TOP_LEFT); | 41 panel::RESIZE_TOP_LEFT); |
42 mouse_location.Offset(-20, -20); | 42 mouse_location.Offset(-20, -20); |
43 panel_manager->ResizeByMouse(mouse_location); | 43 panel_manager->ResizeByMouse(mouse_location); |
44 bounds.Offset(-20, -20); | |
44 EXPECT_EQ(bounds, panel->GetBounds()); | 45 EXPECT_EQ(bounds, panel->GetBounds()); |
45 | 46 |
46 panel_manager->EndResizingByMouse(false); | 47 panel_manager->EndResizingByMouse(false); |
47 EXPECT_EQ(bounds, panel->GetBounds()); | 48 EXPECT_EQ(bounds, panel->GetBounds()); |
48 | 49 |
49 // Try resizing by the bottom side; verify resize won't work. | 50 // Try resizing by the bottom side; verify resize won't work. |
50 mouse_location = bounds.origin().Add(gfx::Point(10, bounds.height() - 1)); | 51 mouse_location = bounds.origin().Add(gfx::Point(10, bounds.height() - 1)); |
51 panel_manager->StartResizingByMouse(panel, mouse_location, | 52 panel_manager->StartResizingByMouse(panel, mouse_location, |
52 panel::RESIZE_BOTTOM); | 53 panel::RESIZE_BOTTOM); |
53 mouse_location.Offset(30, -10); | 54 mouse_location.Offset(30, -10); |
(...skipping 15 matching lines...) Expand all Loading... | |
69 panel_manager->EndResizingByMouse(false); | 70 panel_manager->EndResizingByMouse(false); |
70 EXPECT_EQ(bounds, panel->GetBounds()); | 71 EXPECT_EQ(bounds, panel->GetBounds()); |
71 | 72 |
72 panel->Close(); | 73 panel->Close(); |
73 } | 74 } |
74 | 75 |
75 IN_PROC_BROWSER_TEST_F(PanelResizeBrowserTest, ResizeDetachedPanel) { | 76 IN_PROC_BROWSER_TEST_F(PanelResizeBrowserTest, ResizeDetachedPanel) { |
76 PanelManager* panel_manager = PanelManager::GetInstance(); | 77 PanelManager* panel_manager = PanelManager::GetInstance(); |
77 Panel* panel = CreateDetachedPanel("Panel", gfx::Rect(300, 200, 150, 100)); | 78 Panel* panel = CreateDetachedPanel("Panel", gfx::Rect(300, 200, 150, 100)); |
78 | 79 |
79 EXPECT_TRUE(panel->CanResizeByMouse()); | 80 EXPECT_EQ(panel::ALL_SIDES, panel->CanResizeByMouse()); |
80 | 81 |
81 gfx::Rect bounds = panel->GetBounds(); | 82 gfx::Rect bounds = panel->GetBounds(); |
82 | 83 |
83 // Try resizing by the right side; verify resize will change width only. | 84 // Try resizing by the right side; verify resize will change width only. |
84 gfx::Point mouse_location = bounds.origin().Add( | 85 gfx::Point mouse_location = bounds.origin().Add( |
85 gfx::Point(bounds.width() - 1, 30)); | 86 gfx::Point(bounds.width() - 1, 30)); |
86 panel_manager->StartResizingByMouse(panel, mouse_location, | 87 panel_manager->StartResizingByMouse(panel, mouse_location, |
87 panel::RESIZE_RIGHT); | 88 panel::RESIZE_RIGHT); |
88 mouse_location.Offset(5, 25); | 89 mouse_location.Offset(5, 25); |
89 panel_manager->ResizeByMouse(mouse_location); | 90 panel_manager->ResizeByMouse(mouse_location); |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
136 panel_manager->EndResizingByMouse(false); | 137 panel_manager->EndResizingByMouse(false); |
137 EXPECT_EQ(bounds, panel->GetBounds()); | 138 EXPECT_EQ(bounds, panel->GetBounds()); |
138 | 139 |
139 PanelManager::GetInstance()->CloseAll(); | 140 PanelManager::GetInstance()->CloseAll(); |
140 } | 141 } |
141 | 142 |
142 IN_PROC_BROWSER_TEST_F(PanelResizeBrowserTest, ResizeDetachedPanelToClampSize) { | 143 IN_PROC_BROWSER_TEST_F(PanelResizeBrowserTest, ResizeDetachedPanelToClampSize) { |
143 PanelManager* panel_manager = PanelManager::GetInstance(); | 144 PanelManager* panel_manager = PanelManager::GetInstance(); |
144 Panel* panel = CreateDetachedPanel("Panel", gfx::Rect(300, 200, 150, 100)); | 145 Panel* panel = CreateDetachedPanel("Panel", gfx::Rect(300, 200, 150, 100)); |
145 | 146 |
146 EXPECT_TRUE(panel->CanResizeByMouse()); | 147 EXPECT_EQ(panel::ALL_SIDES, panel->CanResizeByMouse()); |
147 | 148 |
148 gfx::Rect bounds = panel->GetBounds(); | 149 gfx::Rect bounds = panel->GetBounds(); |
149 | 150 |
150 // Make sure the panel does not resize smaller than its min size. | 151 // Make sure the panel does not resize smaller than its min size. |
151 gfx::Point mouse_location = bounds.origin().Add( | 152 gfx::Point mouse_location = bounds.origin().Add( |
152 gfx::Point(30, bounds.height() - 2)); | 153 gfx::Point(30, bounds.height() - 2)); |
153 panel_manager->StartResizingByMouse(panel, mouse_location, | 154 panel_manager->StartResizingByMouse(panel, mouse_location, |
154 panel::RESIZE_BOTTOM); | 155 panel::RESIZE_BOTTOM); |
155 mouse_location.Offset(-20, -500); | 156 mouse_location.Offset(-20, -500); |
156 panel_manager->ResizeByMouse(mouse_location); | 157 panel_manager->ResizeByMouse(mouse_location); |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
238 EXPECT_EQ(panel1_bounds, panel1->GetBounds()); | 239 EXPECT_EQ(panel1_bounds, panel1->GetBounds()); |
239 | 240 |
240 panel_manager->CloseAll(); | 241 panel_manager->CloseAll(); |
241 } | 242 } |
242 | 243 |
243 IN_PROC_BROWSER_TEST_F(PanelResizeBrowserTest, ResizeAndCancel) { | 244 IN_PROC_BROWSER_TEST_F(PanelResizeBrowserTest, ResizeAndCancel) { |
244 PanelManager* panel_manager = PanelManager::GetInstance(); | 245 PanelManager* panel_manager = PanelManager::GetInstance(); |
245 Panel* panel = CreateDetachedPanel("Panel", gfx::Rect(300, 200, 150, 100)); | 246 Panel* panel = CreateDetachedPanel("Panel", gfx::Rect(300, 200, 150, 100)); |
246 PanelResizeController* resize_controller = panel_manager->resize_controller(); | 247 PanelResizeController* resize_controller = panel_manager->resize_controller(); |
247 | 248 |
248 EXPECT_TRUE(panel->CanResizeByMouse()); | 249 EXPECT_EQ(panel::ALL_SIDES, panel->CanResizeByMouse()); |
249 | 250 |
250 gfx::Rect original_bounds = panel->GetBounds(); | 251 gfx::Rect original_bounds = panel->GetBounds(); |
251 | 252 |
252 // Resizing the panel, then cancelling should return it to the original state. | 253 // Resizing the panel, then cancelling should return it to the original state. |
253 // Try resizing by the top right side. | 254 // Try resizing by the top right side. |
254 gfx::Rect bounds = panel->GetBounds(); | 255 gfx::Rect bounds = panel->GetBounds(); |
255 gfx::Point mouse_location = bounds.origin().Add( | 256 gfx::Point mouse_location = bounds.origin().Add( |
256 gfx::Point(bounds.width() - 1, 1)); | 257 gfx::Point(bounds.width() - 1, 1)); |
257 panel_manager->StartResizingByMouse(panel, mouse_location, | 258 panel_manager->StartResizingByMouse(panel, mouse_location, |
258 panel::RESIZE_TOP_RIGHT); | 259 panel::RESIZE_TOP_RIGHT); |
(...skipping 19 matching lines...) Expand all Loading... | |
278 bounds.set_size(gfx::Size(bounds.width() + 10, bounds.height() + 15)); | 279 bounds.set_size(gfx::Size(bounds.width() + 10, bounds.height() + 15)); |
279 bounds.Offset(-10, 0); | 280 bounds.Offset(-10, 0); |
280 EXPECT_EQ(bounds, panel->GetBounds()); | 281 EXPECT_EQ(bounds, panel->GetBounds()); |
281 | 282 |
282 panel_manager->EndResizingByMouse(true); | 283 panel_manager->EndResizingByMouse(true); |
283 EXPECT_EQ(original_bounds, panel->GetBounds()); | 284 EXPECT_EQ(original_bounds, panel->GetBounds()); |
284 EXPECT_FALSE(resize_controller->IsResizing()); | 285 EXPECT_FALSE(resize_controller->IsResizing()); |
285 | 286 |
286 panel_manager->CloseAll(); | 287 panel_manager->CloseAll(); |
287 } | 288 } |
OLD | NEW |