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

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

Issue 9195003: Move IN_OVERFLOW from Panel::ExpansionState to new enum. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix per feedback Created 8 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
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 <vector> 5 #include <vector>
6 #include "chrome/browser/ui/browser.h" 6 #include "chrome/browser/ui/browser.h"
7 #include "chrome/browser/ui/panels/base_panel_browser_test.h" 7 #include "chrome/browser/ui/panels/base_panel_browser_test.h"
8 #include "chrome/browser/ui/panels/native_panel.h" 8 #include "chrome/browser/ui/panels/native_panel.h"
9 #include "chrome/browser/ui/panels/panel.h" 9 #include "chrome/browser/ui/panels/panel.h"
10 #include "chrome/browser/ui/panels/panel_manager.h" 10 #include "chrome/browser/ui/panels/panel_manager.h"
11 #include "chrome/browser/ui/panels/panel_overflow_indicator.h" 11 #include "chrome/browser/ui/panels/panel_overflow_indicator.h"
12 #include "chrome/browser/ui/panels/panel_overflow_strip.h" 12 #include "chrome/browser/ui/panels/panel_overflow_strip.h"
13 #include "chrome/browser/ui/panels/panel_settings_menu_model.h" 13 #include "chrome/browser/ui/panels/panel_settings_menu_model.h"
14 #include "chrome/browser/ui/panels/panel_strip.h" 14 #include "chrome/browser/ui/panels/panel_strip.h"
15 #include "chrome/browser/ui/panels/test_panel_mouse_watcher.h" 15 #include "chrome/browser/ui/panels/test_panel_mouse_watcher.h"
16 #include "chrome/common/chrome_notification_types.h" 16 #include "chrome/common/chrome_notification_types.h"
17 #include "chrome/test/base/ui_test_utils.h" 17 #include "chrome/test/base/ui_test_utils.h"
18 #include "testing/gtest/include/gtest/gtest.h" 18 #include "testing/gtest/include/gtest/gtest.h"
19 19
20 namespace { 20 namespace {
21 21
22 // We override the default value for testing purpose. 22 // We override the default value for testing purpose.
23 const int kMaxVisibleOverflowPanelsForTesting = 3; 23 const int kMaxVisibleOverflowPanelsForTesting = 3;
24 const int kMaxVisibleOverflowPanelsOnHoverForTesting = 6; 24 const int kMaxVisibleOverflowPanelsOnHoverForTesting = 6;
25 25
26 // Encapsulates all the info we need to verify if a panel behaves as expected 26 // Encapsulates all the info we need to verify if a panel behaves as expected
27 // when we do the overflow testing. 27 // when we do the overflow testing.
28 struct PanelData { 28 struct PanelData {
29 Panel* panel; 29 Panel* panel;
30 Panel::LayoutState layout_state;
30 Panel::ExpansionState expansion_state; 31 Panel::ExpansionState expansion_state;
31 bool visible; 32 bool visible;
32 bool active; 33 bool active;
33 34
34 explicit PanelData(Panel* panel) 35 explicit PanelData(Panel* panel)
35 : panel(panel), 36 : panel(panel),
37 layout_state(panel->layout_state()),
36 expansion_state(panel->expansion_state()), 38 expansion_state(panel->expansion_state()),
37 visible(!panel->GetBounds().IsEmpty()), 39 visible(!panel->GetBounds().IsEmpty()),
38 active(panel->IsActive()) { 40 active(panel->IsActive()) {
39 } 41 }
40 42
41 PanelData(Panel* panel, Panel::ExpansionState expansion_state, 43 PanelData(Panel* panel, Panel::LayoutState layout_state,
44 Panel::ExpansionState expansion_state,
42 bool visible, bool active) 45 bool visible, bool active)
43 : panel(panel), 46 : panel(panel),
47 layout_state(layout_state),
44 expansion_state(expansion_state), 48 expansion_state(expansion_state),
45 visible(visible), 49 visible(visible),
46 active(active) { 50 active(active) {
47 } 51 }
48 52
49 bool operator==(const PanelData& another) const { 53 bool operator==(const PanelData& another) const {
54 if (layout_state != another.layout_state)
55 return false;
56 if (layout_state == Panel::DOCKED &&
57 expansion_state != another.expansion_state)
58 return false;
50 return panel == another.panel && 59 return panel == another.panel &&
51 expansion_state == another.expansion_state &&
52 visible == another.visible && 60 visible == another.visible &&
53 active == another.active; 61 active == another.active;
54 } 62 }
55 63
56 bool operator!=(const PanelData& another) const { 64 bool operator!=(const PanelData& another) const {
57 return !(*this == another); 65 return !(*this == another);
58 } 66 }
59 }; 67 };
60 68
61 // For gtest printing. 69 // For gtest printing.
62 ::std::ostream& operator<<(::std::ostream& os, const PanelData& data);
63 ::std::ostream& operator<<(::std::ostream& os, const PanelData& data) { 70 ::std::ostream& operator<<(::std::ostream& os, const PanelData& data) {
64 return os << "(" << data.panel->browser()->app_name() << ", " 71 return os << "(" << data.panel->browser()->app_name() << ", "
65 << data.expansion_state << ", " << data.visible << ", " 72 << data.layout_state << ", " << data.expansion_state << ", "
66 << data.active << ")"; 73 << data.visible << ", " << data.active << ")";
67 } 74 }
68 75
76 class PanelDataList : public std::vector<PanelData> {
77 };
69 78
70 class PanelDataList : public std::vector<PanelData> { 79 class NormalPanelDataList : public PanelDataList {
jennb 2012/01/19 23:44:09 nit: Rename DockedPanelDataList ?
jianli 2012/01/20 01:16:07 Done.
71 public: 80 public:
72 void Add(Panel* panel, Panel::ExpansionState expansion_state, 81 void Add(Panel* panel, Panel::ExpansionState expansion_state,
73 bool visible, bool active) { 82 bool visible, bool active) {
74 push_back(PanelData(panel, expansion_state, visible, active)); 83 push_back(PanelData(panel, Panel::DOCKED, expansion_state,
84 visible, active));
75 } 85 }
76 }; 86 };
77 87
88 class OverflowPanelDataList : public PanelDataList {
89 public:
90 void Add(Panel* panel, bool visible, bool active) {
91 push_back(PanelData(panel, Panel::IN_OVERFLOW, Panel::EXPANDED,
jennb 2012/01/19 23:44:09 Should comment here that expected expansion state
jianli 2012/01/20 01:16:07 Added comment.
92 visible, active));
93 }
94 };
95
78 } // namespace 96 } // namespace
79 97
80 class PanelOverflowBrowserTest : public BasePanelBrowserTest { 98 class PanelOverflowBrowserTest : public BasePanelBrowserTest {
81 public: 99 public:
82 PanelOverflowBrowserTest() : BasePanelBrowserTest() { 100 PanelOverflowBrowserTest() : BasePanelBrowserTest() {
83 } 101 }
84 102
85 virtual ~PanelOverflowBrowserTest() { 103 virtual ~PanelOverflowBrowserTest() {
86 } 104 }
87 105
88 virtual void SetUpOnMainThread() OVERRIDE { 106 virtual void SetUpOnMainThread() OVERRIDE {
89 BasePanelBrowserTest::SetUpOnMainThread(); 107 BasePanelBrowserTest::SetUpOnMainThread();
90 108
91 PanelManager* panel_manager = PanelManager::GetInstance(); 109 PanelManager* panel_manager = PanelManager::GetInstance();
92 panel_manager->panel_overflow_strip()->set_max_visible_panels( 110 panel_manager->panel_overflow_strip()->set_max_visible_panels(
93 kMaxVisibleOverflowPanelsForTesting); 111 kMaxVisibleOverflowPanelsForTesting);
94 panel_manager->panel_overflow_strip()->set_max_visible_panels_on_hover( 112 panel_manager->panel_overflow_strip()->set_max_visible_panels_on_hover(
95 kMaxVisibleOverflowPanelsOnHoverForTesting); 113 kMaxVisibleOverflowPanelsOnHoverForTesting);
96 114
97 PanelMouseWatcher* mouse_watcher = new TestPanelMouseWatcher(); 115 PanelMouseWatcher* mouse_watcher = new TestPanelMouseWatcher();
98 panel_manager->SetMouseWatcherForTesting(mouse_watcher); 116 panel_manager->SetMouseWatcherForTesting(mouse_watcher);
99 117
100 // All the overflow tests assume 800x600 work area. Do the check now. 118 // All the overflow tests assume 800x600 work area. Do the check now.
101 DCHECK(PanelManager::GetInstance()->work_area().width() == 800); 119 DCHECK(PanelManager::GetInstance()->work_area().width() == 800);
102 } 120 }
103 121
104 protected: 122 protected:
105 static PanelDataList GetAllNormalPanelData() { 123 static NormalPanelDataList GetAllNormalPanelData() {
106 PanelDataList panel_data_list; 124 NormalPanelDataList panel_data_list;
107 PanelStrip::Panels panels = 125 PanelStrip::Panels panels =
108 PanelManager::GetInstance()->panel_strip()->panels(); 126 PanelManager::GetInstance()->panel_strip()->panels();
109 for (PanelStrip::Panels::const_iterator iter = panels.begin(); 127 for (PanelStrip::Panels::const_iterator iter = panels.begin();
110 iter != panels.end(); ++iter) { 128 iter != panels.end(); ++iter) {
111 Panel* panel = *iter; 129 Panel* panel = *iter;
112 panel_data_list.push_back(PanelData(panel)); 130 panel_data_list.push_back(PanelData(panel));
113 } 131 }
114 return panel_data_list; 132 return panel_data_list;
115 } 133 }
116 134
117 static PanelDataList GetAllOverflowPanelData() { 135 static OverflowPanelDataList GetAllOverflowPanelData() {
118 PanelDataList panel_data_list; 136 OverflowPanelDataList panel_data_list;
119 PanelOverflowStrip::Panels panels = 137 PanelOverflowStrip::Panels panels =
120 PanelManager::GetInstance()->panel_overflow_strip()->panels(); 138 PanelManager::GetInstance()->panel_overflow_strip()->panels();
121 for (PanelOverflowStrip::Panels::const_iterator iter = panels.begin(); 139 for (PanelOverflowStrip::Panels::const_iterator iter = panels.begin();
122 iter != panels.end(); ++iter) { 140 iter != panels.end(); ++iter) {
123 Panel* panel = *iter; 141 Panel* panel = *iter;
124 panel_data_list.push_back(PanelData(panel)); 142 panel_data_list.push_back(PanelData(panel));
125 } 143 }
126 return panel_data_list; 144 return panel_data_list;
127 } 145 }
128 146
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 } 188 }
171 189
172 // Then, create panels that would be placed in the overflow strip. 190 // Then, create panels that would be placed in the overflow strip.
173 int num_panels = num_normal_panels + num_overflow_panels; 191 int num_panels = num_normal_panels + num_overflow_panels;
174 for (; i < num_panels; ++i) { 192 for (; i < num_panels; ++i) {
175 CreatePanelParams params( 193 CreatePanelParams params(
176 MakePanelName(i), 194 MakePanelName(i),
177 gfx::Rect(0, 0, panel_widths[i], kTestPanelHeight), 195 gfx::Rect(0, 0, panel_widths[i], kTestPanelHeight),
178 SHOW_AS_INACTIVE); 196 SHOW_AS_INACTIVE);
179 Panel* panel = CreatePanelWithParams(params); 197 Panel* panel = CreatePanelWithParams(params);
180 WaitForExpansionStateChanged(panel, Panel::IN_OVERFLOW); 198 WaitForLayoutStateChanged(panel, Panel::IN_OVERFLOW);
181 panels.push_back(panel); 199 panels.push_back(panel);
182 } 200 }
183 201
184 return panels; 202 return panels;
185 } 203 }
186 }; 204 };
187 205
188 // TODO(jianli): remove the guard when overflow support is enabled on other 206 // TODO(jianli): remove the guard when overflow support is enabled on other
189 // platforms. http://crbug.com/105073 207 // platforms. http://crbug.com/105073
190 #if defined(OS_WIN) 208 #if defined(OS_WIN)
191 #define MAYBE_CheckPanelProperties CheckPanelProperties 209 #define MAYBE_CheckPanelProperties CheckPanelProperties
192 #define MAYBE_UpdateDraggableStatus UpdateDraggableStatus 210 #define MAYBE_UpdateDraggableStatus UpdateDraggableStatus
193 #define MAYBE_CreateOverflowPanels CreateOverflowPanels 211 #define MAYBE_CreateOverflowPanels CreateOverflowPanels
194 #define MAYBE_CreateMoreOverflowPanels CreateMoreOverflowPanels 212 #define MAYBE_CreateMoreOverflowPanels CreateMoreOverflowPanels
195 // http://crbug.com/107230 213 // http://crbug.com/107230
196 #define MAYBE_CreatePanelOnDelayedOverflow CreatePanelOnDelayedOverflow 214 #define MAYBE_CreatePanelOnDelayedOverflow CreatePanelOnDelayedOverflow
197 #define MAYBE_CloseOverflowPanels CloseOverflowPanels 215 #define MAYBE_CloseOverflowPanels CloseOverflowPanels
198 #define MAYBE_CloseNormalPanels CloseNormalPanels 216 #define MAYBE_CloseNormalPanels CloseNormalPanels
199 #define MAYBE_CloseWithDelayedOverflow CloseWithDelayedOverflow 217 #define MAYBE_CloseWithDelayedOverflow CloseWithDelayedOverflow
218 #define MAYBE_ClickOverflowPanels ClickOverflowPanels
200 #define MAYBE_ActivateOverflowPanels ActivateOverflowPanels 219 #define MAYBE_ActivateOverflowPanels ActivateOverflowPanels
201 #define MAYBE_MoveMinimizedPanelToOverflowAndBringBackByActivate \ 220 #define MAYBE_MoveMinimizedPanelToOverflowAndBringBackByActivate \
202 MoveMinimizedPanelToOverflowAndBringBackByActivate 221 MoveMinimizedPanelToOverflowAndBringBackByActivate
203 #define MAYBE_MoveMinimizedPanelToOverflowAndBringBackByCloseOrResize \ 222 #define MAYBE_MoveMinimizedPanelToOverflowAndBringBackByCloseOrResize \
204 MoveMinimizedPanelToOverflowAndBringBackByCloseOrResize 223 MoveMinimizedPanelToOverflowAndBringBackByCloseOrResize
205 #define MAYBE_HoverOverOverflowAreaWithoutOverflowOfOverflow \ 224 #define MAYBE_HoverOverOverflowAreaWithoutOverflowOfOverflow \
206 HoverOverOverflowAreaWithoutOverflowOfOverflow 225 HoverOverOverflowAreaWithoutOverflowOfOverflow
207 #define MAYBE_HoverOverOverflowAreaWithOverflowOfOverflow \ 226 #define MAYBE_HoverOverOverflowAreaWithOverflowOfOverflow \
208 HoverOverOverflowAreaWithOverflowOfOverflow 227 HoverOverOverflowAreaWithOverflowOfOverflow
209 #define MAYBE_ResizePanel ResizePanel 228 #define MAYBE_ResizePanel ResizePanel
210 #define MAYBE_OverflowIndicatorCount OverflowIndicatorCount 229 #define MAYBE_OverflowIndicatorCount OverflowIndicatorCount
211 #define MAYBE_DrawOverflowAttention DrawOverflowAttention 230 #define MAYBE_DrawOverflowAttention DrawOverflowAttention
212 #else 231 #else
213 #define MAYBE_CheckPanelProperties DISABLED_CheckPanelProperties 232 #define MAYBE_CheckPanelProperties DISABLED_CheckPanelProperties
214 #define MAYBE_UpdateDraggableStatus DISABLED_UpdateDraggableStatus 233 #define MAYBE_UpdateDraggableStatus DISABLED_UpdateDraggableStatus
215 #define MAYBE_CreateOverflowPanels DISABLED_CreateOverflowPanels 234 #define MAYBE_CreateOverflowPanels DISABLED_CreateOverflowPanels
216 #define MAYBE_CreateMoreOverflowPanels DISABLED_CreateMoreOverflowPanels 235 #define MAYBE_CreateMoreOverflowPanels DISABLED_CreateMoreOverflowPanels
217 #define MAYBE_CreatePanelOnDelayedOverflow DISABLED_CreatePanelOnDelayedOverflow 236 #define MAYBE_CreatePanelOnDelayedOverflow DISABLED_CreatePanelOnDelayedOverflow
218 #define MAYBE_CloseOverflowPanels DISABLED_CloseOverflowPanels 237 #define MAYBE_CloseOverflowPanels DISABLED_CloseOverflowPanels
219 #define MAYBE_CloseNormalPanels DISABLED_CloseNormalPanels 238 #define MAYBE_CloseNormalPanels DISABLED_CloseNormalPanels
220 #define MAYBE_CloseWithDelayedOverflow DISABLED_CloseWithDelayedOverflow 239 #define MAYBE_CloseWithDelayedOverflow DISABLED_CloseWithDelayedOverflow
240 #define MAYBE_ClickOverflowPanels DISABLED_ClickOverflowPanels
221 #define MAYBE_ActivateOverflowPanels DISABLED_ActivateOverflowPanels 241 #define MAYBE_ActivateOverflowPanels DISABLED_ActivateOverflowPanels
222 #define MAYBE_MoveMinimizedPanelToOverflowAndBringBackByActivate \ 242 #define MAYBE_MoveMinimizedPanelToOverflowAndBringBackByActivate \
223 DISABLED_MoveMinimizedPanelToOverflowAndBringBackByActivate 243 DISABLED_MoveMinimizedPanelToOverflowAndBringBackByActivate
224 #define MAYBE_MoveMinimizedPanelToOverflowAndBringBackByCloseOrResize \ 244 #define MAYBE_MoveMinimizedPanelToOverflowAndBringBackByCloseOrResize \
225 DISABLED_MoveMinimizedPanelToOverflowAndBringBackByCloseOrResize 245 DISABLED_MoveMinimizedPanelToOverflowAndBringBackByCloseOrResize
226 #define MAYBE_HoverOverOverflowAreaWithoutOverflowOfOverflow \ 246 #define MAYBE_HoverOverOverflowAreaWithoutOverflowOfOverflow \
227 DISABLED_HoverOverOverflowAreaWithoutOverflowOfOverflow 247 DISABLED_HoverOverOverflowAreaWithoutOverflowOfOverflow
228 #define MAYBE_HoverOverOverflowAreaWithOverflowOfOverflow \ 248 #define MAYBE_HoverOverOverflowAreaWithOverflowOfOverflow \
229 DISABLED_HoverOverOverflowAreaWithOverflowOfOverflow 249 DISABLED_HoverOverOverflowAreaWithOverflowOfOverflow
230 #define MAYBE_ResizePanel DISABLED_ResizePanel 250 #define MAYBE_ResizePanel DISABLED_ResizePanel
(...skipping 23 matching lines...) Expand all
254 EXPECT_FALSE(panel2->has_temporary_layout()); 274 EXPECT_FALSE(panel2->has_temporary_layout());
255 EXPECT_FALSE(panel3->has_temporary_layout()); 275 EXPECT_FALSE(panel3->has_temporary_layout());
256 EXPECT_TRUE(panel4->has_temporary_layout()); 276 EXPECT_TRUE(panel4->has_temporary_layout());
257 277
258 EXPECT_TRUE(panel1->draggable()); 278 EXPECT_TRUE(panel1->draggable());
259 EXPECT_TRUE(panel2->draggable()); 279 EXPECT_TRUE(panel2->draggable());
260 EXPECT_TRUE(panel3->draggable()); 280 EXPECT_TRUE(panel3->draggable());
261 EXPECT_FALSE(panel4->draggable()); 281 EXPECT_FALSE(panel4->draggable());
262 282
263 // Make sure last panel really did overflow. 283 // Make sure last panel really did overflow.
264 WaitForExpansionStateChanged(panel4, Panel::IN_OVERFLOW); 284 WaitForLayoutStateChanged(panel4, Panel::IN_OVERFLOW);
265 EXPECT_FALSE(panel4->has_temporary_layout()); 285 EXPECT_FALSE(panel4->has_temporary_layout());
266 EXPECT_FALSE(panel4->draggable()); 286 EXPECT_FALSE(panel4->draggable());
267 287
268 PanelManager::GetInstance()->RemoveAll(); 288 PanelManager::GetInstance()->RemoveAll();
269 } 289 }
270 290
271 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_UpdateDraggableStatus) { 291 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_UpdateDraggableStatus) {
272 Panel* panel = CreatePanel("panel"); 292 Panel* panel = CreatePanel("panel");
273 EXPECT_TRUE(panel->draggable()); 293 EXPECT_TRUE(panel->draggable());
274 panel->SetExpansionState(Panel::IN_OVERFLOW); 294 panel->SetLayoutState(Panel::IN_OVERFLOW);
275 EXPECT_FALSE(panel->draggable()); 295 EXPECT_FALSE(panel->draggable());
276 panel->SetExpansionState(Panel::EXPANDED); 296 panel->SetLayoutState(Panel::DOCKED);
277 EXPECT_TRUE(panel->draggable()); 297 EXPECT_TRUE(panel->draggable());
278 panel->Close(); 298 panel->Close();
279 } 299 }
280 300
281 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_CreateOverflowPanels) { 301 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_CreateOverflowPanels) {
282 PanelManager* panel_manager = PanelManager::GetInstance(); 302 PanelManager* panel_manager = PanelManager::GetInstance();
283 PanelStrip* panel_strip = panel_manager->panel_strip(); 303 PanelStrip* panel_strip = panel_manager->panel_strip();
284 PanelOverflowStrip* panel_overflow_strip = 304 PanelOverflowStrip* panel_overflow_strip =
285 panel_manager->panel_overflow_strip(); 305 panel_manager->panel_overflow_strip();
286 306
(...skipping 12 matching lines...) Expand all
299 EXPECT_EQ(0, panel_overflow_strip->num_panels()); 319 EXPECT_EQ(0, panel_overflow_strip->num_panels());
300 EXPECT_FALSE(panel_overflow_strip->overflow_indicator()); 320 EXPECT_FALSE(panel_overflow_strip->overflow_indicator());
301 EXPECT_EQ(Panel::EXPANDED, panel0->expansion_state()); 321 EXPECT_EQ(Panel::EXPANDED, panel0->expansion_state());
302 EXPECT_EQ(Panel::EXPANDED, panel1->expansion_state()); 322 EXPECT_EQ(Panel::EXPANDED, panel1->expansion_state());
303 EXPECT_EQ(Panel::EXPANDED, panel2->expansion_state()); 323 EXPECT_EQ(Panel::EXPANDED, panel2->expansion_state());
304 324
305 // Create 1 overflow panel. 325 // Create 1 overflow panel.
306 CreatePanelParams params( 326 CreatePanelParams params(
307 "Panel3", gfx::Rect(0, 0, 255, 200), SHOW_AS_INACTIVE); 327 "Panel3", gfx::Rect(0, 0, 255, 200), SHOW_AS_INACTIVE);
308 Panel* panel3 = CreatePanelWithParams(params); 328 Panel* panel3 = CreatePanelWithParams(params);
309 WaitForExpansionStateChanged(panel3, Panel::IN_OVERFLOW); 329 WaitForLayoutStateChanged(panel3, Panel::IN_OVERFLOW);
310 330
311 EXPECT_EQ(4, panel_manager->num_panels()); 331 EXPECT_EQ(4, panel_manager->num_panels());
312 EXPECT_EQ(3, panel_strip->num_panels()); 332 EXPECT_EQ(3, panel_strip->num_panels());
313 EXPECT_EQ(1, panel_overflow_strip->num_panels()); 333 EXPECT_EQ(1, panel_overflow_strip->num_panels());
314 EXPECT_FALSE(panel_overflow_strip->overflow_indicator()); 334 EXPECT_FALSE(panel_overflow_strip->overflow_indicator());
315 EXPECT_TRUE(IsPanelVisible(panel3)); 335 EXPECT_TRUE(IsPanelVisible(panel3));
316 EXPECT_TRUE(IsPanelInOverflowStrip(panel3)); 336 EXPECT_TRUE(IsPanelInOverflowStrip(panel3));
317 EXPECT_EQ(gfx::Size(255, 200), panel3->restored_size()); 337 EXPECT_EQ(gfx::Size(255, 200), panel3->restored_size());
318 338
319 // Create 1 more overflow panel. 339 // Create 1 more overflow panel.
320 params.name = "Panel4"; 340 params.name = "Panel4";
321 Panel* panel4 = CreatePanelWithParams(params); 341 Panel* panel4 = CreatePanelWithParams(params);
322 WaitForExpansionStateChanged(panel4, Panel::IN_OVERFLOW); 342 WaitForLayoutStateChanged(panel4, Panel::IN_OVERFLOW);
323 343
324 EXPECT_EQ(5, panel_manager->num_panels()); 344 EXPECT_EQ(5, panel_manager->num_panels());
325 EXPECT_EQ(3, panel_strip->num_panels()); 345 EXPECT_EQ(3, panel_strip->num_panels());
326 EXPECT_EQ(2, panel_overflow_strip->num_panels()); 346 EXPECT_EQ(2, panel_overflow_strip->num_panels());
327 EXPECT_FALSE(panel_overflow_strip->overflow_indicator()); 347 EXPECT_FALSE(panel_overflow_strip->overflow_indicator());
328 EXPECT_TRUE(IsPanelVisible(panel4)); 348 EXPECT_TRUE(IsPanelVisible(panel4));
329 349
330 PanelManager::GetInstance()->RemoveAll(); 350 PanelManager::GetInstance()->RemoveAll();
331 } 351 }
332 352
333 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, 353 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest,
334 MAYBE_CreateMoreOverflowPanels) { 354 MAYBE_CreateMoreOverflowPanels) {
335 PanelManager* panel_manager = PanelManager::GetInstance(); 355 PanelManager* panel_manager = PanelManager::GetInstance();
336 PanelStrip* panel_strip = panel_manager->panel_strip(); 356 PanelStrip* panel_strip = panel_manager->panel_strip();
337 PanelOverflowStrip* panel_overflow_strip = 357 PanelOverflowStrip* panel_overflow_strip =
338 panel_manager->panel_overflow_strip(); 358 panel_manager->panel_overflow_strip();
339 359
340 const int panel_widths[] = { 360 const int panel_widths[] = {
341 250, 260, 200, // normal 361 250, 260, 200, // normal
342 255, 220, 210, // overflow 362 255, 220, 210, // overflow
343 220, 230 // overflow-on-overflow 363 220, 230 // overflow-on-overflow
344 }; 364 };
345 CreateOverflowPanels(3, 5, panel_widths); 365 CreateOverflowPanels(3, 5, panel_widths);
346 366
347 std::vector<Panel*> panels = panel_manager->panels(); 367 std::vector<Panel*> panels = panel_manager->panels();
348 ASSERT_EQ(8u, panels.size()); 368 ASSERT_EQ(8u, panels.size());
349 EXPECT_EQ(3, panel_strip->num_panels()); 369 EXPECT_EQ(3, panel_strip->num_panels());
350 EXPECT_EQ(5, panel_overflow_strip->num_panels()); 370 EXPECT_EQ(5, panel_overflow_strip->num_panels());
351 EXPECT_EQ(2, panel_overflow_strip->overflow_indicator()->GetCount()); 371 EXPECT_EQ(2, panel_overflow_strip->overflow_indicator()->GetCount());
352 EXPECT_EQ(Panel::IN_OVERFLOW, panels[3]->expansion_state()); 372 EXPECT_EQ(Panel::IN_OVERFLOW, panels[3]->layout_state());
353 EXPECT_TRUE(IsPanelVisible(panels[3])); 373 EXPECT_TRUE(IsPanelVisible(panels[3]));
354 EXPECT_EQ(Panel::IN_OVERFLOW, panels[4]->expansion_state()); 374 EXPECT_EQ(Panel::IN_OVERFLOW, panels[4]->layout_state());
355 EXPECT_TRUE(IsPanelVisible(panels[4])); 375 EXPECT_TRUE(IsPanelVisible(panels[4]));
356 EXPECT_EQ(Panel::IN_OVERFLOW, panels[5]->expansion_state()); 376 EXPECT_EQ(Panel::IN_OVERFLOW, panels[5]->layout_state());
357 EXPECT_TRUE(IsPanelVisible(panels[5])); 377 EXPECT_TRUE(IsPanelVisible(panels[5]));
358 EXPECT_EQ(Panel::IN_OVERFLOW, panels[6]->expansion_state()); 378 EXPECT_EQ(Panel::IN_OVERFLOW, panels[6]->layout_state());
359 EXPECT_FALSE(IsPanelVisible(panels[6])); 379 EXPECT_FALSE(IsPanelVisible(panels[6]));
360 EXPECT_EQ(Panel::IN_OVERFLOW, panels[7]->expansion_state()); 380 EXPECT_EQ(Panel::IN_OVERFLOW, panels[7]->layout_state());
361 EXPECT_FALSE(IsPanelVisible(panels[7])); 381 EXPECT_FALSE(IsPanelVisible(panels[7]));
362 382
363 PanelManager::GetInstance()->RemoveAll(); 383 PanelManager::GetInstance()->RemoveAll();
364 } 384 }
365 385
366 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, 386 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest,
367 MAYBE_CreatePanelOnDelayedOverflow) { 387 MAYBE_CreatePanelOnDelayedOverflow) {
368 // Create 2 big panels. 388 // Create 2 big panels.
369 CreatePanelWithBounds("Panel0", gfx::Rect(0, 0, 260, 200)); 389 CreatePanelWithBounds("Panel0", gfx::Rect(0, 0, 260, 200));
370 CreatePanelWithBounds("Panel1", gfx::Rect(0, 0, 260, 200)); 390 CreatePanelWithBounds("Panel1", gfx::Rect(0, 0, 260, 200));
371 391
372 // Create an overflow panel without waiting for it to be moved to overflow. 392 // Create an overflow panel without waiting for it to be moved to overflow.
373 CreatePanelParams params( 393 CreatePanelParams params(
374 "Panel2", gfx::Rect(0, 0, 255, 200), SHOW_AS_INACTIVE); 394 "Panel2", gfx::Rect(0, 0, 255, 200), SHOW_AS_INACTIVE);
375 params.wait_for_fully_created = false; 395 params.wait_for_fully_created = false;
376 Panel* overflow_panel = CreatePanelWithParams(params); 396 Panel* overflow_panel = CreatePanelWithParams(params);
377 EXPECT_EQ(Panel::EXPANDED, overflow_panel->expansion_state()); 397 EXPECT_EQ(Panel::EXPANDED, overflow_panel->expansion_state());
378 EXPECT_TRUE(overflow_panel->has_temporary_layout()); 398 EXPECT_TRUE(overflow_panel->has_temporary_layout());
379 399
380 // Create a small panel that could fit within the available space in the 400 // Create a small panel that could fit within the available space in the
381 // panel strip. 401 // panel strip.
382 CreatePanelParams params2( 402 CreatePanelParams params2(
383 "Panel3", gfx::Rect(0, 0, 110, 200), SHOW_AS_INACTIVE); 403 "Panel3", gfx::Rect(0, 0, 110, 200), SHOW_AS_INACTIVE);
384 Panel* panel3 = CreatePanelWithParams(params2); 404 Panel* panel3 = CreatePanelWithParams(params2);
385 EXPECT_EQ(Panel::EXPANDED, panel3->expansion_state()); 405 EXPECT_EQ(Panel::EXPANDED, panel3->expansion_state());
386 EXPECT_FALSE(panel3->has_temporary_layout()); 406 EXPECT_FALSE(panel3->has_temporary_layout());
387 407
388 WaitForExpansionStateChanged(overflow_panel, Panel::IN_OVERFLOW); 408 WaitForLayoutStateChanged(overflow_panel, Panel::IN_OVERFLOW);
389 EXPECT_FALSE(overflow_panel->has_temporary_layout()); 409 EXPECT_FALSE(overflow_panel->has_temporary_layout());
390 PanelManager::GetInstance()->RemoveAll(); 410 PanelManager::GetInstance()->RemoveAll();
391 } 411 }
392 412
393 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_CloseOverflowPanels) { 413 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_CloseOverflowPanels) {
394 PanelManager* panel_manager = PanelManager::GetInstance(); 414 PanelManager* panel_manager = PanelManager::GetInstance();
395 PanelStrip* panel_strip = panel_manager->panel_strip(); 415 PanelStrip* panel_strip = panel_manager->panel_strip();
396 PanelOverflowStrip* panel_overflow_strip = 416 PanelOverflowStrip* panel_overflow_strip =
397 panel_manager->panel_overflow_strip(); 417 panel_manager->panel_overflow_strip();
398 418
399 // Create normal and overflow panels. 419 // Create normal and overflow panels.
400 // normal: P0, P1, P2 420 // normal: P0, P1, P2
401 // overflow: P3, P4, P5 421 // overflow: P3, P4, P5
402 // overflow-on-overflow: P6, P7 422 // overflow-on-overflow: P6, P7
403 int num_normal_panels = 3; 423 int num_normal_panels = 3;
404 int num_overflow_panels = 5; 424 int num_overflow_panels = 5;
405 const int panel_widths[] = { 425 const int panel_widths[] = {
406 260, 250, 200, // normal 426 260, 250, 200, // normal
407 255, 260, 120, // overflow 427 255, 260, 120, // overflow
408 240, 210 // overflow-on-overflow 428 240, 210 // overflow-on-overflow
409 }; 429 };
410 std::vector<Panel*> panels = CreateOverflowPanels( 430 std::vector<Panel*> panels = CreateOverflowPanels(
411 num_normal_panels, num_overflow_panels, panel_widths); 431 num_normal_panels, num_overflow_panels, panel_widths);
412 432
413 PanelDataList expected_normal_list; 433 NormalPanelDataList expected_normal_list;
414 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 434 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false);
415 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 435 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false);
416 expected_normal_list.Add(panels[2], Panel::EXPANDED, true, false); 436 expected_normal_list.Add(panels[2], Panel::EXPANDED, true, false);
417 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 437 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData());
418 438
419 PanelDataList expected_overflow_list; 439 OverflowPanelDataList expected_overflow_list;
420 expected_overflow_list.Add(panels[3], Panel::IN_OVERFLOW, true, false); 440 expected_overflow_list.Add(panels[3], true, false);
421 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 441 expected_overflow_list.Add(panels[4], true, false);
422 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, true, false); 442 expected_overflow_list.Add(panels[5], true, false);
423 expected_overflow_list.Add(panels[6], Panel::IN_OVERFLOW, false, false); 443 expected_overflow_list.Add(panels[6], false, false);
424 expected_overflow_list.Add(panels[7], Panel::IN_OVERFLOW, false, false); 444 expected_overflow_list.Add(panels[7], false, false);
425 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 445 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
426 446
427 // Close an overflow-on-overflow panel. Expect only that panel is closed. 447 // Close an overflow-on-overflow panel. Expect only that panel is closed.
428 // normal: P0, P1, P2 448 // normal: P0, P1, P2
429 // overflow: P3, P4, P5, 449 // overflow: P3, P4, P5,
430 // overflow-on-overflow: P7 450 // overflow-on-overflow: P7
431 CloseWindowAndWait(panels[6]->browser()); 451 CloseWindowAndWait(panels[6]->browser());
432 num_overflow_panels--; 452 num_overflow_panels--;
433 ASSERT_EQ(num_normal_panels + num_overflow_panels, 453 ASSERT_EQ(num_normal_panels + num_overflow_panels,
434 panel_manager->num_panels()); 454 panel_manager->num_panels());
435 EXPECT_EQ(num_normal_panels, panel_strip->num_panels()); 455 EXPECT_EQ(num_normal_panels, panel_strip->num_panels());
436 EXPECT_EQ(num_overflow_panels, panel_overflow_strip->num_panels()); 456 EXPECT_EQ(num_overflow_panels, panel_overflow_strip->num_panels());
437 457
438 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 458 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData());
439 459
440 expected_overflow_list.clear(); 460 expected_overflow_list.clear();
441 expected_overflow_list.Add(panels[3], Panel::IN_OVERFLOW, true, false); 461 expected_overflow_list.Add(panels[3], true, false);
442 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 462 expected_overflow_list.Add(panels[4], true, false);
443 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, true, false); 463 expected_overflow_list.Add(panels[5], true, false);
444 expected_overflow_list.Add(panels[7], Panel::IN_OVERFLOW, false, false); 464 expected_overflow_list.Add(panels[7], false, false);
445 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 465 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
446 466
447 // Close an overflow panel. Expect an overflow-on-overflow panel to become 467 // Close an overflow panel. Expect an overflow-on-overflow panel to become
448 // visible in the overflow strip. 468 // visible in the overflow strip.
449 // normal: P0, P1, P2 469 // normal: P0, P1, P2
450 // overflow: P3, P5, P7 470 // overflow: P3, P5, P7
451 CloseWindowAndWait(panels[4]->browser()); 471 CloseWindowAndWait(panels[4]->browser());
452 num_overflow_panels--; 472 num_overflow_panels--;
453 ASSERT_EQ(num_normal_panels + num_overflow_panels, 473 ASSERT_EQ(num_normal_panels + num_overflow_panels,
454 panel_manager->num_panels()); 474 panel_manager->num_panels());
455 EXPECT_EQ(num_normal_panels, panel_strip->num_panels()); 475 EXPECT_EQ(num_normal_panels, panel_strip->num_panels());
456 EXPECT_EQ(num_overflow_panels, panel_overflow_strip->num_panels()); 476 EXPECT_EQ(num_overflow_panels, panel_overflow_strip->num_panels());
457 477
458 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 478 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData());
459 479
460 expected_overflow_list.clear(); 480 expected_overflow_list.clear();
461 expected_overflow_list.Add(panels[3], Panel::IN_OVERFLOW, true, false); 481 expected_overflow_list.Add(panels[3], true, false);
462 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, true, false); 482 expected_overflow_list.Add(panels[5], true, false);
463 expected_overflow_list.Add(panels[7], Panel::IN_OVERFLOW, true, false); 483 expected_overflow_list.Add(panels[7], true, false);
464 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 484 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
465 485
466 // Close an overflow panel. Expect only that panel is closed. 486 // Close an overflow panel. Expect only that panel is closed.
467 // normal: P0, P1, P2 487 // normal: P0, P1, P2
468 // overflow: P5, P7 488 // overflow: P5, P7
469 CloseWindowAndWait(panels[3]->browser()); 489 CloseWindowAndWait(panels[3]->browser());
470 num_overflow_panels--; 490 num_overflow_panels--;
471 ASSERT_EQ(num_normal_panels + num_overflow_panels, 491 ASSERT_EQ(num_normal_panels + num_overflow_panels,
472 panel_manager->num_panels()); 492 panel_manager->num_panels());
473 EXPECT_EQ(num_normal_panels, panel_strip->num_panels()); 493 EXPECT_EQ(num_normal_panels, panel_strip->num_panels());
474 EXPECT_EQ(num_overflow_panels, panel_overflow_strip->num_panels()); 494 EXPECT_EQ(num_overflow_panels, panel_overflow_strip->num_panels());
475 495
476 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 496 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData());
477 497
478 expected_overflow_list.clear(); 498 expected_overflow_list.clear();
479 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, true, false); 499 expected_overflow_list.Add(panels[5], true, false);
480 expected_overflow_list.Add(panels[7], Panel::IN_OVERFLOW, true, false); 500 expected_overflow_list.Add(panels[7], true, false);
481 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 501 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
482 502
483 panel_manager->RemoveAll(); 503 panel_manager->RemoveAll();
484 } 504 }
485 505
486 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_CloseNormalPanels) { 506 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_CloseNormalPanels) {
487 PanelManager* panel_manager = PanelManager::GetInstance(); 507 PanelManager* panel_manager = PanelManager::GetInstance();
488 PanelStrip* panel_strip = panel_manager->panel_strip(); 508 PanelStrip* panel_strip = panel_manager->panel_strip();
489 PanelOverflowStrip* panel_overflow_strip = 509 PanelOverflowStrip* panel_overflow_strip =
490 panel_manager->panel_overflow_strip(); 510 panel_manager->panel_overflow_strip();
491 511
492 // Create normal and overflow panels. 512 // Create normal and overflow panels.
493 // normal: P0, P1, P2 513 // normal: P0, P1, P2
494 // overflow: P3, P4, P5 514 // overflow: P3, P4, P5
495 // overflow-on-overflow: P6, P7, P8 515 // overflow-on-overflow: P6, P7, P8
496 int num_normal_panels = 3; 516 int num_normal_panels = 3;
497 int num_overflow_panels = 6; 517 int num_overflow_panels = 6;
498 const int panel_widths[] = { 518 const int panel_widths[] = {
499 260, 250, 200, // normal 519 260, 250, 200, // normal
500 255, 260, 120, // overflow 520 255, 260, 120, // overflow
501 240, 210, 258 // overflow-on-overflow 521 240, 210, 258 // overflow-on-overflow
502 }; 522 };
503 std::vector<Panel*> panels = CreateOverflowPanels( 523 std::vector<Panel*> panels = CreateOverflowPanels(
504 num_normal_panels, num_overflow_panels, panel_widths); 524 num_normal_panels, num_overflow_panels, panel_widths);
505 525
506 PanelDataList expected_normal_list; 526 NormalPanelDataList expected_normal_list;
507 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 527 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false);
508 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 528 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false);
509 expected_normal_list.Add(panels[2], Panel::EXPANDED, true, false); 529 expected_normal_list.Add(panels[2], Panel::EXPANDED, true, false);
510 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 530 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData());
511 531
512 PanelDataList expected_overflow_list; 532 OverflowPanelDataList expected_overflow_list;
513 expected_overflow_list.Add(panels[3], Panel::IN_OVERFLOW, true, false); 533 expected_overflow_list.Add(panels[3], true, false);
514 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 534 expected_overflow_list.Add(panels[4], true, false);
515 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, true, false); 535 expected_overflow_list.Add(panels[5], true, false);
516 expected_overflow_list.Add(panels[6], Panel::IN_OVERFLOW, false, false); 536 expected_overflow_list.Add(panels[6], false, false);
517 expected_overflow_list.Add(panels[7], Panel::IN_OVERFLOW, false, false); 537 expected_overflow_list.Add(panels[7], false, false);
518 expected_overflow_list.Add(panels[8], Panel::IN_OVERFLOW, false, false); 538 expected_overflow_list.Add(panels[8], false, false);
519 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 539 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
520 540
521 // Close a normal panel. Expect an overflow panel to move over and an 541 // Close a normal panel. Expect an overflow panel to move over and an
522 // overflow-on-overflow panel to become visible. 542 // overflow-on-overflow panel to become visible.
523 // normal: P0, P2, P3 543 // normal: P0, P2, P3
524 // overflow: P4, P5, P6 544 // overflow: P4, P5, P6
525 // overflow-on-overflow: P7, P8 545 // overflow-on-overflow: P7, P8
526 CloseWindowAndWait(panels[1]->browser()); 546 CloseWindowAndWait(panels[1]->browser());
527 num_overflow_panels--; 547 num_overflow_panels--;
528 ASSERT_EQ(num_normal_panels + num_overflow_panels, 548 ASSERT_EQ(num_normal_panels + num_overflow_panels,
529 panel_manager->num_panels()); 549 panel_manager->num_panels());
530 EXPECT_EQ(num_normal_panels, panel_strip->num_panels()); 550 EXPECT_EQ(num_normal_panels, panel_strip->num_panels());
531 EXPECT_EQ(num_overflow_panels, panel_overflow_strip->num_panels()); 551 EXPECT_EQ(num_overflow_panels, panel_overflow_strip->num_panels());
532 552
533 expected_normal_list.clear(); 553 expected_normal_list.clear();
534 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 554 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false);
535 expected_normal_list.Add(panels[2], Panel::EXPANDED, true, false); 555 expected_normal_list.Add(panels[2], Panel::EXPANDED, true, false);
536 expected_normal_list.Add(panels[3], Panel::EXPANDED, true, false); 556 expected_normal_list.Add(panels[3], Panel::EXPANDED, true, false);
537 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 557 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData());
538 558
539 expected_overflow_list.clear(); 559 expected_overflow_list.clear();
540 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 560 expected_overflow_list.Add(panels[4], true, false);
541 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, true, false); 561 expected_overflow_list.Add(panels[5], true, false);
542 expected_overflow_list.Add(panels[6], Panel::IN_OVERFLOW, true, false); 562 expected_overflow_list.Add(panels[6], true, false);
543 expected_overflow_list.Add(panels[7], Panel::IN_OVERFLOW, false, false); 563 expected_overflow_list.Add(panels[7], false, false);
544 expected_overflow_list.Add(panels[8], Panel::IN_OVERFLOW, false, false); 564 expected_overflow_list.Add(panels[8], false, false);
545 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 565 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
546 566
547 // Close another normal panel. Remaining overflow panels cannot move over 567 // Close another normal panel. Remaining overflow panels cannot move over
548 // due to not enough room. 568 // due to not enough room.
549 // normal: P0, P3 569 // normal: P0, P3
550 // overflow: P4, P5, P6 570 // overflow: P4, P5, P6
551 // overflow-on-overflow: P7, P8 571 // overflow-on-overflow: P7, P8
552 CloseWindowAndWait(panels[2]->browser()); 572 CloseWindowAndWait(panels[2]->browser());
553 num_normal_panels--; 573 num_normal_panels--;
554 ASSERT_EQ(num_normal_panels + num_overflow_panels, 574 ASSERT_EQ(num_normal_panels + num_overflow_panels,
(...skipping 20 matching lines...) Expand all
575 EXPECT_EQ(num_normal_panels, panel_strip->num_panels()); 595 EXPECT_EQ(num_normal_panels, panel_strip->num_panels());
576 EXPECT_EQ(num_overflow_panels, panel_overflow_strip->num_panels()); 596 EXPECT_EQ(num_overflow_panels, panel_overflow_strip->num_panels());
577 597
578 expected_normal_list.clear(); 598 expected_normal_list.clear();
579 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 599 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false);
580 expected_normal_list.Add(panels[4], Panel::EXPANDED, true, false); 600 expected_normal_list.Add(panels[4], Panel::EXPANDED, true, false);
581 expected_normal_list.Add(panels[5], Panel::EXPANDED, true, false); 601 expected_normal_list.Add(panels[5], Panel::EXPANDED, true, false);
582 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 602 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData());
583 603
584 expected_overflow_list.clear(); 604 expected_overflow_list.clear();
585 expected_overflow_list.Add(panels[6], Panel::IN_OVERFLOW, true, false); 605 expected_overflow_list.Add(panels[6], true, false);
586 expected_overflow_list.Add(panels[7], Panel::IN_OVERFLOW, true, false); 606 expected_overflow_list.Add(panels[7], true, false);
587 expected_overflow_list.Add(panels[8], Panel::IN_OVERFLOW, true, false); 607 expected_overflow_list.Add(panels[8], true, false);
588 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 608 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
589 609
590 // Close another normal panel. Expect one overflow panel to move over. 610 // Close another normal panel. Expect one overflow panel to move over.
591 // normal: P4, P5, P6 611 // normal: P4, P5, P6
592 // overflow: P7, P8 612 // overflow: P7, P8
593 CloseWindowAndWait(panels[0]->browser()); 613 CloseWindowAndWait(panels[0]->browser());
594 num_overflow_panels--; 614 num_overflow_panels--;
595 ASSERT_EQ(num_normal_panels + num_overflow_panels, 615 ASSERT_EQ(num_normal_panels + num_overflow_panels,
596 panel_manager->num_panels()); 616 panel_manager->num_panels());
597 EXPECT_EQ(num_normal_panels, panel_strip->num_panels()); 617 EXPECT_EQ(num_normal_panels, panel_strip->num_panels());
598 EXPECT_EQ(num_overflow_panels, panel_overflow_strip->num_panels()); 618 EXPECT_EQ(num_overflow_panels, panel_overflow_strip->num_panels());
599 619
600 expected_normal_list.clear(); 620 expected_normal_list.clear();
601 expected_normal_list.Add(panels[4], Panel::EXPANDED, true, false); 621 expected_normal_list.Add(panels[4], Panel::EXPANDED, true, false);
602 expected_normal_list.Add(panels[5], Panel::EXPANDED, true, false); 622 expected_normal_list.Add(panels[5], Panel::EXPANDED, true, false);
603 expected_normal_list.Add(panels[6], Panel::EXPANDED, true, false); 623 expected_normal_list.Add(panels[6], Panel::EXPANDED, true, false);
604 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 624 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData());
605 625
606 expected_overflow_list.clear(); 626 expected_overflow_list.clear();
607 expected_overflow_list.Add(panels[7], Panel::IN_OVERFLOW, true, false); 627 expected_overflow_list.Add(panels[7], true, false);
608 expected_overflow_list.Add(panels[8], Panel::IN_OVERFLOW, true, false); 628 expected_overflow_list.Add(panels[8], true, false);
609 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 629 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
610 630
611 panel_manager->RemoveAll(); 631 panel_manager->RemoveAll();
612 } 632 }
613 633
614 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, 634 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest,
615 MAYBE_CloseWithDelayedOverflow) { 635 MAYBE_CloseWithDelayedOverflow) {
616 PanelManager* panel_manager = PanelManager::GetInstance(); 636 PanelManager* panel_manager = PanelManager::GetInstance();
617 PanelStrip* panel_strip = panel_manager->panel_strip(); 637 PanelStrip* panel_strip = panel_manager->panel_strip();
618 638
(...skipping 26 matching lines...) Expand all
645 // panel will not be affected by the close. 665 // panel will not be affected by the close.
646 // Hack. Pretend to close panel by removing it directly. Cannot use 666 // Hack. Pretend to close panel by removing it directly. Cannot use
647 // CloseWindowAndWait() here because it will allow the delayed overflow 667 // CloseWindowAndWait() here because it will allow the delayed overflow
648 // to complete. 668 // to complete.
649 panel_strip->Remove(panel1); 669 panel_strip->Remove(panel1);
650 EXPECT_EQ(1, panel_strip->num_panels()); 670 EXPECT_EQ(1, panel_strip->num_panels());
651 EXPECT_EQ(1, panel_strip->num_temporary_layout_panels()); 671 EXPECT_EQ(1, panel_strip->num_temporary_layout_panels());
652 EXPECT_TRUE(overflow_panel->has_temporary_layout()); 672 EXPECT_TRUE(overflow_panel->has_temporary_layout());
653 673
654 // Make sure the overflow panel actually moves to overflow. 674 // Make sure the overflow panel actually moves to overflow.
655 WaitForExpansionStateChanged(overflow_panel, Panel::IN_OVERFLOW); 675 WaitForLayoutStateChanged(overflow_panel, Panel::IN_OVERFLOW);
656 EXPECT_EQ(0, panel_strip->num_temporary_layout_panels()); 676 EXPECT_EQ(0, panel_strip->num_temporary_layout_panels());
657 677
658 // Hack. Put the "falsely closed" panel back into the panel strip 678 // Hack. Put the "falsely closed" panel back into the panel strip
659 // so we can properly close it to wrap up this test. 679 // so we can properly close it to wrap up this test.
660 panel_strip->AddPanel(panel1); 680 panel_strip->AddPanel(panel1);
661 681
662 panel0->Close(); 682 panel0->Close();
663 panel1->Close(); 683 panel1->Close();
664 overflow_panel->Close(); 684 overflow_panel->Close();
665 } 685 }
666 686
687 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_ClickOverflowPanels) {
688 PanelManager* panel_manager = PanelManager::GetInstance();
689 PanelStrip* panel_strip = panel_manager->panel_strip();
690 PanelOverflowStrip* panel_overflow_strip =
691 panel_manager->panel_overflow_strip();
692
693 // Create normal and overflow panels.
694 // normal: P0, P1, P2
695 // overflow: P3, P4
696 const int panel_widths[] = {
697 240, 240, 240, // normal
698 240, 240 // overflow
699 };
700 std::vector<Panel*> panels = CreateOverflowPanels(3, 2, panel_widths);
701
702 NormalPanelDataList expected_normal_list;
703 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false);
704 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false);
705 expected_normal_list.Add(panels[2], Panel::EXPANDED, true, false);
706 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData());
707
708 OverflowPanelDataList expected_overflow_list;
709 expected_overflow_list.Add(panels[3], true, false);
710 expected_overflow_list.Add(panels[4], true, false);
711 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
712
713 // Minimize a normal panel.
714 panels[2]->SetExpansionState(Panel::MINIMIZED);
715 WaitForExpansionStateChanged(panels[2], Panel::MINIMIZED);
716
717 // Clicking an overflow panel that was previously expanded should bring it
718 // out of the overflow as expanded.
719 // normal: P0, P1, P3
720 // overflow: P2, P4
721 ClickPanelTitlebar(panels[3]);
722 WaitForExpansionStateChanged(panels[3], Panel::EXPANDED);
723
724 expected_normal_list.clear();
725 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false);
726 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false);
727 expected_normal_list.Add(panels[3], Panel::EXPANDED, true, false);
728 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData());
729
730 expected_overflow_list.clear();
731 expected_overflow_list.Add(panels[2], true, false);
732 expected_overflow_list.Add(panels[4], true, false);
733 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
734
735 // Make a normal panel as title-only.
736 panels[3]->SetExpansionState(Panel::TITLE_ONLY);
737 WaitForExpansionStateChanged(panels[3], Panel::TITLE_ONLY);
738
739 // Clicking an overflow panel that was previously minimized should bring it
740 // out of the overflow as expanded.
741 // normal: P0, P1, P2
742 // overflow: P3, P4
743 ClickPanelTitlebar(panels[2]);
744 WaitForExpansionStateChanged(panels[2], Panel::EXPANDED);
745
746 expected_normal_list.clear();
747 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false);
748 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false);
749 expected_normal_list.Add(panels[2], Panel::EXPANDED, true, false);
750 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData());
751
752 expected_overflow_list.clear();
753 expected_overflow_list.Add(panels[3], true, false);
754 expected_overflow_list.Add(panels[4], true, false);
755 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
756
757 // Clicking an overflow panel that was previously title-only should bring it
758 // out of the overflow as expanded.
759 // normal: P0, P1, P3
760 // overflow: P2, P4
761 ClickPanelTitlebar(panels[3]);
762 WaitForExpansionStateChanged(panels[3], Panel::EXPANDED);
763
764 expected_normal_list.clear();
765 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false);
766 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false);
767 expected_normal_list.Add(panels[3], Panel::EXPANDED, true, false);
768 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData());
769
770 expected_overflow_list.clear();
771 expected_overflow_list.Add(panels[2], true, false);
772 expected_overflow_list.Add(panels[4], true, false);
773 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
774
775 PanelManager::GetInstance()->RemoveAll();
776 }
777
667 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_ActivateOverflowPanels) { 778 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_ActivateOverflowPanels) {
668 // Create normal and overflow panels. 779 // Create normal and overflow panels.
669 // normal: P0, P1, P2 780 // normal: P0, P1, P2
670 // overflow: P3, P4, P5 781 // overflow: P3, P4, P5
671 // overflow-on-overflow: P6, P7 782 // overflow-on-overflow: P6, P7
672 const int panel_widths[] = { 783 const int panel_widths[] = {
673 250, 260, 200, // normal 784 250, 260, 200, // normal
674 210, 260, 230, // overflow 785 210, 260, 230, // overflow
675 255, 210 // overflow-on-overflow 786 255, 210 // overflow-on-overflow
676 }; 787 };
677 std::vector<Panel*> panels = CreateOverflowPanels(3, 5, panel_widths); 788 std::vector<Panel*> panels = CreateOverflowPanels(3, 5, panel_widths);
678 789
679 PanelDataList expected_normal_list; 790 NormalPanelDataList expected_normal_list;
680 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 791 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false);
681 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 792 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false);
682 expected_normal_list.Add(panels[2], Panel::EXPANDED, true, false); 793 expected_normal_list.Add(panels[2], Panel::EXPANDED, true, false);
683 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 794 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData());
684 795
685 PanelDataList expected_overflow_list; 796 OverflowPanelDataList expected_overflow_list;
686 expected_overflow_list.Add(panels[3], Panel::IN_OVERFLOW, true, false); 797 expected_overflow_list.Add(panels[3], true, false);
687 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 798 expected_overflow_list.Add(panels[4], true, false);
688 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, true, false); 799 expected_overflow_list.Add(panels[5], true, false);
689 expected_overflow_list.Add(panels[6], Panel::IN_OVERFLOW, false, false); 800 expected_overflow_list.Add(panels[6], false, false);
690 expected_overflow_list.Add(panels[7], Panel::IN_OVERFLOW, false, false); 801 expected_overflow_list.Add(panels[7], false, false);
691 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 802 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
692 803
693 // Activate an overflow panel. Expect one normal panel is swapped into the 804 // Activate an overflow panel. Expect one normal panel is swapped into the
694 // overflow strip. 805 // overflow strip.
695 // normal: P0, P1, P3 806 // normal: P0, P1, P3
696 // overflow: P2, P4, P5 807 // overflow: P2, P4, P5
697 // overflow-on-overflow: P6, P7 808 // overflow-on-overflow: P6, P7
698 panels[3]->Activate(); 809 panels[3]->Activate();
699 WaitForPanelActiveState(panels[3], SHOW_AS_ACTIVE); 810 WaitForPanelActiveState(panels[3], SHOW_AS_ACTIVE);
700 WaitForExpansionStateChanged(panels[3], Panel::EXPANDED); 811 WaitForExpansionStateChanged(panels[3], Panel::EXPANDED);
701 812
702 expected_normal_list.clear(); 813 expected_normal_list.clear();
703 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 814 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false);
704 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 815 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false);
705 expected_normal_list.Add(panels[3], Panel::EXPANDED, true, true); 816 expected_normal_list.Add(panels[3], Panel::EXPANDED, true, true);
706 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 817 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData());
707 818
708 expected_overflow_list.clear(); 819 expected_overflow_list.clear();
709 expected_overflow_list.Add(panels[2], Panel::IN_OVERFLOW, true, false); 820 expected_overflow_list.Add(panels[2], true, false);
710 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 821 expected_overflow_list.Add(panels[4], true, false);
711 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, true, false); 822 expected_overflow_list.Add(panels[5], true, false);
712 expected_overflow_list.Add(panels[6], Panel::IN_OVERFLOW, false, false); 823 expected_overflow_list.Add(panels[6], false, false);
713 expected_overflow_list.Add(panels[7], Panel::IN_OVERFLOW, false, false); 824 expected_overflow_list.Add(panels[7], false, false);
714 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 825 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
715 826
716 // Activate an overflow panel. Expect two normal panels are swapped into the 827 // Activate an overflow panel. Expect two normal panels are swapped into the
717 // overflow strip and one overflow panel to become hidden. 828 // overflow strip and one overflow panel to become hidden.
718 // normal: P0, P4 829 // normal: P0, P4
719 // overflow: P1, P3, P2 830 // overflow: P1, P3, P2
720 // overflow-on-overflow: P5, P6, P7 831 // overflow-on-overflow: P5, P6, P7
721 panels[4]->Activate(); 832 panels[4]->Activate();
722 WaitForPanelActiveState(panels[4], SHOW_AS_ACTIVE); 833 WaitForPanelActiveState(panels[4], SHOW_AS_ACTIVE);
723 WaitForExpansionStateChanged(panels[4], Panel::EXPANDED); 834 WaitForExpansionStateChanged(panels[4], Panel::EXPANDED);
724 WaitForPanelActiveState(panels[3], SHOW_AS_INACTIVE); 835 WaitForPanelActiveState(panels[3], SHOW_AS_INACTIVE);
725 836
726 expected_normal_list.clear(); 837 expected_normal_list.clear();
727 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 838 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false);
728 expected_normal_list.Add(panels[4], Panel::EXPANDED, true, true); 839 expected_normal_list.Add(panels[4], Panel::EXPANDED, true, true);
729 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 840 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData());
730 841
731 expected_overflow_list.clear(); 842 expected_overflow_list.clear();
732 expected_overflow_list.Add(panels[1], Panel::IN_OVERFLOW, true, false); 843 expected_overflow_list.Add(panels[1], true, false);
733 expected_overflow_list.Add(panels[3], Panel::IN_OVERFLOW, true, false); 844 expected_overflow_list.Add(panels[3], true, false);
734 expected_overflow_list.Add(panels[2], Panel::IN_OVERFLOW, true, false); 845 expected_overflow_list.Add(panels[2], true, false);
735 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, false, false); 846 expected_overflow_list.Add(panels[5], false, false);
736 expected_overflow_list.Add(panels[6], Panel::IN_OVERFLOW, false, false); 847 expected_overflow_list.Add(panels[6], false, false);
737 expected_overflow_list.Add(panels[7], Panel::IN_OVERFLOW, false, false); 848 expected_overflow_list.Add(panels[7], false, false);
738 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 849 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
739 850
740 // Activate an overflow-on-overflow panel. Expect one normal panel is swapped 851 // Activate an overflow-on-overflow panel. Expect one normal panel is swapped
741 // into the overflow strip. 852 // into the overflow strip.
742 // normal: P0, P6 853 // normal: P0, P6
743 // overflow: P4, P1, P3, 854 // overflow: P4, P1, P3,
744 // overflow-on-overflow: P2, P5, P7 855 // overflow-on-overflow: P2, P5, P7
745 panels[6]->Activate(); 856 panels[6]->Activate();
746 WaitForPanelActiveState(panels[6], SHOW_AS_ACTIVE); 857 WaitForPanelActiveState(panels[6], SHOW_AS_ACTIVE);
747 WaitForExpansionStateChanged(panels[6], Panel::EXPANDED); 858 WaitForExpansionStateChanged(panels[6], Panel::EXPANDED);
748 WaitForPanelActiveState(panels[4], SHOW_AS_INACTIVE); 859 WaitForPanelActiveState(panels[4], SHOW_AS_INACTIVE);
749 860
750 expected_normal_list.clear(); 861 expected_normal_list.clear();
751 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 862 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false);
752 expected_normal_list.Add(panels[6], Panel::EXPANDED, true, true); 863 expected_normal_list.Add(panels[6], Panel::EXPANDED, true, true);
753 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 864 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData());
754 865
755 expected_overflow_list.clear(); 866 expected_overflow_list.clear();
756 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 867 expected_overflow_list.Add(panels[4], true, false);
757 expected_overflow_list.Add(panels[1], Panel::IN_OVERFLOW, true, false); 868 expected_overflow_list.Add(panels[1], true, false);
758 expected_overflow_list.Add(panels[3], Panel::IN_OVERFLOW, true, false); 869 expected_overflow_list.Add(panels[3], true, false);
759 expected_overflow_list.Add(panels[2], Panel::IN_OVERFLOW, false, false); 870 expected_overflow_list.Add(panels[2], false, false);
760 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, false, false); 871 expected_overflow_list.Add(panels[5], false, false);
761 expected_overflow_list.Add(panels[7], Panel::IN_OVERFLOW, false, false); 872 expected_overflow_list.Add(panels[7], false, false);
762 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 873 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
763 874
764 // Activate an overflow-on-overflow panel. No normal panel is swapped 875 // Activate an overflow-on-overflow panel. No normal panel is swapped
765 // since there has already been enough space in the panel strip. 876 // since there has already been enough space in the panel strip.
766 // normal: P0, P6, P7 877 // normal: P0, P6, P7
767 // overflow: P4, P1, P3, 878 // overflow: P4, P1, P3,
768 // overflow-on-overflow: P2, P5 879 // overflow-on-overflow: P2, P5
769 panels[7]->Activate(); 880 panels[7]->Activate();
770 WaitForPanelActiveState(panels[7], SHOW_AS_ACTIVE); 881 WaitForPanelActiveState(panels[7], SHOW_AS_ACTIVE);
771 WaitForExpansionStateChanged(panels[7], Panel::EXPANDED); 882 WaitForExpansionStateChanged(panels[7], Panel::EXPANDED);
772 WaitForPanelActiveState(panels[6], SHOW_AS_INACTIVE); 883 WaitForPanelActiveState(panels[6], SHOW_AS_INACTIVE);
773 884
774 expected_normal_list.clear(); 885 expected_normal_list.clear();
775 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 886 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false);
776 expected_normal_list.Add(panels[6], Panel::EXPANDED, true, false); 887 expected_normal_list.Add(panels[6], Panel::EXPANDED, true, false);
777 expected_normal_list.Add(panels[7], Panel::EXPANDED, true, true); 888 expected_normal_list.Add(panels[7], Panel::EXPANDED, true, true);
778 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 889 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData());
779 890
780 expected_overflow_list.clear(); 891 expected_overflow_list.clear();
781 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 892 expected_overflow_list.Add(panels[4], true, false);
782 expected_overflow_list.Add(panels[1], Panel::IN_OVERFLOW, true, false); 893 expected_overflow_list.Add(panels[1], true, false);
783 expected_overflow_list.Add(panels[3], Panel::IN_OVERFLOW, true, false); 894 expected_overflow_list.Add(panels[3], true, false);
784 expected_overflow_list.Add(panels[2], Panel::IN_OVERFLOW, false, false); 895 expected_overflow_list.Add(panels[2], false, false);
785 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, false, false); 896 expected_overflow_list.Add(panels[5], false, false);
786 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 897 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
787 898
788 PanelManager::GetInstance()->RemoveAll(); 899 PanelManager::GetInstance()->RemoveAll();
789 } 900 }
790 901
791 IN_PROC_BROWSER_TEST_F( 902 IN_PROC_BROWSER_TEST_F(
792 PanelOverflowBrowserTest, 903 PanelOverflowBrowserTest,
793 MAYBE_MoveMinimizedPanelToOverflowAndBringBackByActivate) { 904 MAYBE_MoveMinimizedPanelToOverflowAndBringBackByActivate) {
794 // Create normal and overflow panels. 905 // Create normal and overflow panels.
795 // normal: P0, P1, P2 906 // normal: P0, P1, P2
796 // overflow: P3, P4 907 // overflow: P3, P4
797 const int panel_widths[] = { 908 const int panel_widths[] = {
798 250, 260, 200, // normal 909 250, 260, 200, // normal
799 210, 260 // overflow 910 210, 260 // overflow
800 }; 911 };
801 std::vector<Panel*> panels = CreateOverflowPanels(3, 2, panel_widths); 912 std::vector<Panel*> panels = CreateOverflowPanels(3, 2, panel_widths);
802 913
803 PanelDataList expected_normal_list; 914 NormalPanelDataList expected_normal_list;
804 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 915 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false);
805 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 916 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false);
806 expected_normal_list.Add(panels[2], Panel::EXPANDED, true, false); 917 expected_normal_list.Add(panels[2], Panel::EXPANDED, true, false);
807 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 918 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData());
808 919
809 PanelDataList expected_overflow_list; 920 OverflowPanelDataList expected_overflow_list;
810 expected_overflow_list.Add(panels[3], Panel::IN_OVERFLOW, true, false); 921 expected_overflow_list.Add(panels[3], true, false);
811 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 922 expected_overflow_list.Add(panels[4], true, false);
923 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
812 924
813 // Minimize a normal panel and then bump it to overflow by activating an 925 // Minimize a normal panel and then bump it to overflow by activating an
814 // overflow panel. 926 // overflow panel.
815 // normal: P0, P1, P3 927 // normal: P0, P1, P3
816 // overflow: P2, P4 928 // overflow: P2, P4
817 panels[2]->SetExpansionState(Panel::MINIMIZED); 929 panels[2]->SetExpansionState(Panel::MINIMIZED);
818 panels[3]->Activate(); 930 panels[3]->Activate();
819 WaitForPanelActiveState(panels[3], SHOW_AS_ACTIVE); 931 WaitForPanelActiveState(panels[3], SHOW_AS_ACTIVE);
820 WaitForExpansionStateChanged(panels[3], Panel::EXPANDED); 932 WaitForExpansionStateChanged(panels[3], Panel::EXPANDED);
821 933
822 expected_normal_list.clear(); 934 expected_normal_list.clear();
823 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 935 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false);
824 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 936 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false);
825 expected_normal_list.Add(panels[3], Panel::EXPANDED, true, true); 937 expected_normal_list.Add(panels[3], Panel::EXPANDED, true, true);
826 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 938 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData());
827 939
828 expected_overflow_list.clear(); 940 expected_overflow_list.clear();
829 expected_overflow_list.Add(panels[2], Panel::IN_OVERFLOW, true, false); 941 expected_overflow_list.Add(panels[2], true, false);
830 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 942 expected_overflow_list.Add(panels[4], true, false);
831 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 943 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
832 944
833 // Reactivate the formerly minimized panel. It will return to the panel 945 // Reactivate the formerly minimized panel. It will return to the panel
834 // strip in expanded state. 946 // strip in expanded state.
835 // normal: P0, P1, P2 947 // normal: P0, P1, P2
836 // overflow: P3, P4 948 // overflow: P3, P4
837 panels[2]->Activate(); 949 panels[2]->Activate();
838 WaitForPanelActiveState(panels[2], SHOW_AS_ACTIVE); 950 WaitForPanelActiveState(panels[2], SHOW_AS_ACTIVE);
839 WaitForExpansionStateChanged(panels[2], Panel::EXPANDED); 951 WaitForExpansionStateChanged(panels[2], Panel::EXPANDED);
840 952
841 expected_normal_list.clear(); 953 expected_normal_list.clear();
842 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 954 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false);
843 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 955 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false);
844 expected_normal_list.Add(panels[2], Panel::EXPANDED, true, true); 956 expected_normal_list.Add(panels[2], Panel::EXPANDED, true, true);
845 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 957 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData());
846 958
847 expected_overflow_list.clear(); 959 expected_overflow_list.clear();
848 expected_overflow_list.Add(panels[3], Panel::IN_OVERFLOW, true, false); 960 expected_overflow_list.Add(panels[3], true, false);
849 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 961 expected_overflow_list.Add(panels[4], true, false);
850 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 962 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
851 963
852 // Minimize a panel to title only mode, then bump it to overflow. 964 // Minimize a panel to title only mode, then bump it to overflow.
853 // normal: P0, P1, P3 965 // normal: P0, P1, P3
854 // overflow: P2, P4 966 // overflow: P2, P4
855 panels[2]->SetExpansionState(Panel::TITLE_ONLY); 967 panels[2]->SetExpansionState(Panel::TITLE_ONLY);
856 panels[3]->Activate(); 968 panels[3]->Activate();
857 WaitForPanelActiveState(panels[3], SHOW_AS_ACTIVE); 969 WaitForPanelActiveState(panels[3], SHOW_AS_ACTIVE);
858 WaitForExpansionStateChanged(panels[3], Panel::EXPANDED); 970 WaitForExpansionStateChanged(panels[3], Panel::EXPANDED);
859 971
860 expected_normal_list.clear(); 972 expected_normal_list.clear();
861 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 973 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false);
862 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 974 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false);
863 expected_normal_list.Add(panels[3], Panel::EXPANDED, true, true); 975 expected_normal_list.Add(panels[3], Panel::EXPANDED, true, true);
864 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 976 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData());
865 977
866 expected_overflow_list.clear(); 978 expected_overflow_list.clear();
867 expected_overflow_list.Add(panels[2], Panel::IN_OVERFLOW, true, false); 979 expected_overflow_list.Add(panels[2], true, false);
868 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 980 expected_overflow_list.Add(panels[4], true, false);
869 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 981 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
870 982
871 // Reactivate the formerly minimized panel. It will return to the panel 983 // Reactivate the formerly minimized panel. It will return to the panel
872 // strip in expanded state. 984 // strip in expanded state.
873 // normal: P0, P1, P2 985 // normal: P0, P1, P2
874 // overflow: P3, P4 986 // overflow: P3, P4
875 panels[2]->Activate(); 987 panels[2]->Activate();
876 WaitForPanelActiveState(panels[2], SHOW_AS_ACTIVE); 988 WaitForPanelActiveState(panels[2], SHOW_AS_ACTIVE);
877 WaitForExpansionStateChanged(panels[2], Panel::EXPANDED); 989 WaitForExpansionStateChanged(panels[2], Panel::EXPANDED);
878 990
879 expected_normal_list.clear(); 991 expected_normal_list.clear();
880 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 992 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false);
881 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 993 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false);
882 expected_normal_list.Add(panels[2], Panel::EXPANDED, true, true); 994 expected_normal_list.Add(panels[2], Panel::EXPANDED, true, true);
883 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 995 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData());
884 996
885 expected_overflow_list.clear(); 997 expected_overflow_list.clear();
886 expected_overflow_list.Add(panels[3], Panel::IN_OVERFLOW, true, false); 998 expected_overflow_list.Add(panels[3], true, false);
887 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 999 expected_overflow_list.Add(panels[4], true, false);
888 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 1000 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
889 1001
890 PanelManager::GetInstance()->RemoveAll(); 1002 PanelManager::GetInstance()->RemoveAll();
891 } 1003 }
892 1004
893 IN_PROC_BROWSER_TEST_F( 1005 IN_PROC_BROWSER_TEST_F(
894 PanelOverflowBrowserTest, 1006 PanelOverflowBrowserTest,
895 MAYBE_MoveMinimizedPanelToOverflowAndBringBackByCloseOrResize) { 1007 MAYBE_MoveMinimizedPanelToOverflowAndBringBackByCloseOrResize) {
896 PanelManager* panel_manager = PanelManager::GetInstance(); 1008 PanelManager* panel_manager = PanelManager::GetInstance();
897 1009
898 // Create normal and overflow panels. 1010 // Create normal and overflow panels.
899 // normal: P0, P1, P2 1011 // normal: P0, P1, P2
900 // overflow: P3, P4, P5 1012 // overflow: P3, P4, P5
901 const int panel_widths[] = { 1013 const int panel_widths[] = {
902 240, 240, 120, // normal 1014 240, 240, 120, // normal
903 240, 240, 240 // overflow 1015 240, 240, 240 // overflow
904 }; 1016 };
905 std::vector<Panel*> panels = CreateOverflowPanels(3, 3, panel_widths); 1017 std::vector<Panel*> panels = CreateOverflowPanels(3, 3, panel_widths);
906 1018
907 PanelDataList expected_normal_list; 1019 NormalPanelDataList expected_normal_list;
908 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 1020 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false);
909 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 1021 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false);
910 expected_normal_list.Add(panels[2], Panel::EXPANDED, true, false); 1022 expected_normal_list.Add(panels[2], Panel::EXPANDED, true, false);
911 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 1023 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData());
912 1024
913 PanelDataList expected_overflow_list; 1025 OverflowPanelDataList expected_overflow_list;
914 expected_overflow_list.Add(panels[3], Panel::IN_OVERFLOW, true, false); 1026 expected_overflow_list.Add(panels[3], true, false);
915 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 1027 expected_overflow_list.Add(panels[4], true, false);
916 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, true, false); 1028 expected_overflow_list.Add(panels[5], true, false);
917 1029
918 // Test case 1: restoring minimized to minimized. 1030 // Test case 1: restoring minimized to minimized.
919 { 1031 {
920 // Minimize a normal panel and then bump it to overflow by activating an 1032 // Minimize a normal panel and then bump it to overflow by activating an
921 // overflow panel. 1033 // overflow panel.
922 // normal: P0, P1, P3 1034 // normal: P0, P1, P3
923 // overflow: P2, P4, P5 1035 // overflow: P2, P4, P5
924 panels[2]->SetExpansionState(Panel::MINIMIZED); 1036 panels[2]->SetExpansionState(Panel::MINIMIZED);
925 panels[3]->Activate(); 1037 panels[3]->Activate();
926 WaitForPanelActiveState(panels[3], SHOW_AS_ACTIVE); 1038 WaitForPanelActiveState(panels[3], SHOW_AS_ACTIVE);
927 WaitForExpansionStateChanged(panels[3], Panel::EXPANDED); 1039 WaitForExpansionStateChanged(panels[3], Panel::EXPANDED);
928 1040
929 expected_normal_list.clear(); 1041 expected_normal_list.clear();
930 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 1042 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false);
931 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 1043 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false);
932 expected_normal_list.Add(panels[3], Panel::EXPANDED, true, true); 1044 expected_normal_list.Add(panels[3], Panel::EXPANDED, true, true);
933 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 1045 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData());
934 1046
935 expected_overflow_list.clear(); 1047 expected_overflow_list.clear();
936 expected_overflow_list.Add(panels[2], Panel::IN_OVERFLOW, true, false); 1048 expected_overflow_list.Add(panels[2], true, false);
937 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 1049 expected_overflow_list.Add(panels[4], true, false);
938 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, true, false); 1050 expected_overflow_list.Add(panels[5], true, false);
939 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 1051 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
940 1052
941 // Bring back the formerly minimized panel by closing a panel. It will 1053 // Bring back the formerly minimized panel by closing a panel. It will
942 // return to the panel strip in the minimized state. 1054 // return to the panel strip in the minimized state.
943 // normal: P0, P1, P2 1055 // normal: P0, P1, P2
944 // overflow: P4, P5 1056 // overflow: P4, P5
945 CloseWindowAndWait(panels[3]->browser()); 1057 CloseWindowAndWait(panels[3]->browser());
946 WaitForExpansionStateChanged(panels[2], Panel::MINIMIZED); 1058 WaitForExpansionStateChanged(panels[2], Panel::MINIMIZED);
947 1059
948 expected_normal_list.clear(); 1060 expected_normal_list.clear();
949 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 1061 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false);
950 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 1062 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false);
951 expected_normal_list.Add(panels[2], Panel::MINIMIZED, true, false); 1063 expected_normal_list.Add(panels[2], Panel::MINIMIZED, true, false);
952 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 1064 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData());
953 1065
954 expected_overflow_list.clear(); 1066 expected_overflow_list.clear();
955 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 1067 expected_overflow_list.Add(panels[4], true, false);
956 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, true, false); 1068 expected_overflow_list.Add(panels[5], true, false);
957 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 1069 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
958 } 1070 }
959 1071
960 // Test case 2: restoring minimized to title-only. 1072 // Test case 2: restoring minimized to title-only.
961 { 1073 {
962 // Bump the minimized panel to overflow by activating an overflow panel. 1074 // Bump the minimized panel to overflow by activating an overflow panel.
963 // normal: P0, P1, P4 1075 // normal: P0, P1, P4
964 // overflow: P2, P5 1076 // overflow: P2, P5
965 panels[4]->Activate(); 1077 panels[4]->Activate();
966 WaitForPanelActiveState(panels[4], SHOW_AS_ACTIVE); 1078 WaitForPanelActiveState(panels[4], SHOW_AS_ACTIVE);
967 WaitForExpansionStateChanged(panels[4], Panel::EXPANDED); 1079 WaitForExpansionStateChanged(panels[4], Panel::EXPANDED);
968 1080
969 expected_normal_list.clear(); 1081 expected_normal_list.clear();
970 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 1082 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false);
971 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 1083 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false);
972 expected_normal_list.Add(panels[4], Panel::EXPANDED, true, true); 1084 expected_normal_list.Add(panels[4], Panel::EXPANDED, true, true);
973 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 1085 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData());
974 1086
975 expected_overflow_list.clear(); 1087 expected_overflow_list.clear();
976 expected_overflow_list.Add(panels[2], Panel::IN_OVERFLOW, true, false); 1088 expected_overflow_list.Add(panels[2], true, false);
977 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, true, false); 1089 expected_overflow_list.Add(panels[5], true, false);
978 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 1090 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
979 1091
980 // Minimize another panel and hover the mouse over it. This should bring up 1092 // Minimize another panel and hover the mouse over it. This should bring up
981 // all currently minimized panels. When a formerly minimized or title-only 1093 // all currently minimized panels. When a formerly minimized or title-only
982 // panel is restored from the overflow area, it should also be title-only. 1094 // panel is restored from the overflow area, it should also be title-only.
983 panels[0]->SetExpansionState(Panel::MINIMIZED); 1095 panels[0]->SetExpansionState(Panel::MINIMIZED);
984 MoveMouse(gfx::Point(panels[0]->GetBounds().x(), 1096 MoveMouse(gfx::Point(panels[0]->GetBounds().x(),
985 panels[0]->GetBounds().y())); 1097 panels[0]->GetBounds().y()));
986 WaitForExpansionStateChanged(panels[0], Panel::TITLE_ONLY); 1098 WaitForExpansionStateChanged(panels[0], Panel::TITLE_ONLY);
987 1099
988 // Bring back the formerly minimized panel by closing a panel. It will 1100 // Bring back the formerly minimized panel by closing a panel. It will
989 // return to the panel strip in the title-only state. 1101 // return to the panel strip in the title-only state.
990 // normal: P0, P1, P2 1102 // normal: P0, P1, P2
991 // overflow: P5 1103 // overflow: P5
992 CloseWindowAndWait(panels[4]->browser()); 1104 CloseWindowAndWait(panels[4]->browser());
993 WaitForExpansionStateChanged(panels[2], Panel::TITLE_ONLY); 1105 WaitForExpansionStateChanged(panels[2], Panel::TITLE_ONLY);
994 1106
995 expected_normal_list.clear(); 1107 expected_normal_list.clear();
996 expected_normal_list.Add(panels[0], Panel::TITLE_ONLY, true, false); 1108 expected_normal_list.Add(panels[0], Panel::TITLE_ONLY, true, false);
997 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 1109 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false);
998 expected_normal_list.Add(panels[2], Panel::TITLE_ONLY, true, false); 1110 expected_normal_list.Add(panels[2], Panel::TITLE_ONLY, true, false);
999 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 1111 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData());
1000 1112
1001 expected_overflow_list.clear(); 1113 expected_overflow_list.clear();
1002 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, true, false); 1114 expected_overflow_list.Add(panels[5], true, false);
1003 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 1115 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
1004 } 1116 }
1005 1117
1006 // Test case 3: restoring title-only to title-only. 1118 // Test case 3: restoring title-only to title-only.
1007 { 1119 {
1008 // Bump the title-only panel to overflow by activating an overflow panel. 1120 // Bump the title-only panel to overflow by activating an overflow panel.
1009 // normal: P0, P1, P5 1121 // normal: P0, P1, P5
1010 // overflow: P2 1122 // overflow: P2
1011 panels[5]->Activate(); 1123 panels[5]->Activate();
1012 WaitForPanelActiveState(panels[5], SHOW_AS_ACTIVE); 1124 WaitForPanelActiveState(panels[5], SHOW_AS_ACTIVE);
1013 WaitForExpansionStateChanged(panels[5], Panel::EXPANDED); 1125 WaitForExpansionStateChanged(panels[5], Panel::EXPANDED);
1014 1126
1015 expected_normal_list.clear(); 1127 expected_normal_list.clear();
1016 expected_normal_list.Add(panels[0], Panel::TITLE_ONLY, true, false); 1128 expected_normal_list.Add(panels[0], Panel::TITLE_ONLY, true, false);
1017 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 1129 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false);
1018 expected_normal_list.Add(panels[5], Panel::EXPANDED, true, true); 1130 expected_normal_list.Add(panels[5], Panel::EXPANDED, true, true);
1019 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 1131 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData());
1020 1132
1021 expected_overflow_list.clear(); 1133 expected_overflow_list.clear();
1022 expected_overflow_list.Add(panels[2], Panel::IN_OVERFLOW, true, false); 1134 expected_overflow_list.Add(panels[2], true, false);
1023 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 1135 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
1024 1136
1025 // Bring back the formerly title-only panel by shrinking a panel. It will 1137 // Bring back the formerly title-only panel by shrinking a panel. It will
1026 // return to the panel strip in the title-only state. 1138 // return to the panel strip in the title-only state.
1027 // normal: P0, P1, P5, P2 1139 // normal: P0, P1, P5, P2
1028 panel_manager->ResizePanel(panels[5], gfx::Size( 1140 panel_manager->ResizePanel(panels[5], gfx::Size(
1029 panels[5]->GetBounds().width() / 2, 1141 panels[5]->GetBounds().width() / 2,
1030 panels[5]->GetBounds().height() / 2)); 1142 panels[5]->GetBounds().height() / 2));
1031 1143
1032 expected_normal_list.clear(); 1144 expected_normal_list.clear();
(...skipping 16 matching lines...) Expand all
1049 panels[5]->GetBounds().width() * 2, 1161 panels[5]->GetBounds().width() * 2,
1050 panels[5]->GetBounds().height() * 2)); 1162 panels[5]->GetBounds().height() * 2));
1051 1163
1052 expected_normal_list.clear(); 1164 expected_normal_list.clear();
1053 expected_normal_list.Add(panels[0], Panel::TITLE_ONLY, true, false); 1165 expected_normal_list.Add(panels[0], Panel::TITLE_ONLY, true, false);
1054 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 1166 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false);
1055 expected_normal_list.Add(panels[5], Panel::EXPANDED, true, true); 1167 expected_normal_list.Add(panels[5], Panel::EXPANDED, true, true);
1056 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 1168 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData());
1057 1169
1058 expected_overflow_list.clear(); 1170 expected_overflow_list.clear();
1059 expected_overflow_list.Add(panels[2], Panel::IN_OVERFLOW, true, false); 1171 expected_overflow_list.Add(panels[2], true, false);
1060 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 1172 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
1061 1173
1062 // Move the mouse away. This should bring down all currently title-only 1174 // Move the mouse away. This should bring down all currently title-only
1063 // panels. When a formerly minimized or title-only panel is restored from 1175 // panels. When a formerly minimized or title-only panel is restored from
1064 // the overflow area, it should be minimized. 1176 // the overflow area, it should be minimized.
1065 MoveMouse(gfx::Point(0, 0)); 1177 MoveMouse(gfx::Point(0, 0));
1066 WaitForExpansionStateChanged(panels[0], Panel::MINIMIZED); 1178 WaitForExpansionStateChanged(panels[0], Panel::MINIMIZED);
1067 1179
1068 // Bring back the formerly title-only panel by shrinking a panel. It will 1180 // Bring back the formerly title-only panel by shrinking a panel. It will
1069 // return to the panel strip in the minimized state. 1181 // return to the panel strip in the minimized state.
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
1279 EXPECT_EQ(4, panel_strip->num_panels()); 1391 EXPECT_EQ(4, panel_strip->num_panels());
1280 EXPECT_EQ(0, overflow_strip->num_panels()); 1392 EXPECT_EQ(0, overflow_strip->num_panels());
1281 1393
1282 // Resize last panel so that it is too big to fit and overflows. 1394 // Resize last panel so that it is too big to fit and overflows.
1283 // normal: P1 (250), P2 (200), P3 (100) 1395 // normal: P1 (250), P2 (200), P3 (100)
1284 // overflow: P4 (250)* 1396 // overflow: P4 (250)*
1285 gfx::Size new_size(250, 200); 1397 gfx::Size new_size(250, 200);
1286 panel_manager->OnPreferredWindowSizeChanged(panel4, new_size); 1398 panel_manager->OnPreferredWindowSizeChanged(panel4, new_size);
1287 EXPECT_EQ(3, panel_strip->num_panels()); 1399 EXPECT_EQ(3, panel_strip->num_panels());
1288 EXPECT_EQ(1, overflow_strip->num_panels()); 1400 EXPECT_EQ(1, overflow_strip->num_panels());
1289 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->expansion_state()); 1401 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->layout_state());
1290 EXPECT_TRUE(IsPanelInOverflowStrip(panel4)); 1402 EXPECT_TRUE(IsPanelInOverflowStrip(panel4));
1291 EXPECT_EQ(new_size, panel4->restored_size()); 1403 EXPECT_EQ(new_size, panel4->restored_size());
1292 1404
1293 // Open another panel that will fit. 1405 // Open another panel that will fit.
1294 // normal: P1 (250), P2 (200), P3 (100), P5 (100)* 1406 // normal: P1 (250), P2 (200), P3 (100), P5 (100)*
1295 // overflow: P4 (250) 1407 // overflow: P4 (250)
1296 Panel* panel5 = CreatePanelWithBounds("5", gfx::Rect(0, 0, 100, 200)); 1408 Panel* panel5 = CreatePanelWithBounds("5", gfx::Rect(0, 0, 100, 200));
1297 EXPECT_EQ(4, panel_strip->num_panels()); 1409 EXPECT_EQ(4, panel_strip->num_panels());
1298 EXPECT_EQ(1, overflow_strip->num_panels()); 1410 EXPECT_EQ(1, overflow_strip->num_panels());
1299 EXPECT_EQ(Panel::EXPANDED, panel5->expansion_state()); 1411 EXPECT_EQ(Panel::EXPANDED, panel5->expansion_state());
1300 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->expansion_state()); // no change 1412 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->layout_state()); // no change
1301 1413
1302 // Resize a panel from the middle of the strip so that it causes a 1414 // Resize a panel from the middle of the strip so that it causes a
1303 // panel to overflow. 1415 // panel to overflow.
1304 // normal: P1 (250), P2 (200), P3 (250)* 1416 // normal: P1 (250), P2 (200), P3 (250)*
1305 // overflow: P5 (100), P4 (250) 1417 // overflow: P5 (100), P4 (250)
1306 panel_manager->OnPreferredWindowSizeChanged(panel3, gfx::Size(250, 200)); 1418 panel_manager->OnPreferredWindowSizeChanged(panel3, gfx::Size(250, 200));
1307 EXPECT_EQ(3, panel_strip->num_panels()); 1419 EXPECT_EQ(3, panel_strip->num_panels());
1308 EXPECT_EQ(2, overflow_strip->num_panels()); 1420 EXPECT_EQ(2, overflow_strip->num_panels());
1309 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->expansion_state()); 1421 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->layout_state());
1310 EXPECT_EQ(Panel::IN_OVERFLOW, panel5->expansion_state()); 1422 EXPECT_EQ(Panel::IN_OVERFLOW, panel5->layout_state());
1311 const PanelOverflowStrip::Panels& overflow = overflow_strip->panels(); 1423 const PanelOverflowStrip::Panels& overflow = overflow_strip->panels();
1312 EXPECT_EQ(panel5, overflow[0]); // new overflow panel is first 1424 EXPECT_EQ(panel5, overflow[0]); // new overflow panel is first
1313 EXPECT_EQ(panel4, overflow[1]); 1425 EXPECT_EQ(panel4, overflow[1]);
1314 1426
1315 // Resize panel smaller so that panel from overflow can fit. 1427 // Resize panel smaller so that panel from overflow can fit.
1316 // normal: P1 (250), P2 (200), P3 (100)*, P5 (100) 1428 // normal: P1 (250), P2 (200), P3 (100)*, P5 (100)
1317 // overflow: P4 (250) 1429 // overflow: P4 (250)
1318 panel_manager->OnPreferredWindowSizeChanged(panel3, gfx::Size(100, 200)); 1430 panel_manager->OnPreferredWindowSizeChanged(panel3, gfx::Size(100, 200));
1319 EXPECT_EQ(4, panel_strip->num_panels()); 1431 EXPECT_EQ(4, panel_strip->num_panels());
1320 EXPECT_EQ(1, overflow_strip->num_panels()); 1432 EXPECT_EQ(1, overflow_strip->num_panels());
1321 EXPECT_EQ(Panel::EXPANDED, panel5->expansion_state()); 1433 EXPECT_EQ(Panel::EXPANDED, panel5->expansion_state());
1322 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->expansion_state()); 1434 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->layout_state());
1323 1435
1324 // Resize smaller again but not small enough to fit overflow panel. 1436 // Resize smaller again but not small enough to fit overflow panel.
1325 // normal: P1 (250), P2 (100)*, P3 (100), P5 (100) 1437 // normal: P1 (250), P2 (100)*, P3 (100), P5 (100)
1326 // overflow: P4 (250) 1438 // overflow: P4 (250)
1327 panel_manager->OnPreferredWindowSizeChanged(panel2, gfx::Size(100, 200)); 1439 panel_manager->OnPreferredWindowSizeChanged(panel2, gfx::Size(100, 200));
1328 EXPECT_EQ(4, panel_strip->num_panels()); 1440 EXPECT_EQ(4, panel_strip->num_panels());
1329 EXPECT_EQ(1, overflow_strip->num_panels()); 1441 EXPECT_EQ(1, overflow_strip->num_panels());
1330 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->expansion_state()); // no change 1442 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->layout_state()); // no change
1331 1443
1332 // Resize overflow panel bigger. It should stay in overflow and bounds 1444 // Resize overflow panel bigger. It should stay in overflow and bounds
1333 // should not change. 1445 // should not change.
1334 // normal: P1 (250), P2 (100), P3 (100), P5 (100) 1446 // normal: P1 (250), P2 (100), P3 (100), P5 (100)
1335 // overflow: P4 (251)* 1447 // overflow: P4 (251)*
1336 gfx::Rect bounds_before_resize = panel4->GetBounds(); 1448 gfx::Rect bounds_before_resize = panel4->GetBounds();
1337 new_size.SetSize(251, 200); 1449 new_size.SetSize(251, 200);
1338 panel_manager->OnPreferredWindowSizeChanged(panel4, new_size); 1450 panel_manager->OnPreferredWindowSizeChanged(panel4, new_size);
1339 EXPECT_EQ(4, panel_strip->num_panels()); 1451 EXPECT_EQ(4, panel_strip->num_panels());
1340 EXPECT_EQ(1, overflow_strip->num_panels()); 1452 EXPECT_EQ(1, overflow_strip->num_panels());
1341 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->expansion_state()); 1453 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->layout_state());
1342 EXPECT_EQ(bounds_before_resize, panel4->GetBounds()); 1454 EXPECT_EQ(bounds_before_resize, panel4->GetBounds());
1343 EXPECT_EQ(new_size, panel4->restored_size()); 1455 EXPECT_EQ(new_size, panel4->restored_size());
1344 1456
1345 // Resize overflow panel to make it fit. 1457 // Resize overflow panel to make it fit.
1346 // normal: P1 (250), P2 (100), P3 (100), P5 (100), P4 (100)* 1458 // normal: P1 (250), P2 (100), P3 (100), P5 (100), P4 (100)*
1347 // overflow: empty 1459 // overflow: empty
1348 panel_manager->OnPreferredWindowSizeChanged(panel4, gfx::Size(100, 200)); 1460 panel_manager->OnPreferredWindowSizeChanged(panel4, gfx::Size(100, 200));
1349 EXPECT_EQ(5, panel_strip->num_panels()); 1461 EXPECT_EQ(5, panel_strip->num_panels());
1350 EXPECT_EQ(0, overflow_strip->num_panels()); 1462 EXPECT_EQ(0, overflow_strip->num_panels());
1351 EXPECT_EQ(Panel::EXPANDED, panel4->expansion_state()); 1463 EXPECT_EQ(Panel::EXPANDED, panel4->expansion_state());
1352 1464
1353 // Resize a panel bigger, but not enough to cause overflow. 1465 // Resize a panel bigger, but not enough to cause overflow.
1354 // normal: P1 (250), P2 (100), P3 (150)*, P5 (100), P4 (100) 1466 // normal: P1 (250), P2 (100), P3 (150)*, P5 (100), P4 (100)
1355 // overflow: empty 1467 // overflow: empty
1356 panel_manager->OnPreferredWindowSizeChanged(panel3, gfx::Size(150, 200)); 1468 panel_manager->OnPreferredWindowSizeChanged(panel3, gfx::Size(150, 200));
1357 EXPECT_EQ(5, panel_strip->num_panels()); 1469 EXPECT_EQ(5, panel_strip->num_panels());
1358 EXPECT_EQ(0, overflow_strip->num_panels()); 1470 EXPECT_EQ(0, overflow_strip->num_panels());
1359 1471
1360 // Resize a panel to bump more than one panel to overflow. 1472 // Resize a panel to bump more than one panel to overflow.
1361 // normal: P1 (250), P2 (250)*, P3 (150) 1473 // normal: P1 (250), P2 (250)*, P3 (150)
1362 // overflow: P5 (100), P4 (100) 1474 // overflow: P5 (100), P4 (100)
1363 panel_manager->OnPreferredWindowSizeChanged(panel2, gfx::Size(250, 200)); 1475 panel_manager->OnPreferredWindowSizeChanged(panel2, gfx::Size(250, 200));
1364 EXPECT_EQ(3, panel_strip->num_panels()); 1476 EXPECT_EQ(3, panel_strip->num_panels());
1365 EXPECT_EQ(2, overflow_strip->num_panels()); 1477 EXPECT_EQ(2, overflow_strip->num_panels());
1366 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->expansion_state()); 1478 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->layout_state());
1367 EXPECT_EQ(Panel::IN_OVERFLOW, panel5->expansion_state()); 1479 EXPECT_EQ(Panel::IN_OVERFLOW, panel5->layout_state());
1368 const PanelOverflowStrip::Panels& overflow2 = overflow_strip->panels(); 1480 const PanelOverflowStrip::Panels& overflow2 = overflow_strip->panels();
1369 EXPECT_EQ(panel5, overflow2[0]); // strip order is preserved 1481 EXPECT_EQ(panel5, overflow2[0]); // strip order is preserved
1370 EXPECT_EQ(panel4, overflow2[1]); 1482 EXPECT_EQ(panel4, overflow2[1]);
1371 1483
1372 panel1->Close(); 1484 panel1->Close();
1373 panel2->Close(); 1485 panel2->Close();
1374 panel3->Close(); 1486 panel3->Close();
1375 panel4->Close(); 1487 panel4->Close();
1376 panel5->Close(); 1488 panel5->Close();
1377 } 1489 }
(...skipping 17 matching lines...) Expand all
1395 // normal: P0, P1, P2 1507 // normal: P0, P1, P2
1396 // overflow: P3, P4, P5, (P6, P7, P8, P9, P10) 1508 // overflow: P3, P4, P5, (P6, P7, P8, P9, P10)
1397 // The panels enclosed in parentheses are hidden. 1509 // The panels enclosed in parentheses are hidden.
1398 int num_existing_panels = panel_manager->num_panels(); 1510 int num_existing_panels = panel_manager->num_panels();
1399 for (int i = 0; i < 5; ++i) { 1511 for (int i = 0; i < 5; ++i) {
1400 CreatePanelParams params( 1512 CreatePanelParams params(
1401 MakePanelName(num_existing_panels + i), 1513 MakePanelName(num_existing_panels + i),
1402 gfx::Rect(0, 0, 250, 200), 1514 gfx::Rect(0, 0, 250, 200),
1403 SHOW_AS_INACTIVE); 1515 SHOW_AS_INACTIVE);
1404 Panel* panel = CreatePanelWithParams(params); 1516 Panel* panel = CreatePanelWithParams(params);
1405 WaitForExpansionStateChanged(panel, Panel::IN_OVERFLOW); 1517 WaitForLayoutStateChanged(panel, Panel::IN_OVERFLOW);
1406 EXPECT_EQ(i + 1, overflow_strip->overflow_indicator()->GetCount()); 1518 EXPECT_EQ(i + 1, overflow_strip->overflow_indicator()->GetCount());
1407 panels.push_back(panel); 1519 panels.push_back(panel);
1408 } 1520 }
1409 1521
1410 // Expand the overflow area by moving mouse over it. 1522 // Expand the overflow area by moving mouse over it.
1411 // Expect the overflow indicator count gets updated. 1523 // Expect the overflow indicator count gets updated.
1412 // normal: P0, P1, P2 1524 // normal: P0, P1, P2
1413 // overflow: P3, P4, P5, P6, P7, P8, (P9, P10) 1525 // overflow: P3, P4, P5, P6, P7, P8, (P9, P10)
1414 MoveMouseAndWaitForOverflowAnimationEnded(panels[3]->GetBounds().origin()); 1526 MoveMouseAndWaitForOverflowAnimationEnded(panels[3]->GetBounds().origin());
1415 EXPECT_TRUE(IsPanelVisible(panels[6])); 1527 EXPECT_TRUE(IsPanelVisible(panels[6]));
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
1580 // normal: P0, P1, P5 1692 // normal: P0, P1, P5
1581 // overflow: P2, P10, P3, (P4, P6, P7, P9, P11) 1693 // overflow: P2, P10, P3, (P4, P6, P7, P9, P11)
1582 CloseWindowAndWait(panels[8]->browser()); 1694 CloseWindowAndWait(panels[8]->browser());
1583 EXPECT_EQ(3, panel_strip->num_panels()); 1695 EXPECT_EQ(3, panel_strip->num_panels());
1584 EXPECT_EQ(8, overflow_strip->num_panels()); 1696 EXPECT_EQ(8, overflow_strip->num_panels());
1585 EXPECT_TRUE(panels[3]->IsDrawingAttention()); 1697 EXPECT_TRUE(panels[3]->IsDrawingAttention());
1586 EXPECT_FALSE(overflow_indicator->IsDrawingAttention()); 1698 EXPECT_FALSE(overflow_indicator->IsDrawingAttention());
1587 1699
1588 panel_manager->RemoveAll(); 1700 panel_manager->RemoveAll();
1589 } 1701 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698