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

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 trybot 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 DockedPanelDataList : public PanelDataList {
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 // Note that the expansion state is ignored when we check overflow panel.
92 push_back(PanelData(panel, Panel::IN_OVERFLOW, Panel::EXPANDED,
93 visible, active));
94 }
95 };
96
78 } // namespace 97 } // namespace
79 98
80 class PanelOverflowBrowserTest : public BasePanelBrowserTest { 99 class PanelOverflowBrowserTest : public BasePanelBrowserTest {
81 public: 100 public:
82 PanelOverflowBrowserTest() : BasePanelBrowserTest() { 101 PanelOverflowBrowserTest() : BasePanelBrowserTest() {
83 } 102 }
84 103
85 virtual ~PanelOverflowBrowserTest() { 104 virtual ~PanelOverflowBrowserTest() {
86 } 105 }
87 106
88 virtual void SetUpOnMainThread() OVERRIDE { 107 virtual void SetUpOnMainThread() OVERRIDE {
89 BasePanelBrowserTest::SetUpOnMainThread(); 108 BasePanelBrowserTest::SetUpOnMainThread();
90 109
91 PanelManager* panel_manager = PanelManager::GetInstance(); 110 PanelManager* panel_manager = PanelManager::GetInstance();
92 panel_manager->panel_overflow_strip()->set_max_visible_panels( 111 panel_manager->panel_overflow_strip()->set_max_visible_panels(
93 kMaxVisibleOverflowPanelsForTesting); 112 kMaxVisibleOverflowPanelsForTesting);
94 panel_manager->panel_overflow_strip()->set_max_visible_panels_on_hover( 113 panel_manager->panel_overflow_strip()->set_max_visible_panels_on_hover(
95 kMaxVisibleOverflowPanelsOnHoverForTesting); 114 kMaxVisibleOverflowPanelsOnHoverForTesting);
96 115
97 PanelMouseWatcher* mouse_watcher = new TestPanelMouseWatcher(); 116 PanelMouseWatcher* mouse_watcher = new TestPanelMouseWatcher();
98 panel_manager->SetMouseWatcherForTesting(mouse_watcher); 117 panel_manager->SetMouseWatcherForTesting(mouse_watcher);
99 118
100 // All the overflow tests assume 800x600 work area. Do the check now. 119 // All the overflow tests assume 800x600 work area. Do the check now.
101 DCHECK(PanelManager::GetInstance()->work_area().width() == 800); 120 DCHECK(PanelManager::GetInstance()->work_area().width() == 800);
102 } 121 }
103 122
104 protected: 123 protected:
105 static PanelDataList GetAllNormalPanelData() { 124 static DockedPanelDataList GetAllDockedPanelData() {
106 PanelDataList panel_data_list; 125 DockedPanelDataList panel_data_list;
107 PanelStrip::Panels panels = 126 PanelStrip::Panels panels =
108 PanelManager::GetInstance()->panel_strip()->panels(); 127 PanelManager::GetInstance()->panel_strip()->panels();
109 for (PanelStrip::Panels::const_iterator iter = panels.begin(); 128 for (PanelStrip::Panels::const_iterator iter = panels.begin();
110 iter != panels.end(); ++iter) { 129 iter != panels.end(); ++iter) {
111 Panel* panel = *iter; 130 Panel* panel = *iter;
112 panel_data_list.push_back(PanelData(panel)); 131 panel_data_list.push_back(PanelData(panel));
113 } 132 }
114 return panel_data_list; 133 return panel_data_list;
115 } 134 }
116 135
117 static PanelDataList GetAllOverflowPanelData() { 136 static OverflowPanelDataList GetAllOverflowPanelData() {
118 PanelDataList panel_data_list; 137 OverflowPanelDataList panel_data_list;
119 PanelOverflowStrip::Panels panels = 138 PanelOverflowStrip::Panels panels =
120 PanelManager::GetInstance()->panel_overflow_strip()->panels(); 139 PanelManager::GetInstance()->panel_overflow_strip()->panels();
121 for (PanelOverflowStrip::Panels::const_iterator iter = panels.begin(); 140 for (PanelOverflowStrip::Panels::const_iterator iter = panels.begin();
122 iter != panels.end(); ++iter) { 141 iter != panels.end(); ++iter) {
123 Panel* panel = *iter; 142 Panel* panel = *iter;
124 panel_data_list.push_back(PanelData(panel)); 143 panel_data_list.push_back(PanelData(panel));
125 } 144 }
126 return panel_data_list; 145 return panel_data_list;
127 } 146 }
128 147
(...skipping 16 matching lines...) Expand all
145 PanelManager::GetInstance()->panel_overflow_strip(); 164 PanelManager::GetInstance()->panel_overflow_strip();
146 int expected_x = overflow_strip->display_area().x(); 165 int expected_x = overflow_strip->display_area().x();
147 gfx::Size expected_size(overflow_strip->current_display_width(), 166 gfx::Size expected_size(overflow_strip->current_display_width(),
148 panel->IconOnlySize().height()); 167 panel->IconOnlySize().height());
149 gfx::Rect bounds = panel->GetBounds(); 168 gfx::Rect bounds = panel->GetBounds();
150 EXPECT_EQ(expected_x, bounds.x()); 169 EXPECT_EQ(expected_x, bounds.x());
151 EXPECT_EQ(expected_size, bounds.size()); 170 EXPECT_EQ(expected_size, bounds.size());
152 return expected_x == bounds.x() && expected_size == bounds.size(); 171 return expected_x == bounds.x() && expected_size == bounds.size();
153 } 172 }
154 173
155 std::vector<Panel*> CreateOverflowPanels(int num_normal_panels, 174 std::vector<Panel*> CreateOverflowPanels(int num_docked_panels,
156 int num_overflow_panels, 175 int num_overflow_panels,
157 const int* panel_widths) { 176 const int* panel_widths) {
158 const int kTestPanelHeight = 200; 177 const int kTestPanelHeight = 200;
159 std::vector<Panel*> panels; 178 std::vector<Panel*> panels;
160 179
161 // First, create normal panels to fill the panel strip. 180 // First, create docked panels to fill the panel strip.
162 int i = 0; 181 int i = 0;
163 for (; i < num_normal_panels; ++i) { 182 for (; i < num_docked_panels; ++i) {
164 CreatePanelParams params( 183 CreatePanelParams params(
165 MakePanelName(i), 184 MakePanelName(i),
166 gfx::Rect(0, 0, panel_widths[i], kTestPanelHeight), 185 gfx::Rect(0, 0, panel_widths[i], kTestPanelHeight),
167 SHOW_AS_INACTIVE); 186 SHOW_AS_INACTIVE);
168 Panel* panel = CreatePanelWithParams(params); 187 Panel* panel = CreatePanelWithParams(params);
169 panels.push_back(panel); 188 panels.push_back(panel);
170 } 189 }
171 190
172 // Then, create panels that would be placed in the overflow strip. 191 // Then, create panels that would be placed in the overflow strip.
173 int num_panels = num_normal_panels + num_overflow_panels; 192 int num_panels = num_docked_panels + num_overflow_panels;
174 for (; i < num_panels; ++i) { 193 for (; i < num_panels; ++i) {
175 CreatePanelParams params( 194 CreatePanelParams params(
176 MakePanelName(i), 195 MakePanelName(i),
177 gfx::Rect(0, 0, panel_widths[i], kTestPanelHeight), 196 gfx::Rect(0, 0, panel_widths[i], kTestPanelHeight),
178 SHOW_AS_INACTIVE); 197 SHOW_AS_INACTIVE);
179 Panel* panel = CreatePanelWithParams(params); 198 Panel* panel = CreatePanelWithParams(params);
180 WaitForExpansionStateChanged(panel, Panel::IN_OVERFLOW); 199 WaitForLayoutStateChanged(panel, Panel::IN_OVERFLOW);
181 panels.push_back(panel); 200 panels.push_back(panel);
182 } 201 }
183 202
184 return panels; 203 return panels;
185 } 204 }
186 }; 205 };
187 206
188 // TODO(jianli): remove the guard when overflow support is enabled on other 207 // TODO(jianli): remove the guard when overflow support is enabled on other
189 // platforms. http://crbug.com/105073 208 // platforms. http://crbug.com/105073
190 #if defined(OS_WIN) 209 #if defined(OS_WIN)
191 #define MAYBE_CheckPanelProperties CheckPanelProperties 210 #define MAYBE_CheckPanelProperties CheckPanelProperties
192 #define MAYBE_UpdateDraggableStatus UpdateDraggableStatus 211 #define MAYBE_UpdateDraggableStatus UpdateDraggableStatus
193 #define MAYBE_CreateOverflowPanels CreateOverflowPanels 212 #define MAYBE_CreateOverflowPanels CreateOverflowPanels
194 #define MAYBE_CreateMoreOverflowPanels CreateMoreOverflowPanels 213 #define MAYBE_CreateMoreOverflowPanels CreateMoreOverflowPanels
195 // http://crbug.com/107230 214 // http://crbug.com/107230
196 #define MAYBE_CreatePanelOnDelayedOverflow CreatePanelOnDelayedOverflow 215 #define MAYBE_CreatePanelOnDelayedOverflow CreatePanelOnDelayedOverflow
197 #define MAYBE_CloseOverflowPanels CloseOverflowPanels 216 #define MAYBE_CloseOverflowPanels CloseOverflowPanels
198 #define MAYBE_CloseNormalPanels CloseNormalPanels 217 #define MAYBE_CloseDockedPanels CloseDockedPanels
199 #define MAYBE_CloseWithDelayedOverflow CloseWithDelayedOverflow 218 #define MAYBE_CloseWithDelayedOverflow CloseWithDelayedOverflow
219 #define MAYBE_ClickOverflowPanels ClickOverflowPanels
200 #define MAYBE_ActivateOverflowPanels ActivateOverflowPanels 220 #define MAYBE_ActivateOverflowPanels ActivateOverflowPanels
201 #define MAYBE_MoveMinimizedPanelToOverflowAndBringBackByActivate \ 221 #define MAYBE_MoveMinimizedPanelToOverflowAndBringBackByActivate \
202 MoveMinimizedPanelToOverflowAndBringBackByActivate 222 MoveMinimizedPanelToOverflowAndBringBackByActivate
203 #define MAYBE_MoveMinimizedPanelToOverflowAndBringBackByCloseOrResize \ 223 #define MAYBE_MoveMinimizedPanelToOverflowAndBringBackByCloseOrResize \
204 MoveMinimizedPanelToOverflowAndBringBackByCloseOrResize 224 MoveMinimizedPanelToOverflowAndBringBackByCloseOrResize
205 #define MAYBE_HoverOverOverflowAreaWithoutOverflowOfOverflow \ 225 #define MAYBE_HoverOverOverflowAreaWithoutOverflowOfOverflow \
206 HoverOverOverflowAreaWithoutOverflowOfOverflow 226 HoverOverOverflowAreaWithoutOverflowOfOverflow
207 #define MAYBE_HoverOverOverflowAreaWithOverflowOfOverflow \ 227 #define MAYBE_HoverOverOverflowAreaWithOverflowOfOverflow \
208 HoverOverOverflowAreaWithOverflowOfOverflow 228 HoverOverOverflowAreaWithOverflowOfOverflow
209 #define MAYBE_ResizePanel ResizePanel 229 #define MAYBE_ResizePanel ResizePanel
210 #define MAYBE_OverflowIndicatorCount OverflowIndicatorCount 230 #define MAYBE_OverflowIndicatorCount OverflowIndicatorCount
211 #define MAYBE_DrawOverflowAttention DrawOverflowAttention 231 #define MAYBE_DrawOverflowAttention DrawOverflowAttention
212 #else 232 #else
213 #define MAYBE_CheckPanelProperties DISABLED_CheckPanelProperties 233 #define MAYBE_CheckPanelProperties DISABLED_CheckPanelProperties
214 #define MAYBE_UpdateDraggableStatus DISABLED_UpdateDraggableStatus 234 #define MAYBE_UpdateDraggableStatus DISABLED_UpdateDraggableStatus
215 #define MAYBE_CreateOverflowPanels DISABLED_CreateOverflowPanels 235 #define MAYBE_CreateOverflowPanels DISABLED_CreateOverflowPanels
216 #define MAYBE_CreateMoreOverflowPanels DISABLED_CreateMoreOverflowPanels 236 #define MAYBE_CreateMoreOverflowPanels DISABLED_CreateMoreOverflowPanels
217 #define MAYBE_CreatePanelOnDelayedOverflow DISABLED_CreatePanelOnDelayedOverflow 237 #define MAYBE_CreatePanelOnDelayedOverflow DISABLED_CreatePanelOnDelayedOverflow
218 #define MAYBE_CloseOverflowPanels DISABLED_CloseOverflowPanels 238 #define MAYBE_CloseOverflowPanels DISABLED_CloseOverflowPanels
219 #define MAYBE_CloseNormalPanels DISABLED_CloseNormalPanels 239 #define MAYBE_CloseDockedPanels DISABLED_CloseDockedPanels
220 #define MAYBE_CloseWithDelayedOverflow DISABLED_CloseWithDelayedOverflow 240 #define MAYBE_CloseWithDelayedOverflow DISABLED_CloseWithDelayedOverflow
241 #define MAYBE_ClickOverflowPanels DISABLED_ClickOverflowPanels
221 #define MAYBE_ActivateOverflowPanels DISABLED_ActivateOverflowPanels 242 #define MAYBE_ActivateOverflowPanels DISABLED_ActivateOverflowPanels
222 #define MAYBE_MoveMinimizedPanelToOverflowAndBringBackByActivate \ 243 #define MAYBE_MoveMinimizedPanelToOverflowAndBringBackByActivate \
223 DISABLED_MoveMinimizedPanelToOverflowAndBringBackByActivate 244 DISABLED_MoveMinimizedPanelToOverflowAndBringBackByActivate
224 #define MAYBE_MoveMinimizedPanelToOverflowAndBringBackByCloseOrResize \ 245 #define MAYBE_MoveMinimizedPanelToOverflowAndBringBackByCloseOrResize \
225 DISABLED_MoveMinimizedPanelToOverflowAndBringBackByCloseOrResize 246 DISABLED_MoveMinimizedPanelToOverflowAndBringBackByCloseOrResize
226 #define MAYBE_HoverOverOverflowAreaWithoutOverflowOfOverflow \ 247 #define MAYBE_HoverOverOverflowAreaWithoutOverflowOfOverflow \
227 DISABLED_HoverOverOverflowAreaWithoutOverflowOfOverflow 248 DISABLED_HoverOverOverflowAreaWithoutOverflowOfOverflow
228 #define MAYBE_HoverOverOverflowAreaWithOverflowOfOverflow \ 249 #define MAYBE_HoverOverOverflowAreaWithOverflowOfOverflow \
229 DISABLED_HoverOverOverflowAreaWithOverflowOfOverflow 250 DISABLED_HoverOverOverflowAreaWithOverflowOfOverflow
230 #define MAYBE_ResizePanel DISABLED_ResizePanel 251 #define MAYBE_ResizePanel DISABLED_ResizePanel
(...skipping 23 matching lines...) Expand all
254 EXPECT_FALSE(panel2->has_temporary_layout()); 275 EXPECT_FALSE(panel2->has_temporary_layout());
255 EXPECT_FALSE(panel3->has_temporary_layout()); 276 EXPECT_FALSE(panel3->has_temporary_layout());
256 EXPECT_TRUE(panel4->has_temporary_layout()); 277 EXPECT_TRUE(panel4->has_temporary_layout());
257 278
258 EXPECT_TRUE(panel1->draggable()); 279 EXPECT_TRUE(panel1->draggable());
259 EXPECT_TRUE(panel2->draggable()); 280 EXPECT_TRUE(panel2->draggable());
260 EXPECT_TRUE(panel3->draggable()); 281 EXPECT_TRUE(panel3->draggable());
261 EXPECT_FALSE(panel4->draggable()); 282 EXPECT_FALSE(panel4->draggable());
262 283
263 // Make sure last panel really did overflow. 284 // Make sure last panel really did overflow.
264 WaitForExpansionStateChanged(panel4, Panel::IN_OVERFLOW); 285 WaitForLayoutStateChanged(panel4, Panel::IN_OVERFLOW);
265 EXPECT_FALSE(panel4->has_temporary_layout()); 286 EXPECT_FALSE(panel4->has_temporary_layout());
266 EXPECT_FALSE(panel4->draggable()); 287 EXPECT_FALSE(panel4->draggable());
267 288
268 PanelManager::GetInstance()->RemoveAll(); 289 PanelManager::GetInstance()->RemoveAll();
269 } 290 }
270 291
271 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_UpdateDraggableStatus) { 292 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_UpdateDraggableStatus) {
272 Panel* panel = CreatePanel("panel"); 293 Panel* panel = CreatePanel("panel");
273 EXPECT_TRUE(panel->draggable()); 294 EXPECT_TRUE(panel->draggable());
274 panel->SetExpansionState(Panel::IN_OVERFLOW); 295 panel->SetLayoutState(Panel::IN_OVERFLOW);
275 EXPECT_FALSE(panel->draggable()); 296 EXPECT_FALSE(panel->draggable());
276 panel->SetExpansionState(Panel::EXPANDED); 297 panel->SetLayoutState(Panel::DOCKED);
277 EXPECT_TRUE(panel->draggable()); 298 EXPECT_TRUE(panel->draggable());
278 panel->Close(); 299 panel->Close();
279 } 300 }
280 301
281 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_CreateOverflowPanels) { 302 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_CreateOverflowPanels) {
282 PanelManager* panel_manager = PanelManager::GetInstance(); 303 PanelManager* panel_manager = PanelManager::GetInstance();
283 PanelStrip* panel_strip = panel_manager->panel_strip(); 304 PanelStrip* panel_strip = panel_manager->panel_strip();
284 PanelOverflowStrip* panel_overflow_strip = 305 PanelOverflowStrip* panel_overflow_strip =
285 panel_manager->panel_overflow_strip(); 306 panel_manager->panel_overflow_strip();
286 307
287 EXPECT_EQ(0, panel_manager->num_panels()); 308 EXPECT_EQ(0, panel_manager->num_panels());
288 EXPECT_EQ(0, panel_strip->num_panels()); 309 EXPECT_EQ(0, panel_strip->num_panels());
289 EXPECT_EQ(0, panel_overflow_strip->num_panels()); 310 EXPECT_EQ(0, panel_overflow_strip->num_panels());
290 EXPECT_FALSE(panel_overflow_strip->overflow_indicator()); 311 EXPECT_FALSE(panel_overflow_strip->overflow_indicator());
291 312
292 // Create 3 normal panels. 313 // Create 3 docked panels.
293 Panel* panel0 = CreatePanelWithBounds("Panel0", gfx::Rect(0, 0, 250, 200)); 314 Panel* panel0 = CreatePanelWithBounds("Panel0", gfx::Rect(0, 0, 250, 200));
294 Panel* panel1 = CreatePanelWithBounds("Panel1", gfx::Rect(0, 0, 260, 200)); 315 Panel* panel1 = CreatePanelWithBounds("Panel1", gfx::Rect(0, 0, 260, 200));
295 Panel* panel2 = CreatePanelWithBounds("Panel2", gfx::Rect(0, 0, 200, 200)); 316 Panel* panel2 = CreatePanelWithBounds("Panel2", gfx::Rect(0, 0, 200, 200));
296 317
297 EXPECT_EQ(3, panel_manager->num_panels()); 318 EXPECT_EQ(3, panel_manager->num_panels());
298 EXPECT_EQ(3, panel_strip->num_panels()); 319 EXPECT_EQ(3, panel_strip->num_panels());
299 EXPECT_EQ(0, panel_overflow_strip->num_panels()); 320 EXPECT_EQ(0, panel_overflow_strip->num_panels());
300 EXPECT_FALSE(panel_overflow_strip->overflow_indicator()); 321 EXPECT_FALSE(panel_overflow_strip->overflow_indicator());
301 EXPECT_EQ(Panel::EXPANDED, panel0->expansion_state()); 322 EXPECT_EQ(Panel::EXPANDED, panel0->expansion_state());
302 EXPECT_EQ(Panel::EXPANDED, panel1->expansion_state()); 323 EXPECT_EQ(Panel::EXPANDED, panel1->expansion_state());
303 EXPECT_EQ(Panel::EXPANDED, panel2->expansion_state()); 324 EXPECT_EQ(Panel::EXPANDED, panel2->expansion_state());
304 325
305 // Create 1 overflow panel. 326 // Create 1 overflow panel.
306 CreatePanelParams params( 327 CreatePanelParams params(
307 "Panel3", gfx::Rect(0, 0, 255, 200), SHOW_AS_INACTIVE); 328 "Panel3", gfx::Rect(0, 0, 255, 200), SHOW_AS_INACTIVE);
308 Panel* panel3 = CreatePanelWithParams(params); 329 Panel* panel3 = CreatePanelWithParams(params);
309 WaitForExpansionStateChanged(panel3, Panel::IN_OVERFLOW); 330 WaitForLayoutStateChanged(panel3, Panel::IN_OVERFLOW);
310 331
311 EXPECT_EQ(4, panel_manager->num_panels()); 332 EXPECT_EQ(4, panel_manager->num_panels());
312 EXPECT_EQ(3, panel_strip->num_panels()); 333 EXPECT_EQ(3, panel_strip->num_panels());
313 EXPECT_EQ(1, panel_overflow_strip->num_panels()); 334 EXPECT_EQ(1, panel_overflow_strip->num_panels());
314 EXPECT_FALSE(panel_overflow_strip->overflow_indicator()); 335 EXPECT_FALSE(panel_overflow_strip->overflow_indicator());
315 EXPECT_TRUE(IsPanelVisible(panel3)); 336 EXPECT_TRUE(IsPanelVisible(panel3));
316 EXPECT_TRUE(IsPanelInOverflowStrip(panel3)); 337 EXPECT_TRUE(IsPanelInOverflowStrip(panel3));
317 EXPECT_EQ(gfx::Size(255, 200), panel3->restored_size()); 338 EXPECT_EQ(gfx::Size(255, 200), panel3->restored_size());
318 339
319 // Create 1 more overflow panel. 340 // Create 1 more overflow panel.
320 params.name = "Panel4"; 341 params.name = "Panel4";
321 Panel* panel4 = CreatePanelWithParams(params); 342 Panel* panel4 = CreatePanelWithParams(params);
322 WaitForExpansionStateChanged(panel4, Panel::IN_OVERFLOW); 343 WaitForLayoutStateChanged(panel4, Panel::IN_OVERFLOW);
323 344
324 EXPECT_EQ(5, panel_manager->num_panels()); 345 EXPECT_EQ(5, panel_manager->num_panels());
325 EXPECT_EQ(3, panel_strip->num_panels()); 346 EXPECT_EQ(3, panel_strip->num_panels());
326 EXPECT_EQ(2, panel_overflow_strip->num_panels()); 347 EXPECT_EQ(2, panel_overflow_strip->num_panels());
327 EXPECT_FALSE(panel_overflow_strip->overflow_indicator()); 348 EXPECT_FALSE(panel_overflow_strip->overflow_indicator());
328 EXPECT_TRUE(IsPanelVisible(panel4)); 349 EXPECT_TRUE(IsPanelVisible(panel4));
329 350
330 PanelManager::GetInstance()->RemoveAll(); 351 PanelManager::GetInstance()->RemoveAll();
331 } 352 }
332 353
333 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, 354 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest,
334 MAYBE_CreateMoreOverflowPanels) { 355 MAYBE_CreateMoreOverflowPanels) {
335 PanelManager* panel_manager = PanelManager::GetInstance(); 356 PanelManager* panel_manager = PanelManager::GetInstance();
336 PanelStrip* panel_strip = panel_manager->panel_strip(); 357 PanelStrip* panel_strip = panel_manager->panel_strip();
337 PanelOverflowStrip* panel_overflow_strip = 358 PanelOverflowStrip* panel_overflow_strip =
338 panel_manager->panel_overflow_strip(); 359 panel_manager->panel_overflow_strip();
339 360
340 const int panel_widths[] = { 361 const int panel_widths[] = {
341 250, 260, 200, // normal 362 250, 260, 200, // docked
342 255, 220, 210, // overflow 363 255, 220, 210, // overflow
343 220, 230 // overflow-on-overflow 364 220, 230 // overflow-on-overflow
344 }; 365 };
345 CreateOverflowPanels(3, 5, panel_widths); 366 CreateOverflowPanels(3, 5, panel_widths);
346 367
347 std::vector<Panel*> panels = panel_manager->panels(); 368 std::vector<Panel*> panels = panel_manager->panels();
348 ASSERT_EQ(8u, panels.size()); 369 ASSERT_EQ(8u, panels.size());
349 EXPECT_EQ(3, panel_strip->num_panels()); 370 EXPECT_EQ(3, panel_strip->num_panels());
350 EXPECT_EQ(5, panel_overflow_strip->num_panels()); 371 EXPECT_EQ(5, panel_overflow_strip->num_panels());
351 EXPECT_EQ(2, panel_overflow_strip->overflow_indicator()->GetCount()); 372 EXPECT_EQ(2, panel_overflow_strip->overflow_indicator()->GetCount());
352 EXPECT_EQ(Panel::IN_OVERFLOW, panels[3]->expansion_state()); 373 EXPECT_EQ(Panel::IN_OVERFLOW, panels[3]->layout_state());
353 EXPECT_TRUE(IsPanelVisible(panels[3])); 374 EXPECT_TRUE(IsPanelVisible(panels[3]));
354 EXPECT_EQ(Panel::IN_OVERFLOW, panels[4]->expansion_state()); 375 EXPECT_EQ(Panel::IN_OVERFLOW, panels[4]->layout_state());
355 EXPECT_TRUE(IsPanelVisible(panels[4])); 376 EXPECT_TRUE(IsPanelVisible(panels[4]));
356 EXPECT_EQ(Panel::IN_OVERFLOW, panels[5]->expansion_state()); 377 EXPECT_EQ(Panel::IN_OVERFLOW, panels[5]->layout_state());
357 EXPECT_TRUE(IsPanelVisible(panels[5])); 378 EXPECT_TRUE(IsPanelVisible(panels[5]));
358 EXPECT_EQ(Panel::IN_OVERFLOW, panels[6]->expansion_state()); 379 EXPECT_EQ(Panel::IN_OVERFLOW, panels[6]->layout_state());
359 EXPECT_FALSE(IsPanelVisible(panels[6])); 380 EXPECT_FALSE(IsPanelVisible(panels[6]));
360 EXPECT_EQ(Panel::IN_OVERFLOW, panels[7]->expansion_state()); 381 EXPECT_EQ(Panel::IN_OVERFLOW, panels[7]->layout_state());
361 EXPECT_FALSE(IsPanelVisible(panels[7])); 382 EXPECT_FALSE(IsPanelVisible(panels[7]));
362 383
363 PanelManager::GetInstance()->RemoveAll(); 384 PanelManager::GetInstance()->RemoveAll();
364 } 385 }
365 386
366 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, 387 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest,
367 MAYBE_CreatePanelOnDelayedOverflow) { 388 MAYBE_CreatePanelOnDelayedOverflow) {
368 // Create 2 big panels. 389 // Create 2 big panels.
369 CreatePanelWithBounds("Panel0", gfx::Rect(0, 0, 260, 200)); 390 CreatePanelWithBounds("Panel0", gfx::Rect(0, 0, 260, 200));
370 CreatePanelWithBounds("Panel1", gfx::Rect(0, 0, 260, 200)); 391 CreatePanelWithBounds("Panel1", gfx::Rect(0, 0, 260, 200));
371 392
372 // Create an overflow panel without waiting for it to be moved to overflow. 393 // Create an overflow panel without waiting for it to be moved to overflow.
373 CreatePanelParams params( 394 CreatePanelParams params(
374 "Panel2", gfx::Rect(0, 0, 255, 200), SHOW_AS_INACTIVE); 395 "Panel2", gfx::Rect(0, 0, 255, 200), SHOW_AS_INACTIVE);
375 params.wait_for_fully_created = false; 396 params.wait_for_fully_created = false;
376 Panel* overflow_panel = CreatePanelWithParams(params); 397 Panel* overflow_panel = CreatePanelWithParams(params);
377 EXPECT_EQ(Panel::EXPANDED, overflow_panel->expansion_state()); 398 EXPECT_EQ(Panel::EXPANDED, overflow_panel->expansion_state());
378 EXPECT_TRUE(overflow_panel->has_temporary_layout()); 399 EXPECT_TRUE(overflow_panel->has_temporary_layout());
379 400
380 // Create a small panel that could fit within the available space in the 401 // Create a small panel that could fit within the available space in the
381 // panel strip. 402 // panel strip.
382 CreatePanelParams params2( 403 CreatePanelParams params2(
383 "Panel3", gfx::Rect(0, 0, 110, 200), SHOW_AS_INACTIVE); 404 "Panel3", gfx::Rect(0, 0, 110, 200), SHOW_AS_INACTIVE);
384 Panel* panel3 = CreatePanelWithParams(params2); 405 Panel* panel3 = CreatePanelWithParams(params2);
385 EXPECT_EQ(Panel::EXPANDED, panel3->expansion_state()); 406 EXPECT_EQ(Panel::EXPANDED, panel3->expansion_state());
386 EXPECT_FALSE(panel3->has_temporary_layout()); 407 EXPECT_FALSE(panel3->has_temporary_layout());
387 408
388 WaitForExpansionStateChanged(overflow_panel, Panel::IN_OVERFLOW); 409 WaitForLayoutStateChanged(overflow_panel, Panel::IN_OVERFLOW);
389 EXPECT_FALSE(overflow_panel->has_temporary_layout()); 410 EXPECT_FALSE(overflow_panel->has_temporary_layout());
390 PanelManager::GetInstance()->RemoveAll(); 411 PanelManager::GetInstance()->RemoveAll();
391 } 412 }
392 413
393 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_CloseOverflowPanels) { 414 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_CloseOverflowPanels) {
394 PanelManager* panel_manager = PanelManager::GetInstance(); 415 PanelManager* panel_manager = PanelManager::GetInstance();
395 PanelStrip* panel_strip = panel_manager->panel_strip(); 416 PanelStrip* panel_strip = panel_manager->panel_strip();
396 PanelOverflowStrip* panel_overflow_strip = 417 PanelOverflowStrip* panel_overflow_strip =
397 panel_manager->panel_overflow_strip(); 418 panel_manager->panel_overflow_strip();
398 419
399 // Create normal and overflow panels. 420 // Create docked and overflow panels.
400 // normal: P0, P1, P2 421 // docked: P0, P1, P2
401 // overflow: P3, P4, P5 422 // overflow: P3, P4, P5
402 // overflow-on-overflow: P6, P7 423 // overflow-on-overflow: P6, P7
403 int num_normal_panels = 3; 424 int num_docked_panels = 3;
404 int num_overflow_panels = 5; 425 int num_overflow_panels = 5;
405 const int panel_widths[] = { 426 const int panel_widths[] = {
406 260, 250, 200, // normal 427 260, 250, 200, // docked
407 255, 260, 120, // overflow 428 255, 260, 120, // overflow
408 240, 210 // overflow-on-overflow 429 240, 210 // overflow-on-overflow
409 }; 430 };
410 std::vector<Panel*> panels = CreateOverflowPanels( 431 std::vector<Panel*> panels = CreateOverflowPanels(
411 num_normal_panels, num_overflow_panels, panel_widths); 432 num_docked_panels, num_overflow_panels, panel_widths);
412 433
413 PanelDataList expected_normal_list; 434 DockedPanelDataList expected_docked_list;
414 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 435 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
415 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 436 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
416 expected_normal_list.Add(panels[2], Panel::EXPANDED, true, false); 437 expected_docked_list.Add(panels[2], Panel::EXPANDED, true, false);
417 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 438 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
418 439
419 PanelDataList expected_overflow_list; 440 OverflowPanelDataList expected_overflow_list;
420 expected_overflow_list.Add(panels[3], Panel::IN_OVERFLOW, true, false); 441 expected_overflow_list.Add(panels[3], true, false);
421 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 442 expected_overflow_list.Add(panels[4], true, false);
422 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, true, false); 443 expected_overflow_list.Add(panels[5], true, false);
423 expected_overflow_list.Add(panels[6], Panel::IN_OVERFLOW, false, false); 444 expected_overflow_list.Add(panels[6], false, false);
424 expected_overflow_list.Add(panels[7], Panel::IN_OVERFLOW, false, false); 445 expected_overflow_list.Add(panels[7], false, false);
425 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 446 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
426 447
427 // Close an overflow-on-overflow panel. Expect only that panel is closed. 448 // Close an overflow-on-overflow panel. Expect only that panel is closed.
428 // normal: P0, P1, P2 449 // docked: P0, P1, P2
429 // overflow: P3, P4, P5, 450 // overflow: P3, P4, P5,
430 // overflow-on-overflow: P7 451 // overflow-on-overflow: P7
431 CloseWindowAndWait(panels[6]->browser()); 452 CloseWindowAndWait(panels[6]->browser());
432 num_overflow_panels--; 453 num_overflow_panels--;
433 ASSERT_EQ(num_normal_panels + num_overflow_panels, 454 ASSERT_EQ(num_docked_panels + num_overflow_panels,
434 panel_manager->num_panels()); 455 panel_manager->num_panels());
435 EXPECT_EQ(num_normal_panels, panel_strip->num_panels()); 456 EXPECT_EQ(num_docked_panels, panel_strip->num_panels());
436 EXPECT_EQ(num_overflow_panels, panel_overflow_strip->num_panels()); 457 EXPECT_EQ(num_overflow_panels, panel_overflow_strip->num_panels());
437 458
438 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 459 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
439 460
440 expected_overflow_list.clear(); 461 expected_overflow_list.clear();
441 expected_overflow_list.Add(panels[3], Panel::IN_OVERFLOW, true, false); 462 expected_overflow_list.Add(panels[3], true, false);
442 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 463 expected_overflow_list.Add(panels[4], true, false);
443 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, true, false); 464 expected_overflow_list.Add(panels[5], true, false);
444 expected_overflow_list.Add(panels[7], Panel::IN_OVERFLOW, false, false); 465 expected_overflow_list.Add(panels[7], false, false);
445 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 466 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
446 467
447 // Close an overflow panel. Expect an overflow-on-overflow panel to become 468 // Close an overflow panel. Expect an overflow-on-overflow panel to become
448 // visible in the overflow strip. 469 // visible in the overflow strip.
449 // normal: P0, P1, P2 470 // docked: P0, P1, P2
450 // overflow: P3, P5, P7 471 // overflow: P3, P5, P7
451 CloseWindowAndWait(panels[4]->browser()); 472 CloseWindowAndWait(panels[4]->browser());
452 num_overflow_panels--; 473 num_overflow_panels--;
453 ASSERT_EQ(num_normal_panels + num_overflow_panels, 474 ASSERT_EQ(num_docked_panels + num_overflow_panels,
454 panel_manager->num_panels()); 475 panel_manager->num_panels());
455 EXPECT_EQ(num_normal_panels, panel_strip->num_panels()); 476 EXPECT_EQ(num_docked_panels, panel_strip->num_panels());
456 EXPECT_EQ(num_overflow_panels, panel_overflow_strip->num_panels()); 477 EXPECT_EQ(num_overflow_panels, panel_overflow_strip->num_panels());
457 478
458 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 479 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
459 480
460 expected_overflow_list.clear(); 481 expected_overflow_list.clear();
461 expected_overflow_list.Add(panels[3], Panel::IN_OVERFLOW, true, false); 482 expected_overflow_list.Add(panels[3], true, false);
462 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, true, false); 483 expected_overflow_list.Add(panels[5], true, false);
463 expected_overflow_list.Add(panels[7], Panel::IN_OVERFLOW, true, false); 484 expected_overflow_list.Add(panels[7], true, false);
464 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 485 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
465 486
466 // Close an overflow panel. Expect only that panel is closed. 487 // Close an overflow panel. Expect only that panel is closed.
467 // normal: P0, P1, P2 488 // docked: P0, P1, P2
468 // overflow: P5, P7 489 // overflow: P5, P7
469 CloseWindowAndWait(panels[3]->browser()); 490 CloseWindowAndWait(panels[3]->browser());
470 num_overflow_panels--; 491 num_overflow_panels--;
471 ASSERT_EQ(num_normal_panels + num_overflow_panels, 492 ASSERT_EQ(num_docked_panels + num_overflow_panels,
472 panel_manager->num_panels()); 493 panel_manager->num_panels());
473 EXPECT_EQ(num_normal_panels, panel_strip->num_panels()); 494 EXPECT_EQ(num_docked_panels, panel_strip->num_panels());
474 EXPECT_EQ(num_overflow_panels, panel_overflow_strip->num_panels()); 495 EXPECT_EQ(num_overflow_panels, panel_overflow_strip->num_panels());
475 496
476 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 497 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
477 498
478 expected_overflow_list.clear(); 499 expected_overflow_list.clear();
479 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, true, false); 500 expected_overflow_list.Add(panels[5], true, false);
480 expected_overflow_list.Add(panels[7], Panel::IN_OVERFLOW, true, false); 501 expected_overflow_list.Add(panels[7], true, false);
481 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 502 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
482 503
483 panel_manager->RemoveAll(); 504 panel_manager->RemoveAll();
484 } 505 }
485 506
486 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_CloseNormalPanels) { 507 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_CloseDockedPanels) {
487 PanelManager* panel_manager = PanelManager::GetInstance(); 508 PanelManager* panel_manager = PanelManager::GetInstance();
488 PanelStrip* panel_strip = panel_manager->panel_strip(); 509 PanelStrip* panel_strip = panel_manager->panel_strip();
489 PanelOverflowStrip* panel_overflow_strip = 510 PanelOverflowStrip* panel_overflow_strip =
490 panel_manager->panel_overflow_strip(); 511 panel_manager->panel_overflow_strip();
491 512
492 // Create normal and overflow panels. 513 // Create docked and overflow panels.
493 // normal: P0, P1, P2 514 // docked: P0, P1, P2
494 // overflow: P3, P4, P5 515 // overflow: P3, P4, P5
495 // overflow-on-overflow: P6, P7, P8 516 // overflow-on-overflow: P6, P7, P8
496 int num_normal_panels = 3; 517 int num_docked_panels = 3;
497 int num_overflow_panels = 6; 518 int num_overflow_panels = 6;
498 const int panel_widths[] = { 519 const int panel_widths[] = {
499 260, 250, 200, // normal 520 260, 250, 200, // docked
500 255, 260, 120, // overflow 521 255, 260, 120, // overflow
501 240, 210, 258 // overflow-on-overflow 522 240, 210, 258 // overflow-on-overflow
502 }; 523 };
503 std::vector<Panel*> panels = CreateOverflowPanels( 524 std::vector<Panel*> panels = CreateOverflowPanels(
504 num_normal_panels, num_overflow_panels, panel_widths); 525 num_docked_panels, num_overflow_panels, panel_widths);
505 526
506 PanelDataList expected_normal_list; 527 DockedPanelDataList expected_docked_list;
507 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 528 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
508 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 529 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
509 expected_normal_list.Add(panels[2], Panel::EXPANDED, true, false); 530 expected_docked_list.Add(panels[2], Panel::EXPANDED, true, false);
510 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 531 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
511 532
512 PanelDataList expected_overflow_list; 533 OverflowPanelDataList expected_overflow_list;
513 expected_overflow_list.Add(panels[3], Panel::IN_OVERFLOW, true, false); 534 expected_overflow_list.Add(panels[3], true, false);
514 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 535 expected_overflow_list.Add(panels[4], true, false);
515 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, true, false); 536 expected_overflow_list.Add(panels[5], true, false);
516 expected_overflow_list.Add(panels[6], Panel::IN_OVERFLOW, false, false); 537 expected_overflow_list.Add(panels[6], false, false);
517 expected_overflow_list.Add(panels[7], Panel::IN_OVERFLOW, false, false); 538 expected_overflow_list.Add(panels[7], false, false);
518 expected_overflow_list.Add(panels[8], Panel::IN_OVERFLOW, false, false); 539 expected_overflow_list.Add(panels[8], false, false);
519 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 540 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
520 541
521 // Close a normal panel. Expect an overflow panel to move over and an 542 // Close a docked panel. Expect an overflow panel to move over and an
522 // overflow-on-overflow panel to become visible. 543 // overflow-on-overflow panel to become visible.
523 // normal: P0, P2, P3 544 // docked: P0, P2, P3
524 // overflow: P4, P5, P6 545 // overflow: P4, P5, P6
525 // overflow-on-overflow: P7, P8 546 // overflow-on-overflow: P7, P8
526 CloseWindowAndWait(panels[1]->browser()); 547 CloseWindowAndWait(panels[1]->browser());
527 num_overflow_panels--; 548 num_overflow_panels--;
528 ASSERT_EQ(num_normal_panels + num_overflow_panels, 549 ASSERT_EQ(num_docked_panels + num_overflow_panels,
529 panel_manager->num_panels()); 550 panel_manager->num_panels());
530 EXPECT_EQ(num_normal_panels, panel_strip->num_panels()); 551 EXPECT_EQ(num_docked_panels, panel_strip->num_panels());
531 EXPECT_EQ(num_overflow_panels, panel_overflow_strip->num_panels()); 552 EXPECT_EQ(num_overflow_panels, panel_overflow_strip->num_panels());
532 553
533 expected_normal_list.clear(); 554 expected_docked_list.clear();
534 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 555 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
535 expected_normal_list.Add(panels[2], Panel::EXPANDED, true, false); 556 expected_docked_list.Add(panels[2], Panel::EXPANDED, true, false);
536 expected_normal_list.Add(panels[3], Panel::EXPANDED, true, false); 557 expected_docked_list.Add(panels[3], Panel::EXPANDED, true, false);
537 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 558 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
538 559
539 expected_overflow_list.clear(); 560 expected_overflow_list.clear();
540 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 561 expected_overflow_list.Add(panels[4], true, false);
541 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, true, false); 562 expected_overflow_list.Add(panels[5], true, false);
542 expected_overflow_list.Add(panels[6], Panel::IN_OVERFLOW, true, false); 563 expected_overflow_list.Add(panels[6], true, false);
543 expected_overflow_list.Add(panels[7], Panel::IN_OVERFLOW, false, false); 564 expected_overflow_list.Add(panels[7], false, false);
544 expected_overflow_list.Add(panels[8], Panel::IN_OVERFLOW, false, false); 565 expected_overflow_list.Add(panels[8], false, false);
545 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 566 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
546 567
547 // Close another normal panel. Remaining overflow panels cannot move over 568 // Close another docked panel. Remaining overflow panels cannot move over
548 // due to not enough room. 569 // due to not enough room.
549 // normal: P0, P3 570 // docked: P0, P3
550 // overflow: P4, P5, P6 571 // overflow: P4, P5, P6
551 // overflow-on-overflow: P7, P8 572 // overflow-on-overflow: P7, P8
552 CloseWindowAndWait(panels[2]->browser()); 573 CloseWindowAndWait(panels[2]->browser());
553 num_normal_panels--; 574 num_docked_panels--;
554 ASSERT_EQ(num_normal_panels + num_overflow_panels, 575 ASSERT_EQ(num_docked_panels + num_overflow_panels,
555 panel_manager->num_panels()); 576 panel_manager->num_panels());
556 EXPECT_EQ(num_normal_panels, panel_strip->num_panels()); 577 EXPECT_EQ(num_docked_panels, panel_strip->num_panels());
557 EXPECT_EQ(num_overflow_panels, panel_overflow_strip->num_panels()); 578 EXPECT_EQ(num_overflow_panels, panel_overflow_strip->num_panels());
558 579
559 expected_normal_list.clear(); 580 expected_docked_list.clear();
560 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 581 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
561 expected_normal_list.Add(panels[3], Panel::EXPANDED, true, false); 582 expected_docked_list.Add(panels[3], Panel::EXPANDED, true, false);
562 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 583 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
563 584
564 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 585 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
565 586
566 // Close one more normal panel. Expect two overflow panels to move over and 587 // Close one more docked panel. Expect two overflow panels to move over and
567 // two overflow-on-overflow panels to become visible. 588 // two overflow-on-overflow panels to become visible.
568 // normal: P0, P4, P5 589 // docked: P0, P4, P5
569 // overflow: P6, P7, P8 590 // overflow: P6, P7, P8
570 CloseWindowAndWait(panels[3]->browser()); 591 CloseWindowAndWait(panels[3]->browser());
571 num_normal_panels++; 592 num_docked_panels++;
572 num_overflow_panels -= 2; 593 num_overflow_panels -= 2;
573 ASSERT_EQ(num_normal_panels + num_overflow_panels, 594 ASSERT_EQ(num_docked_panels + num_overflow_panels,
574 panel_manager->num_panels()); 595 panel_manager->num_panels());
575 EXPECT_EQ(num_normal_panels, panel_strip->num_panels()); 596 EXPECT_EQ(num_docked_panels, panel_strip->num_panels());
576 EXPECT_EQ(num_overflow_panels, panel_overflow_strip->num_panels()); 597 EXPECT_EQ(num_overflow_panels, panel_overflow_strip->num_panels());
577 598
578 expected_normal_list.clear(); 599 expected_docked_list.clear();
579 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 600 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
580 expected_normal_list.Add(panels[4], Panel::EXPANDED, true, false); 601 expected_docked_list.Add(panels[4], Panel::EXPANDED, true, false);
581 expected_normal_list.Add(panels[5], Panel::EXPANDED, true, false); 602 expected_docked_list.Add(panels[5], Panel::EXPANDED, true, false);
582 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 603 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
583 604
584 expected_overflow_list.clear(); 605 expected_overflow_list.clear();
585 expected_overflow_list.Add(panels[6], Panel::IN_OVERFLOW, true, false); 606 expected_overflow_list.Add(panels[6], true, false);
586 expected_overflow_list.Add(panels[7], Panel::IN_OVERFLOW, true, false); 607 expected_overflow_list.Add(panels[7], true, false);
587 expected_overflow_list.Add(panels[8], Panel::IN_OVERFLOW, true, false); 608 expected_overflow_list.Add(panels[8], true, false);
588 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 609 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
589 610
590 // Close another normal panel. Expect one overflow panel to move over. 611 // Close another docked panel. Expect one overflow panel to move over.
591 // normal: P4, P5, P6 612 // docked: P4, P5, P6
592 // overflow: P7, P8 613 // overflow: P7, P8
593 CloseWindowAndWait(panels[0]->browser()); 614 CloseWindowAndWait(panels[0]->browser());
594 num_overflow_panels--; 615 num_overflow_panels--;
595 ASSERT_EQ(num_normal_panels + num_overflow_panels, 616 ASSERT_EQ(num_docked_panels + num_overflow_panels,
596 panel_manager->num_panels()); 617 panel_manager->num_panels());
597 EXPECT_EQ(num_normal_panels, panel_strip->num_panels()); 618 EXPECT_EQ(num_docked_panels, panel_strip->num_panels());
598 EXPECT_EQ(num_overflow_panels, panel_overflow_strip->num_panels()); 619 EXPECT_EQ(num_overflow_panels, panel_overflow_strip->num_panels());
599 620
600 expected_normal_list.clear(); 621 expected_docked_list.clear();
601 expected_normal_list.Add(panels[4], Panel::EXPANDED, true, false); 622 expected_docked_list.Add(panels[4], Panel::EXPANDED, true, false);
602 expected_normal_list.Add(panels[5], Panel::EXPANDED, true, false); 623 expected_docked_list.Add(panels[5], Panel::EXPANDED, true, false);
603 expected_normal_list.Add(panels[6], Panel::EXPANDED, true, false); 624 expected_docked_list.Add(panels[6], Panel::EXPANDED, true, false);
604 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 625 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
605 626
606 expected_overflow_list.clear(); 627 expected_overflow_list.clear();
607 expected_overflow_list.Add(panels[7], Panel::IN_OVERFLOW, true, false); 628 expected_overflow_list.Add(panels[7], true, false);
608 expected_overflow_list.Add(panels[8], Panel::IN_OVERFLOW, true, false); 629 expected_overflow_list.Add(panels[8], true, false);
609 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 630 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
610 631
611 panel_manager->RemoveAll(); 632 panel_manager->RemoveAll();
612 } 633 }
613 634
614 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, 635 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest,
615 MAYBE_CloseWithDelayedOverflow) { 636 MAYBE_CloseWithDelayedOverflow) {
616 PanelManager* panel_manager = PanelManager::GetInstance(); 637 PanelManager* panel_manager = PanelManager::GetInstance();
617 PanelStrip* panel_strip = panel_manager->panel_strip(); 638 PanelStrip* panel_strip = panel_manager->panel_strip();
618 639
(...skipping 26 matching lines...) Expand all
645 // panel will not be affected by the close. 666 // panel will not be affected by the close.
646 // Hack. Pretend to close panel by removing it directly. Cannot use 667 // Hack. Pretend to close panel by removing it directly. Cannot use
647 // CloseWindowAndWait() here because it will allow the delayed overflow 668 // CloseWindowAndWait() here because it will allow the delayed overflow
648 // to complete. 669 // to complete.
649 panel_strip->Remove(panel1); 670 panel_strip->Remove(panel1);
650 EXPECT_EQ(1, panel_strip->num_panels()); 671 EXPECT_EQ(1, panel_strip->num_panels());
651 EXPECT_EQ(1, panel_strip->num_temporary_layout_panels()); 672 EXPECT_EQ(1, panel_strip->num_temporary_layout_panels());
652 EXPECT_TRUE(overflow_panel->has_temporary_layout()); 673 EXPECT_TRUE(overflow_panel->has_temporary_layout());
653 674
654 // Make sure the overflow panel actually moves to overflow. 675 // Make sure the overflow panel actually moves to overflow.
655 WaitForExpansionStateChanged(overflow_panel, Panel::IN_OVERFLOW); 676 WaitForLayoutStateChanged(overflow_panel, Panel::IN_OVERFLOW);
656 EXPECT_EQ(0, panel_strip->num_temporary_layout_panels()); 677 EXPECT_EQ(0, panel_strip->num_temporary_layout_panels());
657 678
658 // Hack. Put the "falsely closed" panel back into the panel strip 679 // Hack. Put the "falsely closed" panel back into the panel strip
659 // so we can properly close it to wrap up this test. 680 // so we can properly close it to wrap up this test.
660 panel_strip->AddPanel(panel1); 681 panel_strip->AddPanel(panel1);
661 682
662 panel0->Close(); 683 panel0->Close();
663 panel1->Close(); 684 panel1->Close();
664 overflow_panel->Close(); 685 overflow_panel->Close();
665 } 686 }
666 687
688 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_ClickOverflowPanels) {
689 // Create docked and overflow panels.
690 // docked: P0, P1, P2
691 // overflow: P3, P4
692 const int panel_widths[] = {
693 240, 240, 240, // docked
694 240, 240 // overflow
695 };
696 std::vector<Panel*> panels = CreateOverflowPanels(3, 2, panel_widths);
697
698 DockedPanelDataList expected_docked_list;
699 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
700 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
701 expected_docked_list.Add(panels[2], Panel::EXPANDED, true, false);
702 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
703
704 OverflowPanelDataList expected_overflow_list;
705 expected_overflow_list.Add(panels[3], true, false);
706 expected_overflow_list.Add(panels[4], true, false);
707 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
708
709 // Minimize a docked panel.
710 panels[2]->SetExpansionState(Panel::MINIMIZED);
711 WaitForExpansionStateChanged(panels[2], Panel::MINIMIZED);
712
713 // Clicking an overflow panel that was previously expanded should bring it
714 // out of the overflow as expanded.
715 // docked: P0, P1, P3
716 // overflow: P2, P4
717 ClickPanelTitlebar(panels[3]);
718 WaitForExpansionStateChanged(panels[3], Panel::EXPANDED);
719
720 expected_docked_list.clear();
721 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
722 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
723 expected_docked_list.Add(panels[3], Panel::EXPANDED, true, false);
724 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
725
726 expected_overflow_list.clear();
727 expected_overflow_list.Add(panels[2], true, false);
728 expected_overflow_list.Add(panels[4], true, false);
729 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
730
731 // Make a docked panel as title-only.
732 panels[3]->SetExpansionState(Panel::TITLE_ONLY);
733 WaitForExpansionStateChanged(panels[3], Panel::TITLE_ONLY);
734
735 // Clicking an overflow panel that was previously minimized should bring it
736 // out of the overflow as expanded.
737 // docked: P0, P1, P2
738 // overflow: P3, P4
739 ClickPanelTitlebar(panels[2]);
740 WaitForExpansionStateChanged(panels[2], Panel::EXPANDED);
741
742 expected_docked_list.clear();
743 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
744 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
745 expected_docked_list.Add(panels[2], Panel::EXPANDED, true, false);
746 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
747
748 expected_overflow_list.clear();
749 expected_overflow_list.Add(panels[3], true, false);
750 expected_overflow_list.Add(panels[4], true, false);
751 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
752
753 // Clicking an overflow panel that was previously title-only should bring it
754 // out of the overflow as expanded.
755 // docked: P0, P1, P3
756 // overflow: P2, P4
757 ClickPanelTitlebar(panels[3]);
758 WaitForExpansionStateChanged(panels[3], Panel::EXPANDED);
759
760 expected_docked_list.clear();
761 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
762 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
763 expected_docked_list.Add(panels[3], Panel::EXPANDED, true, false);
764 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
765
766 expected_overflow_list.clear();
767 expected_overflow_list.Add(panels[2], true, false);
768 expected_overflow_list.Add(panels[4], true, false);
769 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
770
771 PanelManager::GetInstance()->RemoveAll();
772 }
773
667 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_ActivateOverflowPanels) { 774 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_ActivateOverflowPanels) {
668 // Create normal and overflow panels. 775 // Create docked and overflow panels.
669 // normal: P0, P1, P2 776 // docked: P0, P1, P2
670 // overflow: P3, P4, P5 777 // overflow: P3, P4, P5
671 // overflow-on-overflow: P6, P7 778 // overflow-on-overflow: P6, P7
672 const int panel_widths[] = { 779 const int panel_widths[] = {
673 250, 260, 200, // normal 780 250, 260, 200, // docked
674 210, 260, 230, // overflow 781 210, 260, 230, // overflow
675 255, 210 // overflow-on-overflow 782 255, 210 // overflow-on-overflow
676 }; 783 };
677 std::vector<Panel*> panels = CreateOverflowPanels(3, 5, panel_widths); 784 std::vector<Panel*> panels = CreateOverflowPanels(3, 5, panel_widths);
678 785
679 PanelDataList expected_normal_list; 786 DockedPanelDataList expected_docked_list;
680 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 787 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
681 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 788 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
682 expected_normal_list.Add(panels[2], Panel::EXPANDED, true, false); 789 expected_docked_list.Add(panels[2], Panel::EXPANDED, true, false);
683 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 790 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
684 791
685 PanelDataList expected_overflow_list; 792 OverflowPanelDataList expected_overflow_list;
686 expected_overflow_list.Add(panels[3], Panel::IN_OVERFLOW, true, false); 793 expected_overflow_list.Add(panels[3], true, false);
687 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 794 expected_overflow_list.Add(panels[4], true, false);
688 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, true, false); 795 expected_overflow_list.Add(panels[5], true, false);
689 expected_overflow_list.Add(panels[6], Panel::IN_OVERFLOW, false, false); 796 expected_overflow_list.Add(panels[6], false, false);
690 expected_overflow_list.Add(panels[7], Panel::IN_OVERFLOW, false, false); 797 expected_overflow_list.Add(panels[7], false, false);
691 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 798 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
692 799
693 // Activate an overflow panel. Expect one normal panel is swapped into the 800 // Activate an overflow panel. Expect one docked panel is swapped into the
694 // overflow strip. 801 // overflow strip.
695 // normal: P0, P1, P3 802 // docked: P0, P1, P3
696 // overflow: P2, P4, P5 803 // overflow: P2, P4, P5
697 // overflow-on-overflow: P6, P7 804 // overflow-on-overflow: P6, P7
698 panels[3]->Activate(); 805 panels[3]->Activate();
699 WaitForPanelActiveState(panels[3], SHOW_AS_ACTIVE); 806 WaitForPanelActiveState(panels[3], SHOW_AS_ACTIVE);
700 WaitForExpansionStateChanged(panels[3], Panel::EXPANDED); 807 WaitForExpansionStateChanged(panels[3], Panel::EXPANDED);
701 808
702 expected_normal_list.clear(); 809 expected_docked_list.clear();
703 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 810 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
704 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 811 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
705 expected_normal_list.Add(panels[3], Panel::EXPANDED, true, true); 812 expected_docked_list.Add(panels[3], Panel::EXPANDED, true, true);
706 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 813 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
707 814
708 expected_overflow_list.clear(); 815 expected_overflow_list.clear();
709 expected_overflow_list.Add(panels[2], Panel::IN_OVERFLOW, true, false); 816 expected_overflow_list.Add(panels[2], true, false);
710 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 817 expected_overflow_list.Add(panels[4], true, false);
711 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, true, false); 818 expected_overflow_list.Add(panels[5], true, false);
712 expected_overflow_list.Add(panels[6], Panel::IN_OVERFLOW, false, false); 819 expected_overflow_list.Add(panels[6], false, false);
713 expected_overflow_list.Add(panels[7], Panel::IN_OVERFLOW, false, false); 820 expected_overflow_list.Add(panels[7], false, false);
714 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 821 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
715 822
716 // Activate an overflow panel. Expect two normal panels are swapped into the 823 // Activate an overflow panel. Expect two docked panels are swapped into the
717 // overflow strip and one overflow panel to become hidden. 824 // overflow strip and one overflow panel to become hidden.
718 // normal: P0, P4 825 // docked: P0, P4
719 // overflow: P1, P3, P2 826 // overflow: P1, P3, P2
720 // overflow-on-overflow: P5, P6, P7 827 // overflow-on-overflow: P5, P6, P7
721 panels[4]->Activate(); 828 panels[4]->Activate();
722 WaitForPanelActiveState(panels[4], SHOW_AS_ACTIVE); 829 WaitForPanelActiveState(panels[4], SHOW_AS_ACTIVE);
723 WaitForExpansionStateChanged(panels[4], Panel::EXPANDED); 830 WaitForExpansionStateChanged(panels[4], Panel::EXPANDED);
724 WaitForPanelActiveState(panels[3], SHOW_AS_INACTIVE); 831 WaitForPanelActiveState(panels[3], SHOW_AS_INACTIVE);
725 832
726 expected_normal_list.clear(); 833 expected_docked_list.clear();
727 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 834 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
728 expected_normal_list.Add(panels[4], Panel::EXPANDED, true, true); 835 expected_docked_list.Add(panels[4], Panel::EXPANDED, true, true);
729 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 836 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
730 837
731 expected_overflow_list.clear(); 838 expected_overflow_list.clear();
732 expected_overflow_list.Add(panels[1], Panel::IN_OVERFLOW, true, false); 839 expected_overflow_list.Add(panels[1], true, false);
733 expected_overflow_list.Add(panels[3], Panel::IN_OVERFLOW, true, false); 840 expected_overflow_list.Add(panels[3], true, false);
734 expected_overflow_list.Add(panels[2], Panel::IN_OVERFLOW, true, false); 841 expected_overflow_list.Add(panels[2], true, false);
735 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, false, false); 842 expected_overflow_list.Add(panels[5], false, false);
736 expected_overflow_list.Add(panels[6], Panel::IN_OVERFLOW, false, false); 843 expected_overflow_list.Add(panels[6], false, false);
737 expected_overflow_list.Add(panels[7], Panel::IN_OVERFLOW, false, false); 844 expected_overflow_list.Add(panels[7], false, false);
738 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 845 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
739 846
740 // Activate an overflow-on-overflow panel. Expect one normal panel is swapped 847 // Activate an overflow-on-overflow panel. Expect one docked panel is swapped
741 // into the overflow strip. 848 // into the overflow strip.
742 // normal: P0, P6 849 // docked: P0, P6
743 // overflow: P4, P1, P3, 850 // overflow: P4, P1, P3,
744 // overflow-on-overflow: P2, P5, P7 851 // overflow-on-overflow: P2, P5, P7
745 panels[6]->Activate(); 852 panels[6]->Activate();
746 WaitForPanelActiveState(panels[6], SHOW_AS_ACTIVE); 853 WaitForPanelActiveState(panels[6], SHOW_AS_ACTIVE);
747 WaitForExpansionStateChanged(panels[6], Panel::EXPANDED); 854 WaitForExpansionStateChanged(panels[6], Panel::EXPANDED);
748 WaitForPanelActiveState(panels[4], SHOW_AS_INACTIVE); 855 WaitForPanelActiveState(panels[4], SHOW_AS_INACTIVE);
749 856
750 expected_normal_list.clear(); 857 expected_docked_list.clear();
751 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 858 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
752 expected_normal_list.Add(panels[6], Panel::EXPANDED, true, true); 859 expected_docked_list.Add(panels[6], Panel::EXPANDED, true, true);
753 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 860 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
754 861
755 expected_overflow_list.clear(); 862 expected_overflow_list.clear();
756 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 863 expected_overflow_list.Add(panels[4], true, false);
757 expected_overflow_list.Add(panels[1], Panel::IN_OVERFLOW, true, false); 864 expected_overflow_list.Add(panels[1], true, false);
758 expected_overflow_list.Add(panels[3], Panel::IN_OVERFLOW, true, false); 865 expected_overflow_list.Add(panels[3], true, false);
759 expected_overflow_list.Add(panels[2], Panel::IN_OVERFLOW, false, false); 866 expected_overflow_list.Add(panels[2], false, false);
760 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, false, false); 867 expected_overflow_list.Add(panels[5], false, false);
761 expected_overflow_list.Add(panels[7], Panel::IN_OVERFLOW, false, false); 868 expected_overflow_list.Add(panels[7], false, false);
762 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 869 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
763 870
764 // Activate an overflow-on-overflow panel. No normal panel is swapped 871 // Activate an overflow-on-overflow panel. No docked panel is swapped
765 // since there has already been enough space in the panel strip. 872 // since there has already been enough space in the panel strip.
766 // normal: P0, P6, P7 873 // docked: P0, P6, P7
767 // overflow: P4, P1, P3, 874 // overflow: P4, P1, P3,
768 // overflow-on-overflow: P2, P5 875 // overflow-on-overflow: P2, P5
769 panels[7]->Activate(); 876 panels[7]->Activate();
770 WaitForPanelActiveState(panels[7], SHOW_AS_ACTIVE); 877 WaitForPanelActiveState(panels[7], SHOW_AS_ACTIVE);
771 WaitForExpansionStateChanged(panels[7], Panel::EXPANDED); 878 WaitForExpansionStateChanged(panels[7], Panel::EXPANDED);
772 WaitForPanelActiveState(panels[6], SHOW_AS_INACTIVE); 879 WaitForPanelActiveState(panels[6], SHOW_AS_INACTIVE);
773 880
774 expected_normal_list.clear(); 881 expected_docked_list.clear();
775 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 882 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
776 expected_normal_list.Add(panels[6], Panel::EXPANDED, true, false); 883 expected_docked_list.Add(panels[6], Panel::EXPANDED, true, false);
777 expected_normal_list.Add(panels[7], Panel::EXPANDED, true, true); 884 expected_docked_list.Add(panels[7], Panel::EXPANDED, true, true);
778 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 885 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
779 886
780 expected_overflow_list.clear(); 887 expected_overflow_list.clear();
781 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 888 expected_overflow_list.Add(panels[4], true, false);
782 expected_overflow_list.Add(panels[1], Panel::IN_OVERFLOW, true, false); 889 expected_overflow_list.Add(panels[1], true, false);
783 expected_overflow_list.Add(panels[3], Panel::IN_OVERFLOW, true, false); 890 expected_overflow_list.Add(panels[3], true, false);
784 expected_overflow_list.Add(panels[2], Panel::IN_OVERFLOW, false, false); 891 expected_overflow_list.Add(panels[2], false, false);
785 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, false, false); 892 expected_overflow_list.Add(panels[5], false, false);
786 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 893 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
787 894
788 PanelManager::GetInstance()->RemoveAll(); 895 PanelManager::GetInstance()->RemoveAll();
789 } 896 }
790 897
791 IN_PROC_BROWSER_TEST_F( 898 IN_PROC_BROWSER_TEST_F(
792 PanelOverflowBrowserTest, 899 PanelOverflowBrowserTest,
793 MAYBE_MoveMinimizedPanelToOverflowAndBringBackByActivate) { 900 MAYBE_MoveMinimizedPanelToOverflowAndBringBackByActivate) {
794 // Create normal and overflow panels. 901 // Create docked and overflow panels.
795 // normal: P0, P1, P2 902 // docked: P0, P1, P2
796 // overflow: P3, P4 903 // overflow: P3, P4
797 const int panel_widths[] = { 904 const int panel_widths[] = {
798 250, 260, 200, // normal 905 250, 260, 200, // docked
799 210, 260 // overflow 906 210, 260 // overflow
800 }; 907 };
801 std::vector<Panel*> panels = CreateOverflowPanels(3, 2, panel_widths); 908 std::vector<Panel*> panels = CreateOverflowPanels(3, 2, panel_widths);
802 909
803 PanelDataList expected_normal_list; 910 DockedPanelDataList expected_docked_list;
804 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 911 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
805 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 912 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
806 expected_normal_list.Add(panels[2], Panel::EXPANDED, true, false); 913 expected_docked_list.Add(panels[2], Panel::EXPANDED, true, false);
807 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 914 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
808 915
809 PanelDataList expected_overflow_list; 916 OverflowPanelDataList expected_overflow_list;
810 expected_overflow_list.Add(panels[3], Panel::IN_OVERFLOW, true, false); 917 expected_overflow_list.Add(panels[3], true, false);
811 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 918 expected_overflow_list.Add(panels[4], true, false);
919 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
812 920
813 // Minimize a normal panel and then bump it to overflow by activating an 921 // Minimize a docked panel and then bump it to overflow by activating an
814 // overflow panel. 922 // overflow panel.
815 // normal: P0, P1, P3 923 // docked: P0, P1, P3
816 // overflow: P2, P4 924 // overflow: P2, P4
817 panels[2]->SetExpansionState(Panel::MINIMIZED); 925 panels[2]->SetExpansionState(Panel::MINIMIZED);
818 panels[3]->Activate(); 926 panels[3]->Activate();
819 WaitForPanelActiveState(panels[3], SHOW_AS_ACTIVE); 927 WaitForPanelActiveState(panels[3], SHOW_AS_ACTIVE);
820 WaitForExpansionStateChanged(panels[3], Panel::EXPANDED); 928 WaitForExpansionStateChanged(panels[3], Panel::EXPANDED);
821 929
822 expected_normal_list.clear(); 930 expected_docked_list.clear();
823 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 931 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
824 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 932 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
825 expected_normal_list.Add(panels[3], Panel::EXPANDED, true, true); 933 expected_docked_list.Add(panels[3], Panel::EXPANDED, true, true);
826 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 934 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
827 935
828 expected_overflow_list.clear(); 936 expected_overflow_list.clear();
829 expected_overflow_list.Add(panels[2], Panel::IN_OVERFLOW, true, false); 937 expected_overflow_list.Add(panels[2], true, false);
830 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 938 expected_overflow_list.Add(panels[4], true, false);
831 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 939 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
832 940
833 // Reactivate the formerly minimized panel. It will return to the panel 941 // Reactivate the formerly minimized panel. It will return to the panel
834 // strip in expanded state. 942 // strip in expanded state.
835 // normal: P0, P1, P2 943 // docked: P0, P1, P2
836 // overflow: P3, P4 944 // overflow: P3, P4
837 panels[2]->Activate(); 945 panels[2]->Activate();
838 WaitForPanelActiveState(panels[2], SHOW_AS_ACTIVE); 946 WaitForPanelActiveState(panels[2], SHOW_AS_ACTIVE);
839 WaitForExpansionStateChanged(panels[2], Panel::EXPANDED); 947 WaitForExpansionStateChanged(panels[2], Panel::EXPANDED);
840 948
841 expected_normal_list.clear(); 949 expected_docked_list.clear();
842 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 950 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
843 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 951 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
844 expected_normal_list.Add(panels[2], Panel::EXPANDED, true, true); 952 expected_docked_list.Add(panels[2], Panel::EXPANDED, true, true);
845 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 953 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
846 954
847 expected_overflow_list.clear(); 955 expected_overflow_list.clear();
848 expected_overflow_list.Add(panels[3], Panel::IN_OVERFLOW, true, false); 956 expected_overflow_list.Add(panels[3], true, false);
849 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 957 expected_overflow_list.Add(panels[4], true, false);
850 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 958 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
851 959
852 // Minimize a panel to title only mode, then bump it to overflow. 960 // Minimize a panel to title only mode, then bump it to overflow.
853 // normal: P0, P1, P3 961 // docked: P0, P1, P3
854 // overflow: P2, P4 962 // overflow: P2, P4
855 panels[2]->SetExpansionState(Panel::TITLE_ONLY); 963 panels[2]->SetExpansionState(Panel::TITLE_ONLY);
856 panels[3]->Activate(); 964 panels[3]->Activate();
857 WaitForPanelActiveState(panels[3], SHOW_AS_ACTIVE); 965 WaitForPanelActiveState(panels[3], SHOW_AS_ACTIVE);
858 WaitForExpansionStateChanged(panels[3], Panel::EXPANDED); 966 WaitForExpansionStateChanged(panels[3], Panel::EXPANDED);
859 967
860 expected_normal_list.clear(); 968 expected_docked_list.clear();
861 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 969 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
862 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 970 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
863 expected_normal_list.Add(panels[3], Panel::EXPANDED, true, true); 971 expected_docked_list.Add(panels[3], Panel::EXPANDED, true, true);
864 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 972 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
865 973
866 expected_overflow_list.clear(); 974 expected_overflow_list.clear();
867 expected_overflow_list.Add(panels[2], Panel::IN_OVERFLOW, true, false); 975 expected_overflow_list.Add(panels[2], true, false);
868 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 976 expected_overflow_list.Add(panels[4], true, false);
869 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 977 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
870 978
871 // Reactivate the formerly minimized panel. It will return to the panel 979 // Reactivate the formerly minimized panel. It will return to the panel
872 // strip in expanded state. 980 // strip in expanded state.
873 // normal: P0, P1, P2 981 // docked: P0, P1, P2
874 // overflow: P3, P4 982 // overflow: P3, P4
875 panels[2]->Activate(); 983 panels[2]->Activate();
876 WaitForPanelActiveState(panels[2], SHOW_AS_ACTIVE); 984 WaitForPanelActiveState(panels[2], SHOW_AS_ACTIVE);
877 WaitForExpansionStateChanged(panels[2], Panel::EXPANDED); 985 WaitForExpansionStateChanged(panels[2], Panel::EXPANDED);
878 986
879 expected_normal_list.clear(); 987 expected_docked_list.clear();
880 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 988 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
881 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 989 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
882 expected_normal_list.Add(panels[2], Panel::EXPANDED, true, true); 990 expected_docked_list.Add(panels[2], Panel::EXPANDED, true, true);
883 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 991 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
884 992
885 expected_overflow_list.clear(); 993 expected_overflow_list.clear();
886 expected_overflow_list.Add(panels[3], Panel::IN_OVERFLOW, true, false); 994 expected_overflow_list.Add(panels[3], true, false);
887 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 995 expected_overflow_list.Add(panels[4], true, false);
888 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 996 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
889 997
890 PanelManager::GetInstance()->RemoveAll(); 998 PanelManager::GetInstance()->RemoveAll();
891 } 999 }
892 1000
893 IN_PROC_BROWSER_TEST_F( 1001 IN_PROC_BROWSER_TEST_F(
894 PanelOverflowBrowserTest, 1002 PanelOverflowBrowserTest,
895 MAYBE_MoveMinimizedPanelToOverflowAndBringBackByCloseOrResize) { 1003 MAYBE_MoveMinimizedPanelToOverflowAndBringBackByCloseOrResize) {
896 PanelManager* panel_manager = PanelManager::GetInstance(); 1004 PanelManager* panel_manager = PanelManager::GetInstance();
897 1005
898 // Create normal and overflow panels. 1006 // Create docked and overflow panels.
899 // normal: P0, P1, P2 1007 // docked: P0, P1, P2
900 // overflow: P3, P4, P5 1008 // overflow: P3, P4, P5
901 const int panel_widths[] = { 1009 const int panel_widths[] = {
902 240, 240, 120, // normal 1010 240, 240, 120, // docked
903 240, 240, 240 // overflow 1011 240, 240, 240 // overflow
904 }; 1012 };
905 std::vector<Panel*> panels = CreateOverflowPanels(3, 3, panel_widths); 1013 std::vector<Panel*> panels = CreateOverflowPanels(3, 3, panel_widths);
906 1014
907 PanelDataList expected_normal_list; 1015 DockedPanelDataList expected_docked_list;
908 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 1016 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
909 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 1017 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
910 expected_normal_list.Add(panels[2], Panel::EXPANDED, true, false); 1018 expected_docked_list.Add(panels[2], Panel::EXPANDED, true, false);
911 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 1019 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
912 1020
913 PanelDataList expected_overflow_list; 1021 OverflowPanelDataList expected_overflow_list;
914 expected_overflow_list.Add(panels[3], Panel::IN_OVERFLOW, true, false); 1022 expected_overflow_list.Add(panels[3], true, false);
915 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 1023 expected_overflow_list.Add(panels[4], true, false);
916 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, true, false); 1024 expected_overflow_list.Add(panels[5], true, false);
917 1025
918 // Test case 1: restoring minimized to minimized. 1026 // Test case 1: restoring minimized to minimized.
919 { 1027 {
920 // Minimize a normal panel and then bump it to overflow by activating an 1028 // Minimize a docked panel and then bump it to overflow by activating an
921 // overflow panel. 1029 // overflow panel.
922 // normal: P0, P1, P3 1030 // docked: P0, P1, P3
923 // overflow: P2, P4, P5 1031 // overflow: P2, P4, P5
924 panels[2]->SetExpansionState(Panel::MINIMIZED); 1032 panels[2]->SetExpansionState(Panel::MINIMIZED);
925 panels[3]->Activate(); 1033 panels[3]->Activate();
926 WaitForPanelActiveState(panels[3], SHOW_AS_ACTIVE); 1034 WaitForPanelActiveState(panels[3], SHOW_AS_ACTIVE);
927 WaitForExpansionStateChanged(panels[3], Panel::EXPANDED); 1035 WaitForExpansionStateChanged(panels[3], Panel::EXPANDED);
928 1036
929 expected_normal_list.clear(); 1037 expected_docked_list.clear();
930 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 1038 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
931 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 1039 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
932 expected_normal_list.Add(panels[3], Panel::EXPANDED, true, true); 1040 expected_docked_list.Add(panels[3], Panel::EXPANDED, true, true);
933 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 1041 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
934 1042
935 expected_overflow_list.clear(); 1043 expected_overflow_list.clear();
936 expected_overflow_list.Add(panels[2], Panel::IN_OVERFLOW, true, false); 1044 expected_overflow_list.Add(panels[2], true, false);
937 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 1045 expected_overflow_list.Add(panels[4], true, false);
938 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, true, false); 1046 expected_overflow_list.Add(panels[5], true, false);
939 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 1047 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
940 1048
941 // Bring back the formerly minimized panel by closing a panel. It will 1049 // Bring back the formerly minimized panel by closing a panel. It will
942 // return to the panel strip in the minimized state. 1050 // return to the panel strip in the minimized state.
943 // normal: P0, P1, P2 1051 // docked: P0, P1, P2
944 // overflow: P4, P5 1052 // overflow: P4, P5
945 CloseWindowAndWait(panels[3]->browser()); 1053 CloseWindowAndWait(panels[3]->browser());
946 WaitForExpansionStateChanged(panels[2], Panel::MINIMIZED); 1054 WaitForExpansionStateChanged(panels[2], Panel::MINIMIZED);
947 1055
948 expected_normal_list.clear(); 1056 expected_docked_list.clear();
949 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 1057 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
950 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 1058 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
951 expected_normal_list.Add(panels[2], Panel::MINIMIZED, true, false); 1059 expected_docked_list.Add(panels[2], Panel::MINIMIZED, true, false);
952 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 1060 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
953 1061
954 expected_overflow_list.clear(); 1062 expected_overflow_list.clear();
955 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 1063 expected_overflow_list.Add(panels[4], true, false);
956 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, true, false); 1064 expected_overflow_list.Add(panels[5], true, false);
957 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 1065 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
958 } 1066 }
959 1067
960 // Test case 2: restoring minimized to title-only. 1068 // Test case 2: restoring minimized to title-only.
961 { 1069 {
962 // Bump the minimized panel to overflow by activating an overflow panel. 1070 // Bump the minimized panel to overflow by activating an overflow panel.
963 // normal: P0, P1, P4 1071 // docked: P0, P1, P4
964 // overflow: P2, P5 1072 // overflow: P2, P5
965 panels[4]->Activate(); 1073 panels[4]->Activate();
966 WaitForPanelActiveState(panels[4], SHOW_AS_ACTIVE); 1074 WaitForPanelActiveState(panels[4], SHOW_AS_ACTIVE);
967 WaitForExpansionStateChanged(panels[4], Panel::EXPANDED); 1075 WaitForExpansionStateChanged(panels[4], Panel::EXPANDED);
968 1076
969 expected_normal_list.clear(); 1077 expected_docked_list.clear();
970 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 1078 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
971 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 1079 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
972 expected_normal_list.Add(panels[4], Panel::EXPANDED, true, true); 1080 expected_docked_list.Add(panels[4], Panel::EXPANDED, true, true);
973 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 1081 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
974 1082
975 expected_overflow_list.clear(); 1083 expected_overflow_list.clear();
976 expected_overflow_list.Add(panels[2], Panel::IN_OVERFLOW, true, false); 1084 expected_overflow_list.Add(panels[2], true, false);
977 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, true, false); 1085 expected_overflow_list.Add(panels[5], true, false);
978 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 1086 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
979 1087
980 // Minimize another panel and hover the mouse over it. This should bring up 1088 // 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 1089 // 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. 1090 // panel is restored from the overflow area, it should also be title-only.
983 panels[0]->SetExpansionState(Panel::MINIMIZED); 1091 panels[0]->SetExpansionState(Panel::MINIMIZED);
984 MoveMouse(gfx::Point(panels[0]->GetBounds().x(), 1092 MoveMouse(gfx::Point(panels[0]->GetBounds().x(),
985 panels[0]->GetBounds().y())); 1093 panels[0]->GetBounds().y()));
986 WaitForExpansionStateChanged(panels[0], Panel::TITLE_ONLY); 1094 WaitForExpansionStateChanged(panels[0], Panel::TITLE_ONLY);
987 1095
988 // Bring back the formerly minimized panel by closing a panel. It will 1096 // Bring back the formerly minimized panel by closing a panel. It will
989 // return to the panel strip in the title-only state. 1097 // return to the panel strip in the title-only state.
990 // normal: P0, P1, P2 1098 // docked: P0, P1, P2
991 // overflow: P5 1099 // overflow: P5
992 CloseWindowAndWait(panels[4]->browser()); 1100 CloseWindowAndWait(panels[4]->browser());
993 WaitForExpansionStateChanged(panels[2], Panel::TITLE_ONLY); 1101 WaitForExpansionStateChanged(panels[2], Panel::TITLE_ONLY);
994 1102
995 expected_normal_list.clear(); 1103 expected_docked_list.clear();
996 expected_normal_list.Add(panels[0], Panel::TITLE_ONLY, true, false); 1104 expected_docked_list.Add(panels[0], Panel::TITLE_ONLY, true, false);
997 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 1105 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
998 expected_normal_list.Add(panels[2], Panel::TITLE_ONLY, true, false); 1106 expected_docked_list.Add(panels[2], Panel::TITLE_ONLY, true, false);
999 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 1107 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
1000 1108
1001 expected_overflow_list.clear(); 1109 expected_overflow_list.clear();
1002 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, true, false); 1110 expected_overflow_list.Add(panels[5], true, false);
1003 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 1111 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
1004 } 1112 }
1005 1113
1006 // Test case 3: restoring title-only to title-only. 1114 // Test case 3: restoring title-only to title-only.
1007 { 1115 {
1008 // Bump the title-only panel to overflow by activating an overflow panel. 1116 // Bump the title-only panel to overflow by activating an overflow panel.
1009 // normal: P0, P1, P5 1117 // docked: P0, P1, P5
1010 // overflow: P2 1118 // overflow: P2
1011 panels[5]->Activate(); 1119 panels[5]->Activate();
1012 WaitForPanelActiveState(panels[5], SHOW_AS_ACTIVE); 1120 WaitForPanelActiveState(panels[5], SHOW_AS_ACTIVE);
1013 WaitForExpansionStateChanged(panels[5], Panel::EXPANDED); 1121 WaitForExpansionStateChanged(panels[5], Panel::EXPANDED);
1014 1122
1015 expected_normal_list.clear(); 1123 expected_docked_list.clear();
1016 expected_normal_list.Add(panels[0], Panel::TITLE_ONLY, true, false); 1124 expected_docked_list.Add(panels[0], Panel::TITLE_ONLY, true, false);
1017 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 1125 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
1018 expected_normal_list.Add(panels[5], Panel::EXPANDED, true, true); 1126 expected_docked_list.Add(panels[5], Panel::EXPANDED, true, true);
1019 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 1127 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
1020 1128
1021 expected_overflow_list.clear(); 1129 expected_overflow_list.clear();
1022 expected_overflow_list.Add(panels[2], Panel::IN_OVERFLOW, true, false); 1130 expected_overflow_list.Add(panels[2], true, false);
1023 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 1131 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
1024 1132
1025 // Bring back the formerly title-only panel by shrinking a panel. It will 1133 // Bring back the formerly title-only panel by shrinking a panel. It will
1026 // return to the panel strip in the title-only state. 1134 // return to the panel strip in the title-only state.
1027 // normal: P0, P1, P5, P2 1135 // docked: P0, P1, P5, P2
1028 panel_manager->ResizePanel(panels[5], gfx::Size( 1136 panel_manager->ResizePanel(panels[5], gfx::Size(
1029 panels[5]->GetBounds().width() / 2, 1137 panels[5]->GetBounds().width() / 2,
1030 panels[5]->GetBounds().height() / 2)); 1138 panels[5]->GetBounds().height() / 2));
1031 1139
1032 expected_normal_list.clear(); 1140 expected_docked_list.clear();
1033 expected_normal_list.Add(panels[0], Panel::TITLE_ONLY, true, false); 1141 expected_docked_list.Add(panels[0], Panel::TITLE_ONLY, true, false);
1034 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 1142 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
1035 expected_normal_list.Add(panels[5], Panel::EXPANDED, true, true); 1143 expected_docked_list.Add(panels[5], Panel::EXPANDED, true, true);
1036 expected_normal_list.Add(panels[2], Panel::TITLE_ONLY, true, false); 1144 expected_docked_list.Add(panels[2], Panel::TITLE_ONLY, true, false);
1037 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 1145 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
1038 1146
1039 expected_overflow_list.clear(); 1147 expected_overflow_list.clear();
1040 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 1148 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
1041 } 1149 }
1042 1150
1043 // Test case 4: restoring title-only to minimized. 1151 // Test case 4: restoring title-only to minimized.
1044 { 1152 {
1045 // Bump the minimized panel to overflow by enlarging a panel. 1153 // Bump the minimized panel to overflow by enlarging a panel.
1046 // normal: P0, P1, P5 1154 // docked: P0, P1, P5
1047 // overflow: P2 1155 // overflow: P2
1048 panel_manager->ResizePanel(panels[5], gfx::Size( 1156 panel_manager->ResizePanel(panels[5], gfx::Size(
1049 panels[5]->GetBounds().width() * 2, 1157 panels[5]->GetBounds().width() * 2,
1050 panels[5]->GetBounds().height() * 2)); 1158 panels[5]->GetBounds().height() * 2));
1051 1159
1052 expected_normal_list.clear(); 1160 expected_docked_list.clear();
1053 expected_normal_list.Add(panels[0], Panel::TITLE_ONLY, true, false); 1161 expected_docked_list.Add(panels[0], Panel::TITLE_ONLY, true, false);
1054 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 1162 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
1055 expected_normal_list.Add(panels[5], Panel::EXPANDED, true, true); 1163 expected_docked_list.Add(panels[5], Panel::EXPANDED, true, true);
1056 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 1164 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
1057 1165
1058 expected_overflow_list.clear(); 1166 expected_overflow_list.clear();
1059 expected_overflow_list.Add(panels[2], Panel::IN_OVERFLOW, true, false); 1167 expected_overflow_list.Add(panels[2], true, false);
1060 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 1168 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
1061 1169
1062 // Move the mouse away. This should bring down all currently title-only 1170 // 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 1171 // panels. When a formerly minimized or title-only panel is restored from
1064 // the overflow area, it should be minimized. 1172 // the overflow area, it should be minimized.
1065 MoveMouse(gfx::Point(0, 0)); 1173 MoveMouse(gfx::Point(0, 0));
1066 WaitForExpansionStateChanged(panels[0], Panel::MINIMIZED); 1174 WaitForExpansionStateChanged(panels[0], Panel::MINIMIZED);
1067 1175
1068 // Bring back the formerly title-only panel by shrinking a panel. It will 1176 // Bring back the formerly title-only panel by shrinking a panel. It will
1069 // return to the panel strip in the minimized state. 1177 // return to the panel strip in the minimized state.
1070 // normal: P0, P1, P5, P2 1178 // docked: P0, P1, P5, P2
1071 panel_manager->ResizePanel(panels[5], gfx::Size( 1179 panel_manager->ResizePanel(panels[5], gfx::Size(
1072 panels[5]->GetBounds().width() / 2, 1180 panels[5]->GetBounds().width() / 2,
1073 panels[5]->GetBounds().height() / 2)); 1181 panels[5]->GetBounds().height() / 2));
1074 1182
1075 expected_normal_list.clear(); 1183 expected_docked_list.clear();
1076 expected_normal_list.Add(panels[0], Panel::MINIMIZED, true, false); 1184 expected_docked_list.Add(panels[0], Panel::MINIMIZED, true, false);
1077 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 1185 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
1078 expected_normal_list.Add(panels[5], Panel::EXPANDED, true, true); 1186 expected_docked_list.Add(panels[5], Panel::EXPANDED, true, true);
1079 expected_normal_list.Add(panels[2], Panel::MINIMIZED, true, false); 1187 expected_docked_list.Add(panels[2], Panel::MINIMIZED, true, false);
1080 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 1188 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
1081 1189
1082 expected_overflow_list.clear(); 1190 expected_overflow_list.clear();
1083 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 1191 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
1084 } 1192 }
1085 1193
1086 PanelManager::GetInstance()->RemoveAll(); 1194 PanelManager::GetInstance()->RemoveAll();
1087 } 1195 }
1088 1196
1089 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, 1197 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest,
1090 MAYBE_HoverOverOverflowAreaWithoutOverflowOfOverflow) { 1198 MAYBE_HoverOverOverflowAreaWithoutOverflowOfOverflow) {
1091 PanelManager* panel_manager = PanelManager::GetInstance(); 1199 PanelManager* panel_manager = PanelManager::GetInstance();
1092 PanelOverflowStrip* panel_overflow_strip = 1200 PanelOverflowStrip* panel_overflow_strip =
1093 panel_manager->panel_overflow_strip(); 1201 panel_manager->panel_overflow_strip();
1094 int iconified_width = panel_overflow_strip->current_display_width(); 1202 int iconified_width = panel_overflow_strip->current_display_width();
1095 1203
1096 // Create normal and overflow panels. 1204 // Create docked and overflow panels.
1097 // normal: P0, P1, P2 1205 // docked: P0, P1, P2
1098 // overflow: P3, P4 1206 // overflow: P3, P4
1099 const int panel_widths[] = { 1207 const int panel_widths[] = {
1100 250, 260, 200, // normal 1208 250, 260, 200, // docked
1101 255, 220 // overflow 1209 255, 220 // overflow
1102 }; 1210 };
1103 std::vector<Panel*> panels = CreateOverflowPanels(3, 2, panel_widths); 1211 std::vector<Panel*> panels = CreateOverflowPanels(3, 2, panel_widths);
1104 1212
1105 // Move mouse beyond the right edge of the top overflow panel. 1213 // Move mouse beyond the right edge of the top overflow panel.
1106 // Expect the overflow area remains shrunk. 1214 // Expect the overflow area remains shrunk.
1107 MoveMouse(gfx::Point(panels[4]->GetBounds().right() + 1, 1215 MoveMouse(gfx::Point(panels[4]->GetBounds().right() + 1,
1108 panels[4]->GetBounds().y())); 1216 panels[4]->GetBounds().y()));
1109 EXPECT_EQ(iconified_width, panel_overflow_strip->current_display_width()); 1217 EXPECT_EQ(iconified_width, panel_overflow_strip->current_display_width());
1110 1218
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
1157 panel_manager->RemoveAll(); 1265 panel_manager->RemoveAll();
1158 } 1266 }
1159 1267
1160 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, 1268 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest,
1161 MAYBE_HoverOverOverflowAreaWithOverflowOfOverflow) { 1269 MAYBE_HoverOverOverflowAreaWithOverflowOfOverflow) {
1162 PanelManager* panel_manager = PanelManager::GetInstance(); 1270 PanelManager* panel_manager = PanelManager::GetInstance();
1163 PanelOverflowStrip* panel_overflow_strip = 1271 PanelOverflowStrip* panel_overflow_strip =
1164 panel_manager->panel_overflow_strip(); 1272 panel_manager->panel_overflow_strip();
1165 int iconified_width = panel_overflow_strip->current_display_width(); 1273 int iconified_width = panel_overflow_strip->current_display_width();
1166 1274
1167 // Create normal and overflow panels. 1275 // Create docked and overflow panels.
1168 // normal: P0, P1, P2 1276 // docked: P0, P1, P2
1169 // overflow: P3, P4, P5 1277 // overflow: P3, P4, P5
1170 // overflow-on-overflow: P6, P7 1278 // overflow-on-overflow: P6, P7
1171 const int panel_widths[] = { 1279 const int panel_widths[] = {
1172 250, 260, 200, // normal 1280 250, 260, 200, // docked
1173 255, 220, 260, // overflow 1281 255, 220, 260, // overflow
1174 140, 210 // overflow-on-overflow 1282 140, 210 // overflow-on-overflow
1175 }; 1283 };
1176 std::vector<Panel*> panels = CreateOverflowPanels(3, 5, panel_widths); 1284 std::vector<Panel*> panels = CreateOverflowPanels(3, 5, panel_widths);
1177 1285
1178 // Move mouse beyond the right edge of the top overflow panel. 1286 // Move mouse beyond the right edge of the top overflow panel.
1179 // Expect the overflow area remains shrunk. 1287 // Expect the overflow area remains shrunk.
1180 MoveMouse(gfx::Point(panels[5]->GetBounds().right() + 1, 1288 MoveMouse(gfx::Point(panels[5]->GetBounds().right() + 1,
1181 panels[5]->GetBounds().y())); 1289 panels[5]->GetBounds().y()));
1182 EXPECT_EQ(iconified_width, panel_overflow_strip->current_display_width()); 1290 EXPECT_EQ(iconified_width, panel_overflow_strip->current_display_width());
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
1263 panel_manager->RemoveAll(); 1371 panel_manager->RemoveAll();
1264 } 1372 }
1265 1373
1266 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_ResizePanel) { 1374 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_ResizePanel) {
1267 PanelManager* panel_manager = PanelManager::GetInstance(); 1375 PanelManager* panel_manager = PanelManager::GetInstance();
1268 panel_manager->enable_auto_sizing(true); 1376 panel_manager->enable_auto_sizing(true);
1269 PanelStrip* panel_strip = panel_manager->panel_strip(); 1377 PanelStrip* panel_strip = panel_manager->panel_strip();
1270 PanelOverflowStrip* overflow_strip = panel_manager->panel_overflow_strip(); 1378 PanelOverflowStrip* overflow_strip = panel_manager->panel_overflow_strip();
1271 1379
1272 // Create 4 panels that fit. 1380 // Create 4 panels that fit.
1273 // normal: P1 (250), P2 (200), P3 (100), P4 (100) 1381 // docked: P1 (250), P2 (200), P3 (100), P4 (100)
1274 // overflow: empty 1382 // overflow: empty
1275 Panel* panel1 = CreatePanelWithBounds("1", gfx::Rect(0, 0, 250, 200)); 1383 Panel* panel1 = CreatePanelWithBounds("1", gfx::Rect(0, 0, 250, 200));
1276 Panel* panel2 = CreatePanelWithBounds("2", gfx::Rect(0, 0, 200, 200)); 1384 Panel* panel2 = CreatePanelWithBounds("2", gfx::Rect(0, 0, 200, 200));
1277 Panel* panel3 = CreatePanelWithBounds("3", gfx::Rect(0, 0, 100, 200)); 1385 Panel* panel3 = CreatePanelWithBounds("3", gfx::Rect(0, 0, 100, 200));
1278 Panel* panel4 = CreatePanelWithBounds("4", gfx::Rect(0, 0, 100, 200)); 1386 Panel* panel4 = CreatePanelWithBounds("4", gfx::Rect(0, 0, 100, 200));
1279 EXPECT_EQ(4, panel_strip->num_panels()); 1387 EXPECT_EQ(4, panel_strip->num_panels());
1280 EXPECT_EQ(0, overflow_strip->num_panels()); 1388 EXPECT_EQ(0, overflow_strip->num_panels());
1281 1389
1282 // Resize last panel so that it is too big to fit and overflows. 1390 // Resize last panel so that it is too big to fit and overflows.
1283 // normal: P1 (250), P2 (200), P3 (100) 1391 // docked: P1 (250), P2 (200), P3 (100)
1284 // overflow: P4 (250)* 1392 // overflow: P4 (250)*
1285 gfx::Size new_size(250, 200); 1393 gfx::Size new_size(250, 200);
1286 panel_manager->OnPreferredWindowSizeChanged(panel4, new_size); 1394 panel_manager->OnPreferredWindowSizeChanged(panel4, new_size);
1287 EXPECT_EQ(3, panel_strip->num_panels()); 1395 EXPECT_EQ(3, panel_strip->num_panels());
1288 EXPECT_EQ(1, overflow_strip->num_panels()); 1396 EXPECT_EQ(1, overflow_strip->num_panels());
1289 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->expansion_state()); 1397 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->layout_state());
1290 EXPECT_TRUE(IsPanelInOverflowStrip(panel4)); 1398 EXPECT_TRUE(IsPanelInOverflowStrip(panel4));
1291 EXPECT_EQ(new_size, panel4->restored_size()); 1399 EXPECT_EQ(new_size, panel4->restored_size());
1292 1400
1293 // Open another panel that will fit. 1401 // Open another panel that will fit.
1294 // normal: P1 (250), P2 (200), P3 (100), P5 (100)* 1402 // docked: P1 (250), P2 (200), P3 (100), P5 (100)*
1295 // overflow: P4 (250) 1403 // overflow: P4 (250)
1296 Panel* panel5 = CreatePanelWithBounds("5", gfx::Rect(0, 0, 100, 200)); 1404 Panel* panel5 = CreatePanelWithBounds("5", gfx::Rect(0, 0, 100, 200));
1297 EXPECT_EQ(4, panel_strip->num_panels()); 1405 EXPECT_EQ(4, panel_strip->num_panels());
1298 EXPECT_EQ(1, overflow_strip->num_panels()); 1406 EXPECT_EQ(1, overflow_strip->num_panels());
1299 EXPECT_EQ(Panel::EXPANDED, panel5->expansion_state()); 1407 EXPECT_EQ(Panel::EXPANDED, panel5->expansion_state());
1300 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->expansion_state()); // no change 1408 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->layout_state()); // no change
1301 1409
1302 // Resize a panel from the middle of the strip so that it causes a 1410 // Resize a panel from the middle of the strip so that it causes a
1303 // panel to overflow. 1411 // panel to overflow.
1304 // normal: P1 (250), P2 (200), P3 (250)* 1412 // docked: P1 (250), P2 (200), P3 (250)*
1305 // overflow: P5 (100), P4 (250) 1413 // overflow: P5 (100), P4 (250)
1306 panel_manager->OnPreferredWindowSizeChanged(panel3, gfx::Size(250, 200)); 1414 panel_manager->OnPreferredWindowSizeChanged(panel3, gfx::Size(250, 200));
1307 EXPECT_EQ(3, panel_strip->num_panels()); 1415 EXPECT_EQ(3, panel_strip->num_panels());
1308 EXPECT_EQ(2, overflow_strip->num_panels()); 1416 EXPECT_EQ(2, overflow_strip->num_panels());
1309 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->expansion_state()); 1417 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->layout_state());
1310 EXPECT_EQ(Panel::IN_OVERFLOW, panel5->expansion_state()); 1418 EXPECT_EQ(Panel::IN_OVERFLOW, panel5->layout_state());
1311 const PanelOverflowStrip::Panels& overflow = overflow_strip->panels(); 1419 const PanelOverflowStrip::Panels& overflow = overflow_strip->panels();
1312 EXPECT_EQ(panel5, overflow[0]); // new overflow panel is first 1420 EXPECT_EQ(panel5, overflow[0]); // new overflow panel is first
1313 EXPECT_EQ(panel4, overflow[1]); 1421 EXPECT_EQ(panel4, overflow[1]);
1314 1422
1315 // Resize panel smaller so that panel from overflow can fit. 1423 // Resize panel smaller so that panel from overflow can fit.
1316 // normal: P1 (250), P2 (200), P3 (100)*, P5 (100) 1424 // docked: P1 (250), P2 (200), P3 (100)*, P5 (100)
1317 // overflow: P4 (250) 1425 // overflow: P4 (250)
1318 panel_manager->OnPreferredWindowSizeChanged(panel3, gfx::Size(100, 200)); 1426 panel_manager->OnPreferredWindowSizeChanged(panel3, gfx::Size(100, 200));
1319 EXPECT_EQ(4, panel_strip->num_panels()); 1427 EXPECT_EQ(4, panel_strip->num_panels());
1320 EXPECT_EQ(1, overflow_strip->num_panels()); 1428 EXPECT_EQ(1, overflow_strip->num_panels());
1321 EXPECT_EQ(Panel::EXPANDED, panel5->expansion_state()); 1429 EXPECT_EQ(Panel::EXPANDED, panel5->expansion_state());
1322 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->expansion_state()); 1430 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->layout_state());
1323 1431
1324 // Resize smaller again but not small enough to fit overflow panel. 1432 // Resize smaller again but not small enough to fit overflow panel.
1325 // normal: P1 (250), P2 (100)*, P3 (100), P5 (100) 1433 // docked: P1 (250), P2 (100)*, P3 (100), P5 (100)
1326 // overflow: P4 (250) 1434 // overflow: P4 (250)
1327 panel_manager->OnPreferredWindowSizeChanged(panel2, gfx::Size(100, 200)); 1435 panel_manager->OnPreferredWindowSizeChanged(panel2, gfx::Size(100, 200));
1328 EXPECT_EQ(4, panel_strip->num_panels()); 1436 EXPECT_EQ(4, panel_strip->num_panels());
1329 EXPECT_EQ(1, overflow_strip->num_panels()); 1437 EXPECT_EQ(1, overflow_strip->num_panels());
1330 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->expansion_state()); // no change 1438 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->layout_state()); // no change
1331 1439
1332 // Resize overflow panel bigger. It should stay in overflow and bounds 1440 // Resize overflow panel bigger. It should stay in overflow and bounds
1333 // should not change. 1441 // should not change.
1334 // normal: P1 (250), P2 (100), P3 (100), P5 (100) 1442 // docked: P1 (250), P2 (100), P3 (100), P5 (100)
1335 // overflow: P4 (251)* 1443 // overflow: P4 (251)*
1336 gfx::Rect bounds_before_resize = panel4->GetBounds(); 1444 gfx::Rect bounds_before_resize = panel4->GetBounds();
1337 new_size.SetSize(251, 200); 1445 new_size.SetSize(251, 200);
1338 panel_manager->OnPreferredWindowSizeChanged(panel4, new_size); 1446 panel_manager->OnPreferredWindowSizeChanged(panel4, new_size);
1339 EXPECT_EQ(4, panel_strip->num_panels()); 1447 EXPECT_EQ(4, panel_strip->num_panels());
1340 EXPECT_EQ(1, overflow_strip->num_panels()); 1448 EXPECT_EQ(1, overflow_strip->num_panels());
1341 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->expansion_state()); 1449 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->layout_state());
1342 EXPECT_EQ(bounds_before_resize, panel4->GetBounds()); 1450 EXPECT_EQ(bounds_before_resize, panel4->GetBounds());
1343 EXPECT_EQ(new_size, panel4->restored_size()); 1451 EXPECT_EQ(new_size, panel4->restored_size());
1344 1452
1345 // Resize overflow panel to make it fit. 1453 // Resize overflow panel to make it fit.
1346 // normal: P1 (250), P2 (100), P3 (100), P5 (100), P4 (100)* 1454 // docked: P1 (250), P2 (100), P3 (100), P5 (100), P4 (100)*
1347 // overflow: empty 1455 // overflow: empty
1348 panel_manager->OnPreferredWindowSizeChanged(panel4, gfx::Size(100, 200)); 1456 panel_manager->OnPreferredWindowSizeChanged(panel4, gfx::Size(100, 200));
1349 EXPECT_EQ(5, panel_strip->num_panels()); 1457 EXPECT_EQ(5, panel_strip->num_panels());
1350 EXPECT_EQ(0, overflow_strip->num_panels()); 1458 EXPECT_EQ(0, overflow_strip->num_panels());
1351 EXPECT_EQ(Panel::EXPANDED, panel4->expansion_state()); 1459 EXPECT_EQ(Panel::EXPANDED, panel4->expansion_state());
1352 1460
1353 // Resize a panel bigger, but not enough to cause overflow. 1461 // Resize a panel bigger, but not enough to cause overflow.
1354 // normal: P1 (250), P2 (100), P3 (150)*, P5 (100), P4 (100) 1462 // docked: P1 (250), P2 (100), P3 (150)*, P5 (100), P4 (100)
1355 // overflow: empty 1463 // overflow: empty
1356 panel_manager->OnPreferredWindowSizeChanged(panel3, gfx::Size(150, 200)); 1464 panel_manager->OnPreferredWindowSizeChanged(panel3, gfx::Size(150, 200));
1357 EXPECT_EQ(5, panel_strip->num_panels()); 1465 EXPECT_EQ(5, panel_strip->num_panels());
1358 EXPECT_EQ(0, overflow_strip->num_panels()); 1466 EXPECT_EQ(0, overflow_strip->num_panels());
1359 1467
1360 // Resize a panel to bump more than one panel to overflow. 1468 // Resize a panel to bump more than one panel to overflow.
1361 // normal: P1 (250), P2 (250)*, P3 (150) 1469 // docked: P1 (250), P2 (250)*, P3 (150)
1362 // overflow: P5 (100), P4 (100) 1470 // overflow: P5 (100), P4 (100)
1363 panel_manager->OnPreferredWindowSizeChanged(panel2, gfx::Size(250, 200)); 1471 panel_manager->OnPreferredWindowSizeChanged(panel2, gfx::Size(250, 200));
1364 EXPECT_EQ(3, panel_strip->num_panels()); 1472 EXPECT_EQ(3, panel_strip->num_panels());
1365 EXPECT_EQ(2, overflow_strip->num_panels()); 1473 EXPECT_EQ(2, overflow_strip->num_panels());
1366 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->expansion_state()); 1474 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->layout_state());
1367 EXPECT_EQ(Panel::IN_OVERFLOW, panel5->expansion_state()); 1475 EXPECT_EQ(Panel::IN_OVERFLOW, panel5->layout_state());
1368 const PanelOverflowStrip::Panels& overflow2 = overflow_strip->panels(); 1476 const PanelOverflowStrip::Panels& overflow2 = overflow_strip->panels();
1369 EXPECT_EQ(panel5, overflow2[0]); // strip order is preserved 1477 EXPECT_EQ(panel5, overflow2[0]); // strip order is preserved
1370 EXPECT_EQ(panel4, overflow2[1]); 1478 EXPECT_EQ(panel4, overflow2[1]);
1371 1479
1372 panel1->Close(); 1480 panel1->Close();
1373 panel2->Close(); 1481 panel2->Close();
1374 panel3->Close(); 1482 panel3->Close();
1375 panel4->Close(); 1483 panel4->Close();
1376 panel5->Close(); 1484 panel5->Close();
1377 } 1485 }
1378 1486
1379 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_OverflowIndicatorCount) { 1487 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_OverflowIndicatorCount) {
1380 PanelManager* panel_manager = PanelManager::GetInstance(); 1488 PanelManager* panel_manager = PanelManager::GetInstance();
1381 PanelOverflowStrip* overflow_strip = panel_manager->panel_overflow_strip(); 1489 PanelOverflowStrip* overflow_strip = panel_manager->panel_overflow_strip();
1382 1490
1383 // Create normal and overflow panels. 1491 // Create docked and overflow panels.
1384 // normal: P0, P1, P2 1492 // docked: P0, P1, P2
1385 // overflow: P3, P4, P5 1493 // overflow: P3, P4, P5
1386 const int panel_widths[] = { 1494 const int panel_widths[] = {
1387 250, 250, 210, // normal 1495 250, 250, 210, // docked
1388 250, 250, 260 // overflow 1496 250, 250, 260 // overflow
1389 }; 1497 };
1390 std::vector<Panel*> panels = CreateOverflowPanels(3, 3, panel_widths); 1498 std::vector<Panel*> panels = CreateOverflowPanels(3, 3, panel_widths);
1391 EXPECT_EQ(3, overflow_strip->num_panels()); 1499 EXPECT_EQ(3, overflow_strip->num_panels());
1392 EXPECT_FALSE(overflow_strip->overflow_indicator()); 1500 EXPECT_FALSE(overflow_strip->overflow_indicator());
1393 1501
1394 // Create 5 overflow-on-overflow panels. 1502 // Create 5 overflow-on-overflow panels.
1395 // normal: P0, P1, P2 1503 // docked: P0, P1, P2
1396 // overflow: P3, P4, P5, (P6, P7, P8, P9, P10) 1504 // overflow: P3, P4, P5, (P6, P7, P8, P9, P10)
1397 // The panels enclosed in parentheses are hidden. 1505 // The panels enclosed in parentheses are hidden.
1398 int num_existing_panels = panel_manager->num_panels(); 1506 int num_existing_panels = panel_manager->num_panels();
1399 for (int i = 0; i < 5; ++i) { 1507 for (int i = 0; i < 5; ++i) {
1400 CreatePanelParams params( 1508 CreatePanelParams params(
1401 MakePanelName(num_existing_panels + i), 1509 MakePanelName(num_existing_panels + i),
1402 gfx::Rect(0, 0, 250, 200), 1510 gfx::Rect(0, 0, 250, 200),
1403 SHOW_AS_INACTIVE); 1511 SHOW_AS_INACTIVE);
1404 Panel* panel = CreatePanelWithParams(params); 1512 Panel* panel = CreatePanelWithParams(params);
1405 WaitForExpansionStateChanged(panel, Panel::IN_OVERFLOW); 1513 WaitForLayoutStateChanged(panel, Panel::IN_OVERFLOW);
1406 EXPECT_EQ(i + 1, overflow_strip->overflow_indicator()->GetCount()); 1514 EXPECT_EQ(i + 1, overflow_strip->overflow_indicator()->GetCount());
1407 panels.push_back(panel); 1515 panels.push_back(panel);
1408 } 1516 }
1409 1517
1410 // Expand the overflow area by moving mouse over it. 1518 // Expand the overflow area by moving mouse over it.
1411 // Expect the overflow indicator count gets updated. 1519 // Expect the overflow indicator count gets updated.
1412 // normal: P0, P1, P2 1520 // docked: P0, P1, P2
1413 // overflow: P3, P4, P5, P6, P7, P8, (P9, P10) 1521 // overflow: P3, P4, P5, P6, P7, P8, (P9, P10)
1414 MoveMouseAndWaitForOverflowAnimationEnded(panels[3]->GetBounds().origin()); 1522 MoveMouseAndWaitForOverflowAnimationEnded(panels[3]->GetBounds().origin());
1415 EXPECT_TRUE(IsPanelVisible(panels[6])); 1523 EXPECT_TRUE(IsPanelVisible(panels[6]));
1416 EXPECT_TRUE(IsPanelVisible(panels[7])); 1524 EXPECT_TRUE(IsPanelVisible(panels[7]));
1417 EXPECT_TRUE(IsPanelVisible(panels[8])); 1525 EXPECT_TRUE(IsPanelVisible(panels[8]));
1418 EXPECT_FALSE(IsPanelVisible(panels[9])); 1526 EXPECT_FALSE(IsPanelVisible(panels[9]));
1419 EXPECT_FALSE(IsPanelVisible(panels[10])); 1527 EXPECT_FALSE(IsPanelVisible(panels[10]));
1420 EXPECT_EQ(2, overflow_strip->overflow_indicator()->GetCount()); 1528 EXPECT_EQ(2, overflow_strip->overflow_indicator()->GetCount());
1421 1529
1422 // Close an overflow panel that makes one overflow-on-overflow panel become 1530 // Close an overflow panel that makes one overflow-on-overflow panel become
1423 // visible. Expect the overflow indicator count gets decreased by 1. 1531 // visible. Expect the overflow indicator count gets decreased by 1.
1424 // normal: P0, P1, P2 1532 // docked: P0, P1, P2
1425 // overflow: P4, P5, P6, P7, P8, P9, (P10) 1533 // overflow: P4, P5, P6, P7, P8, P9, (P10)
1426 CloseWindowAndWait(panels[3]->browser()); 1534 CloseWindowAndWait(panels[3]->browser());
1427 EXPECT_TRUE(IsPanelVisible(panels[6])); 1535 EXPECT_TRUE(IsPanelVisible(panels[6]));
1428 EXPECT_TRUE(IsPanelVisible(panels[7])); 1536 EXPECT_TRUE(IsPanelVisible(panels[7]));
1429 EXPECT_TRUE(IsPanelVisible(panels[8])); 1537 EXPECT_TRUE(IsPanelVisible(panels[8]));
1430 EXPECT_TRUE(IsPanelVisible(panels[9])); 1538 EXPECT_TRUE(IsPanelVisible(panels[9]));
1431 EXPECT_FALSE(IsPanelVisible(panels[10])); 1539 EXPECT_FALSE(IsPanelVisible(panels[10]));
1432 EXPECT_EQ(1, overflow_strip->overflow_indicator()->GetCount()); 1540 EXPECT_EQ(1, overflow_strip->overflow_indicator()->GetCount());
1433 1541
1434 // Shrink the overflow area by stopping hovering the mouse over the overflow 1542 // Shrink the overflow area by stopping hovering the mouse over the overflow
1435 // area. Expect the overflow indicator count gets updated. 1543 // area. Expect the overflow indicator count gets updated.
1436 // normal: P0, P1, P2 1544 // docked: P0, P1, P2
1437 // overflow: P4, P5, P6, (P7, P8, P9, P10) 1545 // overflow: P4, P5, P6, (P7, P8, P9, P10)
1438 MoveMouseAndWaitForOverflowAnimationEnded(gfx::Point( 1546 MoveMouseAndWaitForOverflowAnimationEnded(gfx::Point(
1439 panels[4]->GetBounds().right() + 5, panels[4]->GetBounds().y())); 1547 panels[4]->GetBounds().right() + 5, panels[4]->GetBounds().y()));
1440 EXPECT_TRUE(IsPanelVisible(panels[6])); 1548 EXPECT_TRUE(IsPanelVisible(panels[6]));
1441 EXPECT_FALSE(IsPanelVisible(panels[7])); 1549 EXPECT_FALSE(IsPanelVisible(panels[7]));
1442 EXPECT_FALSE(IsPanelVisible(panels[8])); 1550 EXPECT_FALSE(IsPanelVisible(panels[8]));
1443 EXPECT_FALSE(IsPanelVisible(panels[9])); 1551 EXPECT_FALSE(IsPanelVisible(panels[9]));
1444 EXPECT_FALSE(IsPanelVisible(panels[10])); 1552 EXPECT_FALSE(IsPanelVisible(panels[10]));
1445 EXPECT_EQ(4, overflow_strip->overflow_indicator()->GetCount()); 1553 EXPECT_EQ(4, overflow_strip->overflow_indicator()->GetCount());
1446 1554
1447 // Close an overflow panel. 1555 // Close an overflow panel.
1448 // Expect the overflow indicator count gets decreased by 1. 1556 // Expect the overflow indicator count gets decreased by 1.
1449 // normal: P0, P1, P2 1557 // docked: P0, P1, P2
1450 // overflow: P5, P6, P7, (P8, P9, P10) 1558 // overflow: P5, P6, P7, (P8, P9, P10)
1451 CloseWindowAndWait(panels[4]->browser()); 1559 CloseWindowAndWait(panels[4]->browser());
1452 EXPECT_TRUE(IsPanelVisible(panels[6])); 1560 EXPECT_TRUE(IsPanelVisible(panels[6]));
1453 EXPECT_TRUE(IsPanelVisible(panels[7])); 1561 EXPECT_TRUE(IsPanelVisible(panels[7]));
1454 EXPECT_FALSE(IsPanelVisible(panels[8])); 1562 EXPECT_FALSE(IsPanelVisible(panels[8]));
1455 EXPECT_FALSE(IsPanelVisible(panels[9])); 1563 EXPECT_FALSE(IsPanelVisible(panels[9]));
1456 EXPECT_FALSE(IsPanelVisible(panels[10])); 1564 EXPECT_FALSE(IsPanelVisible(panels[10]));
1457 EXPECT_EQ(3, overflow_strip->overflow_indicator()->GetCount()); 1565 EXPECT_EQ(3, overflow_strip->overflow_indicator()->GetCount());
1458 1566
1459 // Activating a big overflow panel will cause 2 normal panels to move to the 1567 // Activating a big overflow panel will cause 2 docked panels to move to the
1460 // oevrflow area and also get the top visible overflow panel bumped to the 1568 // oevrflow area and also get the top visible overflow panel bumped to the
1461 // overflow-on-overflow. 1569 // overflow-on-overflow.
1462 // Expect the overflow indicator count gets increased by 1. 1570 // Expect the overflow indicator count gets increased by 1.
1463 // normal: P0, P5 1571 // docked: P0, P5
1464 // overflow: P1, P2, P6, (P7, P8, P9, P10) 1572 // overflow: P1, P2, P6, (P7, P8, P9, P10)
1465 panels[5]->Activate(); 1573 panels[5]->Activate();
1466 WaitForPanelActiveState(panels[5], SHOW_AS_ACTIVE); 1574 WaitForPanelActiveState(panels[5], SHOW_AS_ACTIVE);
1467 WaitForExpansionStateChanged(panels[5], Panel::EXPANDED); 1575 WaitForExpansionStateChanged(panels[5], Panel::EXPANDED);
1468 EXPECT_TRUE(IsPanelVisible(panels[6])); 1576 EXPECT_TRUE(IsPanelVisible(panels[6]));
1469 EXPECT_FALSE(IsPanelVisible(panels[7])); 1577 EXPECT_FALSE(IsPanelVisible(panels[7]));
1470 EXPECT_FALSE(IsPanelVisible(panels[8])); 1578 EXPECT_FALSE(IsPanelVisible(panels[8]));
1471 EXPECT_FALSE(IsPanelVisible(panels[9])); 1579 EXPECT_FALSE(IsPanelVisible(panels[9]));
1472 EXPECT_FALSE(IsPanelVisible(panels[10])); 1580 EXPECT_FALSE(IsPanelVisible(panels[10]));
1473 EXPECT_EQ(4, overflow_strip->overflow_indicator()->GetCount()); 1581 EXPECT_EQ(4, overflow_strip->overflow_indicator()->GetCount());
1474 1582
1475 panel_manager->RemoveAll(); 1583 panel_manager->RemoveAll();
1476 } 1584 }
1477 1585
1478 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_DrawOverflowAttention) { 1586 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_DrawOverflowAttention) {
1479 PanelManager* panel_manager = PanelManager::GetInstance(); 1587 PanelManager* panel_manager = PanelManager::GetInstance();
1480 PanelStrip* panel_strip = panel_manager->panel_strip(); 1588 PanelStrip* panel_strip = panel_manager->panel_strip();
1481 PanelOverflowStrip* overflow_strip = panel_manager->panel_overflow_strip(); 1589 PanelOverflowStrip* overflow_strip = panel_manager->panel_overflow_strip();
1482 1590
1483 // Create normal and overflow panels. 1591 // Create docked and overflow panels.
1484 // normal: P0, P1, P2, P3 1592 // docked: P0, P1, P2, P3
1485 // overflow: P4, P5, P6, (P7, P8, P9, P10, P11) 1593 // overflow: P4, P5, P6, (P7, P8, P9, P10, P11)
1486 // The panels enclosed in parentheses are hidden. 1594 // The panels enclosed in parentheses are hidden.
1487 const int panel_widths[] = { 1595 const int panel_widths[] = {
1488 100, 210, 210, 210, // normal 1596 100, 210, 210, 210, // docked
1489 210, 260, 210, // overflow 1597 210, 260, 210, // overflow
1490 210, 210, 210, // overflow-on-overflow on shrunk 1598 210, 210, 210, // overflow-on-overflow on shrunk
1491 210, 210 // overflow-on-overflow on expanded 1599 210, 210 // overflow-on-overflow on expanded
1492 }; 1600 };
1493 std::vector<Panel*> panels = CreateOverflowPanels(4, 8, panel_widths); 1601 std::vector<Panel*> panels = CreateOverflowPanels(4, 8, panel_widths);
1494 EXPECT_EQ(4, panel_strip->num_panels()); 1602 EXPECT_EQ(4, panel_strip->num_panels());
1495 EXPECT_EQ(8, overflow_strip->num_panels()); 1603 EXPECT_EQ(8, overflow_strip->num_panels());
1496 PanelOverflowIndicator* overflow_indicator = 1604 PanelOverflowIndicator* overflow_indicator =
1497 overflow_strip->overflow_indicator(); 1605 overflow_strip->overflow_indicator();
1498 1606
1499 // Draw attention for a visible overflow panel. 1607 // Draw attention for a visible overflow panel.
1500 // Expect no impact to the overflow indicator. 1608 // Expect no impact to the overflow indicator.
1501 // normal: P0, P1, P2, P3 1609 // docked: P0, P1, P2, P3
1502 // overflow: P4, *P5, P6, (P7, P8, P9, P10, P11) 1610 // overflow: P4, *P5, P6, (P7, P8, P9, P10, P11)
1503 EXPECT_FALSE(panels[5]->IsDrawingAttention()); 1611 EXPECT_FALSE(panels[5]->IsDrawingAttention());
1504 panels[5]->FlashFrame(true); 1612 panels[5]->FlashFrame(true);
1505 EXPECT_TRUE(panels[5]->IsDrawingAttention()); 1613 EXPECT_TRUE(panels[5]->IsDrawingAttention());
1506 EXPECT_FALSE(overflow_indicator->IsDrawingAttention()); 1614 EXPECT_FALSE(overflow_indicator->IsDrawingAttention());
1507 1615
1508 // Activating this overflow panel will clear its attention. 1616 // Activating this overflow panel will clear its attention.
1509 // Expect no impact to the overflow indicator. 1617 // Expect no impact to the overflow indicator.
1510 // normal: P0, P1, P2, P5 1618 // docked: P0, P1, P2, P5
1511 // overflow: P3, P4, P6, (P7, P8, P9, P10, P11) 1619 // overflow: P3, P4, P6, (P7, P8, P9, P10, P11)
1512 panels[5]->Activate(); 1620 panels[5]->Activate();
1513 WaitForPanelActiveState(panels[5], SHOW_AS_ACTIVE); 1621 WaitForPanelActiveState(panels[5], SHOW_AS_ACTIVE);
1514 EXPECT_FALSE(panels[5]->IsDrawingAttention()); 1622 EXPECT_FALSE(panels[5]->IsDrawingAttention());
1515 EXPECT_FALSE(overflow_indicator->IsDrawingAttention()); 1623 EXPECT_FALSE(overflow_indicator->IsDrawingAttention());
1516 1624
1517 // Draw attention for an overflow-on-overflow panel. 1625 // Draw attention for an overflow-on-overflow panel.
1518 // Expect the overflow indicator is showing attention. 1626 // Expect the overflow indicator is showing attention.
1519 // normal: P0, P1, P2, P5 1627 // docked: P0, P1, P2, P5
1520 // overflow: P3, P4, P6, (P7, *P8, P9, P10, P11) 1628 // overflow: P3, P4, P6, (P7, *P8, P9, P10, P11)
1521 EXPECT_FALSE(panels[8]->IsDrawingAttention()); 1629 EXPECT_FALSE(panels[8]->IsDrawingAttention());
1522 panels[8]->FlashFrame(true); 1630 panels[8]->FlashFrame(true);
1523 EXPECT_TRUE(panels[8]->IsDrawingAttention()); 1631 EXPECT_TRUE(panels[8]->IsDrawingAttention());
1524 EXPECT_TRUE(overflow_indicator->IsDrawingAttention()); 1632 EXPECT_TRUE(overflow_indicator->IsDrawingAttention());
1525 1633
1526 // Draw attention for another overflow-on-overflow panel. 1634 // Draw attention for another overflow-on-overflow panel.
1527 // Expect the overflow indicator is still showing attention. 1635 // Expect the overflow indicator is still showing attention.
1528 // normal: P0, P1, P2, P5 1636 // docked: P0, P1, P2, P5
1529 // overflow: P3, P4, P6, (P7, *P8, P9, *P10, P11) 1637 // overflow: P3, P4, P6, (P7, *P8, P9, *P10, P11)
1530 EXPECT_FALSE(panels[10]->IsDrawingAttention()); 1638 EXPECT_FALSE(panels[10]->IsDrawingAttention());
1531 panels[10]->FlashFrame(true); 1639 panels[10]->FlashFrame(true);
1532 EXPECT_TRUE(panels[10]->IsDrawingAttention()); 1640 EXPECT_TRUE(panels[10]->IsDrawingAttention());
1533 EXPECT_TRUE(overflow_indicator->IsDrawingAttention()); 1641 EXPECT_TRUE(overflow_indicator->IsDrawingAttention());
1534 1642
1535 // Stop drawing attention for an overflow-on-overflow panel by activating it. 1643 // Stop drawing attention for an overflow-on-overflow panel by activating it.
1536 // Expect the overflow indicator is still showing attention. 1644 // Expect the overflow indicator is still showing attention.
1537 // normal: P0, P1, P2, P8 1645 // docked: P0, P1, P2, P8
1538 // overflow: P5, P3, P4, (P6, P7, P9, *P10, P11) 1646 // overflow: P5, P3, P4, (P6, P7, P9, *P10, P11)
1539 panels[8]->Activate(); 1647 panels[8]->Activate();
1540 WaitForPanelActiveState(panels[8], SHOW_AS_ACTIVE); 1648 WaitForPanelActiveState(panels[8], SHOW_AS_ACTIVE);
1541 EXPECT_FALSE(panels[8]->IsDrawingAttention()); 1649 EXPECT_FALSE(panels[8]->IsDrawingAttention());
1542 EXPECT_TRUE(overflow_indicator->IsDrawingAttention()); 1650 EXPECT_TRUE(overflow_indicator->IsDrawingAttention());
1543 1651
1544 // Stop drawing attention for another overflow-on-overflow panel by activating 1652 // Stop drawing attention for another overflow-on-overflow panel by activating
1545 // it. Expect the overflow indicator is not showing attention. 1653 // it. Expect the overflow indicator is not showing attention.
1546 // normal: P0, P1, P2, P10 1654 // docked: P0, P1, P2, P10
1547 // overflow: P8, P5, P3, (P4, P6, P7, P9, P11) 1655 // overflow: P8, P5, P3, (P4, P6, P7, P9, P11)
1548 panels[10]->Activate(); 1656 panels[10]->Activate();
1549 WaitForPanelActiveState(panels[10], SHOW_AS_ACTIVE); 1657 WaitForPanelActiveState(panels[10], SHOW_AS_ACTIVE);
1550 EXPECT_FALSE(panels[10]->IsDrawingAttention()); 1658 EXPECT_FALSE(panels[10]->IsDrawingAttention());
1551 EXPECT_FALSE(overflow_indicator->IsDrawingAttention()); 1659 EXPECT_FALSE(overflow_indicator->IsDrawingAttention());
1552 1660
1553 // Draw attention for the top overflow panel. 1661 // Draw attention for the top overflow panel.
1554 // Expect no impact to the overflow indicator. 1662 // Expect no impact to the overflow indicator.
1555 // normal: P0, P1, P2, P10 1663 // docked: P0, P1, P2, P10
1556 // overflow: P8, P5, *P3, (P4, P6, P7, P9, P11) 1664 // overflow: P8, P5, *P3, (P4, P6, P7, P9, P11)
1557 EXPECT_TRUE(IsPanelVisible(panels[3])); 1665 EXPECT_TRUE(IsPanelVisible(panels[3]));
1558 EXPECT_FALSE(panels[3]->IsDrawingAttention()); 1666 EXPECT_FALSE(panels[3]->IsDrawingAttention());
1559 panels[3]->FlashFrame(true); 1667 panels[3]->FlashFrame(true);
1560 EXPECT_TRUE(panels[3]->IsDrawingAttention()); 1668 EXPECT_TRUE(panels[3]->IsDrawingAttention());
1561 EXPECT_FALSE(overflow_indicator->IsDrawingAttention()); 1669 EXPECT_FALSE(overflow_indicator->IsDrawingAttention());
1562 1670
1563 // Activating a big overflow panel will cause 2 normal panels to move to the 1671 // Activating a big overflow panel will cause 2 docked panels to move to the
1564 // overflow area and also get the top visible overflow panel bumped to the 1672 // overflow area and also get the top visible overflow panel bumped to the
1565 // overflow-on-overflow. 1673 // overflow-on-overflow.
1566 // Expect the overflow indicator is showing attention. 1674 // Expect the overflow indicator is showing attention.
1567 // normal: P0, P1, P5 1675 // docked: P0, P1, P5
1568 // overflow: P2, P10, P8, (*P3, P4, P6, P7, P9, P11) 1676 // overflow: P2, P10, P8, (*P3, P4, P6, P7, P9, P11)
1569 panels[5]->Activate(); 1677 panels[5]->Activate();
1570 WaitForPanelActiveState(panels[5], SHOW_AS_ACTIVE); 1678 WaitForPanelActiveState(panels[5], SHOW_AS_ACTIVE);
1571 WaitForExpansionStateChanged(panels[5], Panel::EXPANDED); 1679 WaitForExpansionStateChanged(panels[5], Panel::EXPANDED);
1572 EXPECT_EQ(3, panel_strip->num_panels()); 1680 EXPECT_EQ(3, panel_strip->num_panels());
1573 EXPECT_EQ(9, overflow_strip->num_panels()); 1681 EXPECT_EQ(9, overflow_strip->num_panels());
1574 EXPECT_FALSE(IsPanelVisible(panels[3])); 1682 EXPECT_FALSE(IsPanelVisible(panels[3]));
1575 EXPECT_TRUE(panels[3]->IsDrawingAttention()); 1683 EXPECT_TRUE(panels[3]->IsDrawingAttention());
1576 EXPECT_TRUE(overflow_indicator->IsDrawingAttention()); 1684 EXPECT_TRUE(overflow_indicator->IsDrawingAttention());
1577 1685
1578 // Close an overflow panel that would move the first oveflow-on-overflow panel 1686 // Close an overflow panel that would move the first oveflow-on-overflow panel
1579 // to become visible. Expect the overflow indicator is not showing attention. 1687 // to become visible. Expect the overflow indicator is not showing attention.
1580 // normal: P0, P1, P5 1688 // docked: P0, P1, P5
1581 // overflow: P2, P10, P3, (P4, P6, P7, P9, P11) 1689 // overflow: P2, P10, P3, (P4, P6, P7, P9, P11)
1582 CloseWindowAndWait(panels[8]->browser()); 1690 CloseWindowAndWait(panels[8]->browser());
1583 EXPECT_EQ(3, panel_strip->num_panels()); 1691 EXPECT_EQ(3, panel_strip->num_panels());
1584 EXPECT_EQ(8, overflow_strip->num_panels()); 1692 EXPECT_EQ(8, overflow_strip->num_panels());
1585 EXPECT_TRUE(panels[3]->IsDrawingAttention()); 1693 EXPECT_TRUE(panels[3]->IsDrawingAttention());
1586 EXPECT_FALSE(overflow_indicator->IsDrawingAttention()); 1694 EXPECT_FALSE(overflow_indicator->IsDrawingAttention());
1587 1695
1588 panel_manager->RemoveAll(); 1696 panel_manager->RemoveAll();
1589 } 1697 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698