OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 } |
OLD | NEW |