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

Side by Side Diff: chrome/browser/ui/panels/detached_panel_browsertest.cc

Issue 9546001: Support detaching/attaching panels via inter-strip drags. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix per feedback 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
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 "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/native_panel.h" 7 #include "chrome/browser/ui/panels/native_panel.h"
8 #include "chrome/browser/ui/panels/panel.h" 8 #include "chrome/browser/ui/panels/panel.h"
9 #include "chrome/browser/ui/panels/panel_drag_controller.h" 9 #include "chrome/browser/ui/panels/panel_drag_controller.h"
10 #include "chrome/browser/ui/panels/panel_manager.h" 10 #include "chrome/browser/ui/panels/panel_manager.h"
11 11
12 class DetachedPanelBrowserTest : public BasePanelBrowserTest { 12 class DetachedPanelBrowserTest : public BasePanelBrowserTest {
13 }; 13 };
14 14
15 IN_PROC_BROWSER_TEST_F(DetachedPanelBrowserTest, CheckDetachedPanelProperties) { 15 IN_PROC_BROWSER_TEST_F(DetachedPanelBrowserTest, CheckDetachedPanelProperties) {
16 PanelManager* panel_manager = PanelManager::GetInstance(); 16 PanelManager* panel_manager = PanelManager::GetInstance();
17 DetachedPanelStrip* detached_strip = panel_manager->detached_strip(); 17 DetachedPanelStrip* detached_strip = panel_manager->detached_strip();
18 18
19 // Create 2 panels. 19 // Create 2 panels.
20 Panel* panel1 = CreatePanelWithBounds("Panel1", gfx::Rect(0, 0, 250, 200)); 20 Panel* panel1 = CreateDetachedPanel("1", gfx::Rect(300, 200, 250, 200));
21 Panel* panel2 = CreatePanelWithBounds("Panel2", gfx::Rect(0, 0, 300, 200)); 21 Panel* panel2 = CreateDetachedPanel("2", gfx::Rect(350, 180, 300, 200));
22 22
23 EXPECT_TRUE(panel1->draggable());
24 EXPECT_TRUE(panel2->draggable());
25
26 // Move panels to detached strip.
27 EXPECT_EQ(2, panel_manager->num_panels());
28 EXPECT_EQ(0, detached_strip->num_panels());
29 panel_manager->MovePanelToStrip(panel1, PanelStrip::DETACHED);
30 panel_manager->MovePanelToStrip(panel2, PanelStrip::DETACHED);
31 EXPECT_EQ(2, panel_manager->num_panels()); 23 EXPECT_EQ(2, panel_manager->num_panels());
32 EXPECT_EQ(2, detached_strip->num_panels()); 24 EXPECT_EQ(2, detached_strip->num_panels());
33 25
34 EXPECT_TRUE(detached_strip->HasPanel(panel1)); 26 EXPECT_TRUE(detached_strip->HasPanel(panel1));
35 EXPECT_TRUE(detached_strip->HasPanel(panel2)); 27 EXPECT_TRUE(detached_strip->HasPanel(panel2));
36 28
37 EXPECT_TRUE(panel1->draggable()); 29 EXPECT_TRUE(panel1->draggable());
38 EXPECT_TRUE(panel2->draggable()); 30 EXPECT_TRUE(panel2->draggable());
39 31
40 panel_manager->CloseAll(); 32 panel_manager->CloseAll();
41 } 33 }
42 34
43 IN_PROC_BROWSER_TEST_F(DetachedPanelBrowserTest, DragDetachedPanel) { 35 IN_PROC_BROWSER_TEST_F(DetachedPanelBrowserTest, DragDetachedPanel) {
44 PanelManager* panel_manager = PanelManager::GetInstance(); 36 PanelManager* panel_manager = PanelManager::GetInstance();
45 37
46 // Create one detached panel. 38 // Create one detached panel.
jennb 2012/03/12 22:43:00 nit: Comment not needed anymore.
jianli 2012/03/13 00:21:40 Done.
47 Panel* panel = CreatePanelWithBounds("Panel1", gfx::Rect(0, 0, 250, 200)); 39 Panel* panel = CreateDetachedPanel("1", gfx::Rect(300, 200, 250, 200));
48 panel_manager->MovePanelToStrip(panel, PanelStrip::DETACHED);
49 40
50 // Test that the detached panel can be dragged anywhere. 41 // Test that the detached panel can be dragged almost anywhere except getting
42 // close to the bottom of the docked area to trigger the attach.
51 scoped_ptr<NativePanelTesting> panel_testing( 43 scoped_ptr<NativePanelTesting> panel_testing(
52 NativePanelTesting::Create(panel->native_panel())); 44 NativePanelTesting::Create(panel->native_panel()));
53 gfx::Point origin = panel->GetBounds().origin(); 45 gfx::Point origin = panel->GetBounds().origin();
54 46
55 panel_testing->PressLeftMouseButtonTitlebar(origin); 47 panel_testing->PressLeftMouseButtonTitlebar(origin);
56 EXPECT_EQ(origin, panel->GetBounds().origin()); 48 EXPECT_EQ(origin, panel->GetBounds().origin());
57 49
58 origin.Offset(-51, -102); 50 origin.Offset(-51, -102);
59 panel_testing->DragTitlebar(origin); 51 panel_testing->DragTitlebar(origin);
60 EXPECT_EQ(origin, panel->GetBounds().origin()); 52 EXPECT_EQ(origin, panel->GetBounds().origin());
(...skipping 27 matching lines...) Expand all
88 80
89 panel_manager->CloseAll(); 81 panel_manager->CloseAll();
90 } 82 }
91 83
92 IN_PROC_BROWSER_TEST_F(DetachedPanelBrowserTest, CloseDetachedPanelOnDrag) { 84 IN_PROC_BROWSER_TEST_F(DetachedPanelBrowserTest, CloseDetachedPanelOnDrag) {
93 PanelManager* panel_manager = PanelManager::GetInstance(); 85 PanelManager* panel_manager = PanelManager::GetInstance();
94 PanelDragController* drag_controller = panel_manager->drag_controller(); 86 PanelDragController* drag_controller = panel_manager->drag_controller();
95 DetachedPanelStrip* detached_strip = panel_manager->detached_strip(); 87 DetachedPanelStrip* detached_strip = panel_manager->detached_strip();
96 88
97 // Create 4 detached panels. 89 // Create 4 detached panels.
98 Panel* panel1 = CreatePanelWithBounds("Panel1", gfx::Rect(0, 0, 100, 100)); 90 Panel* panel1 = CreateDetachedPanel("1", gfx::Rect(100, 200, 100, 100));
99 Panel* panel2 = CreatePanelWithBounds("Panel2", gfx::Rect(0, 0, 110, 110)); 91 Panel* panel2 = CreateDetachedPanel("2", gfx::Rect(200, 210, 110, 110));
100 Panel* panel3 = CreatePanelWithBounds("Panel3", gfx::Rect(0, 0, 120, 120)); 92 Panel* panel3 = CreateDetachedPanel("3", gfx::Rect(300, 220, 120, 120));
101 Panel* panel4 = CreatePanelWithBounds("Panel4", gfx::Rect(0, 0, 130, 130)); 93 Panel* panel4 = CreateDetachedPanel("4", gfx::Rect(400, 230, 130, 130));
102 panel_manager->MovePanelToStrip(panel1, PanelStrip::DETACHED);
103 panel_manager->MovePanelToStrip(panel2, PanelStrip::DETACHED);
104 panel_manager->MovePanelToStrip(panel3, PanelStrip::DETACHED);
105 panel_manager->MovePanelToStrip(panel4, PanelStrip::DETACHED);
106 ASSERT_EQ(4, detached_strip->num_panels()); 94 ASSERT_EQ(4, detached_strip->num_panels());
107 95
108 scoped_ptr<NativePanelTesting> panel1_testing( 96 scoped_ptr<NativePanelTesting> panel1_testing(
109 NativePanelTesting::Create(panel1->native_panel())); 97 NativePanelTesting::Create(panel1->native_panel()));
110 gfx::Point panel1_old_position = panel1->GetBounds().origin(); 98 gfx::Point panel1_old_position = panel1->GetBounds().origin();
111 gfx::Point panel2_position = panel2->GetBounds().origin(); 99 gfx::Point panel2_position = panel2->GetBounds().origin();
112 gfx::Point panel3_position = panel3->GetBounds().origin(); 100 gfx::Point panel3_position = panel3->GetBounds().origin();
113 gfx::Point panel4_position = panel4->GetBounds().origin(); 101 gfx::Point panel4_position = panel4->GetBounds().origin();
114 102
115 // Test the scenario: drag a panel, close another panel, cancel the drag. 103 // Test the scenario: drag a panel, close another panel, cancel the drag.
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 CloseWindowAndWait(panel1->browser()); 211 CloseWindowAndWait(panel1->browser());
224 EXPECT_FALSE(drag_controller->IsDragging()); 212 EXPECT_FALSE(drag_controller->IsDragging());
225 213
226 ASSERT_EQ(1, detached_strip->num_panels()); 214 ASSERT_EQ(1, detached_strip->num_panels());
227 EXPECT_TRUE(detached_strip->HasPanel(panel4)); 215 EXPECT_TRUE(detached_strip->HasPanel(panel4));
228 EXPECT_EQ(panel4_position, panel4->GetBounds().origin()); 216 EXPECT_EQ(panel4_position, panel4->GetBounds().origin());
229 } 217 }
230 218
231 panel_manager->CloseAll(); 219 panel_manager->CloseAll();
232 } 220 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698