| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "ui/display/chromeos/update_display_configuration_task.h" | 5 #include "ui/display/chromeos/update_display_configuration_task.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 213 private: | 213 private: |
| 214 DISALLOW_COPY_AND_ASSIGN(UpdateDisplayConfigurationTaskTest); | 214 DISALLOW_COPY_AND_ASSIGN(UpdateDisplayConfigurationTaskTest); |
| 215 }; | 215 }; |
| 216 | 216 |
| 217 } // namespace | 217 } // namespace |
| 218 | 218 |
| 219 TEST_F(UpdateDisplayConfigurationTaskTest, HeadlessConfiguration) { | 219 TEST_F(UpdateDisplayConfigurationTaskTest, HeadlessConfiguration) { |
| 220 { | 220 { |
| 221 UpdateDisplayConfigurationTask task( | 221 UpdateDisplayConfigurationTask task( |
| 222 &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_HEADLESS, | 222 &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_HEADLESS, |
| 223 chromeos::DISPLAY_POWER_ALL_ON, 0, 0, false, | 223 chromeos::DISPLAY_POWER_ALL_ON, 0, 0, false, false, |
| 224 base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback, | 224 base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback, |
| 225 base::Unretained(this))); | 225 base::Unretained(this))); |
| 226 task.Run(); | 226 task.Run(); |
| 227 } | 227 } |
| 228 | 228 |
| 229 EXPECT_TRUE(configured_); | 229 EXPECT_TRUE(configured_); |
| 230 EXPECT_TRUE(configuration_status_); | 230 EXPECT_TRUE(configuration_status_); |
| 231 EXPECT_EQ(MULTIPLE_DISPLAY_STATE_HEADLESS, display_state_); | 231 EXPECT_EQ(MULTIPLE_DISPLAY_STATE_HEADLESS, display_state_); |
| 232 EXPECT_EQ(chromeos::DISPLAY_POWER_ALL_ON, power_state_); | 232 EXPECT_EQ(chromeos::DISPLAY_POWER_ALL_ON, power_state_); |
| 233 EXPECT_EQ(JoinActions(kGrab, kUngrab, NULL), log_.GetActionsAndClear()); | 233 EXPECT_EQ(JoinActions(kGrab, kUngrab, NULL), log_.GetActionsAndClear()); |
| 234 } | 234 } |
| 235 | 235 |
| 236 TEST_F(UpdateDisplayConfigurationTaskTest, SingleConfiguration) { | 236 TEST_F(UpdateDisplayConfigurationTaskTest, SingleConfiguration) { |
| 237 UpdateDisplays(1); | 237 UpdateDisplays(1); |
| 238 | 238 |
| 239 { | 239 { |
| 240 UpdateDisplayConfigurationTask task( | 240 UpdateDisplayConfigurationTask task( |
| 241 &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_SINGLE, | 241 &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_SINGLE, |
| 242 chromeos::DISPLAY_POWER_ALL_ON, 0, 0, false, | 242 chromeos::DISPLAY_POWER_ALL_ON, 0, 0, false, false, |
| 243 base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback, | 243 base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback, |
| 244 base::Unretained(this))); | 244 base::Unretained(this))); |
| 245 task.Run(); | 245 task.Run(); |
| 246 } | 246 } |
| 247 | 247 |
| 248 EXPECT_TRUE(configured_); | 248 EXPECT_TRUE(configured_); |
| 249 EXPECT_TRUE(configuration_status_); | 249 EXPECT_TRUE(configuration_status_); |
| 250 EXPECT_EQ(MULTIPLE_DISPLAY_STATE_SINGLE, display_state_); | 250 EXPECT_EQ(MULTIPLE_DISPLAY_STATE_SINGLE, display_state_); |
| 251 EXPECT_EQ(chromeos::DISPLAY_POWER_ALL_ON, power_state_); | 251 EXPECT_EQ(chromeos::DISPLAY_POWER_ALL_ON, power_state_); |
| 252 EXPECT_EQ(JoinActions( | 252 EXPECT_EQ(JoinActions( |
| 253 kGrab, GetFramebufferAction(small_mode_.size(), &displays_[0], | 253 kGrab, GetFramebufferAction(small_mode_.size(), &displays_[0], |
| 254 nullptr).c_str(), | 254 nullptr).c_str(), |
| 255 GetCrtcAction(displays_[0], &small_mode_, gfx::Point()).c_str(), | 255 GetCrtcAction(displays_[0], &small_mode_, gfx::Point()).c_str(), |
| 256 kUngrab, NULL), | 256 kUngrab, NULL), |
| 257 log_.GetActionsAndClear()); | 257 log_.GetActionsAndClear()); |
| 258 } | 258 } |
| 259 | 259 |
| 260 TEST_F(UpdateDisplayConfigurationTaskTest, ExtendedConfiguration) { | 260 TEST_F(UpdateDisplayConfigurationTaskTest, ExtendedConfiguration) { |
| 261 UpdateDisplays(2); | 261 UpdateDisplays(2); |
| 262 | 262 |
| 263 { | 263 { |
| 264 UpdateDisplayConfigurationTask task( | 264 UpdateDisplayConfigurationTask task( |
| 265 &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_DUAL_EXTENDED, | 265 &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_DUAL_EXTENDED, |
| 266 chromeos::DISPLAY_POWER_ALL_ON, 0, 0, false, | 266 chromeos::DISPLAY_POWER_ALL_ON, 0, 0, false, false, |
| 267 base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback, | 267 base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback, |
| 268 base::Unretained(this))); | 268 base::Unretained(this))); |
| 269 task.Run(); | 269 task.Run(); |
| 270 } | 270 } |
| 271 | 271 |
| 272 EXPECT_TRUE(configured_); | 272 EXPECT_TRUE(configured_); |
| 273 EXPECT_TRUE(configuration_status_); | 273 EXPECT_TRUE(configuration_status_); |
| 274 EXPECT_EQ(MULTIPLE_DISPLAY_STATE_DUAL_EXTENDED, display_state_); | 274 EXPECT_EQ(MULTIPLE_DISPLAY_STATE_DUAL_EXTENDED, display_state_); |
| 275 EXPECT_EQ(chromeos::DISPLAY_POWER_ALL_ON, power_state_); | 275 EXPECT_EQ(chromeos::DISPLAY_POWER_ALL_ON, power_state_); |
| 276 EXPECT_EQ( | 276 EXPECT_EQ( |
| 277 JoinActions( | 277 JoinActions( |
| 278 kGrab, GetFramebufferAction(gfx::Size(big_mode_.size().width(), | 278 kGrab, GetFramebufferAction(gfx::Size(big_mode_.size().width(), |
| 279 small_mode_.size().height() + | 279 small_mode_.size().height() + |
| 280 big_mode_.size().height()), | 280 big_mode_.size().height()), |
| 281 &displays_[0], &displays_[1]).c_str(), | 281 &displays_[0], &displays_[1]).c_str(), |
| 282 GetCrtcAction(displays_[0], &small_mode_, gfx::Point()).c_str(), | 282 GetCrtcAction(displays_[0], &small_mode_, gfx::Point()).c_str(), |
| 283 GetCrtcAction(displays_[1], &big_mode_, | 283 GetCrtcAction(displays_[1], &big_mode_, |
| 284 gfx::Point(0, small_mode_.size().height())).c_str(), | 284 gfx::Point(0, small_mode_.size().height())).c_str(), |
| 285 kUngrab, NULL), | 285 kUngrab, NULL), |
| 286 log_.GetActionsAndClear()); | 286 log_.GetActionsAndClear()); |
| 287 } | 287 } |
| 288 | 288 |
| 289 TEST_F(UpdateDisplayConfigurationTaskTest, MirrorConfiguration) { | 289 TEST_F(UpdateDisplayConfigurationTaskTest, MirrorConfiguration) { |
| 290 UpdateDisplays(2); | 290 UpdateDisplays(2); |
| 291 | 291 |
| 292 { | 292 { |
| 293 UpdateDisplayConfigurationTask task( | 293 UpdateDisplayConfigurationTask task( |
| 294 &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_DUAL_MIRROR, | 294 &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_DUAL_MIRROR, |
| 295 chromeos::DISPLAY_POWER_ALL_ON, 0, 0, false, | 295 chromeos::DISPLAY_POWER_ALL_ON, 0, 0, false, false, |
| 296 base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback, | 296 base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback, |
| 297 base::Unretained(this))); | 297 base::Unretained(this))); |
| 298 task.Run(); | 298 task.Run(); |
| 299 } | 299 } |
| 300 | 300 |
| 301 EXPECT_TRUE(configured_); | 301 EXPECT_TRUE(configured_); |
| 302 EXPECT_TRUE(configuration_status_); | 302 EXPECT_TRUE(configuration_status_); |
| 303 EXPECT_EQ(MULTIPLE_DISPLAY_STATE_DUAL_MIRROR, display_state_); | 303 EXPECT_EQ(MULTIPLE_DISPLAY_STATE_DUAL_MIRROR, display_state_); |
| 304 EXPECT_EQ(chromeos::DISPLAY_POWER_ALL_ON, power_state_); | 304 EXPECT_EQ(chromeos::DISPLAY_POWER_ALL_ON, power_state_); |
| 305 EXPECT_EQ(JoinActions( | 305 EXPECT_EQ(JoinActions( |
| 306 kGrab, GetFramebufferAction(small_mode_.size(), &displays_[0], | 306 kGrab, GetFramebufferAction(small_mode_.size(), &displays_[0], |
| 307 &displays_[1]).c_str(), | 307 &displays_[1]).c_str(), |
| 308 GetCrtcAction(displays_[0], &small_mode_, gfx::Point()).c_str(), | 308 GetCrtcAction(displays_[0], &small_mode_, gfx::Point()).c_str(), |
| 309 GetCrtcAction(displays_[1], &small_mode_, gfx::Point()).c_str(), | 309 GetCrtcAction(displays_[1], &small_mode_, gfx::Point()).c_str(), |
| 310 kUngrab, NULL), | 310 kUngrab, NULL), |
| 311 log_.GetActionsAndClear()); | 311 log_.GetActionsAndClear()); |
| 312 } | 312 } |
| 313 | 313 |
| 314 TEST_F(UpdateDisplayConfigurationTaskTest, FailMirrorConfiguration) { | 314 TEST_F(UpdateDisplayConfigurationTaskTest, FailMirrorConfiguration) { |
| 315 layout_manager_.set_should_mirror(false); | 315 layout_manager_.set_should_mirror(false); |
| 316 UpdateDisplays(2); | 316 UpdateDisplays(2); |
| 317 | 317 |
| 318 { | 318 { |
| 319 UpdateDisplayConfigurationTask task( | 319 UpdateDisplayConfigurationTask task( |
| 320 &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_DUAL_MIRROR, | 320 &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_DUAL_MIRROR, |
| 321 chromeos::DISPLAY_POWER_ALL_ON, 0, 0, false, | 321 chromeos::DISPLAY_POWER_ALL_ON, 0, 0, false, false, |
| 322 base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback, | 322 base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback, |
| 323 base::Unretained(this))); | 323 base::Unretained(this))); |
| 324 task.Run(); | 324 task.Run(); |
| 325 } | 325 } |
| 326 | 326 |
| 327 EXPECT_TRUE(configured_); | 327 EXPECT_TRUE(configured_); |
| 328 EXPECT_FALSE(configuration_status_); | 328 EXPECT_FALSE(configuration_status_); |
| 329 EXPECT_EQ(JoinActions(kGrab, kUngrab, NULL), log_.GetActionsAndClear()); | 329 EXPECT_EQ(JoinActions(kGrab, kUngrab, NULL), log_.GetActionsAndClear()); |
| 330 } | 330 } |
| 331 | 331 |
| 332 TEST_F(UpdateDisplayConfigurationTaskTest, FailExtendedConfiguration) { | 332 TEST_F(UpdateDisplayConfigurationTaskTest, FailExtendedConfiguration) { |
| 333 delegate_.set_max_configurable_pixels(1); | 333 delegate_.set_max_configurable_pixels(1); |
| 334 UpdateDisplays(2); | 334 UpdateDisplays(2); |
| 335 | 335 |
| 336 { | 336 { |
| 337 UpdateDisplayConfigurationTask task( | 337 UpdateDisplayConfigurationTask task( |
| 338 &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_DUAL_EXTENDED, | 338 &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_DUAL_EXTENDED, |
| 339 chromeos::DISPLAY_POWER_ALL_ON, 0, 0, false, | 339 chromeos::DISPLAY_POWER_ALL_ON, 0, 0, false, false, |
| 340 base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback, | 340 base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback, |
| 341 base::Unretained(this))); | 341 base::Unretained(this))); |
| 342 task.Run(); | 342 task.Run(); |
| 343 } | 343 } |
| 344 | 344 |
| 345 EXPECT_TRUE(configured_); | 345 EXPECT_TRUE(configured_); |
| 346 EXPECT_FALSE(configuration_status_); | 346 EXPECT_FALSE(configuration_status_); |
| 347 EXPECT_EQ( | 347 EXPECT_EQ( |
| 348 JoinActions( | 348 JoinActions( |
| 349 kGrab, GetFramebufferAction(gfx::Size(big_mode_.size().width(), | 349 kGrab, GetFramebufferAction(gfx::Size(big_mode_.size().width(), |
| 350 small_mode_.size().height() + | 350 small_mode_.size().height() + |
| 351 big_mode_.size().height()), | 351 big_mode_.size().height()), |
| 352 &displays_[0], &displays_[1]).c_str(), | 352 &displays_[0], &displays_[1]).c_str(), |
| 353 GetCrtcAction(displays_[0], &small_mode_, gfx::Point()).c_str(), | 353 GetCrtcAction(displays_[0], &small_mode_, gfx::Point()).c_str(), |
| 354 GetCrtcAction(displays_[1], &big_mode_, | 354 GetCrtcAction(displays_[1], &big_mode_, |
| 355 gfx::Point(0, small_mode_.size().height())).c_str(), | 355 gfx::Point(0, small_mode_.size().height())).c_str(), |
| 356 GetCrtcAction(displays_[1], &small_mode_, | 356 GetCrtcAction(displays_[1], &small_mode_, |
| 357 gfx::Point(0, small_mode_.size().height())).c_str(), | 357 gfx::Point(0, small_mode_.size().height())).c_str(), |
| 358 kUngrab, NULL), | 358 kUngrab, NULL), |
| 359 log_.GetActionsAndClear()); | 359 log_.GetActionsAndClear()); |
| 360 } | 360 } |
| 361 | 361 |
| 362 TEST_F(UpdateDisplayConfigurationTaskTest, SingleChangePowerConfiguration) { | 362 TEST_F(UpdateDisplayConfigurationTaskTest, SingleChangePowerConfiguration) { |
| 363 UpdateDisplays(1); | 363 UpdateDisplays(1); |
| 364 | 364 |
| 365 { | 365 { |
| 366 UpdateDisplayConfigurationTask task( | 366 UpdateDisplayConfigurationTask task( |
| 367 &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_SINGLE, | 367 &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_SINGLE, |
| 368 chromeos::DISPLAY_POWER_ALL_ON, 0, 0, false, | 368 chromeos::DISPLAY_POWER_ALL_ON, 0, 0, false, false, |
| 369 base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback, | 369 base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback, |
| 370 base::Unretained(this))); | 370 base::Unretained(this))); |
| 371 task.Run(); | 371 task.Run(); |
| 372 } | 372 } |
| 373 | 373 |
| 374 EXPECT_TRUE(configured_); | 374 EXPECT_TRUE(configured_); |
| 375 EXPECT_TRUE(configuration_status_); | 375 EXPECT_TRUE(configuration_status_); |
| 376 EXPECT_EQ(MULTIPLE_DISPLAY_STATE_SINGLE, display_state_); | 376 EXPECT_EQ(MULTIPLE_DISPLAY_STATE_SINGLE, display_state_); |
| 377 EXPECT_EQ(chromeos::DISPLAY_POWER_ALL_ON, power_state_); | 377 EXPECT_EQ(chromeos::DISPLAY_POWER_ALL_ON, power_state_); |
| 378 EXPECT_EQ(JoinActions( | 378 EXPECT_EQ(JoinActions( |
| 379 kGrab, GetFramebufferAction(small_mode_.size(), &displays_[0], | 379 kGrab, GetFramebufferAction(small_mode_.size(), &displays_[0], |
| 380 nullptr).c_str(), | 380 nullptr).c_str(), |
| 381 GetCrtcAction(displays_[0], &small_mode_, gfx::Point()).c_str(), | 381 GetCrtcAction(displays_[0], &small_mode_, gfx::Point()).c_str(), |
| 382 kUngrab, NULL), | 382 kUngrab, NULL), |
| 383 log_.GetActionsAndClear()); | 383 log_.GetActionsAndClear()); |
| 384 | 384 |
| 385 // Turn power off | 385 // Turn power off |
| 386 { | 386 { |
| 387 UpdateDisplayConfigurationTask task( | 387 UpdateDisplayConfigurationTask task( |
| 388 &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_SINGLE, | 388 &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_SINGLE, |
| 389 chromeos::DISPLAY_POWER_ALL_OFF, 0, 0, false, | 389 chromeos::DISPLAY_POWER_ALL_OFF, 0, 0, false, false, |
| 390 base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback, | 390 base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback, |
| 391 base::Unretained(this))); | 391 base::Unretained(this))); |
| 392 task.Run(); | 392 task.Run(); |
| 393 } | 393 } |
| 394 | 394 |
| 395 EXPECT_TRUE(configuration_status_); | 395 EXPECT_TRUE(configuration_status_); |
| 396 EXPECT_EQ(MULTIPLE_DISPLAY_STATE_SINGLE, display_state_); | 396 EXPECT_EQ(MULTIPLE_DISPLAY_STATE_SINGLE, display_state_); |
| 397 EXPECT_EQ(chromeos::DISPLAY_POWER_ALL_OFF, power_state_); | 397 EXPECT_EQ(chromeos::DISPLAY_POWER_ALL_OFF, power_state_); |
| 398 EXPECT_EQ( | 398 EXPECT_EQ( |
| 399 JoinActions(kGrab, GetFramebufferAction(small_mode_.size(), &displays_[0], | 399 JoinActions(kGrab, GetFramebufferAction(small_mode_.size(), &displays_[0], |
| 400 nullptr).c_str(), | 400 nullptr).c_str(), |
| 401 GetCrtcAction(displays_[0], nullptr, gfx::Point()).c_str(), | 401 GetCrtcAction(displays_[0], nullptr, gfx::Point()).c_str(), |
| 402 kUngrab, NULL), | 402 kUngrab, NULL), |
| 403 log_.GetActionsAndClear()); | 403 log_.GetActionsAndClear()); |
| 404 } | 404 } |
| 405 | 405 |
| 406 TEST_F(UpdateDisplayConfigurationTaskTest, NoopSoftwareMirrorConfiguration) { | 406 TEST_F(UpdateDisplayConfigurationTaskTest, NoopSoftwareMirrorConfiguration) { |
| 407 layout_manager_.set_should_mirror(false); | 407 layout_manager_.set_should_mirror(false); |
| 408 layout_manager_.set_software_mirroring_controller( | 408 layout_manager_.set_software_mirroring_controller( |
| 409 base::WrapUnique(new TestSoftwareMirroringController())); | 409 base::WrapUnique(new TestSoftwareMirroringController())); |
| 410 UpdateDisplays(2); | 410 UpdateDisplays(2); |
| 411 | 411 |
| 412 { | 412 { |
| 413 UpdateDisplayConfigurationTask task( | 413 UpdateDisplayConfigurationTask task( |
| 414 &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_DUAL_EXTENDED, | 414 &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_DUAL_EXTENDED, |
| 415 chromeos::DISPLAY_POWER_ALL_ON, 0, 0, false, | 415 chromeos::DISPLAY_POWER_ALL_ON, 0, 0, false, false, |
| 416 base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback, | 416 base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback, |
| 417 base::Unretained(this))); | 417 base::Unretained(this))); |
| 418 task.Run(); | 418 task.Run(); |
| 419 } | 419 } |
| 420 | 420 |
| 421 log_.GetActionsAndClear(); | 421 log_.GetActionsAndClear(); |
| 422 | 422 |
| 423 { | 423 { |
| 424 UpdateDisplayConfigurationTask task( | 424 UpdateDisplayConfigurationTask task( |
| 425 &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_DUAL_MIRROR, | 425 &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_DUAL_MIRROR, |
| 426 chromeos::DISPLAY_POWER_ALL_ON, 0, 0, false, | 426 chromeos::DISPLAY_POWER_ALL_ON, 0, 0, false, false, |
| 427 base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback, | 427 base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback, |
| 428 base::Unretained(this))); | 428 base::Unretained(this))); |
| 429 task.Run(); | 429 task.Run(); |
| 430 } | 430 } |
| 431 | 431 |
| 432 EXPECT_TRUE(configuration_status_); | 432 EXPECT_TRUE(configuration_status_); |
| 433 EXPECT_EQ(MULTIPLE_DISPLAY_STATE_DUAL_EXTENDED, display_state_); | 433 EXPECT_EQ(MULTIPLE_DISPLAY_STATE_DUAL_EXTENDED, display_state_); |
| 434 EXPECT_TRUE(layout_manager_.GetSoftwareMirroringController() | 434 EXPECT_TRUE(layout_manager_.GetSoftwareMirroringController() |
| 435 ->SoftwareMirroringEnabled()); | 435 ->SoftwareMirroringEnabled()); |
| 436 EXPECT_EQ(JoinActions(kGrab, kUngrab, NULL), log_.GetActionsAndClear()); | 436 EXPECT_EQ(JoinActions(kGrab, kUngrab, NULL), log_.GetActionsAndClear()); |
| 437 } | 437 } |
| 438 | 438 |
| 439 TEST_F(UpdateDisplayConfigurationTaskTest, | 439 TEST_F(UpdateDisplayConfigurationTaskTest, |
| 440 ForceConfigurationWhileGoingToSoftwareMirror) { | 440 ForceConfigurationWhileGoingToSoftwareMirror) { |
| 441 layout_manager_.set_should_mirror(false); | 441 layout_manager_.set_should_mirror(false); |
| 442 layout_manager_.set_software_mirroring_controller( | 442 layout_manager_.set_software_mirroring_controller( |
| 443 base::WrapUnique(new TestSoftwareMirroringController())); | 443 base::WrapUnique(new TestSoftwareMirroringController())); |
| 444 UpdateDisplays(2); | 444 UpdateDisplays(2); |
| 445 | 445 |
| 446 { | 446 { |
| 447 UpdateDisplayConfigurationTask task( | 447 UpdateDisplayConfigurationTask task( |
| 448 &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_DUAL_EXTENDED, | 448 &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_DUAL_EXTENDED, |
| 449 chromeos::DISPLAY_POWER_ALL_ON, 0, 0, false, | 449 chromeos::DISPLAY_POWER_ALL_ON, 0, 0, false, false, |
| 450 base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback, | 450 base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback, |
| 451 base::Unretained(this))); | 451 base::Unretained(this))); |
| 452 task.Run(); | 452 task.Run(); |
| 453 } | 453 } |
| 454 | 454 |
| 455 log_.GetActionsAndClear(); | 455 log_.GetActionsAndClear(); |
| 456 | 456 |
| 457 { | 457 { |
| 458 UpdateDisplayConfigurationTask task( | 458 UpdateDisplayConfigurationTask task( |
| 459 &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_DUAL_MIRROR, | 459 &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_DUAL_MIRROR, |
| 460 chromeos::DISPLAY_POWER_ALL_ON, 0, 0, true /* force_configure */, | 460 chromeos::DISPLAY_POWER_ALL_ON, 0, 0, true /* force_configure */, |
| 461 base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback, | 461 false, base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback, |
| 462 base::Unretained(this))); | 462 base::Unretained(this))); |
| 463 task.Run(); | 463 task.Run(); |
| 464 } | 464 } |
| 465 | 465 |
| 466 EXPECT_TRUE(configuration_status_); | 466 EXPECT_TRUE(configuration_status_); |
| 467 EXPECT_EQ(MULTIPLE_DISPLAY_STATE_DUAL_EXTENDED, display_state_); | 467 EXPECT_EQ(MULTIPLE_DISPLAY_STATE_DUAL_EXTENDED, display_state_); |
| 468 EXPECT_TRUE(layout_manager_.GetSoftwareMirroringController() | 468 EXPECT_TRUE(layout_manager_.GetSoftwareMirroringController() |
| 469 ->SoftwareMirroringEnabled()); | 469 ->SoftwareMirroringEnabled()); |
| 470 EXPECT_EQ( | 470 EXPECT_EQ( |
| 471 JoinActions( | 471 JoinActions( |
| 472 kGrab, GetFramebufferAction(gfx::Size(big_mode_.size().width(), | 472 kGrab, GetFramebufferAction(gfx::Size(big_mode_.size().width(), |
| 473 small_mode_.size().height() + | 473 small_mode_.size().height() + |
| 474 big_mode_.size().height()), | 474 big_mode_.size().height()), |
| 475 &displays_[0], &displays_[1]).c_str(), | 475 &displays_[0], &displays_[1]).c_str(), |
| 476 GetCrtcAction(displays_[0], &small_mode_, gfx::Point()).c_str(), | 476 GetCrtcAction(displays_[0], &small_mode_, gfx::Point()).c_str(), |
| 477 GetCrtcAction(displays_[1], &big_mode_, | 477 GetCrtcAction(displays_[1], &big_mode_, |
| 478 gfx::Point(0, small_mode_.size().height())).c_str(), | 478 gfx::Point(0, small_mode_.size().height())).c_str(), |
| 479 kUngrab, NULL), | 479 kUngrab, NULL), |
| 480 log_.GetActionsAndClear()); | 480 log_.GetActionsAndClear()); |
| 481 } | 481 } |
| 482 | 482 |
| 483 } // namespace test | 483 } // namespace test |
| 484 } // namespace ui | 484 } // namespace ui |
| OLD | NEW |