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

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

Issue 9195003: Move IN_OVERFLOW from Panel::ExpansionState to new enum. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix per feedback Created 8 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <vector> 5 #include <vector>
6 #include "chrome/browser/ui/browser.h" 6 #include "chrome/browser/ui/browser.h"
7 #include "chrome/browser/ui/panels/base_panel_browser_test.h" 7 #include "chrome/browser/ui/panels/base_panel_browser_test.h"
8 #include "chrome/browser/ui/panels/native_panel.h" 8 #include "chrome/browser/ui/panels/native_panel.h"
9 #include "chrome/browser/ui/panels/panel.h" 9 #include "chrome/browser/ui/panels/panel.h"
10 #include "chrome/browser/ui/panels/panel_manager.h" 10 #include "chrome/browser/ui/panels/panel_manager.h"
11 #include "chrome/browser/ui/panels/panel_overflow_indicator.h" 11 #include "chrome/browser/ui/panels/panel_overflow_indicator.h"
12 #include "chrome/browser/ui/panels/panel_overflow_strip.h" 12 #include "chrome/browser/ui/panels/panel_overflow_strip.h"
13 #include "chrome/browser/ui/panels/panel_settings_menu_model.h" 13 #include "chrome/browser/ui/panels/panel_settings_menu_model.h"
14 #include "chrome/browser/ui/panels/panel_strip.h" 14 #include "chrome/browser/ui/panels/panel_strip.h"
15 #include "chrome/browser/ui/panels/test_panel_mouse_watcher.h" 15 #include "chrome/browser/ui/panels/test_panel_mouse_watcher.h"
16 #include "chrome/common/chrome_notification_types.h" 16 #include "chrome/common/chrome_notification_types.h"
17 #include "chrome/test/base/ui_test_utils.h" 17 #include "chrome/test/base/ui_test_utils.h"
18 #include "testing/gtest/include/gtest/gtest.h" 18 #include "testing/gtest/include/gtest/gtest.h"
19 19
20 namespace { 20 namespace {
21 21
22 // We override the default value for testing purpose. 22 // We override the default value for testing purpose.
23 const int kMaxVisibleOverflowPanelsForTesting = 3; 23 const int kMaxVisibleOverflowPanelsForTesting = 3;
24 const int kMaxVisibleOverflowPanelsOnHoverForTesting = 6; 24 const int kMaxVisibleOverflowPanelsOnHoverForTesting = 6;
25 25
26 // Encapsulates all the info we need to verify if a panel behaves as expected 26 // Encapsulates all the info we need to verify if a panel behaves as expected
27 // when we do the overflow testing. 27 // when we do the overflow testing.
28 struct PanelData { 28 struct PanelData {
29 Panel* panel; 29 Panel* panel;
30 Panel::LayoutState layout_state;
30 Panel::ExpansionState expansion_state; 31 Panel::ExpansionState expansion_state;
31 bool visible; 32 bool visible;
32 bool active; 33 bool active;
33 34
34 explicit PanelData(Panel* panel) 35 explicit PanelData(Panel* panel)
35 : panel(panel), 36 : panel(panel),
37 layout_state(panel->layout_state()),
36 expansion_state(panel->expansion_state()), 38 expansion_state(panel->expansion_state()),
37 visible(!panel->GetBounds().IsEmpty()), 39 visible(!panel->GetBounds().IsEmpty()),
38 active(panel->IsActive()) { 40 active(panel->IsActive()) {
39 } 41 }
40 42
41 PanelData(Panel* panel, Panel::ExpansionState expansion_state, 43 PanelData(Panel* panel, Panel::LayoutState layout_state,
44 Panel::ExpansionState expansion_state,
42 bool visible, bool active) 45 bool visible, bool active)
43 : panel(panel), 46 : panel(panel),
47 layout_state(layout_state),
44 expansion_state(expansion_state), 48 expansion_state(expansion_state),
45 visible(visible), 49 visible(visible),
46 active(active) { 50 active(active) {
47 } 51 }
48 52
49 bool operator==(const PanelData& another) const { 53 bool operator==(const PanelData& another) const {
54 if (layout_state != another.layout_state)
55 return false;
56 if (layout_state == Panel::DOCKED &&
57 expansion_state != another.expansion_state)
58 return false;
50 return panel == another.panel && 59 return panel == another.panel &&
51 expansion_state == another.expansion_state &&
52 visible == another.visible && 60 visible == another.visible &&
53 active == another.active; 61 active == another.active;
54 } 62 }
55 63
56 bool operator!=(const PanelData& another) const { 64 bool operator!=(const PanelData& another) const {
57 return !(*this == another); 65 return !(*this == another);
58 } 66 }
59 }; 67 };
60 68
61 // For gtest printing. 69 // For gtest printing.
62 ::std::ostream& operator<<(::std::ostream& os, const PanelData& data);
63 ::std::ostream& operator<<(::std::ostream& os, const PanelData& data) { 70 ::std::ostream& operator<<(::std::ostream& os, const PanelData& data) {
64 return os << "(" << data.panel->browser()->app_name() << ", " 71 return os << "(" << data.panel->browser()->app_name() << ", "
65 << data.expansion_state << ", " << data.visible << ", " 72 << data.layout_state << ", " << data.expansion_state << ", "
66 << data.active << ")"; 73 << data.visible << ", " << data.active << ")";
67 } 74 }
68 75
76 class PanelDataList : public std::vector<PanelData> {
77 };
69 78
70 class PanelDataList : public std::vector<PanelData> { 79 class 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) {
jennb 2012/01/20 02:01:54 Still need to drop this 'visible' param and change
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 PanelManager* panel_manager = PanelManager::GetInstance();
690
691 // Create docked and overflow panels.
692 // docked: P0, P1, P2
693 // overflow: P3, P4
694 const int panel_widths[] = {
695 240, 240, 240, // docked
696 240, 240 // overflow
697 };
698 std::vector<Panel*> panels = CreateOverflowPanels(3, 2, panel_widths);
699
700 DockedPanelDataList expected_docked_list;
701 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
702 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
703 expected_docked_list.Add(panels[2], Panel::EXPANDED, true, false);
704 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
705
706 OverflowPanelDataList expected_overflow_list;
707 expected_overflow_list.Add(panels[3], true, false);
708 expected_overflow_list.Add(panels[4], true, false);
709 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
710
711 // Minimize a docked panel.
712 panels[2]->SetExpansionState(Panel::MINIMIZED);
713 WaitForExpansionStateChanged(panels[2], Panel::MINIMIZED);
714
715 // Clicking an overflow panel that was previously expanded should bring it
716 // out of the overflow as expanded.
717 // docked: P0, P1, P3
718 // overflow: P2, P4
719 ClickPanelTitlebar(panels[3]);
720 WaitForExpansionStateChanged(panels[3], Panel::EXPANDED);
721
722 expected_docked_list.clear();
723 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
724 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
725 expected_docked_list.Add(panels[3], Panel::EXPANDED, true, false);
726 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
727
728 expected_overflow_list.clear();
729 expected_overflow_list.Add(panels[2], true, false);
730 expected_overflow_list.Add(panels[4], true, false);
731 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
732
733 // Make a docked panel as title-only.
734 panels[3]->SetExpansionState(Panel::TITLE_ONLY);
735 WaitForExpansionStateChanged(panels[3], Panel::TITLE_ONLY);
736
737 // Clicking an overflow panel that was previously minimized should bring it
738 // out of the overflow as expanded.
739 // docked: P0, P1, P2
740 // overflow: P3, P4
741 ClickPanelTitlebar(panels[2]);
742 WaitForExpansionStateChanged(panels[2], Panel::EXPANDED);
743
744 expected_docked_list.clear();
745 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
746 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
747 expected_docked_list.Add(panels[2], Panel::EXPANDED, true, false);
748 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
749
750 expected_overflow_list.clear();
751 expected_overflow_list.Add(panels[3], true, false);
752 expected_overflow_list.Add(panels[4], true, false);
753 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
754
755 // Clicking an overflow panel that was previously title-only should bring it
756 // out of the overflow as expanded.
757 // docked: P0, P1, P3
758 // overflow: P2, P4
759 ClickPanelTitlebar(panels[3]);
760 WaitForExpansionStateChanged(panels[3], Panel::EXPANDED);
761
762 expected_docked_list.clear();
763 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
764 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
765 expected_docked_list.Add(panels[3], Panel::EXPANDED, true, false);
766 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
767
768 expected_overflow_list.clear();
769 expected_overflow_list.Add(panels[2], true, false);
770 expected_overflow_list.Add(panels[4], true, false);
771 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
772
773 PanelManager::GetInstance()->RemoveAll();
774 }
775
667 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_ActivateOverflowPanels) { 776 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_ActivateOverflowPanels) {
668 // Create normal and overflow panels. 777 // Create docked and overflow panels.
669 // normal: P0, P1, P2 778 // docked: P0, P1, P2
670 // overflow: P3, P4, P5 779 // overflow: P3, P4, P5
671 // overflow-on-overflow: P6, P7 780 // overflow-on-overflow: P6, P7
672 const int panel_widths[] = { 781 const int panel_widths[] = {
673 250, 260, 200, // normal 782 250, 260, 200, // docked
674 210, 260, 230, // overflow 783 210, 260, 230, // overflow
675 255, 210 // overflow-on-overflow 784 255, 210 // overflow-on-overflow
676 }; 785 };
677 std::vector<Panel*> panels = CreateOverflowPanels(3, 5, panel_widths); 786 std::vector<Panel*> panels = CreateOverflowPanels(3, 5, panel_widths);
678 787
679 PanelDataList expected_normal_list; 788 DockedPanelDataList expected_docked_list;
680 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 789 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
681 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 790 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
682 expected_normal_list.Add(panels[2], Panel::EXPANDED, true, false); 791 expected_docked_list.Add(panels[2], Panel::EXPANDED, true, false);
683 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 792 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
684 793
685 PanelDataList expected_overflow_list; 794 OverflowPanelDataList expected_overflow_list;
686 expected_overflow_list.Add(panels[3], Panel::IN_OVERFLOW, true, false); 795 expected_overflow_list.Add(panels[3], true, false);
687 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 796 expected_overflow_list.Add(panels[4], true, false);
688 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, true, false); 797 expected_overflow_list.Add(panels[5], true, false);
689 expected_overflow_list.Add(panels[6], Panel::IN_OVERFLOW, false, false); 798 expected_overflow_list.Add(panels[6], false, false);
690 expected_overflow_list.Add(panels[7], Panel::IN_OVERFLOW, false, false); 799 expected_overflow_list.Add(panels[7], false, false);
691 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 800 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
692 801
693 // Activate an overflow panel. Expect one normal panel is swapped into the 802 // Activate an overflow panel. Expect one docked panel is swapped into the
694 // overflow strip. 803 // overflow strip.
695 // normal: P0, P1, P3 804 // docked: P0, P1, P3
696 // overflow: P2, P4, P5 805 // overflow: P2, P4, P5
697 // overflow-on-overflow: P6, P7 806 // overflow-on-overflow: P6, P7
698 panels[3]->Activate(); 807 panels[3]->Activate();
699 WaitForPanelActiveState(panels[3], SHOW_AS_ACTIVE); 808 WaitForPanelActiveState(panels[3], SHOW_AS_ACTIVE);
700 WaitForExpansionStateChanged(panels[3], Panel::EXPANDED); 809 WaitForExpansionStateChanged(panels[3], Panel::EXPANDED);
701 810
702 expected_normal_list.clear(); 811 expected_docked_list.clear();
703 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 812 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
704 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 813 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
705 expected_normal_list.Add(panels[3], Panel::EXPANDED, true, true); 814 expected_docked_list.Add(panels[3], Panel::EXPANDED, true, true);
706 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 815 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
707 816
708 expected_overflow_list.clear(); 817 expected_overflow_list.clear();
709 expected_overflow_list.Add(panels[2], Panel::IN_OVERFLOW, true, false); 818 expected_overflow_list.Add(panels[2], true, false);
710 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 819 expected_overflow_list.Add(panels[4], true, false);
711 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, true, false); 820 expected_overflow_list.Add(panels[5], true, false);
712 expected_overflow_list.Add(panels[6], Panel::IN_OVERFLOW, false, false); 821 expected_overflow_list.Add(panels[6], false, false);
713 expected_overflow_list.Add(panels[7], Panel::IN_OVERFLOW, false, false); 822 expected_overflow_list.Add(panels[7], false, false);
714 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 823 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
715 824
716 // Activate an overflow panel. Expect two normal panels are swapped into the 825 // Activate an overflow panel. Expect two docked panels are swapped into the
717 // overflow strip and one overflow panel to become hidden. 826 // overflow strip and one overflow panel to become hidden.
718 // normal: P0, P4 827 // docked: P0, P4
719 // overflow: P1, P3, P2 828 // overflow: P1, P3, P2
720 // overflow-on-overflow: P5, P6, P7 829 // overflow-on-overflow: P5, P6, P7
721 panels[4]->Activate(); 830 panels[4]->Activate();
722 WaitForPanelActiveState(panels[4], SHOW_AS_ACTIVE); 831 WaitForPanelActiveState(panels[4], SHOW_AS_ACTIVE);
723 WaitForExpansionStateChanged(panels[4], Panel::EXPANDED); 832 WaitForExpansionStateChanged(panels[4], Panel::EXPANDED);
724 WaitForPanelActiveState(panels[3], SHOW_AS_INACTIVE); 833 WaitForPanelActiveState(panels[3], SHOW_AS_INACTIVE);
725 834
726 expected_normal_list.clear(); 835 expected_docked_list.clear();
727 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 836 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
728 expected_normal_list.Add(panels[4], Panel::EXPANDED, true, true); 837 expected_docked_list.Add(panels[4], Panel::EXPANDED, true, true);
729 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 838 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
730 839
731 expected_overflow_list.clear(); 840 expected_overflow_list.clear();
732 expected_overflow_list.Add(panels[1], Panel::IN_OVERFLOW, true, false); 841 expected_overflow_list.Add(panels[1], true, false);
733 expected_overflow_list.Add(panels[3], Panel::IN_OVERFLOW, true, false); 842 expected_overflow_list.Add(panels[3], true, false);
734 expected_overflow_list.Add(panels[2], Panel::IN_OVERFLOW, true, false); 843 expected_overflow_list.Add(panels[2], true, false);
735 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, false, false); 844 expected_overflow_list.Add(panels[5], false, false);
736 expected_overflow_list.Add(panels[6], Panel::IN_OVERFLOW, false, false); 845 expected_overflow_list.Add(panels[6], false, false);
737 expected_overflow_list.Add(panels[7], Panel::IN_OVERFLOW, false, false); 846 expected_overflow_list.Add(panels[7], false, false);
738 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 847 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
739 848
740 // Activate an overflow-on-overflow panel. Expect one normal panel is swapped 849 // Activate an overflow-on-overflow panel. Expect one docked panel is swapped
741 // into the overflow strip. 850 // into the overflow strip.
742 // normal: P0, P6 851 // docked: P0, P6
743 // overflow: P4, P1, P3, 852 // overflow: P4, P1, P3,
744 // overflow-on-overflow: P2, P5, P7 853 // overflow-on-overflow: P2, P5, P7
745 panels[6]->Activate(); 854 panels[6]->Activate();
746 WaitForPanelActiveState(panels[6], SHOW_AS_ACTIVE); 855 WaitForPanelActiveState(panels[6], SHOW_AS_ACTIVE);
747 WaitForExpansionStateChanged(panels[6], Panel::EXPANDED); 856 WaitForExpansionStateChanged(panels[6], Panel::EXPANDED);
748 WaitForPanelActiveState(panels[4], SHOW_AS_INACTIVE); 857 WaitForPanelActiveState(panels[4], SHOW_AS_INACTIVE);
749 858
750 expected_normal_list.clear(); 859 expected_docked_list.clear();
751 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 860 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
752 expected_normal_list.Add(panels[6], Panel::EXPANDED, true, true); 861 expected_docked_list.Add(panels[6], Panel::EXPANDED, true, true);
753 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 862 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
754 863
755 expected_overflow_list.clear(); 864 expected_overflow_list.clear();
756 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 865 expected_overflow_list.Add(panels[4], true, false);
757 expected_overflow_list.Add(panels[1], Panel::IN_OVERFLOW, true, false); 866 expected_overflow_list.Add(panels[1], true, false);
758 expected_overflow_list.Add(panels[3], Panel::IN_OVERFLOW, true, false); 867 expected_overflow_list.Add(panels[3], true, false);
759 expected_overflow_list.Add(panels[2], Panel::IN_OVERFLOW, false, false); 868 expected_overflow_list.Add(panels[2], false, false);
760 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, false, false); 869 expected_overflow_list.Add(panels[5], false, false);
761 expected_overflow_list.Add(panels[7], Panel::IN_OVERFLOW, false, false); 870 expected_overflow_list.Add(panels[7], false, false);
762 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 871 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
763 872
764 // Activate an overflow-on-overflow panel. No normal panel is swapped 873 // Activate an overflow-on-overflow panel. No docked panel is swapped
765 // since there has already been enough space in the panel strip. 874 // since there has already been enough space in the panel strip.
766 // normal: P0, P6, P7 875 // docked: P0, P6, P7
767 // overflow: P4, P1, P3, 876 // overflow: P4, P1, P3,
768 // overflow-on-overflow: P2, P5 877 // overflow-on-overflow: P2, P5
769 panels[7]->Activate(); 878 panels[7]->Activate();
770 WaitForPanelActiveState(panels[7], SHOW_AS_ACTIVE); 879 WaitForPanelActiveState(panels[7], SHOW_AS_ACTIVE);
771 WaitForExpansionStateChanged(panels[7], Panel::EXPANDED); 880 WaitForExpansionStateChanged(panels[7], Panel::EXPANDED);
772 WaitForPanelActiveState(panels[6], SHOW_AS_INACTIVE); 881 WaitForPanelActiveState(panels[6], SHOW_AS_INACTIVE);
773 882
774 expected_normal_list.clear(); 883 expected_docked_list.clear();
775 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 884 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
776 expected_normal_list.Add(panels[6], Panel::EXPANDED, true, false); 885 expected_docked_list.Add(panels[6], Panel::EXPANDED, true, false);
777 expected_normal_list.Add(panels[7], Panel::EXPANDED, true, true); 886 expected_docked_list.Add(panels[7], Panel::EXPANDED, true, true);
778 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 887 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
779 888
780 expected_overflow_list.clear(); 889 expected_overflow_list.clear();
781 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 890 expected_overflow_list.Add(panels[4], true, false);
782 expected_overflow_list.Add(panels[1], Panel::IN_OVERFLOW, true, false); 891 expected_overflow_list.Add(panels[1], true, false);
783 expected_overflow_list.Add(panels[3], Panel::IN_OVERFLOW, true, false); 892 expected_overflow_list.Add(panels[3], true, false);
784 expected_overflow_list.Add(panels[2], Panel::IN_OVERFLOW, false, false); 893 expected_overflow_list.Add(panels[2], false, false);
785 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, false, false); 894 expected_overflow_list.Add(panels[5], false, false);
786 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 895 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
787 896
788 PanelManager::GetInstance()->RemoveAll(); 897 PanelManager::GetInstance()->RemoveAll();
789 } 898 }
790 899
791 IN_PROC_BROWSER_TEST_F( 900 IN_PROC_BROWSER_TEST_F(
792 PanelOverflowBrowserTest, 901 PanelOverflowBrowserTest,
793 MAYBE_MoveMinimizedPanelToOverflowAndBringBackByActivate) { 902 MAYBE_MoveMinimizedPanelToOverflowAndBringBackByActivate) {
794 // Create normal and overflow panels. 903 // Create docked and overflow panels.
795 // normal: P0, P1, P2 904 // docked: P0, P1, P2
796 // overflow: P3, P4 905 // overflow: P3, P4
797 const int panel_widths[] = { 906 const int panel_widths[] = {
798 250, 260, 200, // normal 907 250, 260, 200, // docked
799 210, 260 // overflow 908 210, 260 // overflow
800 }; 909 };
801 std::vector<Panel*> panels = CreateOverflowPanels(3, 2, panel_widths); 910 std::vector<Panel*> panels = CreateOverflowPanels(3, 2, panel_widths);
802 911
803 PanelDataList expected_normal_list; 912 DockedPanelDataList expected_docked_list;
804 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 913 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
805 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 914 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
806 expected_normal_list.Add(panels[2], Panel::EXPANDED, true, false); 915 expected_docked_list.Add(panels[2], Panel::EXPANDED, true, false);
807 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 916 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
808 917
809 PanelDataList expected_overflow_list; 918 OverflowPanelDataList expected_overflow_list;
810 expected_overflow_list.Add(panels[3], Panel::IN_OVERFLOW, true, false); 919 expected_overflow_list.Add(panels[3], true, false);
811 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 920 expected_overflow_list.Add(panels[4], true, false);
921 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
812 922
813 // Minimize a normal panel and then bump it to overflow by activating an 923 // Minimize a docked panel and then bump it to overflow by activating an
814 // overflow panel. 924 // overflow panel.
815 // normal: P0, P1, P3 925 // docked: P0, P1, P3
816 // overflow: P2, P4 926 // overflow: P2, P4
817 panels[2]->SetExpansionState(Panel::MINIMIZED); 927 panels[2]->SetExpansionState(Panel::MINIMIZED);
818 panels[3]->Activate(); 928 panels[3]->Activate();
819 WaitForPanelActiveState(panels[3], SHOW_AS_ACTIVE); 929 WaitForPanelActiveState(panels[3], SHOW_AS_ACTIVE);
820 WaitForExpansionStateChanged(panels[3], Panel::EXPANDED); 930 WaitForExpansionStateChanged(panels[3], Panel::EXPANDED);
821 931
822 expected_normal_list.clear(); 932 expected_docked_list.clear();
823 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 933 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
824 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 934 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
825 expected_normal_list.Add(panels[3], Panel::EXPANDED, true, true); 935 expected_docked_list.Add(panels[3], Panel::EXPANDED, true, true);
826 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 936 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
827 937
828 expected_overflow_list.clear(); 938 expected_overflow_list.clear();
829 expected_overflow_list.Add(panels[2], Panel::IN_OVERFLOW, true, false); 939 expected_overflow_list.Add(panels[2], true, false);
830 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 940 expected_overflow_list.Add(panels[4], true, false);
831 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 941 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
832 942
833 // Reactivate the formerly minimized panel. It will return to the panel 943 // Reactivate the formerly minimized panel. It will return to the panel
834 // strip in expanded state. 944 // strip in expanded state.
835 // normal: P0, P1, P2 945 // docked: P0, P1, P2
836 // overflow: P3, P4 946 // overflow: P3, P4
837 panels[2]->Activate(); 947 panels[2]->Activate();
838 WaitForPanelActiveState(panels[2], SHOW_AS_ACTIVE); 948 WaitForPanelActiveState(panels[2], SHOW_AS_ACTIVE);
839 WaitForExpansionStateChanged(panels[2], Panel::EXPANDED); 949 WaitForExpansionStateChanged(panels[2], Panel::EXPANDED);
840 950
841 expected_normal_list.clear(); 951 expected_docked_list.clear();
842 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 952 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
843 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 953 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
844 expected_normal_list.Add(panels[2], Panel::EXPANDED, true, true); 954 expected_docked_list.Add(panels[2], Panel::EXPANDED, true, true);
845 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 955 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
846 956
847 expected_overflow_list.clear(); 957 expected_overflow_list.clear();
848 expected_overflow_list.Add(panels[3], Panel::IN_OVERFLOW, true, false); 958 expected_overflow_list.Add(panels[3], true, false);
849 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 959 expected_overflow_list.Add(panels[4], true, false);
850 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 960 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
851 961
852 // Minimize a panel to title only mode, then bump it to overflow. 962 // Minimize a panel to title only mode, then bump it to overflow.
853 // normal: P0, P1, P3 963 // docked: P0, P1, P3
854 // overflow: P2, P4 964 // overflow: P2, P4
855 panels[2]->SetExpansionState(Panel::TITLE_ONLY); 965 panels[2]->SetExpansionState(Panel::TITLE_ONLY);
856 panels[3]->Activate(); 966 panels[3]->Activate();
857 WaitForPanelActiveState(panels[3], SHOW_AS_ACTIVE); 967 WaitForPanelActiveState(panels[3], SHOW_AS_ACTIVE);
858 WaitForExpansionStateChanged(panels[3], Panel::EXPANDED); 968 WaitForExpansionStateChanged(panels[3], Panel::EXPANDED);
859 969
860 expected_normal_list.clear(); 970 expected_docked_list.clear();
861 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 971 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
862 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 972 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
863 expected_normal_list.Add(panels[3], Panel::EXPANDED, true, true); 973 expected_docked_list.Add(panels[3], Panel::EXPANDED, true, true);
864 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 974 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
865 975
866 expected_overflow_list.clear(); 976 expected_overflow_list.clear();
867 expected_overflow_list.Add(panels[2], Panel::IN_OVERFLOW, true, false); 977 expected_overflow_list.Add(panels[2], true, false);
868 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 978 expected_overflow_list.Add(panels[4], true, false);
869 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 979 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
870 980
871 // Reactivate the formerly minimized panel. It will return to the panel 981 // Reactivate the formerly minimized panel. It will return to the panel
872 // strip in expanded state. 982 // strip in expanded state.
873 // normal: P0, P1, P2 983 // docked: P0, P1, P2
874 // overflow: P3, P4 984 // overflow: P3, P4
875 panels[2]->Activate(); 985 panels[2]->Activate();
876 WaitForPanelActiveState(panels[2], SHOW_AS_ACTIVE); 986 WaitForPanelActiveState(panels[2], SHOW_AS_ACTIVE);
877 WaitForExpansionStateChanged(panels[2], Panel::EXPANDED); 987 WaitForExpansionStateChanged(panels[2], Panel::EXPANDED);
878 988
879 expected_normal_list.clear(); 989 expected_docked_list.clear();
880 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 990 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
881 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 991 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
882 expected_normal_list.Add(panels[2], Panel::EXPANDED, true, true); 992 expected_docked_list.Add(panels[2], Panel::EXPANDED, true, true);
883 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 993 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
884 994
885 expected_overflow_list.clear(); 995 expected_overflow_list.clear();
886 expected_overflow_list.Add(panels[3], Panel::IN_OVERFLOW, true, false); 996 expected_overflow_list.Add(panels[3], true, false);
887 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 997 expected_overflow_list.Add(panels[4], true, false);
888 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 998 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
889 999
890 PanelManager::GetInstance()->RemoveAll(); 1000 PanelManager::GetInstance()->RemoveAll();
891 } 1001 }
892 1002
893 IN_PROC_BROWSER_TEST_F( 1003 IN_PROC_BROWSER_TEST_F(
894 PanelOverflowBrowserTest, 1004 PanelOverflowBrowserTest,
895 MAYBE_MoveMinimizedPanelToOverflowAndBringBackByCloseOrResize) { 1005 MAYBE_MoveMinimizedPanelToOverflowAndBringBackByCloseOrResize) {
896 PanelManager* panel_manager = PanelManager::GetInstance(); 1006 PanelManager* panel_manager = PanelManager::GetInstance();
897 1007
898 // Create normal and overflow panels. 1008 // Create docked and overflow panels.
899 // normal: P0, P1, P2 1009 // docked: P0, P1, P2
900 // overflow: P3, P4, P5 1010 // overflow: P3, P4, P5
901 const int panel_widths[] = { 1011 const int panel_widths[] = {
902 240, 240, 120, // normal 1012 240, 240, 120, // docked
903 240, 240, 240 // overflow 1013 240, 240, 240 // overflow
904 }; 1014 };
905 std::vector<Panel*> panels = CreateOverflowPanels(3, 3, panel_widths); 1015 std::vector<Panel*> panels = CreateOverflowPanels(3, 3, panel_widths);
906 1016
907 PanelDataList expected_normal_list; 1017 DockedPanelDataList expected_docked_list;
908 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 1018 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
909 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 1019 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
910 expected_normal_list.Add(panels[2], Panel::EXPANDED, true, false); 1020 expected_docked_list.Add(panels[2], Panel::EXPANDED, true, false);
911 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 1021 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
912 1022
913 PanelDataList expected_overflow_list; 1023 OverflowPanelDataList expected_overflow_list;
914 expected_overflow_list.Add(panels[3], Panel::IN_OVERFLOW, true, false); 1024 expected_overflow_list.Add(panels[3], true, false);
915 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 1025 expected_overflow_list.Add(panels[4], true, false);
916 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, true, false); 1026 expected_overflow_list.Add(panels[5], true, false);
917 1027
918 // Test case 1: restoring minimized to minimized. 1028 // Test case 1: restoring minimized to minimized.
919 { 1029 {
920 // Minimize a normal panel and then bump it to overflow by activating an 1030 // Minimize a docked panel and then bump it to overflow by activating an
921 // overflow panel. 1031 // overflow panel.
922 // normal: P0, P1, P3 1032 // docked: P0, P1, P3
923 // overflow: P2, P4, P5 1033 // overflow: P2, P4, P5
924 panels[2]->SetExpansionState(Panel::MINIMIZED); 1034 panels[2]->SetExpansionState(Panel::MINIMIZED);
925 panels[3]->Activate(); 1035 panels[3]->Activate();
926 WaitForPanelActiveState(panels[3], SHOW_AS_ACTIVE); 1036 WaitForPanelActiveState(panels[3], SHOW_AS_ACTIVE);
927 WaitForExpansionStateChanged(panels[3], Panel::EXPANDED); 1037 WaitForExpansionStateChanged(panels[3], Panel::EXPANDED);
928 1038
929 expected_normal_list.clear(); 1039 expected_docked_list.clear();
930 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 1040 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
931 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 1041 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
932 expected_normal_list.Add(panels[3], Panel::EXPANDED, true, true); 1042 expected_docked_list.Add(panels[3], Panel::EXPANDED, true, true);
933 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 1043 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
934 1044
935 expected_overflow_list.clear(); 1045 expected_overflow_list.clear();
936 expected_overflow_list.Add(panels[2], Panel::IN_OVERFLOW, true, false); 1046 expected_overflow_list.Add(panels[2], true, false);
937 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 1047 expected_overflow_list.Add(panels[4], true, false);
938 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, true, false); 1048 expected_overflow_list.Add(panels[5], true, false);
939 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 1049 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
940 1050
941 // Bring back the formerly minimized panel by closing a panel. It will 1051 // Bring back the formerly minimized panel by closing a panel. It will
942 // return to the panel strip in the minimized state. 1052 // return to the panel strip in the minimized state.
943 // normal: P0, P1, P2 1053 // docked: P0, P1, P2
944 // overflow: P4, P5 1054 // overflow: P4, P5
945 CloseWindowAndWait(panels[3]->browser()); 1055 CloseWindowAndWait(panels[3]->browser());
946 WaitForExpansionStateChanged(panels[2], Panel::MINIMIZED); 1056 WaitForExpansionStateChanged(panels[2], Panel::MINIMIZED);
947 1057
948 expected_normal_list.clear(); 1058 expected_docked_list.clear();
949 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 1059 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
950 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 1060 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
951 expected_normal_list.Add(panels[2], Panel::MINIMIZED, true, false); 1061 expected_docked_list.Add(panels[2], Panel::MINIMIZED, true, false);
952 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 1062 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
953 1063
954 expected_overflow_list.clear(); 1064 expected_overflow_list.clear();
955 expected_overflow_list.Add(panels[4], Panel::IN_OVERFLOW, true, false); 1065 expected_overflow_list.Add(panels[4], true, false);
956 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, true, false); 1066 expected_overflow_list.Add(panels[5], true, false);
957 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 1067 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
958 } 1068 }
959 1069
960 // Test case 2: restoring minimized to title-only. 1070 // Test case 2: restoring minimized to title-only.
961 { 1071 {
962 // Bump the minimized panel to overflow by activating an overflow panel. 1072 // Bump the minimized panel to overflow by activating an overflow panel.
963 // normal: P0, P1, P4 1073 // docked: P0, P1, P4
964 // overflow: P2, P5 1074 // overflow: P2, P5
965 panels[4]->Activate(); 1075 panels[4]->Activate();
966 WaitForPanelActiveState(panels[4], SHOW_AS_ACTIVE); 1076 WaitForPanelActiveState(panels[4], SHOW_AS_ACTIVE);
967 WaitForExpansionStateChanged(panels[4], Panel::EXPANDED); 1077 WaitForExpansionStateChanged(panels[4], Panel::EXPANDED);
968 1078
969 expected_normal_list.clear(); 1079 expected_docked_list.clear();
970 expected_normal_list.Add(panels[0], Panel::EXPANDED, true, false); 1080 expected_docked_list.Add(panels[0], Panel::EXPANDED, true, false);
971 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 1081 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
972 expected_normal_list.Add(panels[4], Panel::EXPANDED, true, true); 1082 expected_docked_list.Add(panels[4], Panel::EXPANDED, true, true);
973 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 1083 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
974 1084
975 expected_overflow_list.clear(); 1085 expected_overflow_list.clear();
976 expected_overflow_list.Add(panels[2], Panel::IN_OVERFLOW, true, false); 1086 expected_overflow_list.Add(panels[2], true, false);
977 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, true, false); 1087 expected_overflow_list.Add(panels[5], true, false);
978 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 1088 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
979 1089
980 // Minimize another panel and hover the mouse over it. This should bring up 1090 // 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 1091 // 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. 1092 // panel is restored from the overflow area, it should also be title-only.
983 panels[0]->SetExpansionState(Panel::MINIMIZED); 1093 panels[0]->SetExpansionState(Panel::MINIMIZED);
984 MoveMouse(gfx::Point(panels[0]->GetBounds().x(), 1094 MoveMouse(gfx::Point(panels[0]->GetBounds().x(),
985 panels[0]->GetBounds().y())); 1095 panels[0]->GetBounds().y()));
986 WaitForExpansionStateChanged(panels[0], Panel::TITLE_ONLY); 1096 WaitForExpansionStateChanged(panels[0], Panel::TITLE_ONLY);
987 1097
988 // Bring back the formerly minimized panel by closing a panel. It will 1098 // Bring back the formerly minimized panel by closing a panel. It will
989 // return to the panel strip in the title-only state. 1099 // return to the panel strip in the title-only state.
990 // normal: P0, P1, P2 1100 // docked: P0, P1, P2
991 // overflow: P5 1101 // overflow: P5
992 CloseWindowAndWait(panels[4]->browser()); 1102 CloseWindowAndWait(panels[4]->browser());
993 WaitForExpansionStateChanged(panels[2], Panel::TITLE_ONLY); 1103 WaitForExpansionStateChanged(panels[2], Panel::TITLE_ONLY);
994 1104
995 expected_normal_list.clear(); 1105 expected_docked_list.clear();
996 expected_normal_list.Add(panels[0], Panel::TITLE_ONLY, true, false); 1106 expected_docked_list.Add(panels[0], Panel::TITLE_ONLY, true, false);
997 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 1107 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
998 expected_normal_list.Add(panels[2], Panel::TITLE_ONLY, true, false); 1108 expected_docked_list.Add(panels[2], Panel::TITLE_ONLY, true, false);
999 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 1109 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
1000 1110
1001 expected_overflow_list.clear(); 1111 expected_overflow_list.clear();
1002 expected_overflow_list.Add(panels[5], Panel::IN_OVERFLOW, true, false); 1112 expected_overflow_list.Add(panels[5], true, false);
1003 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 1113 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
1004 } 1114 }
1005 1115
1006 // Test case 3: restoring title-only to title-only. 1116 // Test case 3: restoring title-only to title-only.
1007 { 1117 {
1008 // Bump the title-only panel to overflow by activating an overflow panel. 1118 // Bump the title-only panel to overflow by activating an overflow panel.
1009 // normal: P0, P1, P5 1119 // docked: P0, P1, P5
1010 // overflow: P2 1120 // overflow: P2
1011 panels[5]->Activate(); 1121 panels[5]->Activate();
1012 WaitForPanelActiveState(panels[5], SHOW_AS_ACTIVE); 1122 WaitForPanelActiveState(panels[5], SHOW_AS_ACTIVE);
1013 WaitForExpansionStateChanged(panels[5], Panel::EXPANDED); 1123 WaitForExpansionStateChanged(panels[5], Panel::EXPANDED);
1014 1124
1015 expected_normal_list.clear(); 1125 expected_docked_list.clear();
1016 expected_normal_list.Add(panels[0], Panel::TITLE_ONLY, true, false); 1126 expected_docked_list.Add(panels[0], Panel::TITLE_ONLY, true, false);
1017 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 1127 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
1018 expected_normal_list.Add(panels[5], Panel::EXPANDED, true, true); 1128 expected_docked_list.Add(panels[5], Panel::EXPANDED, true, true);
1019 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 1129 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
1020 1130
1021 expected_overflow_list.clear(); 1131 expected_overflow_list.clear();
1022 expected_overflow_list.Add(panels[2], Panel::IN_OVERFLOW, true, false); 1132 expected_overflow_list.Add(panels[2], true, false);
1023 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 1133 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
1024 1134
1025 // Bring back the formerly title-only panel by shrinking a panel. It will 1135 // Bring back the formerly title-only panel by shrinking a panel. It will
1026 // return to the panel strip in the title-only state. 1136 // return to the panel strip in the title-only state.
1027 // normal: P0, P1, P5, P2 1137 // docked: P0, P1, P5, P2
1028 panel_manager->ResizePanel(panels[5], gfx::Size( 1138 panel_manager->ResizePanel(panels[5], gfx::Size(
1029 panels[5]->GetBounds().width() / 2, 1139 panels[5]->GetBounds().width() / 2,
1030 panels[5]->GetBounds().height() / 2)); 1140 panels[5]->GetBounds().height() / 2));
1031 1141
1032 expected_normal_list.clear(); 1142 expected_docked_list.clear();
1033 expected_normal_list.Add(panels[0], Panel::TITLE_ONLY, true, false); 1143 expected_docked_list.Add(panels[0], Panel::TITLE_ONLY, true, false);
1034 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 1144 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
1035 expected_normal_list.Add(panels[5], Panel::EXPANDED, true, true); 1145 expected_docked_list.Add(panels[5], Panel::EXPANDED, true, true);
1036 expected_normal_list.Add(panels[2], Panel::TITLE_ONLY, true, false); 1146 expected_docked_list.Add(panels[2], Panel::TITLE_ONLY, true, false);
1037 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 1147 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
1038 1148
1039 expected_overflow_list.clear(); 1149 expected_overflow_list.clear();
1040 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 1150 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
1041 } 1151 }
1042 1152
1043 // Test case 4: restoring title-only to minimized. 1153 // Test case 4: restoring title-only to minimized.
1044 { 1154 {
1045 // Bump the minimized panel to overflow by enlarging a panel. 1155 // Bump the minimized panel to overflow by enlarging a panel.
1046 // normal: P0, P1, P5 1156 // docked: P0, P1, P5
1047 // overflow: P2 1157 // overflow: P2
1048 panel_manager->ResizePanel(panels[5], gfx::Size( 1158 panel_manager->ResizePanel(panels[5], gfx::Size(
1049 panels[5]->GetBounds().width() * 2, 1159 panels[5]->GetBounds().width() * 2,
1050 panels[5]->GetBounds().height() * 2)); 1160 panels[5]->GetBounds().height() * 2));
1051 1161
1052 expected_normal_list.clear(); 1162 expected_docked_list.clear();
1053 expected_normal_list.Add(panels[0], Panel::TITLE_ONLY, true, false); 1163 expected_docked_list.Add(panels[0], Panel::TITLE_ONLY, true, false);
1054 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 1164 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
1055 expected_normal_list.Add(panels[5], Panel::EXPANDED, true, true); 1165 expected_docked_list.Add(panels[5], Panel::EXPANDED, true, true);
1056 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 1166 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
1057 1167
1058 expected_overflow_list.clear(); 1168 expected_overflow_list.clear();
1059 expected_overflow_list.Add(panels[2], Panel::IN_OVERFLOW, true, false); 1169 expected_overflow_list.Add(panels[2], true, false);
1060 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 1170 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
1061 1171
1062 // Move the mouse away. This should bring down all currently title-only 1172 // 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 1173 // panels. When a formerly minimized or title-only panel is restored from
1064 // the overflow area, it should be minimized. 1174 // the overflow area, it should be minimized.
1065 MoveMouse(gfx::Point(0, 0)); 1175 MoveMouse(gfx::Point(0, 0));
1066 WaitForExpansionStateChanged(panels[0], Panel::MINIMIZED); 1176 WaitForExpansionStateChanged(panels[0], Panel::MINIMIZED);
1067 1177
1068 // Bring back the formerly title-only panel by shrinking a panel. It will 1178 // Bring back the formerly title-only panel by shrinking a panel. It will
1069 // return to the panel strip in the minimized state. 1179 // return to the panel strip in the minimized state.
1070 // normal: P0, P1, P5, P2 1180 // docked: P0, P1, P5, P2
1071 panel_manager->ResizePanel(panels[5], gfx::Size( 1181 panel_manager->ResizePanel(panels[5], gfx::Size(
1072 panels[5]->GetBounds().width() / 2, 1182 panels[5]->GetBounds().width() / 2,
1073 panels[5]->GetBounds().height() / 2)); 1183 panels[5]->GetBounds().height() / 2));
1074 1184
1075 expected_normal_list.clear(); 1185 expected_docked_list.clear();
1076 expected_normal_list.Add(panels[0], Panel::MINIMIZED, true, false); 1186 expected_docked_list.Add(panels[0], Panel::MINIMIZED, true, false);
1077 expected_normal_list.Add(panels[1], Panel::EXPANDED, true, false); 1187 expected_docked_list.Add(panels[1], Panel::EXPANDED, true, false);
1078 expected_normal_list.Add(panels[5], Panel::EXPANDED, true, true); 1188 expected_docked_list.Add(panels[5], Panel::EXPANDED, true, true);
1079 expected_normal_list.Add(panels[2], Panel::MINIMIZED, true, false); 1189 expected_docked_list.Add(panels[2], Panel::MINIMIZED, true, false);
1080 EXPECT_EQ(expected_normal_list, GetAllNormalPanelData()); 1190 EXPECT_EQ(expected_docked_list, GetAllDockedPanelData());
1081 1191
1082 expected_overflow_list.clear(); 1192 expected_overflow_list.clear();
1083 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData()); 1193 EXPECT_EQ(expected_overflow_list, GetAllOverflowPanelData());
1084 } 1194 }
1085 1195
1086 PanelManager::GetInstance()->RemoveAll(); 1196 PanelManager::GetInstance()->RemoveAll();
1087 } 1197 }
1088 1198
1089 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, 1199 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest,
1090 MAYBE_HoverOverOverflowAreaWithoutOverflowOfOverflow) { 1200 MAYBE_HoverOverOverflowAreaWithoutOverflowOfOverflow) {
1091 PanelManager* panel_manager = PanelManager::GetInstance(); 1201 PanelManager* panel_manager = PanelManager::GetInstance();
1092 PanelOverflowStrip* panel_overflow_strip = 1202 PanelOverflowStrip* panel_overflow_strip =
1093 panel_manager->panel_overflow_strip(); 1203 panel_manager->panel_overflow_strip();
1094 int iconified_width = panel_overflow_strip->current_display_width(); 1204 int iconified_width = panel_overflow_strip->current_display_width();
1095 1205
1096 // Create normal and overflow panels. 1206 // Create docked and overflow panels.
1097 // normal: P0, P1, P2 1207 // docked: P0, P1, P2
1098 // overflow: P3, P4 1208 // overflow: P3, P4
1099 const int panel_widths[] = { 1209 const int panel_widths[] = {
1100 250, 260, 200, // normal 1210 250, 260, 200, // docked
1101 255, 220 // overflow 1211 255, 220 // overflow
1102 }; 1212 };
1103 std::vector<Panel*> panels = CreateOverflowPanels(3, 2, panel_widths); 1213 std::vector<Panel*> panels = CreateOverflowPanels(3, 2, panel_widths);
1104 1214
1105 // Move mouse beyond the right edge of the top overflow panel. 1215 // Move mouse beyond the right edge of the top overflow panel.
1106 // Expect the overflow area remains shrunk. 1216 // Expect the overflow area remains shrunk.
1107 MoveMouse(gfx::Point(panels[4]->GetBounds().right() + 1, 1217 MoveMouse(gfx::Point(panels[4]->GetBounds().right() + 1,
1108 panels[4]->GetBounds().y())); 1218 panels[4]->GetBounds().y()));
1109 EXPECT_EQ(iconified_width, panel_overflow_strip->current_display_width()); 1219 EXPECT_EQ(iconified_width, panel_overflow_strip->current_display_width());
1110 1220
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
1157 panel_manager->RemoveAll(); 1267 panel_manager->RemoveAll();
1158 } 1268 }
1159 1269
1160 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, 1270 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest,
1161 MAYBE_HoverOverOverflowAreaWithOverflowOfOverflow) { 1271 MAYBE_HoverOverOverflowAreaWithOverflowOfOverflow) {
1162 PanelManager* panel_manager = PanelManager::GetInstance(); 1272 PanelManager* panel_manager = PanelManager::GetInstance();
1163 PanelOverflowStrip* panel_overflow_strip = 1273 PanelOverflowStrip* panel_overflow_strip =
1164 panel_manager->panel_overflow_strip(); 1274 panel_manager->panel_overflow_strip();
1165 int iconified_width = panel_overflow_strip->current_display_width(); 1275 int iconified_width = panel_overflow_strip->current_display_width();
1166 1276
1167 // Create normal and overflow panels. 1277 // Create docked and overflow panels.
1168 // normal: P0, P1, P2 1278 // docked: P0, P1, P2
1169 // overflow: P3, P4, P5 1279 // overflow: P3, P4, P5
1170 // overflow-on-overflow: P6, P7 1280 // overflow-on-overflow: P6, P7
1171 const int panel_widths[] = { 1281 const int panel_widths[] = {
1172 250, 260, 200, // normal 1282 250, 260, 200, // docked
1173 255, 220, 260, // overflow 1283 255, 220, 260, // overflow
1174 140, 210 // overflow-on-overflow 1284 140, 210 // overflow-on-overflow
1175 }; 1285 };
1176 std::vector<Panel*> panels = CreateOverflowPanels(3, 5, panel_widths); 1286 std::vector<Panel*> panels = CreateOverflowPanels(3, 5, panel_widths);
1177 1287
1178 // Move mouse beyond the right edge of the top overflow panel. 1288 // Move mouse beyond the right edge of the top overflow panel.
1179 // Expect the overflow area remains shrunk. 1289 // Expect the overflow area remains shrunk.
1180 MoveMouse(gfx::Point(panels[5]->GetBounds().right() + 1, 1290 MoveMouse(gfx::Point(panels[5]->GetBounds().right() + 1,
1181 panels[5]->GetBounds().y())); 1291 panels[5]->GetBounds().y()));
1182 EXPECT_EQ(iconified_width, panel_overflow_strip->current_display_width()); 1292 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(); 1373 panel_manager->RemoveAll();
1264 } 1374 }
1265 1375
1266 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_ResizePanel) { 1376 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_ResizePanel) {
1267 PanelManager* panel_manager = PanelManager::GetInstance(); 1377 PanelManager* panel_manager = PanelManager::GetInstance();
1268 panel_manager->enable_auto_sizing(true); 1378 panel_manager->enable_auto_sizing(true);
1269 PanelStrip* panel_strip = panel_manager->panel_strip(); 1379 PanelStrip* panel_strip = panel_manager->panel_strip();
1270 PanelOverflowStrip* overflow_strip = panel_manager->panel_overflow_strip(); 1380 PanelOverflowStrip* overflow_strip = panel_manager->panel_overflow_strip();
1271 1381
1272 // Create 4 panels that fit. 1382 // Create 4 panels that fit.
1273 // normal: P1 (250), P2 (200), P3 (100), P4 (100) 1383 // docked: P1 (250), P2 (200), P3 (100), P4 (100)
1274 // overflow: empty 1384 // overflow: empty
1275 Panel* panel1 = CreatePanelWithBounds("1", gfx::Rect(0, 0, 250, 200)); 1385 Panel* panel1 = CreatePanelWithBounds("1", gfx::Rect(0, 0, 250, 200));
1276 Panel* panel2 = CreatePanelWithBounds("2", gfx::Rect(0, 0, 200, 200)); 1386 Panel* panel2 = CreatePanelWithBounds("2", gfx::Rect(0, 0, 200, 200));
1277 Panel* panel3 = CreatePanelWithBounds("3", gfx::Rect(0, 0, 100, 200)); 1387 Panel* panel3 = CreatePanelWithBounds("3", gfx::Rect(0, 0, 100, 200));
1278 Panel* panel4 = CreatePanelWithBounds("4", gfx::Rect(0, 0, 100, 200)); 1388 Panel* panel4 = CreatePanelWithBounds("4", gfx::Rect(0, 0, 100, 200));
1279 EXPECT_EQ(4, panel_strip->num_panels()); 1389 EXPECT_EQ(4, panel_strip->num_panels());
1280 EXPECT_EQ(0, overflow_strip->num_panels()); 1390 EXPECT_EQ(0, overflow_strip->num_panels());
1281 1391
1282 // Resize last panel so that it is too big to fit and overflows. 1392 // Resize last panel so that it is too big to fit and overflows.
1283 // normal: P1 (250), P2 (200), P3 (100) 1393 // docked: P1 (250), P2 (200), P3 (100)
1284 // overflow: P4 (250)* 1394 // overflow: P4 (250)*
1285 gfx::Size new_size(250, 200); 1395 gfx::Size new_size(250, 200);
1286 panel_manager->OnPreferredWindowSizeChanged(panel4, new_size); 1396 panel_manager->OnPreferredWindowSizeChanged(panel4, new_size);
1287 EXPECT_EQ(3, panel_strip->num_panels()); 1397 EXPECT_EQ(3, panel_strip->num_panels());
1288 EXPECT_EQ(1, overflow_strip->num_panels()); 1398 EXPECT_EQ(1, overflow_strip->num_panels());
1289 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->expansion_state()); 1399 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->layout_state());
1290 EXPECT_TRUE(IsPanelInOverflowStrip(panel4)); 1400 EXPECT_TRUE(IsPanelInOverflowStrip(panel4));
1291 EXPECT_EQ(new_size, panel4->restored_size()); 1401 EXPECT_EQ(new_size, panel4->restored_size());
1292 1402
1293 // Open another panel that will fit. 1403 // Open another panel that will fit.
1294 // normal: P1 (250), P2 (200), P3 (100), P5 (100)* 1404 // docked: P1 (250), P2 (200), P3 (100), P5 (100)*
1295 // overflow: P4 (250) 1405 // overflow: P4 (250)
1296 Panel* panel5 = CreatePanelWithBounds("5", gfx::Rect(0, 0, 100, 200)); 1406 Panel* panel5 = CreatePanelWithBounds("5", gfx::Rect(0, 0, 100, 200));
1297 EXPECT_EQ(4, panel_strip->num_panels()); 1407 EXPECT_EQ(4, panel_strip->num_panels());
1298 EXPECT_EQ(1, overflow_strip->num_panels()); 1408 EXPECT_EQ(1, overflow_strip->num_panels());
1299 EXPECT_EQ(Panel::EXPANDED, panel5->expansion_state()); 1409 EXPECT_EQ(Panel::EXPANDED, panel5->expansion_state());
1300 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->expansion_state()); // no change 1410 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->layout_state()); // no change
1301 1411
1302 // Resize a panel from the middle of the strip so that it causes a 1412 // Resize a panel from the middle of the strip so that it causes a
1303 // panel to overflow. 1413 // panel to overflow.
1304 // normal: P1 (250), P2 (200), P3 (250)* 1414 // docked: P1 (250), P2 (200), P3 (250)*
1305 // overflow: P5 (100), P4 (250) 1415 // overflow: P5 (100), P4 (250)
1306 panel_manager->OnPreferredWindowSizeChanged(panel3, gfx::Size(250, 200)); 1416 panel_manager->OnPreferredWindowSizeChanged(panel3, gfx::Size(250, 200));
1307 EXPECT_EQ(3, panel_strip->num_panels()); 1417 EXPECT_EQ(3, panel_strip->num_panels());
1308 EXPECT_EQ(2, overflow_strip->num_panels()); 1418 EXPECT_EQ(2, overflow_strip->num_panels());
1309 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->expansion_state()); 1419 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->layout_state());
1310 EXPECT_EQ(Panel::IN_OVERFLOW, panel5->expansion_state()); 1420 EXPECT_EQ(Panel::IN_OVERFLOW, panel5->layout_state());
1311 const PanelOverflowStrip::Panels& overflow = overflow_strip->panels(); 1421 const PanelOverflowStrip::Panels& overflow = overflow_strip->panels();
1312 EXPECT_EQ(panel5, overflow[0]); // new overflow panel is first 1422 EXPECT_EQ(panel5, overflow[0]); // new overflow panel is first
1313 EXPECT_EQ(panel4, overflow[1]); 1423 EXPECT_EQ(panel4, overflow[1]);
1314 1424
1315 // Resize panel smaller so that panel from overflow can fit. 1425 // Resize panel smaller so that panel from overflow can fit.
1316 // normal: P1 (250), P2 (200), P3 (100)*, P5 (100) 1426 // docked: P1 (250), P2 (200), P3 (100)*, P5 (100)
1317 // overflow: P4 (250) 1427 // overflow: P4 (250)
1318 panel_manager->OnPreferredWindowSizeChanged(panel3, gfx::Size(100, 200)); 1428 panel_manager->OnPreferredWindowSizeChanged(panel3, gfx::Size(100, 200));
1319 EXPECT_EQ(4, panel_strip->num_panels()); 1429 EXPECT_EQ(4, panel_strip->num_panels());
1320 EXPECT_EQ(1, overflow_strip->num_panels()); 1430 EXPECT_EQ(1, overflow_strip->num_panels());
1321 EXPECT_EQ(Panel::EXPANDED, panel5->expansion_state()); 1431 EXPECT_EQ(Panel::EXPANDED, panel5->expansion_state());
1322 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->expansion_state()); 1432 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->layout_state());
1323 1433
1324 // Resize smaller again but not small enough to fit overflow panel. 1434 // Resize smaller again but not small enough to fit overflow panel.
1325 // normal: P1 (250), P2 (100)*, P3 (100), P5 (100) 1435 // docked: P1 (250), P2 (100)*, P3 (100), P5 (100)
1326 // overflow: P4 (250) 1436 // overflow: P4 (250)
1327 panel_manager->OnPreferredWindowSizeChanged(panel2, gfx::Size(100, 200)); 1437 panel_manager->OnPreferredWindowSizeChanged(panel2, gfx::Size(100, 200));
1328 EXPECT_EQ(4, panel_strip->num_panels()); 1438 EXPECT_EQ(4, panel_strip->num_panels());
1329 EXPECT_EQ(1, overflow_strip->num_panels()); 1439 EXPECT_EQ(1, overflow_strip->num_panels());
1330 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->expansion_state()); // no change 1440 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->layout_state()); // no change
1331 1441
1332 // Resize overflow panel bigger. It should stay in overflow and bounds 1442 // Resize overflow panel bigger. It should stay in overflow and bounds
1333 // should not change. 1443 // should not change.
1334 // normal: P1 (250), P2 (100), P3 (100), P5 (100) 1444 // docked: P1 (250), P2 (100), P3 (100), P5 (100)
1335 // overflow: P4 (251)* 1445 // overflow: P4 (251)*
1336 gfx::Rect bounds_before_resize = panel4->GetBounds(); 1446 gfx::Rect bounds_before_resize = panel4->GetBounds();
1337 new_size.SetSize(251, 200); 1447 new_size.SetSize(251, 200);
1338 panel_manager->OnPreferredWindowSizeChanged(panel4, new_size); 1448 panel_manager->OnPreferredWindowSizeChanged(panel4, new_size);
1339 EXPECT_EQ(4, panel_strip->num_panels()); 1449 EXPECT_EQ(4, panel_strip->num_panels());
1340 EXPECT_EQ(1, overflow_strip->num_panels()); 1450 EXPECT_EQ(1, overflow_strip->num_panels());
1341 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->expansion_state()); 1451 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->layout_state());
1342 EXPECT_EQ(bounds_before_resize, panel4->GetBounds()); 1452 EXPECT_EQ(bounds_before_resize, panel4->GetBounds());
1343 EXPECT_EQ(new_size, panel4->restored_size()); 1453 EXPECT_EQ(new_size, panel4->restored_size());
1344 1454
1345 // Resize overflow panel to make it fit. 1455 // Resize overflow panel to make it fit.
1346 // normal: P1 (250), P2 (100), P3 (100), P5 (100), P4 (100)* 1456 // docked: P1 (250), P2 (100), P3 (100), P5 (100), P4 (100)*
1347 // overflow: empty 1457 // overflow: empty
1348 panel_manager->OnPreferredWindowSizeChanged(panel4, gfx::Size(100, 200)); 1458 panel_manager->OnPreferredWindowSizeChanged(panel4, gfx::Size(100, 200));
1349 EXPECT_EQ(5, panel_strip->num_panels()); 1459 EXPECT_EQ(5, panel_strip->num_panels());
1350 EXPECT_EQ(0, overflow_strip->num_panels()); 1460 EXPECT_EQ(0, overflow_strip->num_panels());
1351 EXPECT_EQ(Panel::EXPANDED, panel4->expansion_state()); 1461 EXPECT_EQ(Panel::EXPANDED, panel4->expansion_state());
1352 1462
1353 // Resize a panel bigger, but not enough to cause overflow. 1463 // Resize a panel bigger, but not enough to cause overflow.
1354 // normal: P1 (250), P2 (100), P3 (150)*, P5 (100), P4 (100) 1464 // docked: P1 (250), P2 (100), P3 (150)*, P5 (100), P4 (100)
1355 // overflow: empty 1465 // overflow: empty
1356 panel_manager->OnPreferredWindowSizeChanged(panel3, gfx::Size(150, 200)); 1466 panel_manager->OnPreferredWindowSizeChanged(panel3, gfx::Size(150, 200));
1357 EXPECT_EQ(5, panel_strip->num_panels()); 1467 EXPECT_EQ(5, panel_strip->num_panels());
1358 EXPECT_EQ(0, overflow_strip->num_panels()); 1468 EXPECT_EQ(0, overflow_strip->num_panels());
1359 1469
1360 // Resize a panel to bump more than one panel to overflow. 1470 // Resize a panel to bump more than one panel to overflow.
1361 // normal: P1 (250), P2 (250)*, P3 (150) 1471 // docked: P1 (250), P2 (250)*, P3 (150)
1362 // overflow: P5 (100), P4 (100) 1472 // overflow: P5 (100), P4 (100)
1363 panel_manager->OnPreferredWindowSizeChanged(panel2, gfx::Size(250, 200)); 1473 panel_manager->OnPreferredWindowSizeChanged(panel2, gfx::Size(250, 200));
1364 EXPECT_EQ(3, panel_strip->num_panels()); 1474 EXPECT_EQ(3, panel_strip->num_panels());
1365 EXPECT_EQ(2, overflow_strip->num_panels()); 1475 EXPECT_EQ(2, overflow_strip->num_panels());
1366 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->expansion_state()); 1476 EXPECT_EQ(Panel::IN_OVERFLOW, panel4->layout_state());
1367 EXPECT_EQ(Panel::IN_OVERFLOW, panel5->expansion_state()); 1477 EXPECT_EQ(Panel::IN_OVERFLOW, panel5->layout_state());
1368 const PanelOverflowStrip::Panels& overflow2 = overflow_strip->panels(); 1478 const PanelOverflowStrip::Panels& overflow2 = overflow_strip->panels();
1369 EXPECT_EQ(panel5, overflow2[0]); // strip order is preserved 1479 EXPECT_EQ(panel5, overflow2[0]); // strip order is preserved
1370 EXPECT_EQ(panel4, overflow2[1]); 1480 EXPECT_EQ(panel4, overflow2[1]);
1371 1481
1372 panel1->Close(); 1482 panel1->Close();
1373 panel2->Close(); 1483 panel2->Close();
1374 panel3->Close(); 1484 panel3->Close();
1375 panel4->Close(); 1485 panel4->Close();
1376 panel5->Close(); 1486 panel5->Close();
1377 } 1487 }
1378 1488
1379 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_OverflowIndicatorCount) { 1489 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_OverflowIndicatorCount) {
1380 PanelManager* panel_manager = PanelManager::GetInstance(); 1490 PanelManager* panel_manager = PanelManager::GetInstance();
1381 PanelOverflowStrip* overflow_strip = panel_manager->panel_overflow_strip(); 1491 PanelOverflowStrip* overflow_strip = panel_manager->panel_overflow_strip();
1382 1492
1383 // Create normal and overflow panels. 1493 // Create docked and overflow panels.
1384 // normal: P0, P1, P2 1494 // docked: P0, P1, P2
1385 // overflow: P3, P4, P5 1495 // overflow: P3, P4, P5
1386 const int panel_widths[] = { 1496 const int panel_widths[] = {
1387 250, 250, 210, // normal 1497 250, 250, 210, // docked
1388 250, 250, 260 // overflow 1498 250, 250, 260 // overflow
1389 }; 1499 };
1390 std::vector<Panel*> panels = CreateOverflowPanels(3, 3, panel_widths); 1500 std::vector<Panel*> panels = CreateOverflowPanels(3, 3, panel_widths);
1391 EXPECT_EQ(3, overflow_strip->num_panels()); 1501 EXPECT_EQ(3, overflow_strip->num_panels());
1392 EXPECT_FALSE(overflow_strip->overflow_indicator()); 1502 EXPECT_FALSE(overflow_strip->overflow_indicator());
1393 1503
1394 // Create 5 overflow-on-overflow panels. 1504 // Create 5 overflow-on-overflow panels.
1395 // normal: P0, P1, P2 1505 // docked: P0, P1, P2
1396 // overflow: P3, P4, P5, (P6, P7, P8, P9, P10) 1506 // overflow: P3, P4, P5, (P6, P7, P8, P9, P10)
1397 // The panels enclosed in parentheses are hidden. 1507 // The panels enclosed in parentheses are hidden.
1398 int num_existing_panels = panel_manager->num_panels(); 1508 int num_existing_panels = panel_manager->num_panels();
1399 for (int i = 0; i < 5; ++i) { 1509 for (int i = 0; i < 5; ++i) {
1400 CreatePanelParams params( 1510 CreatePanelParams params(
1401 MakePanelName(num_existing_panels + i), 1511 MakePanelName(num_existing_panels + i),
1402 gfx::Rect(0, 0, 250, 200), 1512 gfx::Rect(0, 0, 250, 200),
1403 SHOW_AS_INACTIVE); 1513 SHOW_AS_INACTIVE);
1404 Panel* panel = CreatePanelWithParams(params); 1514 Panel* panel = CreatePanelWithParams(params);
1405 WaitForExpansionStateChanged(panel, Panel::IN_OVERFLOW); 1515 WaitForLayoutStateChanged(panel, Panel::IN_OVERFLOW);
1406 EXPECT_EQ(i + 1, overflow_strip->overflow_indicator()->GetCount()); 1516 EXPECT_EQ(i + 1, overflow_strip->overflow_indicator()->GetCount());
1407 panels.push_back(panel); 1517 panels.push_back(panel);
1408 } 1518 }
1409 1519
1410 // Expand the overflow area by moving mouse over it. 1520 // Expand the overflow area by moving mouse over it.
1411 // Expect the overflow indicator count gets updated. 1521 // Expect the overflow indicator count gets updated.
1412 // normal: P0, P1, P2 1522 // docked: P0, P1, P2
1413 // overflow: P3, P4, P5, P6, P7, P8, (P9, P10) 1523 // overflow: P3, P4, P5, P6, P7, P8, (P9, P10)
1414 MoveMouseAndWaitForOverflowAnimationEnded(panels[3]->GetBounds().origin()); 1524 MoveMouseAndWaitForOverflowAnimationEnded(panels[3]->GetBounds().origin());
1415 EXPECT_TRUE(IsPanelVisible(panels[6])); 1525 EXPECT_TRUE(IsPanelVisible(panels[6]));
1416 EXPECT_TRUE(IsPanelVisible(panels[7])); 1526 EXPECT_TRUE(IsPanelVisible(panels[7]));
1417 EXPECT_TRUE(IsPanelVisible(panels[8])); 1527 EXPECT_TRUE(IsPanelVisible(panels[8]));
1418 EXPECT_FALSE(IsPanelVisible(panels[9])); 1528 EXPECT_FALSE(IsPanelVisible(panels[9]));
1419 EXPECT_FALSE(IsPanelVisible(panels[10])); 1529 EXPECT_FALSE(IsPanelVisible(panels[10]));
1420 EXPECT_EQ(2, overflow_strip->overflow_indicator()->GetCount()); 1530 EXPECT_EQ(2, overflow_strip->overflow_indicator()->GetCount());
1421 1531
1422 // Close an overflow panel that makes one overflow-on-overflow panel become 1532 // Close an overflow panel that makes one overflow-on-overflow panel become
1423 // visible. Expect the overflow indicator count gets decreased by 1. 1533 // visible. Expect the overflow indicator count gets decreased by 1.
1424 // normal: P0, P1, P2 1534 // docked: P0, P1, P2
1425 // overflow: P4, P5, P6, P7, P8, P9, (P10) 1535 // overflow: P4, P5, P6, P7, P8, P9, (P10)
1426 CloseWindowAndWait(panels[3]->browser()); 1536 CloseWindowAndWait(panels[3]->browser());
1427 EXPECT_TRUE(IsPanelVisible(panels[6])); 1537 EXPECT_TRUE(IsPanelVisible(panels[6]));
1428 EXPECT_TRUE(IsPanelVisible(panels[7])); 1538 EXPECT_TRUE(IsPanelVisible(panels[7]));
1429 EXPECT_TRUE(IsPanelVisible(panels[8])); 1539 EXPECT_TRUE(IsPanelVisible(panels[8]));
1430 EXPECT_TRUE(IsPanelVisible(panels[9])); 1540 EXPECT_TRUE(IsPanelVisible(panels[9]));
1431 EXPECT_FALSE(IsPanelVisible(panels[10])); 1541 EXPECT_FALSE(IsPanelVisible(panels[10]));
1432 EXPECT_EQ(1, overflow_strip->overflow_indicator()->GetCount()); 1542 EXPECT_EQ(1, overflow_strip->overflow_indicator()->GetCount());
1433 1543
1434 // Shrink the overflow area by stopping hovering the mouse over the overflow 1544 // Shrink the overflow area by stopping hovering the mouse over the overflow
1435 // area. Expect the overflow indicator count gets updated. 1545 // area. Expect the overflow indicator count gets updated.
1436 // normal: P0, P1, P2 1546 // docked: P0, P1, P2
1437 // overflow: P4, P5, P6, (P7, P8, P9, P10) 1547 // overflow: P4, P5, P6, (P7, P8, P9, P10)
1438 MoveMouseAndWaitForOverflowAnimationEnded(gfx::Point( 1548 MoveMouseAndWaitForOverflowAnimationEnded(gfx::Point(
1439 panels[4]->GetBounds().right() + 5, panels[4]->GetBounds().y())); 1549 panels[4]->GetBounds().right() + 5, panels[4]->GetBounds().y()));
1440 EXPECT_TRUE(IsPanelVisible(panels[6])); 1550 EXPECT_TRUE(IsPanelVisible(panels[6]));
1441 EXPECT_FALSE(IsPanelVisible(panels[7])); 1551 EXPECT_FALSE(IsPanelVisible(panels[7]));
1442 EXPECT_FALSE(IsPanelVisible(panels[8])); 1552 EXPECT_FALSE(IsPanelVisible(panels[8]));
1443 EXPECT_FALSE(IsPanelVisible(panels[9])); 1553 EXPECT_FALSE(IsPanelVisible(panels[9]));
1444 EXPECT_FALSE(IsPanelVisible(panels[10])); 1554 EXPECT_FALSE(IsPanelVisible(panels[10]));
1445 EXPECT_EQ(4, overflow_strip->overflow_indicator()->GetCount()); 1555 EXPECT_EQ(4, overflow_strip->overflow_indicator()->GetCount());
1446 1556
1447 // Close an overflow panel. 1557 // Close an overflow panel.
1448 // Expect the overflow indicator count gets decreased by 1. 1558 // Expect the overflow indicator count gets decreased by 1.
1449 // normal: P0, P1, P2 1559 // docked: P0, P1, P2
1450 // overflow: P5, P6, P7, (P8, P9, P10) 1560 // overflow: P5, P6, P7, (P8, P9, P10)
1451 CloseWindowAndWait(panels[4]->browser()); 1561 CloseWindowAndWait(panels[4]->browser());
1452 EXPECT_TRUE(IsPanelVisible(panels[6])); 1562 EXPECT_TRUE(IsPanelVisible(panels[6]));
1453 EXPECT_TRUE(IsPanelVisible(panels[7])); 1563 EXPECT_TRUE(IsPanelVisible(panels[7]));
1454 EXPECT_FALSE(IsPanelVisible(panels[8])); 1564 EXPECT_FALSE(IsPanelVisible(panels[8]));
1455 EXPECT_FALSE(IsPanelVisible(panels[9])); 1565 EXPECT_FALSE(IsPanelVisible(panels[9]));
1456 EXPECT_FALSE(IsPanelVisible(panels[10])); 1566 EXPECT_FALSE(IsPanelVisible(panels[10]));
1457 EXPECT_EQ(3, overflow_strip->overflow_indicator()->GetCount()); 1567 EXPECT_EQ(3, overflow_strip->overflow_indicator()->GetCount());
1458 1568
1459 // Activating a big overflow panel will cause 2 normal panels to move to the 1569 // 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 1570 // oevrflow area and also get the top visible overflow panel bumped to the
1461 // overflow-on-overflow. 1571 // overflow-on-overflow.
1462 // Expect the overflow indicator count gets increased by 1. 1572 // Expect the overflow indicator count gets increased by 1.
1463 // normal: P0, P5 1573 // docked: P0, P5
1464 // overflow: P1, P2, P6, (P7, P8, P9, P10) 1574 // overflow: P1, P2, P6, (P7, P8, P9, P10)
1465 panels[5]->Activate(); 1575 panels[5]->Activate();
1466 WaitForPanelActiveState(panels[5], SHOW_AS_ACTIVE); 1576 WaitForPanelActiveState(panels[5], SHOW_AS_ACTIVE);
1467 WaitForExpansionStateChanged(panels[5], Panel::EXPANDED); 1577 WaitForExpansionStateChanged(panels[5], Panel::EXPANDED);
1468 EXPECT_TRUE(IsPanelVisible(panels[6])); 1578 EXPECT_TRUE(IsPanelVisible(panels[6]));
1469 EXPECT_FALSE(IsPanelVisible(panels[7])); 1579 EXPECT_FALSE(IsPanelVisible(panels[7]));
1470 EXPECT_FALSE(IsPanelVisible(panels[8])); 1580 EXPECT_FALSE(IsPanelVisible(panels[8]));
1471 EXPECT_FALSE(IsPanelVisible(panels[9])); 1581 EXPECT_FALSE(IsPanelVisible(panels[9]));
1472 EXPECT_FALSE(IsPanelVisible(panels[10])); 1582 EXPECT_FALSE(IsPanelVisible(panels[10]));
1473 EXPECT_EQ(4, overflow_strip->overflow_indicator()->GetCount()); 1583 EXPECT_EQ(4, overflow_strip->overflow_indicator()->GetCount());
1474 1584
1475 panel_manager->RemoveAll(); 1585 panel_manager->RemoveAll();
1476 } 1586 }
1477 1587
1478 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_DrawOverflowAttention) { 1588 IN_PROC_BROWSER_TEST_F(PanelOverflowBrowserTest, MAYBE_DrawOverflowAttention) {
1479 PanelManager* panel_manager = PanelManager::GetInstance(); 1589 PanelManager* panel_manager = PanelManager::GetInstance();
1480 PanelStrip* panel_strip = panel_manager->panel_strip(); 1590 PanelStrip* panel_strip = panel_manager->panel_strip();
1481 PanelOverflowStrip* overflow_strip = panel_manager->panel_overflow_strip(); 1591 PanelOverflowStrip* overflow_strip = panel_manager->panel_overflow_strip();
1482 1592
1483 // Create normal and overflow panels. 1593 // Create docked and overflow panels.
1484 // normal: P0, P1, P2, P3 1594 // docked: P0, P1, P2, P3
1485 // overflow: P4, P5, P6, (P7, P8, P9, P10, P11) 1595 // overflow: P4, P5, P6, (P7, P8, P9, P10, P11)
1486 // The panels enclosed in parentheses are hidden. 1596 // The panels enclosed in parentheses are hidden.
1487 const int panel_widths[] = { 1597 const int panel_widths[] = {
1488 100, 210, 210, 210, // normal 1598 100, 210, 210, 210, // docked
1489 210, 260, 210, // overflow 1599 210, 260, 210, // overflow
1490 210, 210, 210, // overflow-on-overflow on shrunk 1600 210, 210, 210, // overflow-on-overflow on shrunk
1491 210, 210 // overflow-on-overflow on expanded 1601 210, 210 // overflow-on-overflow on expanded
1492 }; 1602 };
1493 std::vector<Panel*> panels = CreateOverflowPanels(4, 8, panel_widths); 1603 std::vector<Panel*> panels = CreateOverflowPanels(4, 8, panel_widths);
1494 EXPECT_EQ(4, panel_strip->num_panels()); 1604 EXPECT_EQ(4, panel_strip->num_panels());
1495 EXPECT_EQ(8, overflow_strip->num_panels()); 1605 EXPECT_EQ(8, overflow_strip->num_panels());
1496 PanelOverflowIndicator* overflow_indicator = 1606 PanelOverflowIndicator* overflow_indicator =
1497 overflow_strip->overflow_indicator(); 1607 overflow_strip->overflow_indicator();
1498 1608
1499 // Draw attention for a visible overflow panel. 1609 // Draw attention for a visible overflow panel.
1500 // Expect no impact to the overflow indicator. 1610 // Expect no impact to the overflow indicator.
1501 // normal: P0, P1, P2, P3 1611 // docked: P0, P1, P2, P3
1502 // overflow: P4, *P5, P6, (P7, P8, P9, P10, P11) 1612 // overflow: P4, *P5, P6, (P7, P8, P9, P10, P11)
1503 EXPECT_FALSE(panels[5]->IsDrawingAttention()); 1613 EXPECT_FALSE(panels[5]->IsDrawingAttention());
1504 panels[5]->FlashFrame(true); 1614 panels[5]->FlashFrame(true);
1505 EXPECT_TRUE(panels[5]->IsDrawingAttention()); 1615 EXPECT_TRUE(panels[5]->IsDrawingAttention());
1506 EXPECT_FALSE(overflow_indicator->IsDrawingAttention()); 1616 EXPECT_FALSE(overflow_indicator->IsDrawingAttention());
1507 1617
1508 // Activating this overflow panel will clear its attention. 1618 // Activating this overflow panel will clear its attention.
1509 // Expect no impact to the overflow indicator. 1619 // Expect no impact to the overflow indicator.
1510 // normal: P0, P1, P2, P5 1620 // docked: P0, P1, P2, P5
1511 // overflow: P3, P4, P6, (P7, P8, P9, P10, P11) 1621 // overflow: P3, P4, P6, (P7, P8, P9, P10, P11)
1512 panels[5]->Activate(); 1622 panels[5]->Activate();
1513 WaitForPanelActiveState(panels[5], SHOW_AS_ACTIVE); 1623 WaitForPanelActiveState(panels[5], SHOW_AS_ACTIVE);
1514 EXPECT_FALSE(panels[5]->IsDrawingAttention()); 1624 EXPECT_FALSE(panels[5]->IsDrawingAttention());
1515 EXPECT_FALSE(overflow_indicator->IsDrawingAttention()); 1625 EXPECT_FALSE(overflow_indicator->IsDrawingAttention());
1516 1626
1517 // Draw attention for an overflow-on-overflow panel. 1627 // Draw attention for an overflow-on-overflow panel.
1518 // Expect the overflow indicator is showing attention. 1628 // Expect the overflow indicator is showing attention.
1519 // normal: P0, P1, P2, P5 1629 // docked: P0, P1, P2, P5
1520 // overflow: P3, P4, P6, (P7, *P8, P9, P10, P11) 1630 // overflow: P3, P4, P6, (P7, *P8, P9, P10, P11)
1521 EXPECT_FALSE(panels[8]->IsDrawingAttention()); 1631 EXPECT_FALSE(panels[8]->IsDrawingAttention());
1522 panels[8]->FlashFrame(true); 1632 panels[8]->FlashFrame(true);
1523 EXPECT_TRUE(panels[8]->IsDrawingAttention()); 1633 EXPECT_TRUE(panels[8]->IsDrawingAttention());
1524 EXPECT_TRUE(overflow_indicator->IsDrawingAttention()); 1634 EXPECT_TRUE(overflow_indicator->IsDrawingAttention());
1525 1635
1526 // Draw attention for another overflow-on-overflow panel. 1636 // Draw attention for another overflow-on-overflow panel.
1527 // Expect the overflow indicator is still showing attention. 1637 // Expect the overflow indicator is still showing attention.
1528 // normal: P0, P1, P2, P5 1638 // docked: P0, P1, P2, P5
1529 // overflow: P3, P4, P6, (P7, *P8, P9, *P10, P11) 1639 // overflow: P3, P4, P6, (P7, *P8, P9, *P10, P11)
1530 EXPECT_FALSE(panels[10]->IsDrawingAttention()); 1640 EXPECT_FALSE(panels[10]->IsDrawingAttention());
1531 panels[10]->FlashFrame(true); 1641 panels[10]->FlashFrame(true);
1532 EXPECT_TRUE(panels[10]->IsDrawingAttention()); 1642 EXPECT_TRUE(panels[10]->IsDrawingAttention());
1533 EXPECT_TRUE(overflow_indicator->IsDrawingAttention()); 1643 EXPECT_TRUE(overflow_indicator->IsDrawingAttention());
1534 1644
1535 // Stop drawing attention for an overflow-on-overflow panel by activating it. 1645 // Stop drawing attention for an overflow-on-overflow panel by activating it.
1536 // Expect the overflow indicator is still showing attention. 1646 // Expect the overflow indicator is still showing attention.
1537 // normal: P0, P1, P2, P8 1647 // docked: P0, P1, P2, P8
1538 // overflow: P5, P3, P4, (P6, P7, P9, *P10, P11) 1648 // overflow: P5, P3, P4, (P6, P7, P9, *P10, P11)
1539 panels[8]->Activate(); 1649 panels[8]->Activate();
1540 WaitForPanelActiveState(panels[8], SHOW_AS_ACTIVE); 1650 WaitForPanelActiveState(panels[8], SHOW_AS_ACTIVE);
1541 EXPECT_FALSE(panels[8]->IsDrawingAttention()); 1651 EXPECT_FALSE(panels[8]->IsDrawingAttention());
1542 EXPECT_TRUE(overflow_indicator->IsDrawingAttention()); 1652 EXPECT_TRUE(overflow_indicator->IsDrawingAttention());
1543 1653
1544 // Stop drawing attention for another overflow-on-overflow panel by activating 1654 // Stop drawing attention for another overflow-on-overflow panel by activating
1545 // it. Expect the overflow indicator is not showing attention. 1655 // it. Expect the overflow indicator is not showing attention.
1546 // normal: P0, P1, P2, P10 1656 // docked: P0, P1, P2, P10
1547 // overflow: P8, P5, P3, (P4, P6, P7, P9, P11) 1657 // overflow: P8, P5, P3, (P4, P6, P7, P9, P11)
1548 panels[10]->Activate(); 1658 panels[10]->Activate();
1549 WaitForPanelActiveState(panels[10], SHOW_AS_ACTIVE); 1659 WaitForPanelActiveState(panels[10], SHOW_AS_ACTIVE);
1550 EXPECT_FALSE(panels[10]->IsDrawingAttention()); 1660 EXPECT_FALSE(panels[10]->IsDrawingAttention());
1551 EXPECT_FALSE(overflow_indicator->IsDrawingAttention()); 1661 EXPECT_FALSE(overflow_indicator->IsDrawingAttention());
1552 1662
1553 // Draw attention for the top overflow panel. 1663 // Draw attention for the top overflow panel.
1554 // Expect no impact to the overflow indicator. 1664 // Expect no impact to the overflow indicator.
1555 // normal: P0, P1, P2, P10 1665 // docked: P0, P1, P2, P10
1556 // overflow: P8, P5, *P3, (P4, P6, P7, P9, P11) 1666 // overflow: P8, P5, *P3, (P4, P6, P7, P9, P11)
1557 EXPECT_TRUE(IsPanelVisible(panels[3])); 1667 EXPECT_TRUE(IsPanelVisible(panels[3]));
1558 EXPECT_FALSE(panels[3]->IsDrawingAttention()); 1668 EXPECT_FALSE(panels[3]->IsDrawingAttention());
1559 panels[3]->FlashFrame(true); 1669 panels[3]->FlashFrame(true);
1560 EXPECT_TRUE(panels[3]->IsDrawingAttention()); 1670 EXPECT_TRUE(panels[3]->IsDrawingAttention());
1561 EXPECT_FALSE(overflow_indicator->IsDrawingAttention()); 1671 EXPECT_FALSE(overflow_indicator->IsDrawingAttention());
1562 1672
1563 // Activating a big overflow panel will cause 2 normal panels to move to the 1673 // 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 1674 // overflow area and also get the top visible overflow panel bumped to the
1565 // overflow-on-overflow. 1675 // overflow-on-overflow.
1566 // Expect the overflow indicator is showing attention. 1676 // Expect the overflow indicator is showing attention.
1567 // normal: P0, P1, P5 1677 // docked: P0, P1, P5
1568 // overflow: P2, P10, P8, (*P3, P4, P6, P7, P9, P11) 1678 // overflow: P2, P10, P8, (*P3, P4, P6, P7, P9, P11)
1569 panels[5]->Activate(); 1679 panels[5]->Activate();
1570 WaitForPanelActiveState(panels[5], SHOW_AS_ACTIVE); 1680 WaitForPanelActiveState(panels[5], SHOW_AS_ACTIVE);
1571 WaitForExpansionStateChanged(panels[5], Panel::EXPANDED); 1681 WaitForExpansionStateChanged(panels[5], Panel::EXPANDED);
1572 EXPECT_EQ(3, panel_strip->num_panels()); 1682 EXPECT_EQ(3, panel_strip->num_panels());
1573 EXPECT_EQ(9, overflow_strip->num_panels()); 1683 EXPECT_EQ(9, overflow_strip->num_panels());
1574 EXPECT_FALSE(IsPanelVisible(panels[3])); 1684 EXPECT_FALSE(IsPanelVisible(panels[3]));
1575 EXPECT_TRUE(panels[3]->IsDrawingAttention()); 1685 EXPECT_TRUE(panels[3]->IsDrawingAttention());
1576 EXPECT_TRUE(overflow_indicator->IsDrawingAttention()); 1686 EXPECT_TRUE(overflow_indicator->IsDrawingAttention());
1577 1687
1578 // Close an overflow panel that would move the first oveflow-on-overflow panel 1688 // 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. 1689 // to become visible. Expect the overflow indicator is not showing attention.
1580 // normal: P0, P1, P5 1690 // docked: P0, P1, P5
1581 // overflow: P2, P10, P3, (P4, P6, P7, P9, P11) 1691 // overflow: P2, P10, P3, (P4, P6, P7, P9, P11)
1582 CloseWindowAndWait(panels[8]->browser()); 1692 CloseWindowAndWait(panels[8]->browser());
1583 EXPECT_EQ(3, panel_strip->num_panels()); 1693 EXPECT_EQ(3, panel_strip->num_panels());
1584 EXPECT_EQ(8, overflow_strip->num_panels()); 1694 EXPECT_EQ(8, overflow_strip->num_panels());
1585 EXPECT_TRUE(panels[3]->IsDrawingAttention()); 1695 EXPECT_TRUE(panels[3]->IsDrawingAttention());
1586 EXPECT_FALSE(overflow_indicator->IsDrawingAttention()); 1696 EXPECT_FALSE(overflow_indicator->IsDrawingAttention());
1587 1697
1588 panel_manager->RemoveAll(); 1698 panel_manager->RemoveAll();
1589 } 1699 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698