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 |