OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "chrome/browser/ui/window_sizer.h" | 5 #include "chrome/browser/ui/window_sizer.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
90 std::vector<gfx::Rect> monitor_bounds_; | 90 std::vector<gfx::Rect> monitor_bounds_; |
91 | 91 |
92 DISALLOW_COPY_AND_ASSIGN(TestMonitorInfoProvider); | 92 DISALLOW_COPY_AND_ASSIGN(TestMonitorInfoProvider); |
93 }; | 93 }; |
94 | 94 |
95 // Testing implementation of WindowSizer::StateProvider that we use to fake | 95 // Testing implementation of WindowSizer::StateProvider that we use to fake |
96 // persistent storage and existing windows. | 96 // persistent storage and existing windows. |
97 class TestStateProvider : public WindowSizer::StateProvider { | 97 class TestStateProvider : public WindowSizer::StateProvider { |
98 public: | 98 public: |
99 TestStateProvider() | 99 TestStateProvider() |
100 : persistent_maximized_(false), | 100 : has_persistent_data_(false), |
101 has_persistent_data_(false), | |
102 has_last_active_data_(false) { | 101 has_last_active_data_(false) { |
103 } | 102 } |
104 virtual ~TestStateProvider() {} | 103 virtual ~TestStateProvider() {} |
105 | 104 |
106 void SetPersistentState(const gfx::Rect& bounds, | 105 void SetPersistentState(const gfx::Rect& bounds, |
107 bool maximized, | |
108 const gfx::Rect& work_area, | 106 const gfx::Rect& work_area, |
109 bool has_persistent_data) { | 107 bool has_persistent_data) { |
110 persistent_bounds_ = bounds; | 108 persistent_bounds_ = bounds; |
111 persistent_maximized_ = maximized; | |
112 persistent_work_area_ = work_area; | 109 persistent_work_area_ = work_area; |
113 has_persistent_data_ = has_persistent_data; | 110 has_persistent_data_ = has_persistent_data; |
114 } | 111 } |
115 | 112 |
116 void SetLastActiveState(const gfx::Rect& bounds, bool has_last_active_data) { | 113 void SetLastActiveState(const gfx::Rect& bounds, bool has_last_active_data) { |
117 last_active_bounds_ = bounds; | 114 last_active_bounds_ = bounds; |
118 has_last_active_data_ = has_last_active_data; | 115 has_last_active_data_ = has_last_active_data; |
119 } | 116 } |
120 | 117 |
121 // Overridden from WindowSizer::StateProvider: | 118 // Overridden from WindowSizer::StateProvider: |
122 virtual bool GetPersistentState(gfx::Rect* bounds, | 119 virtual bool GetPersistentState(gfx::Rect* bounds, |
123 bool* maximized, | |
124 gfx::Rect* saved_work_area) const { | 120 gfx::Rect* saved_work_area) const { |
125 *bounds = persistent_bounds_; | 121 *bounds = persistent_bounds_; |
126 *maximized = persistent_maximized_; | |
127 *saved_work_area = persistent_work_area_; | 122 *saved_work_area = persistent_work_area_; |
128 return has_persistent_data_; | 123 return has_persistent_data_; |
129 } | 124 } |
130 | 125 |
131 virtual bool GetLastActiveWindowState(gfx::Rect* bounds) const { | 126 virtual bool GetLastActiveWindowState(gfx::Rect* bounds) const { |
132 *bounds = last_active_bounds_; | 127 *bounds = last_active_bounds_; |
133 return has_last_active_data_; | 128 return has_last_active_data_; |
134 } | 129 } |
135 | 130 |
136 private: | 131 private: |
137 gfx::Rect persistent_bounds_; | 132 gfx::Rect persistent_bounds_; |
138 bool persistent_maximized_; | |
139 gfx::Rect persistent_work_area_; | 133 gfx::Rect persistent_work_area_; |
140 bool has_persistent_data_; | 134 bool has_persistent_data_; |
141 | 135 |
142 gfx::Rect last_active_bounds_; | 136 gfx::Rect last_active_bounds_; |
143 bool has_last_active_data_; | 137 bool has_last_active_data_; |
144 | 138 |
145 DISALLOW_COPY_AND_ASSIGN(TestStateProvider); | 139 DISALLOW_COPY_AND_ASSIGN(TestStateProvider); |
146 }; | 140 }; |
147 | 141 |
148 // A convenience function to read the window bounds from the window sizer | 142 // A convenience function to read the window bounds from the window sizer |
149 // according to the specified configuration. | 143 // according to the specified configuration. |
150 enum Source { DEFAULT, LAST_ACTIVE, PERSISTED }; | 144 enum Source { DEFAULT, LAST_ACTIVE, PERSISTED }; |
151 static void GetWindowBounds(const gfx::Rect& monitor1_bounds, | 145 static void GetWindowBounds(const gfx::Rect& monitor1_bounds, |
152 const gfx::Rect& monitor1_work_area, | 146 const gfx::Rect& monitor1_work_area, |
153 const gfx::Rect& monitor2_bounds, | 147 const gfx::Rect& monitor2_bounds, |
154 const gfx::Rect& state, | 148 const gfx::Rect& state, |
155 bool maximized, | |
156 const gfx::Rect& work_area, | 149 const gfx::Rect& work_area, |
157 Source source, | 150 Source source, |
158 gfx::Rect* out_bounds, | 151 gfx::Rect* out_bounds) { |
159 bool* out_maximized) { | |
160 TestMonitorInfoProvider* mip = new TestMonitorInfoProvider; | 152 TestMonitorInfoProvider* mip = new TestMonitorInfoProvider; |
161 mip->AddMonitor(monitor1_bounds, monitor1_work_area); | 153 mip->AddMonitor(monitor1_bounds, monitor1_work_area); |
162 if (!monitor2_bounds.IsEmpty()) | 154 if (!monitor2_bounds.IsEmpty()) |
163 mip->AddMonitor(monitor2_bounds, monitor2_bounds); | 155 mip->AddMonitor(monitor2_bounds, monitor2_bounds); |
164 TestStateProvider* sp = new TestStateProvider; | 156 TestStateProvider* sp = new TestStateProvider; |
165 if (source == PERSISTED) | 157 if (source == PERSISTED) |
166 sp->SetPersistentState(state, maximized, work_area, true); | 158 sp->SetPersistentState(state, work_area, true); |
167 else if (source == LAST_ACTIVE) | 159 else if (source == LAST_ACTIVE) |
168 sp->SetLastActiveState(state, true); | 160 sp->SetLastActiveState(state, true); |
169 WindowSizer sizer(sp, mip); | 161 WindowSizer sizer(sp, mip); |
170 sizer.DetermineWindowBounds(gfx::Rect(), out_bounds, out_maximized); | 162 sizer.DetermineWindowBounds(gfx::Rect(), out_bounds); |
171 } | 163 } |
172 | 164 |
173 // Test that the window is sized appropriately for the first run experience | 165 // Test that the window is sized appropriately for the first run experience |
174 // where the default window bounds calculation is invoked. | 166 // where the default window bounds calculation is invoked. |
175 TEST(WindowSizerTest, DefaultSizeCase) { | 167 TEST(WindowSizerTest, DefaultSizeCase) { |
176 { // 4:3 monitor case, 1024x768, no taskbar | 168 { // 4:3 monitor case, 1024x768, no taskbar |
177 gfx::Rect window_bounds; | 169 gfx::Rect window_bounds; |
178 bool maximized; | |
179 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), gfx::Rect(), | 170 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), gfx::Rect(), |
180 false, gfx::Rect(), DEFAULT, &window_bounds, &maximized); | 171 gfx::Rect(), DEFAULT, &window_bounds); |
181 EXPECT_FALSE(maximized); | |
182 EXPECT_EQ(gfx::Rect(kWindowTilePixels, kWindowTilePixels, | 172 EXPECT_EQ(gfx::Rect(kWindowTilePixels, kWindowTilePixels, |
183 1024 - kWindowTilePixels * 2, | 173 1024 - kWindowTilePixels * 2, |
184 768 - kWindowTilePixels * 2), | 174 768 - kWindowTilePixels * 2), |
185 window_bounds); | 175 window_bounds); |
186 } | 176 } |
187 | 177 |
188 { // 4:3 monitor case, 1024x768, taskbar on bottom | 178 { // 4:3 monitor case, 1024x768, taskbar on bottom |
189 gfx::Rect window_bounds; | 179 gfx::Rect window_bounds; |
190 bool maximized; | |
191 GetWindowBounds(tentwentyfour, taskbar_bottom_work_area, gfx::Rect(), | 180 GetWindowBounds(tentwentyfour, taskbar_bottom_work_area, gfx::Rect(), |
192 gfx::Rect(), false, gfx::Rect(), DEFAULT, &window_bounds, | 181 gfx::Rect(), gfx::Rect(), DEFAULT, &window_bounds); |
193 &maximized); | |
194 EXPECT_FALSE(maximized); | |
195 EXPECT_EQ(gfx::Rect(kWindowTilePixels, kWindowTilePixels, | 182 EXPECT_EQ(gfx::Rect(kWindowTilePixels, kWindowTilePixels, |
196 1024 - kWindowTilePixels * 2, | 183 1024 - kWindowTilePixels * 2, |
197 (taskbar_bottom_work_area.height() - | 184 (taskbar_bottom_work_area.height() - |
198 kWindowTilePixels * 2)), | 185 kWindowTilePixels * 2)), |
199 window_bounds); | 186 window_bounds); |
200 } | 187 } |
201 | 188 |
202 { // 4:3 monitor case, 1024x768, taskbar on right | 189 { // 4:3 monitor case, 1024x768, taskbar on right |
203 gfx::Rect window_bounds; | 190 gfx::Rect window_bounds; |
204 bool maximized; | |
205 GetWindowBounds(tentwentyfour, taskbar_right_work_area, gfx::Rect(), | 191 GetWindowBounds(tentwentyfour, taskbar_right_work_area, gfx::Rect(), |
206 gfx::Rect(), false, gfx::Rect(), DEFAULT, &window_bounds, | 192 gfx::Rect(), gfx::Rect(), DEFAULT, &window_bounds); |
207 &maximized); | |
208 EXPECT_FALSE(maximized); | |
209 EXPECT_EQ(gfx::Rect(kWindowTilePixels, kWindowTilePixels, | 193 EXPECT_EQ(gfx::Rect(kWindowTilePixels, kWindowTilePixels, |
210 taskbar_right_work_area.width() - kWindowTilePixels*2, | 194 taskbar_right_work_area.width() - kWindowTilePixels*2, |
211 768 - kWindowTilePixels * 2), | 195 768 - kWindowTilePixels * 2), |
212 window_bounds); | 196 window_bounds); |
213 } | 197 } |
214 | 198 |
215 { // 4:3 monitor case, 1024x768, taskbar on left | 199 { // 4:3 monitor case, 1024x768, taskbar on left |
216 gfx::Rect window_bounds; | 200 gfx::Rect window_bounds; |
217 bool maximized; | |
218 GetWindowBounds(tentwentyfour, taskbar_left_work_area, gfx::Rect(), | 201 GetWindowBounds(tentwentyfour, taskbar_left_work_area, gfx::Rect(), |
219 gfx::Rect(), false, gfx::Rect(), DEFAULT, &window_bounds, | 202 gfx::Rect(), gfx::Rect(), DEFAULT, &window_bounds); |
220 &maximized); | |
221 EXPECT_FALSE(maximized); | |
222 EXPECT_EQ(gfx::Rect(taskbar_left_work_area.x() + kWindowTilePixels, | 203 EXPECT_EQ(gfx::Rect(taskbar_left_work_area.x() + kWindowTilePixels, |
223 kWindowTilePixels, | 204 kWindowTilePixels, |
224 taskbar_left_work_area.width() - kWindowTilePixels * 2, | 205 taskbar_left_work_area.width() - kWindowTilePixels * 2, |
225 (taskbar_left_work_area.height() - | 206 (taskbar_left_work_area.height() - |
226 kWindowTilePixels * 2)), | 207 kWindowTilePixels * 2)), |
227 window_bounds); | 208 window_bounds); |
228 } | 209 } |
229 | 210 |
230 { // 4:3 monitor case, 1024x768, taskbar on top | 211 { // 4:3 monitor case, 1024x768, taskbar on top |
231 gfx::Rect window_bounds; | 212 gfx::Rect window_bounds; |
232 bool maximized; | |
233 GetWindowBounds(tentwentyfour, taskbar_top_work_area, gfx::Rect(), | 213 GetWindowBounds(tentwentyfour, taskbar_top_work_area, gfx::Rect(), |
234 gfx::Rect(), false, gfx::Rect(), DEFAULT, &window_bounds, | 214 gfx::Rect(), gfx::Rect(), DEFAULT, &window_bounds); |
235 &maximized); | |
236 EXPECT_FALSE(maximized); | |
237 EXPECT_EQ(gfx::Rect(kWindowTilePixels, | 215 EXPECT_EQ(gfx::Rect(kWindowTilePixels, |
238 taskbar_top_work_area.y() + kWindowTilePixels, | 216 taskbar_top_work_area.y() + kWindowTilePixels, |
239 1024 - kWindowTilePixels * 2, | 217 1024 - kWindowTilePixels * 2, |
240 taskbar_top_work_area.height() - kWindowTilePixels * 2), | 218 taskbar_top_work_area.height() - kWindowTilePixels * 2), |
241 window_bounds); | 219 window_bounds); |
242 } | 220 } |
243 | 221 |
244 { // 4:3 monitor case, 1280x1024 | 222 { // 4:3 monitor case, 1280x1024 |
245 gfx::Rect window_bounds; | 223 gfx::Rect window_bounds; |
246 bool maximized; | |
247 GetWindowBounds(twelveeighty, twelveeighty, gfx::Rect(), gfx::Rect(), | 224 GetWindowBounds(twelveeighty, twelveeighty, gfx::Rect(), gfx::Rect(), |
248 false, gfx::Rect(), DEFAULT, &window_bounds, &maximized); | 225 gfx::Rect(), DEFAULT, &window_bounds); |
249 EXPECT_FALSE(maximized); | |
250 EXPECT_EQ(gfx::Rect(kWindowTilePixels, kWindowTilePixels, | 226 EXPECT_EQ(gfx::Rect(kWindowTilePixels, kWindowTilePixels, |
251 1050, | 227 1050, |
252 1024 - kWindowTilePixels * 2), | 228 1024 - kWindowTilePixels * 2), |
253 window_bounds); | 229 window_bounds); |
254 } | 230 } |
255 | 231 |
256 { // 4:3 monitor case, 1600x1200 | 232 { // 4:3 monitor case, 1600x1200 |
257 gfx::Rect window_bounds; | 233 gfx::Rect window_bounds; |
258 bool maximized; | |
259 GetWindowBounds(sixteenhundred, sixteenhundred, gfx::Rect(), gfx::Rect(), | 234 GetWindowBounds(sixteenhundred, sixteenhundred, gfx::Rect(), gfx::Rect(), |
260 false, gfx::Rect(), DEFAULT, &window_bounds, &maximized); | 235 gfx::Rect(), DEFAULT, &window_bounds); |
261 EXPECT_FALSE(maximized); | |
262 EXPECT_EQ(gfx::Rect(kWindowTilePixels, kWindowTilePixels, | 236 EXPECT_EQ(gfx::Rect(kWindowTilePixels, kWindowTilePixels, |
263 1050, | 237 1050, |
264 1200 - kWindowTilePixels * 2), | 238 1200 - kWindowTilePixels * 2), |
265 window_bounds); | 239 window_bounds); |
266 } | 240 } |
267 | 241 |
268 { // 16:10 monitor case, 1680x1050 | 242 { // 16:10 monitor case, 1680x1050 |
269 gfx::Rect window_bounds; | 243 gfx::Rect window_bounds; |
270 bool maximized; | |
271 GetWindowBounds(sixteeneighty, sixteeneighty, gfx::Rect(), gfx::Rect(), | 244 GetWindowBounds(sixteeneighty, sixteeneighty, gfx::Rect(), gfx::Rect(), |
272 false, gfx::Rect(), DEFAULT, &window_bounds, &maximized); | 245 gfx::Rect(), DEFAULT, &window_bounds); |
273 EXPECT_FALSE(maximized); | |
274 EXPECT_EQ(gfx::Rect(kWindowTilePixels, kWindowTilePixels, | 246 EXPECT_EQ(gfx::Rect(kWindowTilePixels, kWindowTilePixels, |
275 840 - static_cast<int>(kWindowTilePixels * 1.5), | 247 840 - static_cast<int>(kWindowTilePixels * 1.5), |
276 1050 - kWindowTilePixels * 2), | 248 1050 - kWindowTilePixels * 2), |
277 window_bounds); | 249 window_bounds); |
278 } | 250 } |
279 | 251 |
280 { // 16:10 monitor case, 1920x1200 | 252 { // 16:10 monitor case, 1920x1200 |
281 gfx::Rect window_bounds; | 253 gfx::Rect window_bounds; |
282 bool maximized; | |
283 GetWindowBounds(nineteentwenty, nineteentwenty, gfx::Rect(), gfx::Rect(), | 254 GetWindowBounds(nineteentwenty, nineteentwenty, gfx::Rect(), gfx::Rect(), |
284 false, gfx::Rect(), DEFAULT, &window_bounds, &maximized); | 255 gfx::Rect(), DEFAULT, &window_bounds); |
285 EXPECT_FALSE(maximized); | |
286 EXPECT_EQ(gfx::Rect(kWindowTilePixels, kWindowTilePixels, | 256 EXPECT_EQ(gfx::Rect(kWindowTilePixels, kWindowTilePixels, |
287 960 - static_cast<int>(kWindowTilePixels * 1.5), | 257 960 - static_cast<int>(kWindowTilePixels * 1.5), |
288 1200 - kWindowTilePixels * 2), | 258 1200 - kWindowTilePixels * 2), |
289 window_bounds); | 259 window_bounds); |
290 } | 260 } |
291 } | 261 } |
292 | 262 |
293 // Test that the next opened window is positioned appropriately given the | 263 // Test that the next opened window is positioned appropriately given the |
294 // bounds of an existing window of the same type. | 264 // bounds of an existing window of the same type. |
295 TEST(WindowSizerTest, LastWindowBoundsCase) { | 265 TEST(WindowSizerTest, LastWindowBoundsCase) { |
296 { // normal, in the middle of the screen somewhere. | 266 { // normal, in the middle of the screen somewhere. |
297 gfx::Rect window_bounds; | 267 gfx::Rect window_bounds; |
298 bool maximized = false; | |
299 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 268 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
300 gfx::Rect(kWindowTilePixels, kWindowTilePixels, 500, 400), | 269 gfx::Rect(kWindowTilePixels, kWindowTilePixels, 500, 400), |
301 false, gfx::Rect(), LAST_ACTIVE, | 270 gfx::Rect(), LAST_ACTIVE, &window_bounds); |
302 &window_bounds, &maximized); | |
303 EXPECT_FALSE(maximized); | |
304 EXPECT_EQ(gfx::Rect(kWindowTilePixels * 2, | 271 EXPECT_EQ(gfx::Rect(kWindowTilePixels * 2, |
305 kWindowTilePixels * 2, 500, 400), window_bounds); | 272 kWindowTilePixels * 2, 500, 400), window_bounds); |
306 } | 273 } |
307 | 274 |
308 { // taskbar on top. | 275 { // taskbar on top. |
309 gfx::Rect window_bounds; | 276 gfx::Rect window_bounds; |
310 bool maximized = false; | |
311 GetWindowBounds(tentwentyfour, taskbar_top_work_area, gfx::Rect(), | 277 GetWindowBounds(tentwentyfour, taskbar_top_work_area, gfx::Rect(), |
312 gfx::Rect(kWindowTilePixels, kWindowTilePixels, 500, 400), | 278 gfx::Rect(kWindowTilePixels, kWindowTilePixels, 500, 400), |
313 false, gfx::Rect(), LAST_ACTIVE, | 279 gfx::Rect(), LAST_ACTIVE, &window_bounds); |
314 &window_bounds, &maximized); | |
315 EXPECT_FALSE(maximized); | |
316 EXPECT_EQ(gfx::Rect(kWindowTilePixels * 2, | 280 EXPECT_EQ(gfx::Rect(kWindowTilePixels * 2, |
317 std::max(kWindowTilePixels * 2, | 281 std::max(kWindowTilePixels * 2, |
318 34 /* toolbar height */), | 282 34 /* toolbar height */), |
319 500, 400), window_bounds); | 283 500, 400), window_bounds); |
320 } | 284 } |
321 | 285 |
322 { // too small to satisify the minimum visibility condition. | 286 { // Too small to satisify the minimum visibility condition. |
323 gfx::Rect window_bounds; | 287 gfx::Rect window_bounds; |
324 bool maximized = false; | |
325 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 288 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
326 gfx::Rect(kWindowTilePixels, kWindowTilePixels, 29, 29), | 289 gfx::Rect(kWindowTilePixels, kWindowTilePixels, 29, 29), |
327 false, gfx::Rect(), LAST_ACTIVE, | 290 gfx::Rect(), LAST_ACTIVE, &window_bounds); |
328 &window_bounds, &maximized); | |
329 EXPECT_FALSE(maximized); | |
330 EXPECT_EQ(gfx::Rect(kWindowTilePixels * 2, | 291 EXPECT_EQ(gfx::Rect(kWindowTilePixels * 2, |
331 kWindowTilePixels * 2, | 292 kWindowTilePixels * 2, |
332 30 /* not 29 */, | 293 30 /* not 29 */, |
333 30 /* not 29 */), | 294 30 /* not 29 */), |
334 window_bounds); | 295 window_bounds); |
335 } | 296 } |
336 | 297 |
337 | 298 |
338 { // normal, but maximized | 299 { // Normal. |
339 gfx::Rect window_bounds; | 300 gfx::Rect window_bounds; |
340 bool maximized = false; | |
341 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 301 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
342 gfx::Rect(kWindowTilePixels, kWindowTilePixels, 500, 400), | 302 gfx::Rect(kWindowTilePixels, kWindowTilePixels, 500, 400), |
343 true, gfx::Rect(), LAST_ACTIVE, | 303 gfx::Rect(), LAST_ACTIVE, &window_bounds); |
344 &window_bounds, &maximized); | |
345 EXPECT_FALSE(maximized); | |
346 EXPECT_EQ(gfx::Rect(kWindowTilePixels * 2, | 304 EXPECT_EQ(gfx::Rect(kWindowTilePixels * 2, |
347 kWindowTilePixels * 2, 500, 400), window_bounds); | 305 kWindowTilePixels * 2, 500, 400), window_bounds); |
348 } | 306 } |
349 } | 307 } |
350 | 308 |
351 // Test that the window opened is sized appropriately given persisted sizes. | 309 // Test that the window opened is sized appropriately given persisted sizes. |
352 TEST(WindowSizerTest, PersistedBoundsCase) { | 310 TEST(WindowSizerTest, PersistedBoundsCase) { |
353 { // normal, in the middle of the screen somewhere. | 311 { // normal, in the middle of the screen somewhere. |
354 gfx::Rect initial_bounds(kWindowTilePixels, kWindowTilePixels, 500, 400); | 312 gfx::Rect initial_bounds(kWindowTilePixels, kWindowTilePixels, 500, 400); |
355 | 313 |
356 gfx::Rect window_bounds; | 314 gfx::Rect window_bounds; |
357 bool maximized; | |
358 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), initial_bounds, | 315 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), initial_bounds, |
359 false, gfx::Rect(), PERSISTED, &window_bounds, &maximized); | 316 gfx::Rect(), PERSISTED, &window_bounds); |
360 EXPECT_FALSE(maximized); | |
361 EXPECT_EQ(initial_bounds, window_bounds); | 317 EXPECT_EQ(initial_bounds, window_bounds); |
362 } | 318 } |
363 | 319 |
364 { // normal, maximized. | 320 { // Normal. |
365 gfx::Rect initial_bounds(0, 0, 1024, 768); | 321 gfx::Rect initial_bounds(0, 0, 1024, 768); |
366 | 322 |
367 gfx::Rect window_bounds; | 323 gfx::Rect window_bounds; |
368 bool maximized; | |
369 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), initial_bounds, | 324 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), initial_bounds, |
370 true, gfx::Rect(), PERSISTED, &window_bounds, &maximized); | 325 gfx::Rect(), PERSISTED, &window_bounds); |
371 EXPECT_TRUE(maximized); | |
372 EXPECT_EQ(initial_bounds, window_bounds); | 326 EXPECT_EQ(initial_bounds, window_bounds); |
373 } | 327 } |
374 | 328 |
375 { // normal, on non-primary monitor in negative coords. | 329 { // normal, on non-primary monitor in negative coords. |
376 gfx::Rect initial_bounds(-600, 10, 500, 400); | 330 gfx::Rect initial_bounds(-600, 10, 500, 400); |
377 | 331 |
378 gfx::Rect window_bounds; | 332 gfx::Rect window_bounds; |
379 bool maximized; | |
380 GetWindowBounds(tentwentyfour, tentwentyfour, left_nonprimary, | 333 GetWindowBounds(tentwentyfour, tentwentyfour, left_nonprimary, |
381 initial_bounds, false, gfx::Rect(), PERSISTED, | 334 initial_bounds, gfx::Rect(), PERSISTED, &window_bounds); |
382 &window_bounds, &maximized); | |
383 EXPECT_FALSE(maximized); | |
384 EXPECT_EQ(initial_bounds, window_bounds); | 335 EXPECT_EQ(initial_bounds, window_bounds); |
385 } | 336 } |
386 | 337 |
387 { // normal, on non-primary monitor in negative coords, maximized. | 338 { // normal, on non-primary monitor in negative coords. |
388 gfx::Rect initial_bounds(-1024, 0, 1024, 768); | 339 gfx::Rect initial_bounds(-1024, 0, 1024, 768); |
389 | 340 |
390 gfx::Rect window_bounds; | 341 gfx::Rect window_bounds; |
391 bool maximized; | |
392 GetWindowBounds(tentwentyfour, tentwentyfour, left_nonprimary, | 342 GetWindowBounds(tentwentyfour, tentwentyfour, left_nonprimary, |
393 initial_bounds, true, gfx::Rect(), PERSISTED, | 343 initial_bounds, gfx::Rect(), PERSISTED, &window_bounds); |
394 &window_bounds, &maximized); | |
395 EXPECT_TRUE(maximized); | |
396 EXPECT_EQ(initial_bounds, window_bounds); | 344 EXPECT_EQ(initial_bounds, window_bounds); |
397 } | 345 } |
398 | 346 |
399 { // Non-primary monitor resoultion has changed, but the monitor still | 347 { // Non-primary monitor resoultion has changed, but the monitor still |
400 // completely contains the window. | 348 // completely contains the window. |
401 | 349 |
402 gfx::Rect initial_bounds(1074, 50, 600, 500); | 350 gfx::Rect initial_bounds(1074, 50, 600, 500); |
403 | 351 |
404 gfx::Rect window_bounds; | 352 gfx::Rect window_bounds; |
405 bool maximized; | |
406 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(1024, 0, 800, 600), | 353 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(1024, 0, 800, 600), |
407 initial_bounds, false, right_nonprimary, | 354 initial_bounds, right_nonprimary, PERSISTED, |
408 PERSISTED, &window_bounds, &maximized); | 355 &window_bounds); |
409 EXPECT_FALSE(maximized); | |
410 EXPECT_EQ(initial_bounds, window_bounds); | 356 EXPECT_EQ(initial_bounds, window_bounds); |
411 } | 357 } |
412 | 358 |
413 { // Non-primary monitor resoultion has changed, and the window is partially | 359 { // Non-primary monitor resoultion has changed, and the window is partially |
414 // off-screen. | 360 // off-screen. |
415 | 361 |
416 gfx::Rect initial_bounds(1274, 50, 600, 500); | 362 gfx::Rect initial_bounds(1274, 50, 600, 500); |
417 | 363 |
418 gfx::Rect window_bounds; | 364 gfx::Rect window_bounds; |
419 bool maximized; | |
420 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(1024, 0, 800, 600), | 365 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(1024, 0, 800, 600), |
421 initial_bounds, false, right_nonprimary, | 366 initial_bounds, right_nonprimary, PERSISTED, |
422 PERSISTED, &window_bounds, &maximized); | 367 &window_bounds); |
423 EXPECT_FALSE(maximized); | |
424 EXPECT_EQ(gfx::Rect(1224, 50, 600, 500), window_bounds); | 368 EXPECT_EQ(gfx::Rect(1224, 50, 600, 500), window_bounds); |
425 } | 369 } |
426 | 370 |
427 { // Non-primary monitor resoultion has changed, and the window is now too | 371 { // Non-primary monitor resoultion has changed, and the window is now too |
428 // large for the monitor. | 372 // large for the monitor. |
429 | 373 |
430 gfx::Rect initial_bounds(1274, 50, 900, 700); | 374 gfx::Rect initial_bounds(1274, 50, 900, 700); |
431 | 375 |
432 gfx::Rect window_bounds; | 376 gfx::Rect window_bounds; |
433 bool maximized; | |
434 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(1024, 0, 800, 600), | 377 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(1024, 0, 800, 600), |
435 initial_bounds, false, right_nonprimary, | 378 initial_bounds, right_nonprimary, PERSISTED, |
436 PERSISTED, &window_bounds, &maximized); | 379 &window_bounds); |
437 EXPECT_FALSE(maximized); | |
438 EXPECT_EQ(gfx::Rect(1024, 0, 800, 600), window_bounds); | 380 EXPECT_EQ(gfx::Rect(1024, 0, 800, 600), window_bounds); |
439 } | 381 } |
440 | 382 |
441 { // width and height too small | 383 { // width and height too small |
442 gfx::Rect window_bounds; | 384 gfx::Rect window_bounds; |
443 bool maximized; | |
444 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 385 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
445 gfx::Rect(kWindowTilePixels, kWindowTilePixels, 29, 29), | 386 gfx::Rect(kWindowTilePixels, kWindowTilePixels, 29, 29), |
446 false, gfx::Rect(), PERSISTED, | 387 gfx::Rect(), PERSISTED, &window_bounds); |
447 &window_bounds, &maximized); | |
448 EXPECT_FALSE(maximized); | |
449 EXPECT_EQ(gfx::Rect(kWindowTilePixels, kWindowTilePixels, | 388 EXPECT_EQ(gfx::Rect(kWindowTilePixels, kWindowTilePixels, |
450 30 /* not 29 */, 30 /* not 29 */), | 389 30 /* not 29 */, 30 /* not 29 */), |
451 window_bounds); | 390 window_bounds); |
452 } | 391 } |
453 | 392 |
454 #if defined(OS_MACOSX) | 393 #if defined(OS_MACOSX) |
455 { // Saved state is too tall to possibly be resized. Mac resizers | 394 { // Saved state is too tall to possibly be resized. Mac resizers |
456 // are at the bottom of the window, and no piece of a window can | 395 // are at the bottom of the window, and no piece of a window can |
457 // be moved higher than the menubar. (Perhaps the user changed | 396 // be moved higher than the menubar. (Perhaps the user changed |
458 // resolution to something smaller before relaunching Chrome?) | 397 // resolution to something smaller before relaunching Chrome?) |
459 gfx::Rect window_bounds; | 398 gfx::Rect window_bounds; |
460 bool maximized; | |
461 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 399 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
462 gfx::Rect(kWindowTilePixels, kWindowTilePixels, 30, 5000), | 400 gfx::Rect(kWindowTilePixels, kWindowTilePixels, 30, 5000), |
463 false, gfx::Rect(), PERSISTED, | 401 gfx::Rect(), PERSISTED, &window_bounds); |
464 &window_bounds, &maximized); | |
465 EXPECT_FALSE(maximized); | |
466 EXPECT_EQ(tentwentyfour.height(), window_bounds.height()); | 402 EXPECT_EQ(tentwentyfour.height(), window_bounds.height()); |
467 } | 403 } |
468 #endif // defined(OS_MACOSX) | 404 #endif // defined(OS_MACOSX) |
469 } | 405 } |
470 | 406 |
471 ////////////////////////////////////////////////////////////////////////////// | 407 ////////////////////////////////////////////////////////////////////////////// |
472 // The following unittests have different results on Mac/non-Mac because we | 408 // The following unittests have different results on Mac/non-Mac because we |
473 // reposition windows aggressively on Mac. The *WithAggressiveReposition tests | 409 // reposition windows aggressively on Mac. The *WithAggressiveReposition tests |
474 // are run on Mac, and the *WithNonAggressiveRepositioning tests are run on | 410 // are run on Mac, and the *WithNonAggressiveRepositioning tests are run on |
475 // other platforms. | 411 // other platforms. |
476 | 412 |
477 #if defined(OS_MACOSX) | 413 #if defined(OS_MACOSX) |
478 TEST(WindowSizerTest, LastWindowOffscreenWithAggressiveRepositioning) { | 414 TEST(WindowSizerTest, LastWindowOffscreenWithAggressiveRepositioning) { |
479 { // taskbar on left. The new window overlaps slightly with the taskbar, so | 415 { // taskbar on left. The new window overlaps slightly with the taskbar, so |
480 // it is moved to be flush with the left edge of the work area. | 416 // it is moved to be flush with the left edge of the work area. |
481 gfx::Rect window_bounds; | 417 gfx::Rect window_bounds; |
482 bool maximized = false; | |
483 GetWindowBounds(tentwentyfour, taskbar_left_work_area, gfx::Rect(), | 418 GetWindowBounds(tentwentyfour, taskbar_left_work_area, gfx::Rect(), |
484 gfx::Rect(kWindowTilePixels, kWindowTilePixels, 500, 400), | 419 gfx::Rect(kWindowTilePixels, kWindowTilePixels, 500, 400), |
485 false, gfx::Rect(), LAST_ACTIVE, | 420 gfx::Rect(), LAST_ACTIVE, &window_bounds); |
486 &window_bounds, &maximized); | |
487 EXPECT_FALSE(maximized); | |
488 EXPECT_EQ(gfx::Rect(taskbar_left_work_area.x(), | 421 EXPECT_EQ(gfx::Rect(taskbar_left_work_area.x(), |
489 kWindowTilePixels * 2, 500, 400), window_bounds); | 422 kWindowTilePixels * 2, 500, 400), window_bounds); |
490 } | 423 } |
491 | 424 |
492 { // offset would put the new window offscreen at the bottom | 425 { // offset would put the new window offscreen at the bottom |
493 gfx::Rect window_bounds; | 426 gfx::Rect window_bounds; |
494 bool maximized = false; | |
495 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 427 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
496 gfx::Rect(10, 729, 500, 400), false, gfx::Rect(), | 428 gfx::Rect(10, 729, 500, 400), gfx::Rect(), LAST_ACTIVE, |
497 LAST_ACTIVE, &window_bounds, &maximized); | 429 &window_bounds); |
498 EXPECT_FALSE(maximized); | |
499 EXPECT_EQ(gfx::Rect(10 + kWindowTilePixels, | 430 EXPECT_EQ(gfx::Rect(10 + kWindowTilePixels, |
500 0 /* not 729 + kWindowTilePixels */, | 431 0 /* not 729 + kWindowTilePixels */, |
501 500, 400), | 432 500, 400), |
502 window_bounds); | 433 window_bounds); |
503 } | 434 } |
504 | 435 |
505 { // offset would put the new window offscreen at the right | 436 { // offset would put the new window offscreen at the right |
506 gfx::Rect window_bounds; | 437 gfx::Rect window_bounds; |
507 bool maximized = false; | |
508 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 438 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
509 gfx::Rect(985, 10, 500, 400), false, gfx::Rect(), | 439 gfx::Rect(985, 10, 500, 400), gfx::Rect(), LAST_ACTIVE, |
510 LAST_ACTIVE, &window_bounds, &maximized); | 440 &window_bounds); |
511 EXPECT_FALSE(maximized); | |
512 EXPECT_EQ(gfx::Rect(0 /* not 985 + kWindowTilePixels*/, | 441 EXPECT_EQ(gfx::Rect(0 /* not 985 + kWindowTilePixels*/, |
513 10 + kWindowTilePixels, | 442 10 + kWindowTilePixels, |
514 500, 400), | 443 500, 400), |
515 window_bounds); | 444 window_bounds); |
516 } | 445 } |
517 | 446 |
518 { // offset would put the new window offscreen at the bottom right | 447 { // offset would put the new window offscreen at the bottom right |
519 gfx::Rect window_bounds; | 448 gfx::Rect window_bounds; |
520 bool maximized = false; | |
521 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 449 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
522 gfx::Rect(985, 729, 500, 400), false, gfx::Rect(), | 450 gfx::Rect(985, 729, 500, 400), gfx::Rect(), LAST_ACTIVE, |
523 LAST_ACTIVE, &window_bounds, &maximized); | 451 &window_bounds); |
524 EXPECT_FALSE(maximized); | |
525 EXPECT_EQ(gfx::Rect(0 /* not 985 + kWindowTilePixels*/, | 452 EXPECT_EQ(gfx::Rect(0 /* not 985 + kWindowTilePixels*/, |
526 0 /* not 729 + kWindowTilePixels*/, | 453 0 /* not 729 + kWindowTilePixels*/, |
527 500, 400), | 454 500, 400), |
528 window_bounds); | 455 window_bounds); |
529 } | 456 } |
530 } | 457 } |
531 | 458 |
532 TEST(WindowSizerTest, PersistedWindowOffscreenWithAggressiveRepositioning) { | 459 TEST(WindowSizerTest, PersistedWindowOffscreenWithAggressiveRepositioning) { |
533 { // off the left | 460 { // off the left |
534 gfx::Rect window_bounds; | 461 gfx::Rect window_bounds; |
535 bool maximized; | |
536 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 462 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
537 gfx::Rect(-471, 50, 500, 400), false, gfx::Rect(), | 463 gfx::Rect(-471, 50, 500, 400), gfx::Rect(), PERSISTED, |
538 PERSISTED, &window_bounds, &maximized); | 464 &window_bounds); |
539 EXPECT_FALSE(maximized); | |
540 EXPECT_EQ(gfx::Rect(0 /* not -471 */, 50, 500, 400), window_bounds); | 465 EXPECT_EQ(gfx::Rect(0 /* not -471 */, 50, 500, 400), window_bounds); |
541 } | 466 } |
542 | 467 |
543 { // off the top | 468 { // off the top |
544 gfx::Rect window_bounds; | 469 gfx::Rect window_bounds; |
545 bool maximized; | |
546 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 470 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
547 gfx::Rect(50, -370, 500, 400), false, gfx::Rect(), | 471 gfx::Rect(50, -370, 500, 400), gfx::Rect(), PERSISTED, |
548 PERSISTED, &window_bounds, &maximized); | 472 &window_bounds); |
549 EXPECT_FALSE(maximized); | |
550 EXPECT_EQ(gfx::Rect(50, 0, 500, 400), window_bounds); | 473 EXPECT_EQ(gfx::Rect(50, 0, 500, 400), window_bounds); |
551 } | 474 } |
552 | 475 |
553 { // off the right | 476 { // off the right |
554 gfx::Rect window_bounds; | 477 gfx::Rect window_bounds; |
555 bool maximized; | |
556 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 478 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
557 gfx::Rect(995, 50, 500, 400), false, gfx::Rect(), | 479 gfx::Rect(995, 50, 500, 400), gfx::Rect(), PERSISTED, |
558 PERSISTED, &window_bounds, &maximized); | 480 &window_bounds); |
559 EXPECT_FALSE(maximized); | |
560 EXPECT_EQ(gfx::Rect(0 /* not 995 */, 50, 500, 400), window_bounds); | 481 EXPECT_EQ(gfx::Rect(0 /* not 995 */, 50, 500, 400), window_bounds); |
561 } | 482 } |
562 | 483 |
563 { // off the bottom | 484 { // off the bottom |
564 gfx::Rect window_bounds; | 485 gfx::Rect window_bounds; |
565 bool maximized; | |
566 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 486 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
567 gfx::Rect(50, 739, 500, 400), false, gfx::Rect(), PERSISTED, | 487 gfx::Rect(50, 739, 500, 400), gfx::Rect(), PERSISTED, |
568 &window_bounds, &maximized); | 488 &window_bounds); |
569 EXPECT_FALSE(maximized); | |
570 EXPECT_EQ(gfx::Rect(50, 0 /* not 739 */, 500, 400), window_bounds); | 489 EXPECT_EQ(gfx::Rect(50, 0 /* not 739 */, 500, 400), window_bounds); |
571 } | 490 } |
572 | 491 |
573 { // off the topleft | 492 { // off the topleft |
574 gfx::Rect window_bounds; | 493 gfx::Rect window_bounds; |
575 bool maximized; | |
576 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 494 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
577 gfx::Rect(-471, -371, 500, 400), false, gfx::Rect(), | 495 gfx::Rect(-471, -371, 500, 400), gfx::Rect(), PERSISTED, |
578 PERSISTED, &window_bounds, &maximized); | 496 &window_bounds); |
579 EXPECT_FALSE(maximized); | |
580 EXPECT_EQ(gfx::Rect(0 /* not -471 */, 0 /* not -371 */, 500, 400), | 497 EXPECT_EQ(gfx::Rect(0 /* not -471 */, 0 /* not -371 */, 500, 400), |
581 window_bounds); | 498 window_bounds); |
582 } | 499 } |
583 | 500 |
584 { // off the topright | 501 { // off the topright |
585 gfx::Rect window_bounds; | 502 gfx::Rect window_bounds; |
586 bool maximized; | |
587 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 503 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
588 gfx::Rect(995, -371, 500, 400), false, gfx::Rect(), | 504 gfx::Rect(995, -371, 500, 400), gfx::Rect(), PERSISTED, |
589 PERSISTED, &window_bounds, &maximized); | 505 &window_bounds); |
590 EXPECT_FALSE(maximized); | |
591 EXPECT_EQ(gfx::Rect(0 /* not 995 */, 0 /* not -371 */, 500, 400), | 506 EXPECT_EQ(gfx::Rect(0 /* not 995 */, 0 /* not -371 */, 500, 400), |
592 window_bounds); | 507 window_bounds); |
593 } | 508 } |
594 | 509 |
595 { // off the bottomleft | 510 { // off the bottomleft |
596 gfx::Rect window_bounds; | 511 gfx::Rect window_bounds; |
597 bool maximized; | |
598 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 512 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
599 gfx::Rect(-471, 739, 500, 400), false, gfx::Rect(), | 513 gfx::Rect(-471, 739, 500, 400), gfx::Rect(), PERSISTED, |
600 PERSISTED, &window_bounds, &maximized); | 514 &window_bounds); |
601 EXPECT_FALSE(maximized); | |
602 EXPECT_EQ(gfx::Rect(0 /* not -471 */, 0 /* not 739 */, 500, 400), | 515 EXPECT_EQ(gfx::Rect(0 /* not -471 */, 0 /* not 739 */, 500, 400), |
603 window_bounds); | 516 window_bounds); |
604 } | 517 } |
605 | 518 |
606 { // off the bottomright | 519 { // off the bottomright |
607 gfx::Rect window_bounds; | 520 gfx::Rect window_bounds; |
608 bool maximized; | |
609 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 521 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
610 gfx::Rect(995, 739, 500, 400), false, gfx::Rect(), | 522 gfx::Rect(995, 739, 500, 400), gfx::Rect(), PERSISTED, |
611 PERSISTED, &window_bounds, &maximized); | 523 &window_bounds); |
612 EXPECT_FALSE(maximized); | |
613 EXPECT_EQ(gfx::Rect(0 /* not 995 */, 0 /* not 739 */, 500, 400), | 524 EXPECT_EQ(gfx::Rect(0 /* not 995 */, 0 /* not 739 */, 500, 400), |
614 window_bounds); | 525 window_bounds); |
615 } | 526 } |
616 | 527 |
617 { // entirely off left | 528 { // entirely off left |
618 gfx::Rect window_bounds; | 529 gfx::Rect window_bounds; |
619 bool maximized; | |
620 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 530 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
621 gfx::Rect(-700, 50, 500, 400), false, gfx::Rect(), | 531 gfx::Rect(-700, 50, 500, 400), gfx::Rect(), PERSISTED, |
622 PERSISTED, &window_bounds, &maximized); | 532 &window_bounds); |
623 EXPECT_FALSE(maximized); | |
624 EXPECT_EQ(gfx::Rect(0 /* not -700 */, 50, 500, 400), window_bounds); | 533 EXPECT_EQ(gfx::Rect(0 /* not -700 */, 50, 500, 400), window_bounds); |
625 } | 534 } |
626 | 535 |
627 { // entirely off left (monitor was detached since last run) | 536 { // entirely off left (monitor was detached since last run) |
628 gfx::Rect window_bounds; | 537 gfx::Rect window_bounds; |
629 bool maximized; | |
630 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 538 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
631 gfx::Rect(-700, 50, 500, 400), false, left_nonprimary, | 539 gfx::Rect(-700, 50, 500, 400), left_nonprimary, |
632 PERSISTED, &window_bounds, &maximized); | 540 PERSISTED, &window_bounds); |
633 EXPECT_FALSE(maximized); | |
634 EXPECT_EQ(gfx::Rect(0, 50, 500, 400), window_bounds); | 541 EXPECT_EQ(gfx::Rect(0, 50, 500, 400), window_bounds); |
635 } | 542 } |
636 | 543 |
637 { // entirely off top | 544 { // entirely off top |
638 gfx::Rect window_bounds; | 545 gfx::Rect window_bounds; |
639 bool maximized; | |
640 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 546 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
641 gfx::Rect(50, -500, 500, 400), false, gfx::Rect(), | 547 gfx::Rect(50, -500, 500, 400), gfx::Rect(), PERSISTED, |
642 PERSISTED, &window_bounds, &maximized); | 548 &window_bounds); |
643 EXPECT_FALSE(maximized); | |
644 EXPECT_EQ(gfx::Rect(50, 0, 500, 400), window_bounds); | 549 EXPECT_EQ(gfx::Rect(50, 0, 500, 400), window_bounds); |
645 } | 550 } |
646 | 551 |
647 { // entirely off top (monitor was detached since last run) | 552 { // entirely off top (monitor was detached since last run) |
648 gfx::Rect window_bounds; | 553 gfx::Rect window_bounds; |
649 bool maximized; | |
650 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 554 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
651 gfx::Rect(50, -500, 500, 400), false, top_nonprimary, | 555 gfx::Rect(50, -500, 500, 400), top_nonprimary, PERSISTED, |
652 PERSISTED, &window_bounds, &maximized); | 556 &window_bounds); |
653 EXPECT_FALSE(maximized); | |
654 EXPECT_EQ(gfx::Rect(50, 0, 500, 400), window_bounds); | 557 EXPECT_EQ(gfx::Rect(50, 0, 500, 400), window_bounds); |
655 } | 558 } |
656 | 559 |
657 { // entirely off right | 560 { // entirely off right |
658 gfx::Rect window_bounds; | 561 gfx::Rect window_bounds; |
659 bool maximized; | |
660 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 562 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
661 gfx::Rect(1200, 50, 500, 400), false, gfx::Rect(), | 563 gfx::Rect(1200, 50, 500, 400), gfx::Rect(), PERSISTED, |
662 PERSISTED, &window_bounds, &maximized); | 564 &window_bounds); |
663 EXPECT_FALSE(maximized); | |
664 EXPECT_EQ(gfx::Rect(0 /* not 1200 */, 50, 500, 400), window_bounds); | 565 EXPECT_EQ(gfx::Rect(0 /* not 1200 */, 50, 500, 400), window_bounds); |
665 } | 566 } |
666 | 567 |
667 { // entirely off right (monitor was detached since last run) | 568 { // entirely off right (monitor was detached since last run) |
668 gfx::Rect window_bounds; | 569 gfx::Rect window_bounds; |
669 bool maximized; | |
670 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 570 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
671 gfx::Rect(1200, 50, 500, 400), false, right_nonprimary, | 571 gfx::Rect(1200, 50, 500, 400), right_nonprimary, PERSISTED, |
672 PERSISTED, &window_bounds, &maximized); | 572 &window_bounds); |
673 EXPECT_FALSE(maximized); | |
674 EXPECT_EQ(gfx::Rect(524 /* not 1200 */, 50, 500, 400), window_bounds); | 573 EXPECT_EQ(gfx::Rect(524 /* not 1200 */, 50, 500, 400), window_bounds); |
675 } | 574 } |
676 | 575 |
677 { // entirely off bottom | 576 { // entirely off bottom |
678 gfx::Rect window_bounds; | 577 gfx::Rect window_bounds; |
679 bool maximized; | |
680 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 578 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
681 gfx::Rect(50, 800, 500, 400), false, gfx::Rect(), PERSISTED, | 579 gfx::Rect(50, 800, 500, 400), gfx::Rect(), PERSISTED, |
682 &window_bounds, &maximized); | 580 &window_bounds); |
683 EXPECT_FALSE(maximized); | |
684 EXPECT_EQ(gfx::Rect(50, 0 /* not 800 */, 500, 400), window_bounds); | 581 EXPECT_EQ(gfx::Rect(50, 0 /* not 800 */, 500, 400), window_bounds); |
685 } | 582 } |
686 | 583 |
687 { // entirely off bottom (monitor was detached since last run) | 584 { // entirely off bottom (monitor was detached since last run) |
688 gfx::Rect window_bounds; | 585 gfx::Rect window_bounds; |
689 bool maximized; | |
690 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 586 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
691 gfx::Rect(50, 800, 500, 400), false, bottom_nonprimary, | 587 gfx::Rect(50, 800, 500, 400), bottom_nonprimary, |
692 PERSISTED, &window_bounds, &maximized); | 588 PERSISTED, &window_bounds); |
693 EXPECT_FALSE(maximized); | |
694 EXPECT_EQ(gfx::Rect(50, 368 /* not 800 */, 500, 400), window_bounds); | 589 EXPECT_EQ(gfx::Rect(50, 368 /* not 800 */, 500, 400), window_bounds); |
695 } | 590 } |
696 | 591 |
697 { // wider than the screen. off both the left and right | 592 { // wider than the screen. off both the left and right |
698 gfx::Rect window_bounds; | 593 gfx::Rect window_bounds; |
699 bool maximized; | |
700 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 594 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
701 gfx::Rect(-100, 50, 2000, 400), false, gfx::Rect(), | 595 gfx::Rect(-100, 50, 2000, 400), gfx::Rect(), PERSISTED, |
702 PERSISTED, &window_bounds, &maximized); | 596 &window_bounds); |
703 EXPECT_FALSE(maximized); | |
704 EXPECT_EQ(gfx::Rect(0 /* not -100 */, 50, 2000, 400), window_bounds); | 597 EXPECT_EQ(gfx::Rect(0 /* not -100 */, 50, 2000, 400), window_bounds); |
705 } | 598 } |
706 } | 599 } |
707 #else | 600 #else |
708 TEST(WindowSizerTest, LastWindowOffscreenWithNonAggressiveRepositioning) { | 601 TEST(WindowSizerTest, LastWindowOffscreenWithNonAggressiveRepositioning) { |
709 { // taskbar on left. | 602 { // taskbar on left. |
710 gfx::Rect window_bounds; | 603 gfx::Rect window_bounds; |
711 bool maximized = false; | |
712 GetWindowBounds(tentwentyfour, taskbar_left_work_area, gfx::Rect(), | 604 GetWindowBounds(tentwentyfour, taskbar_left_work_area, gfx::Rect(), |
713 gfx::Rect(kWindowTilePixels, kWindowTilePixels, 500, 400), | 605 gfx::Rect(kWindowTilePixels, kWindowTilePixels, 500, 400), |
714 false, gfx::Rect(), LAST_ACTIVE, | 606 gfx::Rect(), LAST_ACTIVE, &window_bounds); |
715 &window_bounds, &maximized); | |
716 EXPECT_FALSE(maximized); | |
717 EXPECT_EQ(gfx::Rect(kWindowTilePixels * 2, | 607 EXPECT_EQ(gfx::Rect(kWindowTilePixels * 2, |
718 kWindowTilePixels * 2, 500, 400), window_bounds); | 608 kWindowTilePixels * 2, 500, 400), window_bounds); |
719 } | 609 } |
720 | 610 |
721 // Linux does not tile windows, so tile adjustment tests don't make sense. | 611 // Linux does not tile windows, so tile adjustment tests don't make sense. |
722 #if !defined(OS_POSIX) || defined(OS_MACOSX) | 612 #if !defined(OS_POSIX) || defined(OS_MACOSX) |
723 { // offset would put the new window offscreen at the bottom but the minimum | 613 { // offset would put the new window offscreen at the bottom but the minimum |
724 // visibility condition is barely satisfied without relocation. | 614 // visibility condition is barely satisfied without relocation. |
725 gfx::Rect window_bounds; | 615 gfx::Rect window_bounds; |
726 bool maximized = false; | |
727 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 616 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
728 gfx::Rect(10, 728, 500, 400), false, gfx::Rect(), | 617 gfx::Rect(10, 728, 500, 400), gfx::Rect(), LAST_ACTIVE, |
729 LAST_ACTIVE, &window_bounds, &maximized); | 618 &window_bounds); |
730 EXPECT_FALSE(maximized); | |
731 EXPECT_EQ(gfx::Rect(10 + kWindowTilePixels, 738, | 619 EXPECT_EQ(gfx::Rect(10 + kWindowTilePixels, 738, |
732 500, 400), window_bounds); | 620 500, 400), window_bounds); |
733 } | 621 } |
734 | 622 |
735 { // offset would put the new window offscreen at the bottom and the minimum | 623 { // offset would put the new window offscreen at the bottom and the minimum |
736 // visibility condition is satisified by relocation. | 624 // visibility condition is satisified by relocation. |
737 gfx::Rect window_bounds; | 625 gfx::Rect window_bounds; |
738 bool maximized = false; | |
739 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 626 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
740 gfx::Rect(10, 729, 500, 400), false, gfx::Rect(), | 627 gfx::Rect(10, 729, 500, 400), gfx::Rect(), LAST_ACTIVE, |
741 LAST_ACTIVE, &window_bounds, &maximized); | 628 &window_bounds); |
742 EXPECT_FALSE(maximized); | |
743 EXPECT_EQ(gfx::Rect(10 + kWindowTilePixels, 738 /* not 739 */, 500, 400), | 629 EXPECT_EQ(gfx::Rect(10 + kWindowTilePixels, 738 /* not 739 */, 500, 400), |
744 window_bounds); | 630 window_bounds); |
745 } | 631 } |
746 | 632 |
747 { // offset would put the new window offscreen at the right but the minimum | 633 { // offset would put the new window offscreen at the right but the minimum |
748 // visibility condition is barely satisfied without relocation. | 634 // visibility condition is barely satisfied without relocation. |
749 gfx::Rect window_bounds; | 635 gfx::Rect window_bounds; |
750 bool maximized = false; | |
751 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 636 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
752 gfx::Rect(984, 10, 500, 400), false, gfx::Rect(), | 637 gfx::Rect(984, 10, 500, 400), gfx::Rect(), LAST_ACTIVE, |
753 LAST_ACTIVE, &window_bounds, &maximized); | 638 &window_bounds); |
754 EXPECT_FALSE(maximized); | |
755 EXPECT_EQ(gfx::Rect(994, 10 + kWindowTilePixels, 500, 400), window_bounds); | 639 EXPECT_EQ(gfx::Rect(994, 10 + kWindowTilePixels, 500, 400), window_bounds); |
756 } | 640 } |
757 | 641 |
758 { // offset would put the new window offscreen at the right and the minimum | 642 { // offset would put the new window offscreen at the right and the minimum |
759 // visibility condition is satisified by relocation. | 643 // visibility condition is satisified by relocation. |
760 gfx::Rect window_bounds; | 644 gfx::Rect window_bounds; |
761 bool maximized = false; | |
762 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 645 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
763 gfx::Rect(985, 10, 500, 400), false, gfx::Rect(), | 646 gfx::Rect(985, 10, 500, 400), gfx::Rect(), LAST_ACTIVE, |
764 LAST_ACTIVE, &window_bounds, &maximized); | 647 &window_bounds); |
765 EXPECT_FALSE(maximized); | |
766 EXPECT_EQ(gfx::Rect(994 /* not 995 */, 10 + kWindowTilePixels, | 648 EXPECT_EQ(gfx::Rect(994 /* not 995 */, 10 + kWindowTilePixels, |
767 500, 400), window_bounds); | 649 500, 400), window_bounds); |
768 } | 650 } |
769 | 651 |
770 { // offset would put the new window offscreen at the bottom right and the | 652 { // offset would put the new window offscreen at the bottom right and the |
771 // minimum visibility condition is satisified by relocation. | 653 // minimum visibility condition is satisified by relocation. |
772 gfx::Rect window_bounds; | 654 gfx::Rect window_bounds; |
773 bool maximized = false; | |
774 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 655 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
775 gfx::Rect(985, 729, 500, 400), false, gfx::Rect(), | 656 gfx::Rect(985, 729, 500, 400), gfx::Rect(), LAST_ACTIVE, |
776 LAST_ACTIVE, &window_bounds, &maximized); | 657 &window_bounds); |
777 EXPECT_FALSE(maximized); | |
778 EXPECT_EQ(gfx::Rect(994 /* not 995 */, 738 /* not 739 */, 500, 400), | 658 EXPECT_EQ(gfx::Rect(994 /* not 995 */, 738 /* not 739 */, 500, 400), |
779 window_bounds); | 659 window_bounds); |
780 } | 660 } |
781 #endif // !defined(OS_POSIX) || defined(OS_MACOSX) | 661 #endif // !defined(OS_POSIX) || defined(OS_MACOSX) |
782 } | 662 } |
783 | 663 |
784 TEST(WindowSizerTest, PersistedWindowOffscreenWithNonAggressiveRepositioning) { | 664 TEST(WindowSizerTest, PersistedWindowOffscreenWithNonAggressiveRepositioning) { |
785 { // off the left but the minimum visibility condition is barely satisfied | 665 { // off the left but the minimum visibility condition is barely satisfied |
786 // without relocaiton. | 666 // without relocaiton. |
787 gfx::Rect initial_bounds(-470, 50, 500, 400); | 667 gfx::Rect initial_bounds(-470, 50, 500, 400); |
788 | 668 |
789 gfx::Rect window_bounds; | 669 gfx::Rect window_bounds; |
790 bool maximized; | |
791 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 670 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
792 initial_bounds, false, gfx::Rect(), PERSISTED, | 671 initial_bounds, gfx::Rect(), PERSISTED, |
793 &window_bounds, &maximized); | 672 &window_bounds); |
794 EXPECT_FALSE(maximized); | |
795 EXPECT_EQ(initial_bounds, window_bounds); | 673 EXPECT_EQ(initial_bounds, window_bounds); |
796 } | 674 } |
797 | 675 |
798 { // off the left and the minimum visibility condition is satisfied by | 676 { // off the left and the minimum visibility condition is satisfied by |
799 // relocation. | 677 // relocation. |
800 gfx::Rect window_bounds; | 678 gfx::Rect window_bounds; |
801 bool maximized; | |
802 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 679 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
803 gfx::Rect(-471, 50, 500, 400), false, gfx::Rect(), | 680 gfx::Rect(-471, 50, 500, 400), gfx::Rect(), PERSISTED, |
804 PERSISTED, &window_bounds, &maximized); | 681 &window_bounds); |
805 EXPECT_FALSE(maximized); | |
806 EXPECT_EQ(gfx::Rect(-470 /* not -471 */, 50, 500, 400), window_bounds); | 682 EXPECT_EQ(gfx::Rect(-470 /* not -471 */, 50, 500, 400), window_bounds); |
807 } | 683 } |
808 | 684 |
809 { // off the top | 685 { // off the top |
810 gfx::Rect initial_bounds(50, -370, 500, 400); | 686 gfx::Rect initial_bounds(50, -370, 500, 400); |
811 | 687 |
812 gfx::Rect window_bounds; | 688 gfx::Rect window_bounds; |
813 bool maximized; | |
814 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 689 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
815 gfx::Rect(50, -370, 500, 400), false, gfx::Rect(), | 690 gfx::Rect(50, -370, 500, 400), gfx::Rect(), PERSISTED, |
816 PERSISTED, &window_bounds, &maximized); | 691 &window_bounds); |
817 EXPECT_FALSE(maximized); | |
818 EXPECT_EQ(gfx::Rect(50, 0, 500, 400), window_bounds); | 692 EXPECT_EQ(gfx::Rect(50, 0, 500, 400), window_bounds); |
819 } | 693 } |
820 | 694 |
821 { // off the right but the minimum visibility condition is barely satisified | 695 { // off the right but the minimum visibility condition is barely satisified |
822 // without relocation. | 696 // without relocation. |
823 gfx::Rect initial_bounds(994, 50, 500, 400); | 697 gfx::Rect initial_bounds(994, 50, 500, 400); |
824 | 698 |
825 gfx::Rect window_bounds; | 699 gfx::Rect window_bounds; |
826 bool maximized; | |
827 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 700 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
828 initial_bounds, false, gfx::Rect(), PERSISTED, | 701 initial_bounds, gfx::Rect(), PERSISTED, |
829 &window_bounds, &maximized); | 702 &window_bounds); |
830 EXPECT_FALSE(maximized); | |
831 EXPECT_EQ(initial_bounds, window_bounds); | 703 EXPECT_EQ(initial_bounds, window_bounds); |
832 } | 704 } |
833 | 705 |
834 { // off the right and the minimum visibility condition is satisified by | 706 { // off the right and the minimum visibility condition is satisified by |
835 // relocation. | 707 // relocation. |
836 gfx::Rect window_bounds; | 708 gfx::Rect window_bounds; |
837 bool maximized; | |
838 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 709 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
839 gfx::Rect(995, 50, 500, 400), false, gfx::Rect(), | 710 gfx::Rect(995, 50, 500, 400), gfx::Rect(), PERSISTED, |
840 PERSISTED, &window_bounds, &maximized); | 711 &window_bounds); |
841 EXPECT_FALSE(maximized); | |
842 EXPECT_EQ(gfx::Rect(994 /* not 995 */, 50, 500, 400), window_bounds); | 712 EXPECT_EQ(gfx::Rect(994 /* not 995 */, 50, 500, 400), window_bounds); |
843 } | 713 } |
844 | 714 |
845 { // off the bottom but the minimum visibility condition is barely satisified | 715 { // off the bottom but the minimum visibility condition is barely satisified |
846 // without relocation. | 716 // without relocation. |
847 gfx::Rect initial_bounds(50, 738, 500, 400); | 717 gfx::Rect initial_bounds(50, 738, 500, 400); |
848 | 718 |
849 gfx::Rect window_bounds; | 719 gfx::Rect window_bounds; |
850 bool maximized; | |
851 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 720 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
852 initial_bounds, false, gfx::Rect(), PERSISTED, | 721 initial_bounds, gfx::Rect(), PERSISTED, |
853 &window_bounds, &maximized); | 722 &window_bounds); |
854 EXPECT_FALSE(maximized); | |
855 EXPECT_EQ(initial_bounds, window_bounds); | 723 EXPECT_EQ(initial_bounds, window_bounds); |
856 } | 724 } |
857 | 725 |
858 { // off the bottom and the minimum visibility condition is satisified by | 726 { // off the bottom and the minimum visibility condition is satisified by |
859 // relocation. | 727 // relocation. |
860 gfx::Rect window_bounds; | 728 gfx::Rect window_bounds; |
861 bool maximized; | |
862 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 729 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
863 gfx::Rect(50, 739, 500, 400), false, gfx::Rect(), PERSISTED, | 730 gfx::Rect(50, 739, 500, 400), gfx::Rect(), PERSISTED, |
864 &window_bounds, &maximized); | 731 &window_bounds); |
865 EXPECT_FALSE(maximized); | |
866 EXPECT_EQ(gfx::Rect(50, 738 /* not 739 */, 500, 400), window_bounds); | 732 EXPECT_EQ(gfx::Rect(50, 738 /* not 739 */, 500, 400), window_bounds); |
867 } | 733 } |
868 | 734 |
869 { // off the topleft | 735 { // off the topleft |
870 gfx::Rect window_bounds; | 736 gfx::Rect window_bounds; |
871 bool maximized; | |
872 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 737 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
873 gfx::Rect(-471, -371, 500, 400), false, gfx::Rect(), | 738 gfx::Rect(-471, -371, 500, 400), gfx::Rect(), PERSISTED, |
874 PERSISTED, &window_bounds, &maximized); | 739 &window_bounds); |
875 EXPECT_FALSE(maximized); | |
876 EXPECT_EQ(gfx::Rect(-470 /* not -471 */, 0, 500, 400), | 740 EXPECT_EQ(gfx::Rect(-470 /* not -471 */, 0, 500, 400), |
877 window_bounds); | 741 window_bounds); |
878 } | 742 } |
879 | 743 |
880 { // off the topright and the minimum visibility condition is satisified by | 744 { // off the topright and the minimum visibility condition is satisified by |
881 // relocation. | 745 // relocation. |
882 gfx::Rect window_bounds; | 746 gfx::Rect window_bounds; |
883 bool maximized; | |
884 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 747 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
885 gfx::Rect(995, -371, 500, 400), false, gfx::Rect(), | 748 gfx::Rect(995, -371, 500, 400), gfx::Rect(), PERSISTED, |
886 PERSISTED, &window_bounds, &maximized); | 749 &window_bounds); |
887 EXPECT_FALSE(maximized); | |
888 EXPECT_EQ(gfx::Rect(994 /* not 995 */, 0, 500, 400), | 750 EXPECT_EQ(gfx::Rect(994 /* not 995 */, 0, 500, 400), |
889 window_bounds); | 751 window_bounds); |
890 } | 752 } |
891 | 753 |
892 { // off the bottomleft and the minimum visibility condition is satisified by | 754 { // off the bottomleft and the minimum visibility condition is satisified by |
893 // relocation. | 755 // relocation. |
894 gfx::Rect window_bounds; | 756 gfx::Rect window_bounds; |
895 bool maximized; | |
896 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 757 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
897 gfx::Rect(-471, 739, 500, 400), false, gfx::Rect(), | 758 gfx::Rect(-471, 739, 500, 400), gfx::Rect(), PERSISTED, |
898 PERSISTED, &window_bounds, &maximized); | 759 &window_bounds); |
899 EXPECT_FALSE(maximized); | |
900 EXPECT_EQ(gfx::Rect(-470 /* not -471 */, 738 /* not 739 */, 500, 400), | 760 EXPECT_EQ(gfx::Rect(-470 /* not -471 */, 738 /* not 739 */, 500, 400), |
901 window_bounds); | 761 window_bounds); |
902 } | 762 } |
903 | 763 |
904 { // off the bottomright and the minimum visibility condition is satisified by | 764 { // off the bottomright and the minimum visibility condition is satisified by |
905 // relocation. | 765 // relocation. |
906 gfx::Rect window_bounds; | 766 gfx::Rect window_bounds; |
907 bool maximized; | |
908 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 767 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
909 gfx::Rect(995, 739, 500, 400), false, gfx::Rect(), | 768 gfx::Rect(995, 739, 500, 400), gfx::Rect(), PERSISTED, |
910 PERSISTED, &window_bounds, &maximized); | 769 &window_bounds); |
911 EXPECT_FALSE(maximized); | |
912 EXPECT_EQ(gfx::Rect(994 /* not 995 */, 738 /* not 739 */, 500, 400), | 770 EXPECT_EQ(gfx::Rect(994 /* not 995 */, 738 /* not 739 */, 500, 400), |
913 window_bounds); | 771 window_bounds); |
914 } | 772 } |
915 | 773 |
916 { // entirely off left | 774 { // entirely off left |
917 gfx::Rect window_bounds; | 775 gfx::Rect window_bounds; |
918 bool maximized; | |
919 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 776 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
920 gfx::Rect(-700, 50, 500, 400), false, gfx::Rect(), | 777 gfx::Rect(-700, 50, 500, 400), gfx::Rect(), PERSISTED, |
921 PERSISTED, &window_bounds, &maximized); | 778 &window_bounds); |
922 EXPECT_FALSE(maximized); | |
923 EXPECT_EQ(gfx::Rect(-470 /* not -700 */, 50, 500, 400), window_bounds); | 779 EXPECT_EQ(gfx::Rect(-470 /* not -700 */, 50, 500, 400), window_bounds); |
924 } | 780 } |
925 | 781 |
926 { // entirely off left (monitor was detached since last run) | 782 { // entirely off left (monitor was detached since last run) |
927 gfx::Rect window_bounds; | 783 gfx::Rect window_bounds; |
928 bool maximized; | |
929 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 784 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
930 gfx::Rect(-700, 50, 500, 400), false, left_nonprimary, | 785 gfx::Rect(-700, 50, 500, 400), left_nonprimary, PERSISTED, |
931 PERSISTED, &window_bounds, &maximized); | 786 &window_bounds); |
932 EXPECT_FALSE(maximized); | |
933 EXPECT_EQ(gfx::Rect(0, 50, 500, 400), window_bounds); | 787 EXPECT_EQ(gfx::Rect(0, 50, 500, 400), window_bounds); |
934 } | 788 } |
935 | 789 |
936 { // entirely off top | 790 { // entirely off top |
937 gfx::Rect window_bounds; | 791 gfx::Rect window_bounds; |
938 bool maximized; | |
939 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 792 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
940 gfx::Rect(50, -500, 500, 400), false, gfx::Rect(), | 793 gfx::Rect(50, -500, 500, 400), gfx::Rect(), PERSISTED, |
941 PERSISTED, &window_bounds, &maximized); | 794 &window_bounds); |
942 EXPECT_FALSE(maximized); | |
943 EXPECT_EQ(gfx::Rect(50, 0, 500, 400), window_bounds); | 795 EXPECT_EQ(gfx::Rect(50, 0, 500, 400), window_bounds); |
944 } | 796 } |
945 | 797 |
946 { // entirely off top (monitor was detached since last run) | 798 { // entirely off top (monitor was detached since last run) |
947 gfx::Rect window_bounds; | 799 gfx::Rect window_bounds; |
948 bool maximized; | |
949 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 800 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
950 gfx::Rect(50, -500, 500, 400), false, top_nonprimary, | 801 gfx::Rect(50, -500, 500, 400), top_nonprimary, |
951 PERSISTED, &window_bounds, &maximized); | 802 PERSISTED, &window_bounds); |
952 EXPECT_FALSE(maximized); | |
953 EXPECT_EQ(gfx::Rect(50, 0, 500, 400), window_bounds); | 803 EXPECT_EQ(gfx::Rect(50, 0, 500, 400), window_bounds); |
954 } | 804 } |
955 | 805 |
956 { // entirely off right | 806 { // entirely off right |
957 gfx::Rect window_bounds; | 807 gfx::Rect window_bounds; |
958 bool maximized; | |
959 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 808 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
960 gfx::Rect(1200, 50, 500, 400), false, gfx::Rect(), | 809 gfx::Rect(1200, 50, 500, 400), gfx::Rect(), PERSISTED, |
961 PERSISTED, &window_bounds, &maximized); | 810 &window_bounds); |
962 EXPECT_FALSE(maximized); | |
963 EXPECT_EQ(gfx::Rect(994 /* not 1200 */, 50, 500, 400), window_bounds); | 811 EXPECT_EQ(gfx::Rect(994 /* not 1200 */, 50, 500, 400), window_bounds); |
964 } | 812 } |
965 | 813 |
966 { // entirely off right (monitor was detached since last run) | 814 { // entirely off right (monitor was detached since last run) |
967 gfx::Rect window_bounds; | 815 gfx::Rect window_bounds; |
968 bool maximized; | |
969 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 816 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
970 gfx::Rect(1200, 50, 500, 400), false, right_nonprimary, | 817 gfx::Rect(1200, 50, 500, 400), right_nonprimary, |
971 PERSISTED, &window_bounds, &maximized); | 818 PERSISTED, &window_bounds); |
972 EXPECT_FALSE(maximized); | |
973 EXPECT_EQ(gfx::Rect(524, 50, 500, 400), window_bounds); | 819 EXPECT_EQ(gfx::Rect(524, 50, 500, 400), window_bounds); |
974 } | 820 } |
975 | 821 |
976 { // entirely off bottom | 822 { // entirely off bottom |
977 gfx::Rect window_bounds; | 823 gfx::Rect window_bounds; |
978 bool maximized; | |
979 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 824 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
980 gfx::Rect(50, 800, 500, 400), false, gfx::Rect(), PERSISTED, | 825 gfx::Rect(50, 800, 500, 400), gfx::Rect(), PERSISTED, |
981 &window_bounds, &maximized); | 826 &window_bounds); |
982 EXPECT_FALSE(maximized); | |
983 EXPECT_EQ(gfx::Rect(50, 738 /* not 800 */, 500, 400), window_bounds); | 827 EXPECT_EQ(gfx::Rect(50, 738 /* not 800 */, 500, 400), window_bounds); |
984 } | 828 } |
985 | 829 |
986 { // entirely off bottom (monitor was detached since last run) | 830 { // entirely off bottom (monitor was detached since last run) |
987 gfx::Rect window_bounds; | 831 gfx::Rect window_bounds; |
988 bool maximized; | |
989 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), | 832 GetWindowBounds(tentwentyfour, tentwentyfour, gfx::Rect(), |
990 gfx::Rect(50, 800, 500, 400), false, bottom_nonprimary, | 833 gfx::Rect(50, 800, 500, 400), bottom_nonprimary, |
991 PERSISTED, &window_bounds, &maximized); | 834 PERSISTED, &window_bounds); |
992 EXPECT_FALSE(maximized); | |
993 EXPECT_EQ(gfx::Rect(50, 368, 500, 400), window_bounds); | 835 EXPECT_EQ(gfx::Rect(50, 368, 500, 400), window_bounds); |
994 } | 836 } |
995 } | 837 } |
996 #endif //defined(OS_MACOSX) | 838 #endif //defined(OS_MACOSX) |
OLD | NEW |