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

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

Powered by Google App Engine
This is Rietveld 408576698