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

Side by Side Diff: chrome/browser/extensions/display_info_provider_chromeos_unittest.cc

Issue 476103002: Make DisplayInfoProvider an interface (Closed) Base URL: git@github.com:tmpsantos/chromium.git@display_info
Patch Set: Addressed review comments. Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/extensions/api/system_display/display_info_provider.h" 5 #include "chrome/browser/extensions/api/system_display/display_info_provider.h"
6 6
7 #include "ash/display/display_controller.h" 7 #include "ash/display/display_controller.h"
8 #include "ash/display/display_manager.h" 8 #include "ash/display/display_manager.h"
9 #include "ash/screen_util.h" 9 #include "ash/screen_util.h"
10 #include "ash/shell.h" 10 #include "ash/shell.h"
11 #include "ash/test/ash_test_base.h" 11 #include "ash/test/ash_test_base.h"
12 #include "ash/test/display_manager_test_api.h" 12 #include "ash/test/display_manager_test_api.h"
13 #include "base/strings/string_number_conversions.h" 13 #include "base/strings/string_number_conversions.h"
14 #include "base/strings/stringprintf.h" 14 #include "base/strings/stringprintf.h"
15 #include "chrome/common/extensions/api/system_display.h"
15 #include "ui/gfx/display.h" 16 #include "ui/gfx/display.h"
16 #include "ui/gfx/rect.h" 17 #include "ui/gfx/rect.h"
17 18
18 namespace extensions { 19 namespace extensions {
19 namespace { 20 namespace {
20 21
21 class DisplayInfoProviderChromeosTest : public ash::test::AshTestBase { 22 class DisplayInfoProviderChromeosTest : public ash::test::AshTestBase {
22 public: 23 public:
23 DisplayInfoProviderChromeosTest() {} 24 DisplayInfoProviderChromeosTest() {}
24 25
(...skipping 20 matching lines...) Expand all
45 return ash::Shell::GetInstance()->display_manager(); 46 return ash::Shell::GetInstance()->display_manager();
46 } 47 }
47 48
48 ash::DisplayController* GetDisplayController() const { 49 ash::DisplayController* GetDisplayController() const {
49 return ash::Shell::GetInstance()->display_controller(); 50 return ash::Shell::GetInstance()->display_controller();
50 } 51 }
51 52
52 std::string SystemInfoDisplayInsetsToString( 53 std::string SystemInfoDisplayInsetsToString(
53 const api::system_display::Insets& insets) const { 54 const api::system_display::Insets& insets) const {
54 // Order to match gfx::Insets::ToString(). 55 // Order to match gfx::Insets::ToString().
55 return base::StringPrintf("%d,%d,%d,%d", 56 return base::StringPrintf(
56 insets.top, insets.left, insets.bottom, insets.right); 57 "%d,%d,%d,%d", insets.top, insets.left, insets.bottom, insets.right);
57 } 58 }
58 59
59 std::string SystemInfoDisplayBoundsToString( 60 std::string SystemInfoDisplayBoundsToString(
60 const api::system_display::Bounds& bounds) const { 61 const api::system_display::Bounds& bounds) const {
61 // Order to match gfx::Rect::ToString(). 62 // Order to match gfx::Rect::ToString().
62 return base::StringPrintf("%d,%d %dx%d", 63 return base::StringPrintf(
63 bounds.left, bounds.top, bounds.width, bounds.height); 64 "%d,%d %dx%d", bounds.left, bounds.top, bounds.width, bounds.height);
64 } 65 }
65 66
67 private:
66 DISALLOW_COPY_AND_ASSIGN(DisplayInfoProviderChromeosTest); 68 DISALLOW_COPY_AND_ASSIGN(DisplayInfoProviderChromeosTest);
67 }; 69 };
68 70
69 TEST_F(DisplayInfoProviderChromeosTest, GetBasic) { 71 TEST_F(DisplayInfoProviderChromeosTest, GetBasic) {
70 UpdateDisplay("500x600,400x520"); 72 UpdateDisplay("500x600,400x520");
71 DisplayInfo result = DisplayInfoProvider::Get()->GetAllDisplaysInfo(); 73 DisplayInfo result = DisplayInfoProvider::Get()->GetAllDisplaysInfo();
72 74
73 ASSERT_EQ(2u, result.size()); 75 ASSERT_EQ(2u, result.size());
74 76
75 int64 display_id; 77 int64 display_id;
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 TEST_F(DisplayInfoProviderChromeosTest, GetMirroring) { 237 TEST_F(DisplayInfoProviderChromeosTest, GetMirroring) {
236 UpdateDisplay("600x600, 400x520/o"); 238 UpdateDisplay("600x600, 400x520/o");
237 DisplayInfo result; 239 DisplayInfo result;
238 result = DisplayInfoProvider::Get()->GetAllDisplaysInfo(); 240 result = DisplayInfoProvider::Get()->GetAllDisplaysInfo();
239 241
240 ASSERT_EQ(2u, result.size()); 242 ASSERT_EQ(2u, result.size());
241 243
242 int64 display_id_primary; 244 int64 display_id_primary;
243 ASSERT_TRUE(base::StringToInt64(result[0]->id, &display_id_primary)) 245 ASSERT_TRUE(base::StringToInt64(result[0]->id, &display_id_primary))
244 << "Display id must be convertable to integer: " << result[0]->id; 246 << "Display id must be convertable to integer: " << result[0]->id;
245 ASSERT_TRUE(DisplayExists(display_id_primary)) 247 ASSERT_TRUE(DisplayExists(display_id_primary)) << display_id_primary
246 << display_id_primary << " not found"; 248 << " not found";
247 249
248 int64 display_id_secondary; 250 int64 display_id_secondary;
249 ASSERT_TRUE(base::StringToInt64(result[1]->id, &display_id_secondary)) 251 ASSERT_TRUE(base::StringToInt64(result[1]->id, &display_id_secondary))
250 << "Display id must be convertable to integer: " << result[1]->id; 252 << "Display id must be convertable to integer: " << result[1]->id;
251 ASSERT_TRUE(DisplayExists(display_id_secondary)) 253 ASSERT_TRUE(DisplayExists(display_id_secondary)) << display_id_secondary
252 << display_id_secondary << " not found"; 254 << " not found";
253 255
254 ASSERT_FALSE(GetDisplayManager()->IsMirrored()); 256 ASSERT_FALSE(GetDisplayManager()->IsMirrored());
255 EXPECT_TRUE(result[0]->mirroring_source_id.empty()); 257 EXPECT_TRUE(result[0]->mirroring_source_id.empty());
256 EXPECT_TRUE(result[1]->mirroring_source_id.empty()); 258 EXPECT_TRUE(result[1]->mirroring_source_id.empty());
257 259
258 GetDisplayManager()->SetMirrorMode(true); 260 GetDisplayManager()->SetMirrorMode(true);
259 ASSERT_TRUE(GetDisplayManager()->IsMirrored()); 261 ASSERT_TRUE(GetDisplayManager()->IsMirrored());
260 262
261 result = DisplayInfoProvider::Get()->GetAllDisplaysInfo(); 263 result = DisplayInfoProvider::Get()->GetAllDisplaysInfo();
262 264
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
312 TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginLeftExact) { 314 TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginLeftExact) {
313 UpdateDisplay("1200x600,520x400"); 315 UpdateDisplay("1200x600,520x400");
314 316
315 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay(); 317 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay();
316 api::system_display::DisplayProperties info; 318 api::system_display::DisplayProperties info;
317 info.bounds_origin_x.reset(new int(-520)); 319 info.bounds_origin_x.reset(new int(-520));
318 info.bounds_origin_y.reset(new int(50)); 320 info.bounds_origin_y.reset(new int(50));
319 321
320 bool success = false; 322 bool success = false;
321 std::string error; 323 std::string error;
322 CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, 324 CallSetDisplayUnitInfo(
323 &success, &error); 325 base::Int64ToString(secondary.id()), info, &success, &error);
324 326
325 ASSERT_TRUE(success); 327 ASSERT_TRUE(success);
326 ASSERT_TRUE(error.empty()); 328 ASSERT_TRUE(error.empty());
327 329
328 EXPECT_EQ("-520,50 520x400", secondary.bounds().ToString()); 330 EXPECT_EQ("-520,50 520x400", secondary.bounds().ToString());
329 } 331 }
330 332
331 TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginRightExact) { 333 TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginRightExact) {
332 UpdateDisplay("1200x600,520x400"); 334 UpdateDisplay("1200x600,520x400");
333 335
334 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay(); 336 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay();
335 api::system_display::DisplayProperties info; 337 api::system_display::DisplayProperties info;
336 info.bounds_origin_x.reset(new int(1200)); 338 info.bounds_origin_x.reset(new int(1200));
337 info.bounds_origin_y.reset(new int(100)); 339 info.bounds_origin_y.reset(new int(100));
338 340
339 bool success = false; 341 bool success = false;
340 std::string error; 342 std::string error;
341 CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, 343 CallSetDisplayUnitInfo(
342 &success, &error); 344 base::Int64ToString(secondary.id()), info, &success, &error);
343 345
344 ASSERT_TRUE(success); 346 ASSERT_TRUE(success);
345 ASSERT_TRUE(error.empty()); 347 ASSERT_TRUE(error.empty());
346 348
347 EXPECT_EQ("1200,100 520x400", secondary.bounds().ToString()); 349 EXPECT_EQ("1200,100 520x400", secondary.bounds().ToString());
348 } 350 }
349 351
350 TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginTopExact) { 352 TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginTopExact) {
351 UpdateDisplay("1200x600,520x400"); 353 UpdateDisplay("1200x600,520x400");
352 354
353 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay(); 355 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay();
354 api::system_display::DisplayProperties info; 356 api::system_display::DisplayProperties info;
355 info.bounds_origin_x.reset(new int(1100)); 357 info.bounds_origin_x.reset(new int(1100));
356 info.bounds_origin_y.reset(new int(-400)); 358 info.bounds_origin_y.reset(new int(-400));
357 359
358 bool success = false; 360 bool success = false;
359 std::string error; 361 std::string error;
360 CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, 362 CallSetDisplayUnitInfo(
361 &success, &error); 363 base::Int64ToString(secondary.id()), info, &success, &error);
362 364
363 ASSERT_TRUE(success); 365 ASSERT_TRUE(success);
364 ASSERT_TRUE(error.empty()); 366 ASSERT_TRUE(error.empty());
365 367
366 EXPECT_EQ("1100,-400 520x400", secondary.bounds().ToString()); 368 EXPECT_EQ("1100,-400 520x400", secondary.bounds().ToString());
367 } 369 }
368 370
369 TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginBottomExact) { 371 TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginBottomExact) {
370 UpdateDisplay("1200x600,520x400"); 372 UpdateDisplay("1200x600,520x400");
371 373
372 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay(); 374 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay();
373 api::system_display::DisplayProperties info; 375 api::system_display::DisplayProperties info;
374 info.bounds_origin_x.reset(new int(-350)); 376 info.bounds_origin_x.reset(new int(-350));
375 info.bounds_origin_y.reset(new int(600)); 377 info.bounds_origin_y.reset(new int(600));
376 378
377 bool success = false; 379 bool success = false;
378 std::string error; 380 std::string error;
379 CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, 381 CallSetDisplayUnitInfo(
380 &success, &error); 382 base::Int64ToString(secondary.id()), info, &success, &error);
381 383
382 ASSERT_TRUE(success); 384 ASSERT_TRUE(success);
383 ASSERT_TRUE(error.empty()); 385 ASSERT_TRUE(error.empty());
384 386
385 EXPECT_EQ("-350,600 520x400", secondary.bounds().ToString()); 387 EXPECT_EQ("-350,600 520x400", secondary.bounds().ToString());
386 } 388 }
387 389
388 TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginSameCenter) { 390 TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginSameCenter) {
389 UpdateDisplay("1200x600,520x400"); 391 UpdateDisplay("1200x600,520x400");
390 392
391 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay(); 393 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay();
392 api::system_display::DisplayProperties info; 394 api::system_display::DisplayProperties info;
393 info.bounds_origin_x.reset(new int(340)); 395 info.bounds_origin_x.reset(new int(340));
394 info.bounds_origin_y.reset(new int(100)); 396 info.bounds_origin_y.reset(new int(100));
395 397
396 bool success = false; 398 bool success = false;
397 std::string error; 399 std::string error;
398 CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, 400 CallSetDisplayUnitInfo(
399 &success, &error); 401 base::Int64ToString(secondary.id()), info, &success, &error);
400 402
401 ASSERT_TRUE(success); 403 ASSERT_TRUE(success);
402 ASSERT_TRUE(error.empty()); 404 ASSERT_TRUE(error.empty());
403 405
404 EXPECT_EQ("1200,100 520x400", secondary.bounds().ToString()); 406 EXPECT_EQ("1200,100 520x400", secondary.bounds().ToString());
405 } 407 }
406 408
407 TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginLeftOutside) { 409 TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginLeftOutside) {
408 UpdateDisplay("1200x600,520x400"); 410 UpdateDisplay("1200x600,520x400");
409 411
410 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay(); 412 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay();
411 api::system_display::DisplayProperties info; 413 api::system_display::DisplayProperties info;
412 info.bounds_origin_x.reset(new int(-1040)); 414 info.bounds_origin_x.reset(new int(-1040));
413 info.bounds_origin_y.reset(new int(100)); 415 info.bounds_origin_y.reset(new int(100));
414 416
415 bool success = false; 417 bool success = false;
416 std::string error; 418 std::string error;
417 CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, 419 CallSetDisplayUnitInfo(
418 &success, &error); 420 base::Int64ToString(secondary.id()), info, &success, &error);
419 421
420 ASSERT_TRUE(success); 422 ASSERT_TRUE(success);
421 ASSERT_TRUE(error.empty()); 423 ASSERT_TRUE(error.empty());
422 424
423 EXPECT_EQ("-520,100 520x400", secondary.bounds().ToString()); 425 EXPECT_EQ("-520,100 520x400", secondary.bounds().ToString());
424 } 426 }
425 427
426 TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginTopOutside) { 428 TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginTopOutside) {
427 UpdateDisplay("1200x600,520x400"); 429 UpdateDisplay("1200x600,520x400");
428 430
429 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay(); 431 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay();
430 api::system_display::DisplayProperties info; 432 api::system_display::DisplayProperties info;
431 info.bounds_origin_x.reset(new int(-360)); 433 info.bounds_origin_x.reset(new int(-360));
432 info.bounds_origin_y.reset(new int(-301)); 434 info.bounds_origin_y.reset(new int(-301));
433 435
434 bool success = false; 436 bool success = false;
435 std::string error; 437 std::string error;
436 CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, 438 CallSetDisplayUnitInfo(
437 &success, &error); 439 base::Int64ToString(secondary.id()), info, &success, &error);
438 440
439 ASSERT_TRUE(success); 441 ASSERT_TRUE(success);
440 ASSERT_TRUE(error.empty()); 442 ASSERT_TRUE(error.empty());
441 443
442 EXPECT_EQ("-360,-400 520x400", secondary.bounds().ToString()); 444 EXPECT_EQ("-360,-400 520x400", secondary.bounds().ToString());
443 } 445 }
444 446
445 TEST_F(DisplayInfoProviderChromeosTest, 447 TEST_F(DisplayInfoProviderChromeosTest,
446 SetBoundsOriginLeftButSharesBottomSide) { 448 SetBoundsOriginLeftButSharesBottomSide) {
447 UpdateDisplay("1200x600,1000x100"); 449 UpdateDisplay("1200x600,1000x100");
448 450
449 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay(); 451 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay();
450 api::system_display::DisplayProperties info; 452 api::system_display::DisplayProperties info;
451 info.bounds_origin_x.reset(new int(-650)); 453 info.bounds_origin_x.reset(new int(-650));
452 info.bounds_origin_y.reset(new int(700)); 454 info.bounds_origin_y.reset(new int(700));
453 455
454 bool success = false; 456 bool success = false;
455 std::string error; 457 std::string error;
456 CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, 458 CallSetDisplayUnitInfo(
457 &success, &error); 459 base::Int64ToString(secondary.id()), info, &success, &error);
458 460
459 ASSERT_TRUE(success); 461 ASSERT_TRUE(success);
460 ASSERT_TRUE(error.empty()); 462 ASSERT_TRUE(error.empty());
461 463
462 EXPECT_EQ("-650,600 1000x100", secondary.bounds().ToString()); 464 EXPECT_EQ("-650,600 1000x100", secondary.bounds().ToString());
463 } 465 }
464 466
465 TEST_F(DisplayInfoProviderChromeosTest, 467 TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginRightButSharesTopSide) {
466 SetBoundsOriginRightButSharesTopSide) {
467 UpdateDisplay("1200x600,1000x100"); 468 UpdateDisplay("1200x600,1000x100");
468 469
469 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay(); 470 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay();
470 api::system_display::DisplayProperties info; 471 api::system_display::DisplayProperties info;
471 info.bounds_origin_x.reset(new int(850)); 472 info.bounds_origin_x.reset(new int(850));
472 info.bounds_origin_y.reset(new int(-150)); 473 info.bounds_origin_y.reset(new int(-150));
473 474
474 bool success = false; 475 bool success = false;
475 std::string error; 476 std::string error;
476 CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, 477 CallSetDisplayUnitInfo(
477 &success, &error); 478 base::Int64ToString(secondary.id()), info, &success, &error);
478 479
479 ASSERT_TRUE(success); 480 ASSERT_TRUE(success);
480 ASSERT_TRUE(error.empty()); 481 ASSERT_TRUE(error.empty());
481 482
482 EXPECT_EQ("850,-100 1000x100", secondary.bounds().ToString()); 483 EXPECT_EQ("850,-100 1000x100", secondary.bounds().ToString());
483 } 484 }
484 485
485 TEST_F(DisplayInfoProviderChromeosTest, 486 TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginTopButSharesLeftSide) {
486 SetBoundsOriginTopButSharesLeftSide) {
487 UpdateDisplay("1200x600,1000x100/l"); 487 UpdateDisplay("1200x600,1000x100/l");
488 488
489 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay(); 489 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay();
490 api::system_display::DisplayProperties info; 490 api::system_display::DisplayProperties info;
491 info.bounds_origin_x.reset(new int(-150)); 491 info.bounds_origin_x.reset(new int(-150));
492 info.bounds_origin_y.reset(new int(-650)); 492 info.bounds_origin_y.reset(new int(-650));
493 493
494 bool success = false; 494 bool success = false;
495 std::string error; 495 std::string error;
496 CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, 496 CallSetDisplayUnitInfo(
497 &success, &error); 497 base::Int64ToString(secondary.id()), info, &success, &error);
498 498
499 ASSERT_TRUE(success); 499 ASSERT_TRUE(success);
500 ASSERT_TRUE(error.empty()); 500 ASSERT_TRUE(error.empty());
501 501
502 EXPECT_EQ("-100,-650 100x1000", secondary.bounds().ToString()); 502 EXPECT_EQ("-100,-650 100x1000", secondary.bounds().ToString());
503 } 503 }
504 504
505 TEST_F(DisplayInfoProviderChromeosTest, 505 TEST_F(DisplayInfoProviderChromeosTest,
506 SetBoundsOriginBottomButSharesRightSide) { 506 SetBoundsOriginBottomButSharesRightSide) {
507 UpdateDisplay("1200x600,1000x100/l"); 507 UpdateDisplay("1200x600,1000x100/l");
508 508
509 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay(); 509 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay();
510 api::system_display::DisplayProperties info; 510 api::system_display::DisplayProperties info;
511 info.bounds_origin_x.reset(new int(1350)); 511 info.bounds_origin_x.reset(new int(1350));
512 info.bounds_origin_y.reset(new int(450)); 512 info.bounds_origin_y.reset(new int(450));
513 513
514 bool success = false; 514 bool success = false;
515 std::string error; 515 std::string error;
516 CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, 516 CallSetDisplayUnitInfo(
517 &success, &error); 517 base::Int64ToString(secondary.id()), info, &success, &error);
518 518
519 ASSERT_TRUE(success); 519 ASSERT_TRUE(success);
520 ASSERT_TRUE(error.empty()); 520 ASSERT_TRUE(error.empty());
521 521
522 EXPECT_EQ("1200,450 100x1000", secondary.bounds().ToString()); 522 EXPECT_EQ("1200,450 100x1000", secondary.bounds().ToString());
523 } 523 }
524 524
525 TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginPrimaryHiDPI) { 525 TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginPrimaryHiDPI) {
526 UpdateDisplay("1200x600*2,500x500"); 526 UpdateDisplay("1200x600*2,500x500");
527 527
528 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay(); 528 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay();
529 api::system_display::DisplayProperties info; 529 api::system_display::DisplayProperties info;
530 info.bounds_origin_x.reset(new int(250)); 530 info.bounds_origin_x.reset(new int(250));
531 info.bounds_origin_y.reset(new int(-100)); 531 info.bounds_origin_y.reset(new int(-100));
532 532
533 bool success = false; 533 bool success = false;
534 std::string error; 534 std::string error;
535 CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, 535 CallSetDisplayUnitInfo(
536 &success, &error); 536 base::Int64ToString(secondary.id()), info, &success, &error);
537 537
538 ASSERT_TRUE(success); 538 ASSERT_TRUE(success);
539 ASSERT_TRUE(error.empty()); 539 ASSERT_TRUE(error.empty());
540 540
541 EXPECT_EQ("600,-100 500x500", secondary.bounds().ToString()); 541 EXPECT_EQ("600,-100 500x500", secondary.bounds().ToString());
542 } 542 }
543 543
544 TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginSecondaryHiDPI) { 544 TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginSecondaryHiDPI) {
545 UpdateDisplay("1200x600,600x1000*2"); 545 UpdateDisplay("1200x600,600x1000*2");
546 546
547 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay(); 547 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay();
548 api::system_display::DisplayProperties info; 548 api::system_display::DisplayProperties info;
549 info.bounds_origin_x.reset(new int(450)); 549 info.bounds_origin_x.reset(new int(450));
550 info.bounds_origin_y.reset(new int(-100)); 550 info.bounds_origin_y.reset(new int(-100));
551 551
552 bool success = false; 552 bool success = false;
553 std::string error; 553 std::string error;
554 CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, 554 CallSetDisplayUnitInfo(
555 &success, &error); 555 base::Int64ToString(secondary.id()), info, &success, &error);
556 556
557 ASSERT_TRUE(success); 557 ASSERT_TRUE(success);
558 ASSERT_TRUE(error.empty()); 558 ASSERT_TRUE(error.empty());
559 559
560 EXPECT_EQ("450,-500 300x500", secondary.bounds().ToString()); 560 EXPECT_EQ("450,-500 300x500", secondary.bounds().ToString());
561 } 561 }
562 562
563 TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginOutOfBounds) { 563 TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginOutOfBounds) {
564 UpdateDisplay("1200x600,600x1000*2"); 564 UpdateDisplay("1200x600,600x1000*2");
565 565
566 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay(); 566 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay();
567 api::system_display::DisplayProperties info; 567 api::system_display::DisplayProperties info;
568 info.bounds_origin_x.reset(new int(0x200001)); 568 info.bounds_origin_x.reset(new int(0x200001));
569 info.bounds_origin_y.reset(new int(-100)); 569 info.bounds_origin_y.reset(new int(-100));
570 570
571 bool success = false; 571 bool success = false;
572 std::string error; 572 std::string error;
573 CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, 573 CallSetDisplayUnitInfo(
574 &success, &error); 574 base::Int64ToString(secondary.id()), info, &success, &error);
575 575
576 ASSERT_FALSE(success); 576 ASSERT_FALSE(success);
577 ASSERT_EQ("Bounds origin x out of bounds.", error); 577 ASSERT_EQ("Bounds origin x out of bounds.", error);
578 578
579 EXPECT_EQ("1200,0 300x500", secondary.bounds().ToString()); 579 EXPECT_EQ("1200,0 300x500", secondary.bounds().ToString());
580 } 580 }
581 581
582 TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginOutOfBoundsNegative) { 582 TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginOutOfBoundsNegative) {
583 UpdateDisplay("1200x600,600x1000*2"); 583 UpdateDisplay("1200x600,600x1000*2");
584 584
585 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay(); 585 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay();
586 api::system_display::DisplayProperties info; 586 api::system_display::DisplayProperties info;
587 info.bounds_origin_x.reset(new int(300)); 587 info.bounds_origin_x.reset(new int(300));
588 info.bounds_origin_y.reset(new int(-0x200001)); 588 info.bounds_origin_y.reset(new int(-0x200001));
589 589
590 bool success = false; 590 bool success = false;
591 std::string error; 591 std::string error;
592 CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, 592 CallSetDisplayUnitInfo(
593 &success, &error); 593 base::Int64ToString(secondary.id()), info, &success, &error);
594 594
595 ASSERT_FALSE(success); 595 ASSERT_FALSE(success);
596 ASSERT_EQ("Bounds origin y out of bounds.", error); 596 ASSERT_EQ("Bounds origin y out of bounds.", error);
597 597
598 EXPECT_EQ("1200,0 300x500", secondary.bounds().ToString()); 598 EXPECT_EQ("1200,0 300x500", secondary.bounds().ToString());
599 } 599 }
600 600
601 TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginMaxValues) { 601 TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginMaxValues) {
602 UpdateDisplay("1200x4600,600x1000*2"); 602 UpdateDisplay("1200x4600,600x1000*2");
603 603
604 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay(); 604 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay();
605 api::system_display::DisplayProperties info; 605 api::system_display::DisplayProperties info;
606 info.bounds_origin_x.reset(new int(200000)); 606 info.bounds_origin_x.reset(new int(200000));
607 info.bounds_origin_y.reset(new int(10)); 607 info.bounds_origin_y.reset(new int(10));
608 608
609 bool success = false; 609 bool success = false;
610 std::string error; 610 std::string error;
611 CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, 611 CallSetDisplayUnitInfo(
612 &success, &error); 612 base::Int64ToString(secondary.id()), info, &success, &error);
613 613
614 ASSERT_TRUE(success); 614 ASSERT_TRUE(success);
615 EXPECT_TRUE(error.empty()); 615 EXPECT_TRUE(error.empty());
616 616
617 EXPECT_EQ("1200,10 300x500", secondary.bounds().ToString()); 617 EXPECT_EQ("1200,10 300x500", secondary.bounds().ToString());
618 } 618 }
619 619
620 TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginOnPrimary) { 620 TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginOnPrimary) {
621 UpdateDisplay("1200x600,600x1000*2"); 621 UpdateDisplay("1200x600,600x1000*2");
622 622
623 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay(); 623 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay();
624 api::system_display::DisplayProperties info; 624 api::system_display::DisplayProperties info;
625 info.bounds_origin_x.reset(new int(300)); 625 info.bounds_origin_x.reset(new int(300));
626 info.is_primary.reset(new bool(true)); 626 info.is_primary.reset(new bool(true));
627 627
628 bool success = false; 628 bool success = false;
629 std::string error; 629 std::string error;
630 CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, 630 CallSetDisplayUnitInfo(
631 &success, &error); 631 base::Int64ToString(secondary.id()), info, &success, &error);
632 632
633 ASSERT_FALSE(success); 633 ASSERT_FALSE(success);
634 ASSERT_EQ("Bounds origin not allowed for the primary display.", error); 634 ASSERT_EQ("Bounds origin not allowed for the primary display.", error);
635 635
636 EXPECT_EQ("1200,0 300x500", secondary.bounds().ToString()); 636 EXPECT_EQ("1200,0 300x500", secondary.bounds().ToString());
637 // The operation failed because the primary property would be set before 637 // The operation failed because the primary property would be set before
638 // setting bounds. The primary display shouldn't have been changed, though. 638 // setting bounds. The primary display shouldn't have been changed, though.
639 EXPECT_NE(ash::Shell::GetScreen()->GetPrimaryDisplay().id(), secondary.id()); 639 EXPECT_NE(ash::Shell::GetScreen()->GetPrimaryDisplay().id(), secondary.id());
640 } 640 }
641 641
642 TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginWithMirroring) { 642 TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginWithMirroring) {
643 UpdateDisplay("1200x600,600x1000*2"); 643 UpdateDisplay("1200x600,600x1000*2");
644 644
645 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay(); 645 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay();
646 const gfx::Display& primary = ash::Shell::GetScreen()->GetPrimaryDisplay(); 646 const gfx::Display& primary = ash::Shell::GetScreen()->GetPrimaryDisplay();
647 647
648 api::system_display::DisplayProperties info; 648 api::system_display::DisplayProperties info;
649 info.bounds_origin_x.reset(new int(300)); 649 info.bounds_origin_x.reset(new int(300));
650 info.mirroring_source_id.reset( 650 info.mirroring_source_id.reset(
651 new std::string(base::Int64ToString(primary.id()))); 651 new std::string(base::Int64ToString(primary.id())));
652 652
653 bool success = false; 653 bool success = false;
654 std::string error; 654 std::string error;
655 CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, 655 CallSetDisplayUnitInfo(
656 &success, &error); 656 base::Int64ToString(secondary.id()), info, &success, &error);
657 657
658 ASSERT_FALSE(success); 658 ASSERT_FALSE(success);
659 ASSERT_EQ("No other parameter should be set alongside mirroringSourceId.", 659 ASSERT_EQ("No other parameter should be set alongside mirroringSourceId.",
660 error); 660 error);
661 } 661 }
662 662
663 TEST_F(DisplayInfoProviderChromeosTest, SetRotation) { 663 TEST_F(DisplayInfoProviderChromeosTest, SetRotation) {
664 UpdateDisplay("1200x600,600x1000*2"); 664 UpdateDisplay("1200x600,600x1000*2");
665 665
666 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay(); 666 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay();
667 api::system_display::DisplayProperties info; 667 api::system_display::DisplayProperties info;
668 info.rotation.reset(new int(90)); 668 info.rotation.reset(new int(90));
669 669
670 bool success = false; 670 bool success = false;
671 std::string error; 671 std::string error;
672 CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, 672 CallSetDisplayUnitInfo(
673 &success, &error); 673 base::Int64ToString(secondary.id()), info, &success, &error);
674 674
675 ASSERT_TRUE(success); 675 ASSERT_TRUE(success);
676 EXPECT_TRUE(error.empty()); 676 EXPECT_TRUE(error.empty());
677 677
678 EXPECT_EQ("1200,0 500x300", secondary.bounds().ToString()); 678 EXPECT_EQ("1200,0 500x300", secondary.bounds().ToString());
679 EXPECT_EQ(gfx::Display::ROTATE_90, secondary.rotation()); 679 EXPECT_EQ(gfx::Display::ROTATE_90, secondary.rotation());
680 680
681 info.rotation.reset(new int(270)); 681 info.rotation.reset(new int(270));
682 CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, 682 CallSetDisplayUnitInfo(
683 &success, &error); 683 base::Int64ToString(secondary.id()), info, &success, &error);
684 684
685 ASSERT_TRUE(success); 685 ASSERT_TRUE(success);
686 EXPECT_TRUE(error.empty()); 686 EXPECT_TRUE(error.empty());
687 687
688 EXPECT_EQ("1200,0 500x300", secondary.bounds().ToString()); 688 EXPECT_EQ("1200,0 500x300", secondary.bounds().ToString());
689 EXPECT_EQ(gfx::Display::ROTATE_270, secondary.rotation()); 689 EXPECT_EQ(gfx::Display::ROTATE_270, secondary.rotation());
690 690
691 info.rotation.reset(new int(180)); 691 info.rotation.reset(new int(180));
692 // Switch primary display. 692 // Switch primary display.
693 info.is_primary.reset(new bool(true)); 693 info.is_primary.reset(new bool(true));
694 CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, 694 CallSetDisplayUnitInfo(
695 &success, &error); 695 base::Int64ToString(secondary.id()), info, &success, &error);
696 696
697 ASSERT_TRUE(success); 697 ASSERT_TRUE(success);
698 EXPECT_TRUE(error.empty()); 698 EXPECT_TRUE(error.empty());
699 699
700 EXPECT_EQ("0,0 300x500", secondary.bounds().ToString()); 700 EXPECT_EQ("0,0 300x500", secondary.bounds().ToString());
701 EXPECT_EQ(gfx::Display::ROTATE_180, secondary.rotation()); 701 EXPECT_EQ(gfx::Display::ROTATE_180, secondary.rotation());
702 EXPECT_EQ(ash::Shell::GetScreen()->GetPrimaryDisplay().id(), secondary.id()); 702 EXPECT_EQ(ash::Shell::GetScreen()->GetPrimaryDisplay().id(), secondary.id());
703 703
704 info.rotation.reset(new int(0)); 704 info.rotation.reset(new int(0));
705 CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, 705 CallSetDisplayUnitInfo(
706 &success, &error); 706 base::Int64ToString(secondary.id()), info, &success, &error);
707 707
708 ASSERT_TRUE(success); 708 ASSERT_TRUE(success);
709 EXPECT_TRUE(error.empty()); 709 EXPECT_TRUE(error.empty());
710 710
711 EXPECT_EQ("0,0 300x500", secondary.bounds().ToString()); 711 EXPECT_EQ("0,0 300x500", secondary.bounds().ToString());
712 EXPECT_EQ(gfx::Display::ROTATE_0, secondary.rotation()); 712 EXPECT_EQ(gfx::Display::ROTATE_0, secondary.rotation());
713 EXPECT_EQ(ash::Shell::GetScreen()->GetPrimaryDisplay().id(), secondary.id()); 713 EXPECT_EQ(ash::Shell::GetScreen()->GetPrimaryDisplay().id(), secondary.id());
714 } 714 }
715 715
716 TEST_F(DisplayInfoProviderChromeosTest, SetInvalidRotation) { 716 TEST_F(DisplayInfoProviderChromeosTest, SetInvalidRotation) {
717 UpdateDisplay("1200x600,600x1000*2"); 717 UpdateDisplay("1200x600,600x1000*2");
718 718
719 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay(); 719 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay();
720 api::system_display::DisplayProperties info; 720 api::system_display::DisplayProperties info;
721 info.rotation.reset(new int(91)); 721 info.rotation.reset(new int(91));
722 722
723 bool success = false; 723 bool success = false;
724 std::string error; 724 std::string error;
725 CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, 725 CallSetDisplayUnitInfo(
726 &success, &error); 726 base::Int64ToString(secondary.id()), info, &success, &error);
727 727
728 ASSERT_FALSE(success); 728 ASSERT_FALSE(success);
729 EXPECT_EQ("Invalid rotation.", error); 729 EXPECT_EQ("Invalid rotation.", error);
730 } 730 }
731 731
732 TEST_F(DisplayInfoProviderChromeosTest, SetNegativeOverscan) { 732 TEST_F(DisplayInfoProviderChromeosTest, SetNegativeOverscan) {
733 UpdateDisplay("1200x600,600x1000*2"); 733 UpdateDisplay("1200x600,600x1000*2");
734 734
735 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay(); 735 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay();
736 api::system_display::DisplayProperties info; 736 api::system_display::DisplayProperties info;
737 info.overscan.reset(new api::system_display::Insets); 737 info.overscan.reset(new api::system_display::Insets);
738 info.overscan->left= -10; 738 info.overscan->left = -10;
739 739
740 bool success = false; 740 bool success = false;
741 std::string error; 741 std::string error;
742 CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, 742 CallSetDisplayUnitInfo(
743 &success, &error); 743 base::Int64ToString(secondary.id()), info, &success, &error);
744 744
745 ASSERT_FALSE(success); 745 ASSERT_FALSE(success);
746 EXPECT_EQ("Negative overscan not allowed.", error); 746 EXPECT_EQ("Negative overscan not allowed.", error);
747 747
748 EXPECT_EQ("1200,0 300x500", secondary.bounds().ToString()); 748 EXPECT_EQ("1200,0 300x500", secondary.bounds().ToString());
749 749
750 info.overscan->left= 0; 750 info.overscan->left = 0;
751 info.overscan->right = -200; 751 info.overscan->right = -200;
752 752
753 CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, 753 CallSetDisplayUnitInfo(
754 &success, &error); 754 base::Int64ToString(secondary.id()), info, &success, &error);
755 755
756 ASSERT_FALSE(success); 756 ASSERT_FALSE(success);
757 EXPECT_EQ("Negative overscan not allowed.", error); 757 EXPECT_EQ("Negative overscan not allowed.", error);
758 758
759 EXPECT_EQ("1200,0 300x500", secondary.bounds().ToString()); 759 EXPECT_EQ("1200,0 300x500", secondary.bounds().ToString());
760 760
761 info.overscan->right= 0; 761 info.overscan->right = 0;
762 info.overscan->top = -300; 762 info.overscan->top = -300;
763 763
764 CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, 764 CallSetDisplayUnitInfo(
765 &success, &error); 765 base::Int64ToString(secondary.id()), info, &success, &error);
766 766
767 ASSERT_FALSE(success); 767 ASSERT_FALSE(success);
768 EXPECT_EQ("Negative overscan not allowed.", error); 768 EXPECT_EQ("Negative overscan not allowed.", error);
769 769
770 EXPECT_EQ("1200,0 300x500", secondary.bounds().ToString()); 770 EXPECT_EQ("1200,0 300x500", secondary.bounds().ToString());
771 771
772 info.overscan->right= 0; 772 info.overscan->right = 0;
773 info.overscan->top = -1000; 773 info.overscan->top = -1000;
774 774
775 CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, 775 CallSetDisplayUnitInfo(
776 &success, &error); 776 base::Int64ToString(secondary.id()), info, &success, &error);
777 777
778 ASSERT_FALSE(success); 778 ASSERT_FALSE(success);
779 EXPECT_EQ("Negative overscan not allowed.", error); 779 EXPECT_EQ("Negative overscan not allowed.", error);
780 780
781 EXPECT_EQ("1200,0 300x500", secondary.bounds().ToString()); 781 EXPECT_EQ("1200,0 300x500", secondary.bounds().ToString());
782 782
783 info.overscan->right= 0; 783 info.overscan->right = 0;
784 info.overscan->top = 0; 784 info.overscan->top = 0;
785 785
786 CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, 786 CallSetDisplayUnitInfo(
787 &success, &error); 787 base::Int64ToString(secondary.id()), info, &success, &error);
788 788
789 ASSERT_TRUE(success); 789 ASSERT_TRUE(success);
790 EXPECT_TRUE(error.empty()); 790 EXPECT_TRUE(error.empty());
791 791
792 EXPECT_EQ("1200,0 300x500", secondary.bounds().ToString()); 792 EXPECT_EQ("1200,0 300x500", secondary.bounds().ToString());
793 } 793 }
794 794
795 TEST_F(DisplayInfoProviderChromeosTest, SetOverscanLargerThanHorizontalBounds) { 795 TEST_F(DisplayInfoProviderChromeosTest, SetOverscanLargerThanHorizontalBounds) {
796 UpdateDisplay("1200x600,600x1000*2"); 796 UpdateDisplay("1200x600,600x1000*2");
797 797
798 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay(); 798 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay();
799 api::system_display::DisplayProperties info; 799 api::system_display::DisplayProperties info;
800 info.overscan.reset(new api::system_display::Insets); 800 info.overscan.reset(new api::system_display::Insets);
801 // Horizontal overscan is 151, which would make the bounds width 149. 801 // Horizontal overscan is 151, which would make the bounds width 149.
802 info.overscan->left= 50; 802 info.overscan->left = 50;
803 info.overscan->top = 10; 803 info.overscan->top = 10;
804 info.overscan->right = 101; 804 info.overscan->right = 101;
805 info.overscan->bottom = 20; 805 info.overscan->bottom = 20;
806 806
807 bool success = false; 807 bool success = false;
808 std::string error; 808 std::string error;
809 CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, 809 CallSetDisplayUnitInfo(
810 &success, &error); 810 base::Int64ToString(secondary.id()), info, &success, &error);
811 811
812 ASSERT_FALSE(success); 812 ASSERT_FALSE(success);
813 EXPECT_EQ("Horizontal overscan is more than half of the screen width.", 813 EXPECT_EQ("Horizontal overscan is more than half of the screen width.",
814 error); 814 error);
815 } 815 }
816 816
817 TEST_F(DisplayInfoProviderChromeosTest, SetOverscanLargerThanVerticalBounds) { 817 TEST_F(DisplayInfoProviderChromeosTest, SetOverscanLargerThanVerticalBounds) {
818 UpdateDisplay("1200x600,600x1000"); 818 UpdateDisplay("1200x600,600x1000");
819 819
820 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay(); 820 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay();
821 api::system_display::DisplayProperties info; 821 api::system_display::DisplayProperties info;
822 info.overscan.reset(new api::system_display::Insets); 822 info.overscan.reset(new api::system_display::Insets);
823 // Vertical overscan is 501, which would make the bounds height 499. 823 // Vertical overscan is 501, which would make the bounds height 499.
824 info.overscan->left= 20; 824 info.overscan->left = 20;
825 info.overscan->top = 250; 825 info.overscan->top = 250;
826 info.overscan->right = 101; 826 info.overscan->right = 101;
827 info.overscan->bottom = 251; 827 info.overscan->bottom = 251;
828 828
829 bool success = false; 829 bool success = false;
830 std::string error; 830 std::string error;
831 CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, 831 CallSetDisplayUnitInfo(
832 &success, &error); 832 base::Int64ToString(secondary.id()), info, &success, &error);
833 833
834 ASSERT_FALSE(success); 834 ASSERT_FALSE(success);
835 EXPECT_EQ("Vertical overscan is more than half of the screen height.", 835 EXPECT_EQ("Vertical overscan is more than half of the screen height.", error);
836 error);
837 } 836 }
838 837
839 TEST_F(DisplayInfoProviderChromeosTest, SetOverscan) { 838 TEST_F(DisplayInfoProviderChromeosTest, SetOverscan) {
840 UpdateDisplay("1200x600,600x1000*2"); 839 UpdateDisplay("1200x600,600x1000*2");
841 840
842 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay(); 841 const gfx::Display& secondary = ash::ScreenUtil::GetSecondaryDisplay();
843 api::system_display::DisplayProperties info; 842 api::system_display::DisplayProperties info;
844 info.overscan.reset(new api::system_display::Insets); 843 info.overscan.reset(new api::system_display::Insets);
845 info.overscan->left= 20; 844 info.overscan->left = 20;
846 info.overscan->top = 199; 845 info.overscan->top = 199;
847 info.overscan->right = 130; 846 info.overscan->right = 130;
848 info.overscan->bottom = 51; 847 info.overscan->bottom = 51;
849 848
850 bool success = false; 849 bool success = false;
851 std::string error; 850 std::string error;
852 CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, 851 CallSetDisplayUnitInfo(
853 &success, &error); 852 base::Int64ToString(secondary.id()), info, &success, &error);
854 853
855 ASSERT_TRUE(success); 854 ASSERT_TRUE(success);
856 EXPECT_TRUE(error.empty()); 855 EXPECT_TRUE(error.empty());
857 856
858 EXPECT_EQ("1200,0 150x250", secondary.bounds().ToString()); 857 EXPECT_EQ("1200,0 150x250", secondary.bounds().ToString());
859 const gfx::Insets overscan = 858 const gfx::Insets overscan =
860 GetDisplayManager()->GetOverscanInsets(secondary.id()); 859 GetDisplayManager()->GetOverscanInsets(secondary.id());
861 860
862 EXPECT_EQ(20, overscan.left()); 861 EXPECT_EQ(20, overscan.left());
863 EXPECT_EQ(199, overscan.top()); 862 EXPECT_EQ(199, overscan.top());
864 EXPECT_EQ(130, overscan.right()); 863 EXPECT_EQ(130, overscan.right());
865 EXPECT_EQ(51, overscan.bottom()); 864 EXPECT_EQ(51, overscan.bottom());
866 } 865 }
867 866
868 TEST_F(DisplayInfoProviderChromeosTest, SetOverscanForInternal) { 867 TEST_F(DisplayInfoProviderChromeosTest, SetOverscanForInternal) {
869 UpdateDisplay("1200x600,600x1000*2"); 868 UpdateDisplay("1200x600,600x1000*2");
870 const int64 internal_display_id = 869 const int64 internal_display_id =
871 ash::test::DisplayManagerTestApi(GetDisplayManager()). 870 ash::test::DisplayManagerTestApi(GetDisplayManager())
872 SetFirstDisplayAsInternalDisplay(); 871 .SetFirstDisplayAsInternalDisplay();
873 872
874 api::system_display::DisplayProperties info; 873 api::system_display::DisplayProperties info;
875 info.overscan.reset(new api::system_display::Insets); 874 info.overscan.reset(new api::system_display::Insets);
876 // Vertical overscan is 501, which would make the bounds height 499. 875 // Vertical overscan is 501, which would make the bounds height 499.
877 info.overscan->left= 20; 876 info.overscan->left = 20;
878 info.overscan->top = 20; 877 info.overscan->top = 20;
879 info.overscan->right = 20; 878 info.overscan->right = 20;
880 info.overscan->bottom = 20; 879 info.overscan->bottom = 20;
881 880
882 bool success = false; 881 bool success = false;
883 std::string error; 882 std::string error;
884 CallSetDisplayUnitInfo(base::Int64ToString(internal_display_id), info, 883 CallSetDisplayUnitInfo(
885 &success, &error); 884 base::Int64ToString(internal_display_id), info, &success, &error);
886 885
887 ASSERT_FALSE(success); 886 ASSERT_FALSE(success);
888 EXPECT_EQ("Overscan changes not allowed for the internal monitor.", 887 EXPECT_EQ("Overscan changes not allowed for the internal monitor.", error);
889 error);
890 } 888 }
891 889
892 } // namespace 890 } // namespace
893 } // namespace extensions 891 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698