| Index: chrome/browser/window_sizer_unittest.cc
|
| ===================================================================
|
| --- chrome/browser/window_sizer_unittest.cc (revision 16844)
|
| +++ chrome/browser/window_sizer_unittest.cc (working copy)
|
| @@ -252,7 +252,6 @@
|
| // Test that the next opened window is positioned appropriately given the
|
| // bounds of an existing window of the same type.
|
| TEST(WindowSizerTest, LastWindowBoundsCase) {
|
| -
|
| { // normal, in the middle of the screen somewhere.
|
| gfx::Rect window_bounds;
|
| bool maximized = false;
|
| @@ -263,6 +262,18 @@
|
| EXPECT_EQ(gfx::Rect(20, 20, 500, 400), window_bounds);
|
| }
|
|
|
| + { // too small to satisify the minimum visibility condition.
|
| + gfx::Rect window_bounds;
|
| + bool maximized = false;
|
| + GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(),
|
| + gfx::Rect(10, 10, 29, 29), false, LAST_ACTIVE,
|
| + &window_bounds, &maximized);
|
| + EXPECT_FALSE(maximized);
|
| + EXPECT_EQ(gfx::Rect(20, 20, 30 /* not 29 */, 30 /* not 29 */),
|
| + window_bounds);
|
| + }
|
| +
|
| +
|
| { // normal, but maximized
|
| gfx::Rect window_bounds;
|
| bool maximized = false;
|
| @@ -273,35 +284,61 @@
|
| EXPECT_EQ(gfx::Rect(20, 20, 500, 400), window_bounds);
|
| }
|
|
|
| - { // offset would put the new window offscreen at the bottom
|
| + { // offset would put the new window offscreen at the bottom but the minimum
|
| + // visibility condition is barely satisfied without relocation.
|
| gfx::Rect window_bounds;
|
| bool maximized = false;
|
| GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(),
|
| - gfx::Rect(10, 360, 500, 400), false, LAST_ACTIVE,
|
| + gfx::Rect(10, 728, 500, 400), false, LAST_ACTIVE,
|
| &window_bounds, &maximized);
|
| EXPECT_FALSE(maximized);
|
| - EXPECT_EQ(gfx::Rect(20, 358, 500, 400), window_bounds);
|
| + EXPECT_EQ(gfx::Rect(20, 738, 500, 400), window_bounds);
|
| }
|
|
|
| - { // offset would put the new window offscreen at the right
|
| + { // offset would put the new window offscreen at the bottom and the minimum
|
| + // visibility condition is satisified by relocation.
|
| gfx::Rect window_bounds;
|
| bool maximized = false;
|
| GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(),
|
| - gfx::Rect(520, 10, 500, 400), false, LAST_ACTIVE,
|
| + gfx::Rect(10, 729, 500, 400), false, LAST_ACTIVE,
|
| &window_bounds, &maximized);
|
| EXPECT_FALSE(maximized);
|
| - EXPECT_EQ(gfx::Rect(514, 20, 500, 400), window_bounds);
|
| + EXPECT_EQ(gfx::Rect(20, 738 /* not 739 */, 500, 400), window_bounds);
|
| }
|
|
|
| - { // offset would put the new window offscreen at the bottom right
|
| + { // offset would put the new window offscreen at the right but the minimum
|
| + // visibility condition is barely satisfied without relocation.
|
| gfx::Rect window_bounds;
|
| bool maximized = false;
|
| GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(),
|
| - gfx::Rect(520, 360, 500, 400), false, LAST_ACTIVE,
|
| + gfx::Rect(984, 10, 500, 400), false, LAST_ACTIVE,
|
| &window_bounds, &maximized);
|
| EXPECT_FALSE(maximized);
|
| - EXPECT_EQ(gfx::Rect(514, 358, 500, 400), window_bounds);
|
| + EXPECT_EQ(gfx::Rect(994, 20, 500, 400), window_bounds);
|
| }
|
| +
|
| + { // offset would put the new window offscreen at the right and the minimum
|
| + // visibility condition is satisified by relocation.
|
| + gfx::Rect window_bounds;
|
| + bool maximized = false;
|
| + GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(),
|
| + gfx::Rect(985, 10, 500, 400), false, LAST_ACTIVE,
|
| + &window_bounds, &maximized);
|
| + EXPECT_FALSE(maximized);
|
| + EXPECT_EQ(gfx::Rect(994 /* not 995 */, 20, 500, 400), window_bounds);
|
| + }
|
| +
|
| + { // offset would put the new window offscreen at the bottom right and the
|
| + // minimum visibility condition is satisified by relocation.
|
| + gfx::Rect window_bounds;
|
| + bool maximized = false;
|
| + GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(),
|
| + gfx::Rect(985, 729, 500, 400), false, LAST_ACTIVE,
|
| + &window_bounds, &maximized);
|
| + EXPECT_FALSE(maximized);
|
| + EXPECT_EQ(gfx::Rect(994 /* not 995 */, 738 /* not 739 */, 500, 400),
|
| + window_bounds);
|
| + }
|
| }
|
|
|
| // Test that the window opened is sized appropriately given persisted sizes.
|
| @@ -353,160 +390,148 @@
|
| EXPECT_EQ(initial_bounds, window_bounds);
|
| }
|
|
|
| - { // a little off the left
|
| + { // off the left but the minimum visibility condition is barely satisfied
|
| + // without relocaiton.
|
| + gfx::Rect initial_bounds(-470, 50, 500, 400);
|
| +
|
| gfx::Rect window_bounds;
|
| bool maximized;
|
| GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(),
|
| - gfx::Rect(-10, 50, 500, 400), false, PERSISTED,
|
| + initial_bounds, false, PERSISTED,
|
| &window_bounds, &maximized);
|
| EXPECT_FALSE(maximized);
|
| - EXPECT_EQ(gfx::Rect(10, 50, 500, 400), window_bounds);
|
| + EXPECT_EQ(initial_bounds, window_bounds);
|
| }
|
|
|
| - { // a little off the top
|
| + { // off the left and the minimum visibility condition is satisfied by
|
| + // relocation.
|
| gfx::Rect window_bounds;
|
| bool maximized;
|
| GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(),
|
| - gfx::Rect(50, -10, 500, 400), false, PERSISTED,
|
| + gfx::Rect(-471, 50, 500, 400), false, PERSISTED,
|
| &window_bounds, &maximized);
|
| EXPECT_FALSE(maximized);
|
| - EXPECT_EQ(gfx::Rect(50, 10, 500, 400), window_bounds);
|
| + EXPECT_EQ(gfx::Rect(-470 /* not -471 */, 50, 500, 400), window_bounds);
|
| }
|
|
|
| - { // a little off the right
|
| + { // off the top but the minimum visibility condition is barely satisified
|
| + // without relocation.
|
| + gfx::Rect initial_bounds(50, -370, 500, 400);
|
| +
|
| gfx::Rect window_bounds;
|
| bool maximized;
|
| GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(),
|
| - gfx::Rect(534, 50, 500, 400), false, PERSISTED,
|
| + initial_bounds, false, PERSISTED,
|
| &window_bounds, &maximized);
|
| EXPECT_FALSE(maximized);
|
| - EXPECT_EQ(gfx::Rect(514, 50, 500, 400), window_bounds);
|
| + EXPECT_EQ(initial_bounds, window_bounds);
|
| }
|
|
|
| - { // a little off the bottom
|
| + { // off the top and the minimum visibility condition is satisified by
|
| + // relocation.
|
| gfx::Rect window_bounds;
|
| bool maximized;
|
| GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(),
|
| - gfx::Rect(50, 378, 500, 400), false, PERSISTED,
|
| + gfx::Rect(50, -371, 500, 400), false, PERSISTED,
|
| &window_bounds, &maximized);
|
| EXPECT_FALSE(maximized);
|
| - EXPECT_EQ(gfx::Rect(50, 358, 500, 400), window_bounds);
|
| + EXPECT_EQ(gfx::Rect(50, -370 /* not -371 */, 500, 400), window_bounds);
|
| }
|
|
|
| - { // a little off the topleft
|
| + { // off the right but the minimum visibility condition is barely satisified
|
| + // without relocation.
|
| + gfx::Rect initial_bounds(994, 50, 500, 400);
|
| +
|
| gfx::Rect window_bounds;
|
| bool maximized;
|
| GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(),
|
| - gfx::Rect(-10, -10, 500, 400), false, PERSISTED,
|
| + initial_bounds, false, PERSISTED,
|
| &window_bounds, &maximized);
|
| EXPECT_FALSE(maximized);
|
| - EXPECT_EQ(gfx::Rect(10, 10, 500, 400), window_bounds);
|
| + EXPECT_EQ(initial_bounds, window_bounds);
|
| }
|
|
|
| - { // a little off the topright
|
| + { // off the right and the minimum visibility condition is satisified by
|
| + // relocation.
|
| gfx::Rect window_bounds;
|
| bool maximized;
|
| GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(),
|
| - gfx::Rect(534, -10, 500, 400), false, PERSISTED,
|
| + gfx::Rect(995, 50, 500, 400), false, PERSISTED,
|
| &window_bounds, &maximized);
|
| EXPECT_FALSE(maximized);
|
| - EXPECT_EQ(gfx::Rect(514, 10, 500, 400), window_bounds);
|
| + EXPECT_EQ(gfx::Rect(994 /* not 995 */, 50, 500, 400), window_bounds);
|
| }
|
|
|
| - { // a little off the bottomleft
|
| + { // off the bottom but the minimum visibility condition is barely satisified
|
| + // without relocation.
|
| + gfx::Rect initial_bounds(50, 738, 500, 400);
|
| +
|
| gfx::Rect window_bounds;
|
| bool maximized;
|
| GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(),
|
| - gfx::Rect(-10, 378, 500, 400), false, PERSISTED,
|
| + initial_bounds, false, PERSISTED,
|
| &window_bounds, &maximized);
|
| EXPECT_FALSE(maximized);
|
| - EXPECT_EQ(gfx::Rect(10, 358, 500, 400), window_bounds);
|
| + EXPECT_EQ(initial_bounds, window_bounds);
|
| }
|
|
|
| - { // a little off the bottomright
|
| + { // off the bottom and the minimum visibility condition is satisified by
|
| + // relocation.
|
| gfx::Rect window_bounds;
|
| bool maximized;
|
| GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(),
|
| - gfx::Rect(534, 378, 500, 400), false, PERSISTED,
|
| + gfx::Rect(50, 739, 500, 400), false, PERSISTED,
|
| &window_bounds, &maximized);
|
| EXPECT_FALSE(maximized);
|
| - EXPECT_EQ(gfx::Rect(514, 358, 500, 400), window_bounds);
|
| + EXPECT_EQ(gfx::Rect(50, 738 /* not 739 */, 500, 400), window_bounds);
|
| }
|
|
|
| - { // split across two, bias right
|
| - gfx::Rect initial_bounds(-50, 50, 500, 400);
|
| + { // off the topleft and the minimum visibility condition is satisified by
|
| + // relocation.
|
| gfx::Rect window_bounds;
|
| bool maximized;
|
| - GetWindowBounds(tentwentyfour, tentwentyfour, left_nonprimary,
|
| - initial_bounds, false, PERSISTED, &window_bounds,
|
| - &maximized);
|
| - EXPECT_FALSE(maximized);
|
| - EXPECT_EQ(initial_bounds, window_bounds);
|
| -
|
| - initial_bounds.Offset(tentwentyfour.width(), 0);
|
| - GetWindowBounds(tentwentyfour, tentwentyfour, right_nonprimary,
|
| - initial_bounds, false, PERSISTED, &window_bounds,
|
| - &maximized);
|
| - EXPECT_FALSE(maximized);
|
| - EXPECT_EQ(initial_bounds, window_bounds);
|
| - }
|
| -
|
| - { // split across two, bias left
|
| - gfx::Rect initial_bounds(-450, 50, 500, 400);
|
| - gfx::Rect window_bounds;
|
| - bool maximized;
|
| - GetWindowBounds(tentwentyfour, tentwentyfour, left_nonprimary,
|
| - initial_bounds, false, PERSISTED, &window_bounds,
|
| - &maximized);
|
| - EXPECT_FALSE(maximized);
|
| - EXPECT_EQ(initial_bounds, window_bounds);
|
| -
|
| - initial_bounds.Offset(tentwentyfour.width(), 0);
|
| - GetWindowBounds(tentwentyfour, tentwentyfour, right_nonprimary,
|
| - initial_bounds, false, PERSISTED, &window_bounds,
|
| - &maximized);
|
| - EXPECT_FALSE(maximized);
|
| - EXPECT_EQ(initial_bounds, window_bounds);
|
| - }
|
| -
|
| - { // split across two, a little off left
|
| - gfx::Rect window_bounds;
|
| - bool maximized;
|
| - GetWindowBounds(tentwentyfour, tentwentyfour, top_nonprimary,
|
| - gfx::Rect(-50, -50, 500, 400), false, PERSISTED,
|
| + GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(),
|
| + gfx::Rect(-471, -371, 500, 400), false, PERSISTED,
|
| &window_bounds, &maximized);
|
| EXPECT_FALSE(maximized);
|
| - EXPECT_EQ(gfx::Rect(10, -50, 500, 400), window_bounds);
|
| + EXPECT_EQ(gfx::Rect(-470 /* not -471 */, -370 /* not -371 */, 500, 400),
|
| + window_bounds);
|
| }
|
|
|
| - { // split across two, a little off right
|
| + { // off the topright and the minimum visibility condition is satisified by
|
| + // relocation.
|
| gfx::Rect window_bounds;
|
| bool maximized;
|
| - GetWindowBounds(tentwentyfour, tentwentyfour, top_nonprimary,
|
| - gfx::Rect(534, -50, 500, 400), false, PERSISTED,
|
| + GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(),
|
| + gfx::Rect(995, -371, 500, 400), false, PERSISTED,
|
| &window_bounds, &maximized);
|
| EXPECT_FALSE(maximized);
|
| - EXPECT_EQ(gfx::Rect(514, -50, 500, 400), window_bounds);
|
| + EXPECT_EQ(gfx::Rect(994 /* not 995 */, -370 /* not -371 */, 500, 400),
|
| + window_bounds);
|
| }
|
|
|
| - { // split across two, a little off top
|
| + { // off the bottomleft and the minimum visibility condition is satisified by
|
| + // relocation.
|
| gfx::Rect window_bounds;
|
| bool maximized;
|
| - GetWindowBounds(tentwentyfour, tentwentyfour, left_nonprimary,
|
| - gfx::Rect(-50, -50, 500, 400), false, PERSISTED,
|
| + GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(),
|
| + gfx::Rect(-471, 739, 500, 400), false, PERSISTED,
|
| &window_bounds, &maximized);
|
| EXPECT_FALSE(maximized);
|
| - EXPECT_EQ(gfx::Rect(-50, 10, 500, 400), window_bounds);
|
| + EXPECT_EQ(gfx::Rect(-470 /* not -471 */, 738 /* not 739 */, 500, 400),
|
| + window_bounds);
|
| }
|
|
|
| - { // split across two, a little off bottom
|
| + { // off the bottomright and the minimum visibility condition is satisified by
|
| + // relocation.
|
| gfx::Rect window_bounds;
|
| bool maximized;
|
| - GetWindowBounds(tentwentyfour, tentwentyfour, left_nonprimary,
|
| - gfx::Rect(-50, 378, 500, 400), false, PERSISTED,
|
| + GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(),
|
| + gfx::Rect(995, 739, 500, 400), false, PERSISTED,
|
| &window_bounds, &maximized);
|
| EXPECT_FALSE(maximized);
|
| - EXPECT_EQ(gfx::Rect(-50, 358, 500, 400), window_bounds);
|
| + EXPECT_EQ(gfx::Rect(994 /* not 995 */, 738 /* not 739 */, 500, 400),
|
| + window_bounds);
|
| }
|
|
|
| { // entirely off left (monitor was detached since last run)
|
| @@ -516,7 +541,7 @@
|
| gfx::Rect(-700, 50, 500, 400), false, PERSISTED,
|
| &window_bounds, &maximized);
|
| EXPECT_FALSE(maximized);
|
| - EXPECT_EQ(gfx::Rect(10, 50, 500, 400), window_bounds);
|
| + EXPECT_EQ(gfx::Rect(-470 /* not -700 */, 50, 500, 400), window_bounds);
|
| }
|
|
|
| { // entirely off top (monitor was detached since last run)
|
| @@ -526,7 +551,7 @@
|
| gfx::Rect(50, -500, 500, 400), false, PERSISTED,
|
| &window_bounds, &maximized);
|
| EXPECT_FALSE(maximized);
|
| - EXPECT_EQ(gfx::Rect(50, 10, 500, 400), window_bounds);
|
| + EXPECT_EQ(gfx::Rect(50, -370 /* not -500 */, 500, 400), window_bounds);
|
| }
|
|
|
| { // entirely off right (monitor was detached since last run)
|
| @@ -536,7 +561,7 @@
|
| gfx::Rect(1200, 50, 500, 400), false, PERSISTED,
|
| &window_bounds, &maximized);
|
| EXPECT_FALSE(maximized);
|
| - EXPECT_EQ(gfx::Rect(514, 50, 500, 400), window_bounds);
|
| + EXPECT_EQ(gfx::Rect(994 /* not 1200 */, 50, 500, 400), window_bounds);
|
| }
|
|
|
| { // entirely off bottom (monitor was detached since last run)
|
| @@ -546,44 +571,17 @@
|
| gfx::Rect(50, 800, 500, 400), false, PERSISTED,
|
| &window_bounds, &maximized);
|
| EXPECT_FALSE(maximized);
|
| - EXPECT_EQ(gfx::Rect(50, 358, 500, 400), window_bounds);
|
| + EXPECT_EQ(gfx::Rect(50, 738 /* not 800 */, 500, 400), window_bounds);
|
| }
|
|
|
| - { // width and height too large (monitor screen resolution changed since last
|
| - // run)
|
| + { // width and height too small
|
| gfx::Rect window_bounds;
|
| bool maximized;
|
| GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(),
|
| - gfx::Rect(10, 10, 1200, 900), false, PERSISTED,
|
| + gfx::Rect(10, 10, 29, 29), false, PERSISTED,
|
| &window_bounds, &maximized);
|
| EXPECT_FALSE(maximized);
|
| - EXPECT_EQ(gfx::Rect(10, 10, 1004, 748), window_bounds);
|
| + EXPECT_EQ(gfx::Rect(10, 10, 30 /* not 29 */, 30 /* not 29 */),
|
| + window_bounds);
|
| }
|
| -
|
| - { // Handles taskbar offset on the top.
|
| - gfx::Rect initial_bounds(10, 10, 500, 400);
|
| -
|
| - gfx::Rect window_bounds;
|
| - bool maximized;
|
| - GetWindowBounds(tentwentyfour, taskbar_top_work_area, gfx::Rect(),
|
| - initial_bounds, false, PERSISTED, &window_bounds,
|
| - &maximized);
|
| - EXPECT_FALSE(maximized);
|
| - initial_bounds.Offset(taskbar_top_work_area.x(), taskbar_top_work_area.y());
|
| - EXPECT_EQ(initial_bounds, window_bounds);
|
| - }
|
| -
|
| - { // Handles taskbar offset on the left.
|
| - gfx::Rect initial_bounds(10, 10, 500, 400);
|
| -
|
| - gfx::Rect window_bounds;
|
| - bool maximized;
|
| - GetWindowBounds(tentwentyfour, taskbar_left_work_area, gfx::Rect(),
|
| - initial_bounds, false, PERSISTED, &window_bounds,
|
| - &maximized);
|
| - EXPECT_FALSE(maximized);
|
| - initial_bounds.Offset(taskbar_left_work_area.x(),
|
| - taskbar_left_work_area.y());
|
| - EXPECT_EQ(initial_bounds, window_bounds);
|
| - }
|
| }
|
|
|