| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ash/display/display_manager.h" | 5 #include "ash/display/display_manager.h" |
| 6 | 6 |
| 7 #include "ash/accelerators/accelerator_commands.h" | 7 #include "ash/accelerators/accelerator_commands.h" |
| 8 #include "ash/common/ash_switches.h" | 8 #include "ash/common/ash_switches.h" |
| 9 #include "ash/common/display/display_info.h" | 9 #include "ash/common/display/display_info.h" |
| 10 #include "ash/common/material_design/material_design_controller.h" | 10 #include "ash/common/material_design/material_design_controller.h" |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 153 return; | 153 return; |
| 154 | 154 |
| 155 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); | 155 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); |
| 156 | 156 |
| 157 // Update primary and add seconary. | 157 // Update primary and add seconary. |
| 158 UpdateDisplay("100+0-500x500,0+501-400x400"); | 158 UpdateDisplay("100+0-500x500,0+501-400x400"); |
| 159 EXPECT_EQ(2U, display_manager()->GetNumDisplays()); | 159 EXPECT_EQ(2U, display_manager()->GetNumDisplays()); |
| 160 EXPECT_EQ("0,0 500x500", | 160 EXPECT_EQ("0,0 500x500", |
| 161 display_manager()->GetDisplayAt(0).bounds().ToString()); | 161 display_manager()->GetDisplayAt(0).bounds().ToString()); |
| 162 | 162 |
| 163 EXPECT_EQ("1 1 0", GetCountSummary()); | 163 EXPECT_EQ("2 1 0", GetCountSummary()); |
| 164 EXPECT_EQ(display_manager()->GetDisplayAt(0).id(), changed()[0].id()); | 164 EXPECT_EQ(display_manager()->GetDisplayAt(1).id(), changed()[0].id()); |
| 165 EXPECT_EQ(display_manager()->GetDisplayAt(0).id(), changed()[1].id()); |
| 165 EXPECT_EQ(display_manager()->GetDisplayAt(1).id(), added()[0].id()); | 166 EXPECT_EQ(display_manager()->GetDisplayAt(1).id(), added()[0].id()); |
| 166 EXPECT_EQ("0,0 500x500", changed()[0].bounds().ToString()); | 167 EXPECT_EQ("500,0 400x400", changed()[0].bounds().ToString()); |
| 168 EXPECT_EQ("0,0 500x500", changed()[1].bounds().ToString()); |
| 167 // Secondary display is on right. | 169 // Secondary display is on right. |
| 168 EXPECT_EQ("500,0 400x400", added()[0].bounds().ToString()); | 170 EXPECT_EQ("500,0 400x400", added()[0].bounds().ToString()); |
| 169 EXPECT_EQ("0,501 400x400", | 171 EXPECT_EQ("0,501 400x400", |
| 170 GetDisplayInfo(added()[0]).bounds_in_native().ToString()); | 172 GetDisplayInfo(added()[0]).bounds_in_native().ToString()); |
| 171 reset(); | 173 reset(); |
| 172 | 174 |
| 173 // Delete secondary. | 175 // Delete secondary. |
| 174 UpdateDisplay("100+0-500x500"); | 176 UpdateDisplay("100+0-500x500"); |
| 175 EXPECT_EQ("0 0 1", GetCountSummary()); | 177 EXPECT_EQ("0 0 1", GetCountSummary()); |
| 176 reset(); | 178 reset(); |
| 177 | 179 |
| 178 // Change primary. | 180 // Change primary. |
| 179 UpdateDisplay("1+1-1000x600"); | 181 UpdateDisplay("1+1-1000x600"); |
| 180 EXPECT_EQ("1 0 0", GetCountSummary()); | 182 EXPECT_EQ("1 0 0", GetCountSummary()); |
| 181 EXPECT_EQ(display_manager()->GetDisplayAt(0).id(), changed()[0].id()); | 183 EXPECT_EQ(display_manager()->GetDisplayAt(0).id(), changed()[0].id()); |
| 182 EXPECT_EQ("0,0 1000x600", changed()[0].bounds().ToString()); | 184 EXPECT_EQ("0,0 1000x600", changed()[0].bounds().ToString()); |
| 183 reset(); | 185 reset(); |
| 184 | 186 |
| 185 // Add secondary. | 187 // Add secondary. |
| 186 UpdateDisplay("1+1-1000x600,1002+0-600x400"); | 188 UpdateDisplay("1+1-1000x600,1002+0-600x400"); |
| 187 EXPECT_EQ(2U, display_manager()->GetNumDisplays()); | 189 EXPECT_EQ(2U, display_manager()->GetNumDisplays()); |
| 188 EXPECT_EQ("0 1 0", GetCountSummary()); | 190 EXPECT_EQ("1 1 0", GetCountSummary()); |
| 191 EXPECT_EQ(display_manager()->GetDisplayAt(1).id(), changed()[0].id()); |
| 189 EXPECT_EQ(display_manager()->GetDisplayAt(1).id(), added()[0].id()); | 192 EXPECT_EQ(display_manager()->GetDisplayAt(1).id(), added()[0].id()); |
| 190 // Secondary display is on right. | 193 // Secondary display is on right. |
| 191 EXPECT_EQ("1000,0 600x400", added()[0].bounds().ToString()); | 194 EXPECT_EQ("1000,0 600x400", added()[0].bounds().ToString()); |
| 192 EXPECT_EQ("1002,0 600x400", | 195 EXPECT_EQ("1002,0 600x400", |
| 193 GetDisplayInfo(added()[0]).bounds_in_native().ToString()); | 196 GetDisplayInfo(added()[0]).bounds_in_native().ToString()); |
| 194 reset(); | 197 reset(); |
| 195 | 198 |
| 196 // Secondary removed, primary changed. | 199 // Secondary removed, primary changed. |
| 197 UpdateDisplay("1+1-800x300"); | 200 UpdateDisplay("1+1-800x300"); |
| 198 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); | 201 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 263 // Test in emulation mode (use_fullscreen_host_window=false) | 266 // Test in emulation mode (use_fullscreen_host_window=false) |
| 264 TEST_P(DisplayManagerTest, EmulatorTest) { | 267 TEST_P(DisplayManagerTest, EmulatorTest) { |
| 265 if (!SupportsMultipleDisplays()) | 268 if (!SupportsMultipleDisplays()) |
| 266 return; | 269 return; |
| 267 | 270 |
| 268 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); | 271 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); |
| 269 | 272 |
| 270 display_manager()->AddRemoveDisplay(); | 273 display_manager()->AddRemoveDisplay(); |
| 271 // Update primary and add seconary. | 274 // Update primary and add seconary. |
| 272 EXPECT_EQ(2U, display_manager()->GetNumDisplays()); | 275 EXPECT_EQ(2U, display_manager()->GetNumDisplays()); |
| 273 EXPECT_EQ("0 1 0", GetCountSummary()); | 276 EXPECT_EQ("1 1 0", GetCountSummary()); |
| 274 reset(); | 277 reset(); |
| 275 | 278 |
| 276 display_manager()->AddRemoveDisplay(); | 279 display_manager()->AddRemoveDisplay(); |
| 277 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); | 280 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); |
| 278 EXPECT_EQ("0 0 1", GetCountSummary()); | 281 EXPECT_EQ("0 0 1", GetCountSummary()); |
| 279 reset(); | 282 reset(); |
| 280 | 283 |
| 281 display_manager()->AddRemoveDisplay(); | 284 display_manager()->AddRemoveDisplay(); |
| 282 EXPECT_EQ(2U, display_manager()->GetNumDisplays()); | 285 EXPECT_EQ(2U, display_manager()->GetNumDisplays()); |
| 283 EXPECT_EQ("0 1 0", GetCountSummary()); | 286 EXPECT_EQ("1 1 0", GetCountSummary()); |
| 284 } | 287 } |
| 285 | 288 |
| 286 // Tests support for 3 displays. | 289 // Tests support for 3 displays. |
| 287 TEST_P(DisplayManagerTest, UpdateThreeDisplaysWithDefaultLayout) { | 290 TEST_P(DisplayManagerTest, UpdateThreeDisplaysWithDefaultLayout) { |
| 288 if (!SupportsMultipleDisplays()) | 291 if (!SupportsMultipleDisplays()) |
| 289 return; | 292 return; |
| 290 | 293 |
| 291 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); | 294 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); |
| 292 | 295 |
| 293 // Test with three displays. Native origin will not affect ash | 296 // Test with three displays. Native origin will not affect ash |
| 294 // display layout. | 297 // display layout. |
| 295 UpdateDisplay("0+0-640x480,1000+0-320x200,2000+0-400x300"); | 298 UpdateDisplay("0+0-640x480,1000+0-320x200,2000+0-400x300"); |
| 296 | 299 |
| 297 EXPECT_EQ(3U, display_manager()->GetNumDisplays()); | 300 EXPECT_EQ(3U, display_manager()->GetNumDisplays()); |
| 298 EXPECT_EQ("0,0 640x480", | 301 EXPECT_EQ("0,0 640x480", |
| 299 display_manager()->GetDisplayAt(0).bounds().ToString()); | 302 display_manager()->GetDisplayAt(0).bounds().ToString()); |
| 300 EXPECT_EQ("640,0 320x200", | 303 EXPECT_EQ("640,0 320x200", |
| 301 display_manager()->GetDisplayAt(1).bounds().ToString()); | 304 display_manager()->GetDisplayAt(1).bounds().ToString()); |
| 302 EXPECT_EQ("960,0 400x300", | 305 EXPECT_EQ("960,0 400x300", |
| 303 display_manager()->GetDisplayAt(2).bounds().ToString()); | 306 display_manager()->GetDisplayAt(2).bounds().ToString()); |
| 304 | 307 |
| 305 EXPECT_EQ("1 2 0", GetCountSummary()); | 308 EXPECT_EQ("3 2 0", GetCountSummary()); |
| 306 EXPECT_EQ(display_manager()->GetDisplayAt(0).id(), changed()[0].id()); | 309 EXPECT_EQ(display_manager()->GetDisplayAt(1).id(), changed()[0].id()); |
| 310 EXPECT_EQ(display_manager()->GetDisplayAt(2).id(), changed()[1].id()); |
| 311 EXPECT_EQ(display_manager()->GetDisplayAt(0).id(), changed()[2].id()); |
| 307 EXPECT_EQ(display_manager()->GetDisplayAt(1).id(), added()[0].id()); | 312 EXPECT_EQ(display_manager()->GetDisplayAt(1).id(), added()[0].id()); |
| 308 EXPECT_EQ(display_manager()->GetDisplayAt(2).id(), added()[1].id()); | 313 EXPECT_EQ(display_manager()->GetDisplayAt(2).id(), added()[1].id()); |
| 309 EXPECT_EQ("0,0 640x480", changed()[0].bounds().ToString()); | 314 EXPECT_EQ("640,0 320x200", changed()[0].bounds().ToString()); |
| 315 EXPECT_EQ("960,0 400x300", changed()[1].bounds().ToString()); |
| 316 EXPECT_EQ("0,0 640x480", changed()[2].bounds().ToString()); |
| 310 // Secondary and terniary displays are on right. | 317 // Secondary and terniary displays are on right. |
| 311 EXPECT_EQ("640,0 320x200", added()[0].bounds().ToString()); | 318 EXPECT_EQ("640,0 320x200", added()[0].bounds().ToString()); |
| 312 EXPECT_EQ("1000,0 320x200", | 319 EXPECT_EQ("1000,0 320x200", |
| 313 GetDisplayInfo(added()[0]).bounds_in_native().ToString()); | 320 GetDisplayInfo(added()[0]).bounds_in_native().ToString()); |
| 314 EXPECT_EQ("960,0 400x300", added()[1].bounds().ToString()); | 321 EXPECT_EQ("960,0 400x300", added()[1].bounds().ToString()); |
| 315 EXPECT_EQ("2000,0 400x300", | 322 EXPECT_EQ("2000,0 400x300", |
| 316 GetDisplayInfo(added()[1]).bounds_in_native().ToString()); | 323 GetDisplayInfo(added()[1]).bounds_in_native().ToString()); |
| 317 | 324 |
| 318 // Verify calling ReconfigureDisplays doesn't change anything. | 325 // Verify calling ReconfigureDisplays doesn't change anything. |
| 319 display_manager()->ReconfigureDisplays(); | 326 display_manager()->ReconfigureDisplays(); |
| (...skipping 2007 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2327 const display::DisplayLayout& stored = | 2334 const display::DisplayLayout& stored = |
| 2328 layout_store->GetRegisteredDisplayLayout(list); | 2335 layout_store->GetRegisteredDisplayLayout(list); |
| 2329 | 2336 |
| 2330 EXPECT_EQ(id1, stored.placement_list[0].parent_display_id); | 2337 EXPECT_EQ(id1, stored.placement_list[0].parent_display_id); |
| 2331 EXPECT_EQ(id2, stored.placement_list[0].display_id); | 2338 EXPECT_EQ(id2, stored.placement_list[0].display_id); |
| 2332 } | 2339 } |
| 2333 | 2340 |
| 2334 #endif // OS_CHROMEOS | 2341 #endif // OS_CHROMEOS |
| 2335 | 2342 |
| 2336 } // namespace ash | 2343 } // namespace ash |
| OLD | NEW |