| 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/docked_panel_strip.h" | 8 #include "chrome/browser/ui/panels/docked_panel_strip.h" |
| 9 #include "chrome/browser/ui/panels/native_panel.h" | 9 #include "chrome/browser/ui/panels/native_panel.h" |
| 10 #include "chrome/browser/ui/panels/overflow_panel_strip.h" | 10 #include "chrome/browser/ui/panels/overflow_panel_strip.h" |
| (...skipping 1287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1298 Panel* panel2 = CreatePanelWithBounds("2", gfx::Rect(0, 0, 200, 200)); | 1298 Panel* panel2 = CreatePanelWithBounds("2", gfx::Rect(0, 0, 200, 200)); |
| 1299 Panel* panel3 = CreatePanelWithBounds("3", gfx::Rect(0, 0, 100, 200)); | 1299 Panel* panel3 = CreatePanelWithBounds("3", gfx::Rect(0, 0, 100, 200)); |
| 1300 Panel* panel4 = CreatePanelWithBounds("4", gfx::Rect(0, 0, 100, 200)); | 1300 Panel* panel4 = CreatePanelWithBounds("4", gfx::Rect(0, 0, 100, 200)); |
| 1301 EXPECT_EQ(4, docked_strip->num_panels()); | 1301 EXPECT_EQ(4, docked_strip->num_panels()); |
| 1302 EXPECT_EQ(0, overflow_strip->num_panels()); | 1302 EXPECT_EQ(0, overflow_strip->num_panels()); |
| 1303 | 1303 |
| 1304 // Resize last panel so that it is too big to fit and overflows. | 1304 // Resize last panel so that it is too big to fit and overflows. |
| 1305 // docked: P1 (250), P2 (200), P3 (100) | 1305 // docked: P1 (250), P2 (200), P3 (100) |
| 1306 // overflow: P4 (250)* | 1306 // overflow: P4 (250)* |
| 1307 gfx::Size new_size(250, 200); | 1307 gfx::Size new_size(250, 200); |
| 1308 panel_manager->OnPreferredWindowSizeChanged(panel4, new_size); | 1308 panel_manager->OnWindowAutoResized(panel4, new_size); |
| 1309 EXPECT_EQ(3, docked_strip->num_panels()); | 1309 EXPECT_EQ(3, docked_strip->num_panels()); |
| 1310 EXPECT_EQ(1, overflow_strip->num_panels()); | 1310 EXPECT_EQ(1, overflow_strip->num_panels()); |
| 1311 EXPECT_EQ(PanelStrip::IN_OVERFLOW, panel4->panel_strip()->type()); | 1311 EXPECT_EQ(PanelStrip::IN_OVERFLOW, panel4->panel_strip()->type()); |
| 1312 EXPECT_TRUE(IsPanelInOverflowStrip(panel4)); | 1312 EXPECT_TRUE(IsPanelInOverflowStrip(panel4)); |
| 1313 EXPECT_EQ(new_size, panel4->restored_size()); | 1313 EXPECT_EQ(new_size, panel4->restored_size()); |
| 1314 | 1314 |
| 1315 // Open another panel that will fit. | 1315 // Open another panel that will fit. |
| 1316 // docked: P1 (250), P2 (200), P3 (100), P5 (100)* | 1316 // docked: P1 (250), P2 (200), P3 (100), P5 (100)* |
| 1317 // overflow: P4 (250) | 1317 // overflow: P4 (250) |
| 1318 Panel* panel5 = CreatePanelWithBounds("5", gfx::Rect(0, 0, 100, 200)); | 1318 Panel* panel5 = CreatePanelWithBounds("5", gfx::Rect(0, 0, 100, 200)); |
| 1319 EXPECT_EQ(4, docked_strip->num_panels()); | 1319 EXPECT_EQ(4, docked_strip->num_panels()); |
| 1320 EXPECT_EQ(1, overflow_strip->num_panels()); | 1320 EXPECT_EQ(1, overflow_strip->num_panels()); |
| 1321 EXPECT_EQ(Panel::EXPANDED, panel5->expansion_state()); | 1321 EXPECT_EQ(Panel::EXPANDED, panel5->expansion_state()); |
| 1322 EXPECT_EQ(PanelStrip::DOCKED, panel5->panel_strip()->type()); | 1322 EXPECT_EQ(PanelStrip::DOCKED, panel5->panel_strip()->type()); |
| 1323 EXPECT_EQ(PanelStrip::IN_OVERFLOW, panel4->panel_strip()->type()); // same | 1323 EXPECT_EQ(PanelStrip::IN_OVERFLOW, panel4->panel_strip()->type()); // same |
| 1324 | 1324 |
| 1325 // Resize a panel from the middle of the strip so that it causes a | 1325 // Resize a panel from the middle of the strip so that it causes a |
| 1326 // panel to overflow. | 1326 // panel to overflow. |
| 1327 // docked: P1 (250), P2 (200), P3 (250)* | 1327 // docked: P1 (250), P2 (200), P3 (250)* |
| 1328 // overflow: P5 (100), P4 (250) | 1328 // overflow: P5 (100), P4 (250) |
| 1329 panel_manager->OnPreferredWindowSizeChanged(panel3, gfx::Size(250, 200)); | 1329 panel_manager->OnWindowAutoResized(panel3, gfx::Size(250, 200)); |
| 1330 EXPECT_EQ(3, docked_strip->num_panels()); | 1330 EXPECT_EQ(3, docked_strip->num_panels()); |
| 1331 EXPECT_EQ(2, overflow_strip->num_panels()); | 1331 EXPECT_EQ(2, overflow_strip->num_panels()); |
| 1332 EXPECT_EQ(PanelStrip::IN_OVERFLOW, panel4->panel_strip()->type()); | 1332 EXPECT_EQ(PanelStrip::IN_OVERFLOW, panel4->panel_strip()->type()); |
| 1333 EXPECT_EQ(PanelStrip::IN_OVERFLOW, panel5->panel_strip()->type()); | 1333 EXPECT_EQ(PanelStrip::IN_OVERFLOW, panel5->panel_strip()->type()); |
| 1334 const OverflowPanelStrip::Panels& overflow = overflow_strip->panels(); | 1334 const OverflowPanelStrip::Panels& overflow = overflow_strip->panels(); |
| 1335 EXPECT_EQ(panel5, overflow[0]); // new overflow panel is first | 1335 EXPECT_EQ(panel5, overflow[0]); // new overflow panel is first |
| 1336 EXPECT_EQ(panel4, overflow[1]); | 1336 EXPECT_EQ(panel4, overflow[1]); |
| 1337 | 1337 |
| 1338 // Resize panel smaller so that panel from overflow can fit. | 1338 // Resize panel smaller so that panel from overflow can fit. |
| 1339 // docked: P1 (250), P2 (200), P3 (100)*, P5 (100) | 1339 // docked: P1 (250), P2 (200), P3 (100)*, P5 (100) |
| 1340 // overflow: P4 (250) | 1340 // overflow: P4 (250) |
| 1341 panel_manager->OnPreferredWindowSizeChanged(panel3, gfx::Size(100, 200)); | 1341 panel_manager->OnWindowAutoResized(panel3, gfx::Size(100, 200)); |
| 1342 EXPECT_EQ(4, docked_strip->num_panels()); | 1342 EXPECT_EQ(4, docked_strip->num_panels()); |
| 1343 EXPECT_EQ(1, overflow_strip->num_panels()); | 1343 EXPECT_EQ(1, overflow_strip->num_panels()); |
| 1344 EXPECT_EQ(PanelStrip::DOCKED, panel5->panel_strip()->type()); | 1344 EXPECT_EQ(PanelStrip::DOCKED, panel5->panel_strip()->type()); |
| 1345 EXPECT_EQ(PanelStrip::IN_OVERFLOW, panel4->panel_strip()->type()); | 1345 EXPECT_EQ(PanelStrip::IN_OVERFLOW, panel4->panel_strip()->type()); |
| 1346 | 1346 |
| 1347 // Resize smaller again but not small enough to fit overflow panel. | 1347 // Resize smaller again but not small enough to fit overflow panel. |
| 1348 // docked: P1 (250), P2 (100)*, P3 (100), P5 (100) | 1348 // docked: P1 (250), P2 (100)*, P3 (100), P5 (100) |
| 1349 // overflow: P4 (250) | 1349 // overflow: P4 (250) |
| 1350 panel_manager->OnPreferredWindowSizeChanged(panel2, gfx::Size(100, 200)); | 1350 panel_manager->OnWindowAutoResized(panel2, gfx::Size(100, 200)); |
| 1351 EXPECT_EQ(4, docked_strip->num_panels()); | 1351 EXPECT_EQ(4, docked_strip->num_panels()); |
| 1352 EXPECT_EQ(1, overflow_strip->num_panels()); | 1352 EXPECT_EQ(1, overflow_strip->num_panels()); |
| 1353 EXPECT_EQ(PanelStrip::IN_OVERFLOW, panel4->panel_strip()->type()); // same | 1353 EXPECT_EQ(PanelStrip::IN_OVERFLOW, panel4->panel_strip()->type()); // same |
| 1354 | 1354 |
| 1355 // Resize overflow panel bigger. It should stay in overflow and bounds | 1355 // Resize overflow panel bigger. It should stay in overflow and bounds |
| 1356 // should not change. | 1356 // should not change. |
| 1357 // docked: P1 (250), P2 (100), P3 (100), P5 (100) | 1357 // docked: P1 (250), P2 (100), P3 (100), P5 (100) |
| 1358 // overflow: P4 (251)* | 1358 // overflow: P4 (251)* |
| 1359 gfx::Rect bounds_before_resize = panel4->GetBounds(); | 1359 gfx::Rect bounds_before_resize = panel4->GetBounds(); |
| 1360 new_size.SetSize(251, 200); | 1360 new_size.SetSize(251, 200); |
| 1361 panel_manager->OnPreferredWindowSizeChanged(panel4, new_size); | 1361 panel_manager->OnWindowAutoResized(panel4, new_size); |
| 1362 EXPECT_EQ(4, docked_strip->num_panels()); | 1362 EXPECT_EQ(4, docked_strip->num_panels()); |
| 1363 EXPECT_EQ(1, overflow_strip->num_panels()); | 1363 EXPECT_EQ(1, overflow_strip->num_panels()); |
| 1364 EXPECT_EQ(PanelStrip::IN_OVERFLOW, panel4->panel_strip()->type()); | 1364 EXPECT_EQ(PanelStrip::IN_OVERFLOW, panel4->panel_strip()->type()); |
| 1365 EXPECT_EQ(bounds_before_resize, panel4->GetBounds()); | 1365 EXPECT_EQ(bounds_before_resize, panel4->GetBounds()); |
| 1366 EXPECT_EQ(new_size, panel4->restored_size()); | 1366 EXPECT_EQ(new_size, panel4->restored_size()); |
| 1367 | 1367 |
| 1368 // Resize overflow panel to make it fit. | 1368 // Resize overflow panel to make it fit. |
| 1369 // docked: P1 (250), P2 (100), P3 (100), P5 (100), P4 (100)* | 1369 // docked: P1 (250), P2 (100), P3 (100), P5 (100), P4 (100)* |
| 1370 // overflow: empty | 1370 // overflow: empty |
| 1371 panel_manager->OnPreferredWindowSizeChanged(panel4, gfx::Size(100, 200)); | 1371 panel_manager->OnWindowAutoResized(panel4, gfx::Size(100, 200)); |
| 1372 EXPECT_EQ(5, docked_strip->num_panels()); | 1372 EXPECT_EQ(5, docked_strip->num_panels()); |
| 1373 EXPECT_EQ(0, overflow_strip->num_panels()); | 1373 EXPECT_EQ(0, overflow_strip->num_panels()); |
| 1374 EXPECT_EQ(PanelStrip::DOCKED, panel4->panel_strip()->type()); | 1374 EXPECT_EQ(PanelStrip::DOCKED, panel4->panel_strip()->type()); |
| 1375 | 1375 |
| 1376 // Resize a panel bigger, but not enough to cause overflow. | 1376 // Resize a panel bigger, but not enough to cause overflow. |
| 1377 // docked: P1 (250), P2 (100), P3 (150)*, P5 (100), P4 (100) | 1377 // docked: P1 (250), P2 (100), P3 (150)*, P5 (100), P4 (100) |
| 1378 // overflow: empty | 1378 // overflow: empty |
| 1379 panel_manager->OnPreferredWindowSizeChanged(panel3, gfx::Size(150, 200)); | 1379 panel_manager->OnWindowAutoResized(panel3, gfx::Size(150, 200)); |
| 1380 EXPECT_EQ(5, docked_strip->num_panels()); | 1380 EXPECT_EQ(5, docked_strip->num_panels()); |
| 1381 EXPECT_EQ(0, overflow_strip->num_panels()); | 1381 EXPECT_EQ(0, overflow_strip->num_panels()); |
| 1382 | 1382 |
| 1383 // Resize a panel to bump more than one panel to overflow. | 1383 // Resize a panel to bump more than one panel to overflow. |
| 1384 // docked: P1 (250), P2 (250)*, P3 (150) | 1384 // docked: P1 (250), P2 (250)*, P3 (150) |
| 1385 // overflow: P5 (100), P4 (100) | 1385 // overflow: P5 (100), P4 (100) |
| 1386 panel_manager->OnPreferredWindowSizeChanged(panel2, gfx::Size(250, 200)); | 1386 panel_manager->OnWindowAutoResized(panel2, gfx::Size(250, 200)); |
| 1387 EXPECT_EQ(3, docked_strip->num_panels()); | 1387 EXPECT_EQ(3, docked_strip->num_panels()); |
| 1388 EXPECT_EQ(2, overflow_strip->num_panels()); | 1388 EXPECT_EQ(2, overflow_strip->num_panels()); |
| 1389 EXPECT_EQ(PanelStrip::IN_OVERFLOW, panel4->panel_strip()->type()); | 1389 EXPECT_EQ(PanelStrip::IN_OVERFLOW, panel4->panel_strip()->type()); |
| 1390 EXPECT_EQ(PanelStrip::IN_OVERFLOW, panel5->panel_strip()->type()); | 1390 EXPECT_EQ(PanelStrip::IN_OVERFLOW, panel5->panel_strip()->type()); |
| 1391 const OverflowPanelStrip::Panels& overflow2 = overflow_strip->panels(); | 1391 const OverflowPanelStrip::Panels& overflow2 = overflow_strip->panels(); |
| 1392 EXPECT_EQ(panel5, overflow2[0]); // strip order is preserved | 1392 EXPECT_EQ(panel5, overflow2[0]); // strip order is preserved |
| 1393 EXPECT_EQ(panel4, overflow2[1]); | 1393 EXPECT_EQ(panel4, overflow2[1]); |
| 1394 | 1394 |
| 1395 panel1->Close(); | 1395 panel1->Close(); |
| 1396 panel2->Close(); | 1396 panel2->Close(); |
| (...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1644 // End full screen mode, expansion occurs again. | 1644 // End full screen mode, expansion occurs again. |
| 1645 overflow_strip->OnFullScreenModeChanged(false); | 1645 overflow_strip->OnFullScreenModeChanged(false); |
| 1646 EXPECT_TRUE(panel_manager->mouse_watcher()->IsActive()); | 1646 EXPECT_TRUE(panel_manager->mouse_watcher()->IsActive()); |
| 1647 MoveMouse(in_overflow_area); | 1647 MoveMouse(in_overflow_area); |
| 1648 EXPECT_GT(overflow_strip->current_display_width(), iconified_width); | 1648 EXPECT_GT(overflow_strip->current_display_width(), iconified_width); |
| 1649 MoveMouse(beyond_overflow_area); | 1649 MoveMouse(beyond_overflow_area); |
| 1650 EXPECT_EQ(iconified_width, overflow_strip->current_display_width()); | 1650 EXPECT_EQ(iconified_width, overflow_strip->current_display_width()); |
| 1651 | 1651 |
| 1652 panel_manager->CloseAll(); | 1652 panel_manager->CloseAll(); |
| 1653 } | 1653 } |
| OLD | NEW |