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

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

Issue 9517010: Change panels to be able to turn off autoresize. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix assert at the end of RenderWidget::Resize which fixes the tests on OSX. Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <vector> 5 #include <vector>
6 #include "chrome/browser/ui/browser.h" 6 #include "chrome/browser/ui/browser.h"
7 #include "chrome/browser/ui/panels/base_panel_browser_test.h" 7 #include "chrome/browser/ui/panels/base_panel_browser_test.h"
8 #include "chrome/browser/ui/panels/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
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
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 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/panels/panel_manager.cc ('k') | content/browser/renderer_host/render_view_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698