| 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 <map> | 5 #include <map> |
| 6 | 6 |
| 7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
| 8 #include "base/rand_util.h" | 8 #include "base/rand_util.h" |
| 9 #include "base/strings/string_util.h" | 9 #include "base/strings/string_util.h" |
| 10 #include "base/strings/stringprintf.h" | 10 #include "base/strings/stringprintf.h" |
| 11 #include "base/strings/utf_string_conversions.h" | 11 #include "base/strings/utf_string_conversions.h" |
| 12 #include "ui/base/accelerators/accelerator.h" | 12 #include "ui/base/accelerators/accelerator.h" |
| 13 #include "ui/base/clipboard/clipboard.h" | 13 #include "ui/base/clipboard/clipboard.h" |
| 14 #include "ui/base/l10n/l10n_util.h" | 14 #include "ui/base/l10n/l10n_util.h" |
| 15 #include "ui/compositor/compositor.h" | 15 #include "ui/compositor/compositor.h" |
| 16 #include "ui/compositor/layer.h" | 16 #include "ui/compositor/layer.h" |
| 17 #include "ui/compositor/layer_animator.h" | 17 #include "ui/compositor/layer_animator.h" |
| 18 #include "ui/compositor/paint_context.h" |
| 18 #include "ui/compositor/test/draw_waiter_for_test.h" | 19 #include "ui/compositor/test/draw_waiter_for_test.h" |
| 19 #include "ui/events/event.h" | 20 #include "ui/events/event.h" |
| 20 #include "ui/events/event_utils.h" | 21 #include "ui/events/event_utils.h" |
| 21 #include "ui/events/keycodes/keyboard_codes.h" | 22 #include "ui/events/keycodes/keyboard_codes.h" |
| 22 #include "ui/gfx/canvas.h" | 23 #include "ui/gfx/canvas.h" |
| 23 #include "ui/gfx/path.h" | 24 #include "ui/gfx/path.h" |
| 24 #include "ui/gfx/transform.h" | 25 #include "ui/gfx/transform.h" |
| 25 #include "ui/strings/grit/ui_strings.h" | 26 #include "ui/strings/grit/ui_strings.h" |
| 26 #include "ui/views/background.h" | 27 #include "ui/views/background.h" |
| 27 #include "ui/views/controls/native/native_view_host.h" | 28 #include "ui/views/controls/native/native_view_host.h" |
| (...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 442 | 443 |
| 443 TestView* v2 = new TestView; | 444 TestView* v2 = new TestView; |
| 444 v2->SetBounds(3, 4, 6, 5); | 445 v2->SetBounds(3, 4, 6, 5); |
| 445 v1->AddChildView(v2); | 446 v1->AddChildView(v2); |
| 446 | 447 |
| 447 gfx::Canvas canvas(root_view->size(), 1.f, true); | 448 gfx::Canvas canvas(root_view->size(), 1.f, true); |
| 448 gfx::Rect paint_area(1, 1); | 449 gfx::Rect paint_area(1, 1); |
| 449 | 450 |
| 450 EXPECT_FALSE(v1->did_paint_); | 451 EXPECT_FALSE(v1->did_paint_); |
| 451 EXPECT_FALSE(v2->did_paint_); | 452 EXPECT_FALSE(v2->did_paint_); |
| 452 root_view->Paint(View::PaintContext(&canvas)); | 453 root_view->Paint(ui::PaintContext(&canvas)); |
| 453 EXPECT_TRUE(v1->did_paint_); | 454 EXPECT_TRUE(v1->did_paint_); |
| 454 EXPECT_TRUE(v2->did_paint_); | 455 EXPECT_TRUE(v2->did_paint_); |
| 455 | 456 |
| 456 v1->Reset(); | 457 v1->Reset(); |
| 457 v2->Reset(); | 458 v2->Reset(); |
| 458 EXPECT_FALSE(v1->did_paint_); | 459 EXPECT_FALSE(v1->did_paint_); |
| 459 EXPECT_FALSE(v2->did_paint_); | 460 EXPECT_FALSE(v2->did_paint_); |
| 460 root_view->Paint( | 461 root_view->Paint( |
| 461 View::PaintContext(&canvas, paint_area).CloneWithoutInvalidation()); | 462 ui::PaintContext(&canvas, paint_area).CloneWithoutInvalidation()); |
| 462 EXPECT_TRUE(v1->did_paint_); | 463 EXPECT_TRUE(v1->did_paint_); |
| 463 EXPECT_TRUE(v2->did_paint_); | 464 EXPECT_TRUE(v2->did_paint_); |
| 464 } | 465 } |
| 465 | 466 |
| 466 TEST_F(ViewTest, PaintContainsChildren) { | 467 TEST_F(ViewTest, PaintContainsChildren) { |
| 467 Widget* widget = new Widget; | 468 Widget* widget = new Widget; |
| 468 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); | 469 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); |
| 469 widget->Init(params); | 470 widget->Init(params); |
| 470 View* root_view = widget->GetRootView(); | 471 View* root_view = widget->GetRootView(); |
| 471 root_view->SetBounds(0, 0, 25, 26); | 472 root_view->SetBounds(0, 0, 25, 26); |
| 472 | 473 |
| 473 TestView* v1 = new TestView; | 474 TestView* v1 = new TestView; |
| 474 v1->SetBounds(10, 11, 12, 13); | 475 v1->SetBounds(10, 11, 12, 13); |
| 475 root_view->AddChildView(v1); | 476 root_view->AddChildView(v1); |
| 476 | 477 |
| 477 TestView* v2 = new TestView; | 478 TestView* v2 = new TestView; |
| 478 v2->SetBounds(3, 4, 6, 5); | 479 v2->SetBounds(3, 4, 6, 5); |
| 479 v1->AddChildView(v2); | 480 v1->AddChildView(v2); |
| 480 | 481 |
| 481 gfx::Canvas canvas(root_view->size(), 1.f, true); | 482 gfx::Canvas canvas(root_view->size(), 1.f, true); |
| 482 gfx::Rect paint_area(25, 26); | 483 gfx::Rect paint_area(25, 26); |
| 483 | 484 |
| 484 EXPECT_FALSE(v1->did_paint_); | 485 EXPECT_FALSE(v1->did_paint_); |
| 485 EXPECT_FALSE(v2->did_paint_); | 486 EXPECT_FALSE(v2->did_paint_); |
| 486 root_view->Paint(View::PaintContext(&canvas, paint_area)); | 487 root_view->Paint(ui::PaintContext(&canvas, paint_area)); |
| 487 EXPECT_TRUE(v1->did_paint_); | 488 EXPECT_TRUE(v1->did_paint_); |
| 488 EXPECT_TRUE(v2->did_paint_); | 489 EXPECT_TRUE(v2->did_paint_); |
| 489 } | 490 } |
| 490 | 491 |
| 491 TEST_F(ViewTest, PaintContainsChildrenInRTL) { | 492 TEST_F(ViewTest, PaintContainsChildrenInRTL) { |
| 492 ScopedRTL rtl; | 493 ScopedRTL rtl; |
| 493 | 494 |
| 494 Widget* widget = new Widget; | 495 Widget* widget = new Widget; |
| 495 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); | 496 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); |
| 496 widget->Init(params); | 497 widget->Init(params); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 514 v2->SetPaintToLayer(true); | 515 v2->SetPaintToLayer(true); |
| 515 // x: 25 - 10(parent x) - 3(x) - 6(width) = 6 | 516 // x: 25 - 10(parent x) - 3(x) - 6(width) = 6 |
| 516 EXPECT_EQ(gfx::Rect(6, 15, 6, 5), v2->layer()->bounds()); | 517 EXPECT_EQ(gfx::Rect(6, 15, 6, 5), v2->layer()->bounds()); |
| 517 v2->SetPaintToLayer(false); | 518 v2->SetPaintToLayer(false); |
| 518 | 519 |
| 519 gfx::Canvas canvas(root_view->size(), 1.f, true); | 520 gfx::Canvas canvas(root_view->size(), 1.f, true); |
| 520 gfx::Rect paint_area(25, 26); | 521 gfx::Rect paint_area(25, 26); |
| 521 | 522 |
| 522 EXPECT_FALSE(v1->did_paint_); | 523 EXPECT_FALSE(v1->did_paint_); |
| 523 EXPECT_FALSE(v2->did_paint_); | 524 EXPECT_FALSE(v2->did_paint_); |
| 524 root_view->Paint(View::PaintContext(&canvas, paint_area)); | 525 root_view->Paint(ui::PaintContext(&canvas, paint_area)); |
| 525 EXPECT_TRUE(v1->did_paint_); | 526 EXPECT_TRUE(v1->did_paint_); |
| 526 EXPECT_TRUE(v2->did_paint_); | 527 EXPECT_TRUE(v2->did_paint_); |
| 527 } | 528 } |
| 528 | 529 |
| 529 TEST_F(ViewTest, PaintIntersectsChildren) { | 530 TEST_F(ViewTest, PaintIntersectsChildren) { |
| 530 Widget* widget = new Widget; | 531 Widget* widget = new Widget; |
| 531 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); | 532 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); |
| 532 widget->Init(params); | 533 widget->Init(params); |
| 533 View* root_view = widget->GetRootView(); | 534 View* root_view = widget->GetRootView(); |
| 534 root_view->SetBounds(0, 0, 25, 26); | 535 root_view->SetBounds(0, 0, 25, 26); |
| 535 | 536 |
| 536 TestView* v1 = new TestView; | 537 TestView* v1 = new TestView; |
| 537 v1->SetBounds(10, 11, 12, 13); | 538 v1->SetBounds(10, 11, 12, 13); |
| 538 root_view->AddChildView(v1); | 539 root_view->AddChildView(v1); |
| 539 | 540 |
| 540 TestView* v2 = new TestView; | 541 TestView* v2 = new TestView; |
| 541 v2->SetBounds(3, 4, 6, 5); | 542 v2->SetBounds(3, 4, 6, 5); |
| 542 v1->AddChildView(v2); | 543 v1->AddChildView(v2); |
| 543 | 544 |
| 544 gfx::Canvas canvas(root_view->size(), 1.f, true); | 545 gfx::Canvas canvas(root_view->size(), 1.f, true); |
| 545 gfx::Rect paint_area(9, 10, 5, 6); | 546 gfx::Rect paint_area(9, 10, 5, 6); |
| 546 | 547 |
| 547 EXPECT_FALSE(v1->did_paint_); | 548 EXPECT_FALSE(v1->did_paint_); |
| 548 EXPECT_FALSE(v2->did_paint_); | 549 EXPECT_FALSE(v2->did_paint_); |
| 549 root_view->Paint(View::PaintContext(&canvas, paint_area)); | 550 root_view->Paint(ui::PaintContext(&canvas, paint_area)); |
| 550 EXPECT_TRUE(v1->did_paint_); | 551 EXPECT_TRUE(v1->did_paint_); |
| 551 EXPECT_TRUE(v2->did_paint_); | 552 EXPECT_TRUE(v2->did_paint_); |
| 552 } | 553 } |
| 553 | 554 |
| 554 TEST_F(ViewTest, PaintIntersectsChildrenInRTL) { | 555 TEST_F(ViewTest, PaintIntersectsChildrenInRTL) { |
| 555 ScopedRTL rtl; | 556 ScopedRTL rtl; |
| 556 | 557 |
| 557 Widget* widget = new Widget; | 558 Widget* widget = new Widget; |
| 558 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); | 559 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); |
| 559 widget->Init(params); | 560 widget->Init(params); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 577 v2->SetPaintToLayer(true); | 578 v2->SetPaintToLayer(true); |
| 578 // x: 25 - 10(parent x) - 3(x) - 6(width) = 6 | 579 // x: 25 - 10(parent x) - 3(x) - 6(width) = 6 |
| 579 EXPECT_EQ(gfx::Rect(6, 15, 6, 5), v2->layer()->bounds()); | 580 EXPECT_EQ(gfx::Rect(6, 15, 6, 5), v2->layer()->bounds()); |
| 580 v2->SetPaintToLayer(false); | 581 v2->SetPaintToLayer(false); |
| 581 | 582 |
| 582 gfx::Canvas canvas(root_view->size(), 1.f, true); | 583 gfx::Canvas canvas(root_view->size(), 1.f, true); |
| 583 gfx::Rect paint_area(2, 10, 5, 6); | 584 gfx::Rect paint_area(2, 10, 5, 6); |
| 584 | 585 |
| 585 EXPECT_FALSE(v1->did_paint_); | 586 EXPECT_FALSE(v1->did_paint_); |
| 586 EXPECT_FALSE(v2->did_paint_); | 587 EXPECT_FALSE(v2->did_paint_); |
| 587 root_view->Paint(View::PaintContext(&canvas, paint_area)); | 588 root_view->Paint(ui::PaintContext(&canvas, paint_area)); |
| 588 EXPECT_TRUE(v1->did_paint_); | 589 EXPECT_TRUE(v1->did_paint_); |
| 589 EXPECT_TRUE(v2->did_paint_); | 590 EXPECT_TRUE(v2->did_paint_); |
| 590 } | 591 } |
| 591 | 592 |
| 592 TEST_F(ViewTest, PaintIntersectsChildButNotGrandChild) { | 593 TEST_F(ViewTest, PaintIntersectsChildButNotGrandChild) { |
| 593 Widget* widget = new Widget; | 594 Widget* widget = new Widget; |
| 594 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); | 595 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); |
| 595 widget->Init(params); | 596 widget->Init(params); |
| 596 View* root_view = widget->GetRootView(); | 597 View* root_view = widget->GetRootView(); |
| 597 root_view->SetBounds(0, 0, 25, 26); | 598 root_view->SetBounds(0, 0, 25, 26); |
| 598 | 599 |
| 599 TestView* v1 = new TestView; | 600 TestView* v1 = new TestView; |
| 600 v1->SetBounds(10, 11, 12, 13); | 601 v1->SetBounds(10, 11, 12, 13); |
| 601 root_view->AddChildView(v1); | 602 root_view->AddChildView(v1); |
| 602 | 603 |
| 603 TestView* v2 = new TestView; | 604 TestView* v2 = new TestView; |
| 604 v2->SetBounds(3, 4, 6, 5); | 605 v2->SetBounds(3, 4, 6, 5); |
| 605 v1->AddChildView(v2); | 606 v1->AddChildView(v2); |
| 606 | 607 |
| 607 gfx::Canvas canvas(root_view->size(), 1.f, true); | 608 gfx::Canvas canvas(root_view->size(), 1.f, true); |
| 608 gfx::Rect paint_area(9, 10, 2, 3); | 609 gfx::Rect paint_area(9, 10, 2, 3); |
| 609 | 610 |
| 610 EXPECT_FALSE(v1->did_paint_); | 611 EXPECT_FALSE(v1->did_paint_); |
| 611 EXPECT_FALSE(v2->did_paint_); | 612 EXPECT_FALSE(v2->did_paint_); |
| 612 root_view->Paint(View::PaintContext(&canvas, paint_area)); | 613 root_view->Paint(ui::PaintContext(&canvas, paint_area)); |
| 613 EXPECT_TRUE(v1->did_paint_); | 614 EXPECT_TRUE(v1->did_paint_); |
| 614 EXPECT_FALSE(v2->did_paint_); | 615 EXPECT_FALSE(v2->did_paint_); |
| 615 } | 616 } |
| 616 | 617 |
| 617 TEST_F(ViewTest, PaintIntersectsChildButNotGrandChildInRTL) { | 618 TEST_F(ViewTest, PaintIntersectsChildButNotGrandChildInRTL) { |
| 618 ScopedRTL rtl; | 619 ScopedRTL rtl; |
| 619 | 620 |
| 620 Widget* widget = new Widget; | 621 Widget* widget = new Widget; |
| 621 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); | 622 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); |
| 622 widget->Init(params); | 623 widget->Init(params); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 640 v2->SetPaintToLayer(true); | 641 v2->SetPaintToLayer(true); |
| 641 // x: 25 - 10(parent x) - 3(x) - 6(width) = 6 | 642 // x: 25 - 10(parent x) - 3(x) - 6(width) = 6 |
| 642 EXPECT_EQ(gfx::Rect(6, 15, 6, 5), v2->layer()->bounds()); | 643 EXPECT_EQ(gfx::Rect(6, 15, 6, 5), v2->layer()->bounds()); |
| 643 v2->SetPaintToLayer(false); | 644 v2->SetPaintToLayer(false); |
| 644 | 645 |
| 645 gfx::Canvas canvas(root_view->size(), 1.f, true); | 646 gfx::Canvas canvas(root_view->size(), 1.f, true); |
| 646 gfx::Rect paint_area(2, 10, 2, 3); | 647 gfx::Rect paint_area(2, 10, 2, 3); |
| 647 | 648 |
| 648 EXPECT_FALSE(v1->did_paint_); | 649 EXPECT_FALSE(v1->did_paint_); |
| 649 EXPECT_FALSE(v2->did_paint_); | 650 EXPECT_FALSE(v2->did_paint_); |
| 650 root_view->Paint(View::PaintContext(&canvas, paint_area)); | 651 root_view->Paint(ui::PaintContext(&canvas, paint_area)); |
| 651 EXPECT_TRUE(v1->did_paint_); | 652 EXPECT_TRUE(v1->did_paint_); |
| 652 EXPECT_FALSE(v2->did_paint_); | 653 EXPECT_FALSE(v2->did_paint_); |
| 653 } | 654 } |
| 654 | 655 |
| 655 TEST_F(ViewTest, PaintIntersectsNoChildren) { | 656 TEST_F(ViewTest, PaintIntersectsNoChildren) { |
| 656 Widget* widget = new Widget; | 657 Widget* widget = new Widget; |
| 657 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); | 658 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); |
| 658 widget->Init(params); | 659 widget->Init(params); |
| 659 View* root_view = widget->GetRootView(); | 660 View* root_view = widget->GetRootView(); |
| 660 root_view->SetBounds(0, 0, 25, 26); | 661 root_view->SetBounds(0, 0, 25, 26); |
| 661 | 662 |
| 662 TestView* v1 = new TestView; | 663 TestView* v1 = new TestView; |
| 663 v1->SetBounds(10, 11, 12, 13); | 664 v1->SetBounds(10, 11, 12, 13); |
| 664 root_view->AddChildView(v1); | 665 root_view->AddChildView(v1); |
| 665 | 666 |
| 666 TestView* v2 = new TestView; | 667 TestView* v2 = new TestView; |
| 667 v2->SetBounds(3, 4, 6, 5); | 668 v2->SetBounds(3, 4, 6, 5); |
| 668 v1->AddChildView(v2); | 669 v1->AddChildView(v2); |
| 669 | 670 |
| 670 gfx::Canvas canvas(root_view->size(), 1.f, true); | 671 gfx::Canvas canvas(root_view->size(), 1.f, true); |
| 671 gfx::Rect paint_area(9, 10, 2, 1); | 672 gfx::Rect paint_area(9, 10, 2, 1); |
| 672 | 673 |
| 673 EXPECT_FALSE(v1->did_paint_); | 674 EXPECT_FALSE(v1->did_paint_); |
| 674 EXPECT_FALSE(v2->did_paint_); | 675 EXPECT_FALSE(v2->did_paint_); |
| 675 root_view->Paint(View::PaintContext(&canvas, paint_area)); | 676 root_view->Paint(ui::PaintContext(&canvas, paint_area)); |
| 676 EXPECT_FALSE(v1->did_paint_); | 677 EXPECT_FALSE(v1->did_paint_); |
| 677 EXPECT_FALSE(v2->did_paint_); | 678 EXPECT_FALSE(v2->did_paint_); |
| 678 } | 679 } |
| 679 | 680 |
| 680 TEST_F(ViewTest, PaintIntersectsNoChildrenInRTL) { | 681 TEST_F(ViewTest, PaintIntersectsNoChildrenInRTL) { |
| 681 ScopedRTL rtl; | 682 ScopedRTL rtl; |
| 682 | 683 |
| 683 Widget* widget = new Widget; | 684 Widget* widget = new Widget; |
| 684 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); | 685 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); |
| 685 widget->Init(params); | 686 widget->Init(params); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 703 v2->SetPaintToLayer(true); | 704 v2->SetPaintToLayer(true); |
| 704 // x: 25 - 10(parent x) - 3(x) - 6(width) = 6 | 705 // x: 25 - 10(parent x) - 3(x) - 6(width) = 6 |
| 705 EXPECT_EQ(gfx::Rect(6, 15, 6, 5), v2->layer()->bounds()); | 706 EXPECT_EQ(gfx::Rect(6, 15, 6, 5), v2->layer()->bounds()); |
| 706 v2->SetPaintToLayer(false); | 707 v2->SetPaintToLayer(false); |
| 707 | 708 |
| 708 gfx::Canvas canvas(root_view->size(), 1.f, true); | 709 gfx::Canvas canvas(root_view->size(), 1.f, true); |
| 709 gfx::Rect paint_area(2, 10, 2, 1); | 710 gfx::Rect paint_area(2, 10, 2, 1); |
| 710 | 711 |
| 711 EXPECT_FALSE(v1->did_paint_); | 712 EXPECT_FALSE(v1->did_paint_); |
| 712 EXPECT_FALSE(v2->did_paint_); | 713 EXPECT_FALSE(v2->did_paint_); |
| 713 root_view->Paint(View::PaintContext(&canvas, paint_area)); | 714 root_view->Paint(ui::PaintContext(&canvas, paint_area)); |
| 714 EXPECT_FALSE(v1->did_paint_); | 715 EXPECT_FALSE(v1->did_paint_); |
| 715 EXPECT_FALSE(v2->did_paint_); | 716 EXPECT_FALSE(v2->did_paint_); |
| 716 } | 717 } |
| 717 | 718 |
| 718 TEST_F(ViewTest, PaintIntersectsOneChild) { | 719 TEST_F(ViewTest, PaintIntersectsOneChild) { |
| 719 Widget* widget = new Widget; | 720 Widget* widget = new Widget; |
| 720 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); | 721 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); |
| 721 widget->Init(params); | 722 widget->Init(params); |
| 722 View* root_view = widget->GetRootView(); | 723 View* root_view = widget->GetRootView(); |
| 723 root_view->SetBounds(0, 0, 25, 26); | 724 root_view->SetBounds(0, 0, 25, 26); |
| 724 | 725 |
| 725 TestView* v1 = new TestView; | 726 TestView* v1 = new TestView; |
| 726 v1->SetBounds(10, 11, 12, 13); | 727 v1->SetBounds(10, 11, 12, 13); |
| 727 root_view->AddChildView(v1); | 728 root_view->AddChildView(v1); |
| 728 | 729 |
| 729 TestView* v2 = new TestView; | 730 TestView* v2 = new TestView; |
| 730 v2->SetBounds(3, 4, 6, 5); | 731 v2->SetBounds(3, 4, 6, 5); |
| 731 root_view->AddChildView(v2); | 732 root_view->AddChildView(v2); |
| 732 | 733 |
| 733 gfx::Canvas canvas(root_view->size(), 1.f, true); | 734 gfx::Canvas canvas(root_view->size(), 1.f, true); |
| 734 // Intersects with the second child only. | 735 // Intersects with the second child only. |
| 735 gfx::Rect paint_area(3, 3, 1, 2); | 736 gfx::Rect paint_area(3, 3, 1, 2); |
| 736 | 737 |
| 737 EXPECT_FALSE(v1->did_paint_); | 738 EXPECT_FALSE(v1->did_paint_); |
| 738 EXPECT_FALSE(v2->did_paint_); | 739 EXPECT_FALSE(v2->did_paint_); |
| 739 root_view->Paint(View::PaintContext(&canvas, paint_area)); | 740 root_view->Paint(ui::PaintContext(&canvas, paint_area)); |
| 740 EXPECT_FALSE(v1->did_paint_); | 741 EXPECT_FALSE(v1->did_paint_); |
| 741 EXPECT_TRUE(v2->did_paint_); | 742 EXPECT_TRUE(v2->did_paint_); |
| 742 | 743 |
| 743 // Intersects with the first child only. | 744 // Intersects with the first child only. |
| 744 paint_area = gfx::Rect(20, 10, 1, 2); | 745 paint_area = gfx::Rect(20, 10, 1, 2); |
| 745 | 746 |
| 746 v1->Reset(); | 747 v1->Reset(); |
| 747 v2->Reset(); | 748 v2->Reset(); |
| 748 EXPECT_FALSE(v1->did_paint_); | 749 EXPECT_FALSE(v1->did_paint_); |
| 749 EXPECT_FALSE(v2->did_paint_); | 750 EXPECT_FALSE(v2->did_paint_); |
| 750 root_view->Paint(View::PaintContext(&canvas, paint_area)); | 751 root_view->Paint(ui::PaintContext(&canvas, paint_area)); |
| 751 EXPECT_TRUE(v1->did_paint_); | 752 EXPECT_TRUE(v1->did_paint_); |
| 752 EXPECT_FALSE(v2->did_paint_); | 753 EXPECT_FALSE(v2->did_paint_); |
| 753 } | 754 } |
| 754 | 755 |
| 755 TEST_F(ViewTest, PaintIntersectsOneChildInRTL) { | 756 TEST_F(ViewTest, PaintIntersectsOneChildInRTL) { |
| 756 ScopedRTL rtl; | 757 ScopedRTL rtl; |
| 757 | 758 |
| 758 Widget* widget = new Widget; | 759 Widget* widget = new Widget; |
| 759 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); | 760 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); |
| 760 widget->Init(params); | 761 widget->Init(params); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 779 // x: 25 - 3(x) - 6(width) = 16 | 780 // x: 25 - 3(x) - 6(width) = 16 |
| 780 EXPECT_EQ(gfx::Rect(16, 4, 6, 5), v2->layer()->bounds()); | 781 EXPECT_EQ(gfx::Rect(16, 4, 6, 5), v2->layer()->bounds()); |
| 781 v2->SetPaintToLayer(false); | 782 v2->SetPaintToLayer(false); |
| 782 | 783 |
| 783 gfx::Canvas canvas(root_view->size(), 1.f, true); | 784 gfx::Canvas canvas(root_view->size(), 1.f, true); |
| 784 // Intersects with the first child only. | 785 // Intersects with the first child only. |
| 785 gfx::Rect paint_area(3, 10, 1, 2); | 786 gfx::Rect paint_area(3, 10, 1, 2); |
| 786 | 787 |
| 787 EXPECT_FALSE(v1->did_paint_); | 788 EXPECT_FALSE(v1->did_paint_); |
| 788 EXPECT_FALSE(v2->did_paint_); | 789 EXPECT_FALSE(v2->did_paint_); |
| 789 root_view->Paint(View::PaintContext(&canvas, paint_area)); | 790 root_view->Paint(ui::PaintContext(&canvas, paint_area)); |
| 790 EXPECT_TRUE(v1->did_paint_); | 791 EXPECT_TRUE(v1->did_paint_); |
| 791 EXPECT_FALSE(v2->did_paint_); | 792 EXPECT_FALSE(v2->did_paint_); |
| 792 | 793 |
| 793 // Intersects with the second child only. | 794 // Intersects with the second child only. |
| 794 paint_area = gfx::Rect(21, 3, 1, 2); | 795 paint_area = gfx::Rect(21, 3, 1, 2); |
| 795 | 796 |
| 796 v1->Reset(); | 797 v1->Reset(); |
| 797 v2->Reset(); | 798 v2->Reset(); |
| 798 EXPECT_FALSE(v1->did_paint_); | 799 EXPECT_FALSE(v1->did_paint_); |
| 799 EXPECT_FALSE(v2->did_paint_); | 800 EXPECT_FALSE(v2->did_paint_); |
| 800 root_view->Paint(View::PaintContext(&canvas, paint_area)); | 801 root_view->Paint(ui::PaintContext(&canvas, paint_area)); |
| 801 EXPECT_FALSE(v1->did_paint_); | 802 EXPECT_FALSE(v1->did_paint_); |
| 802 EXPECT_TRUE(v2->did_paint_); | 803 EXPECT_TRUE(v2->did_paint_); |
| 803 } | 804 } |
| 804 | 805 |
| 805 TEST_F(ViewTest, PaintInPromotedToLayer) { | 806 TEST_F(ViewTest, PaintInPromotedToLayer) { |
| 806 Widget* widget = new Widget; | 807 Widget* widget = new Widget; |
| 807 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); | 808 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); |
| 808 widget->Init(params); | 809 widget->Init(params); |
| 809 View* root_view = widget->GetRootView(); | 810 View* root_view = widget->GetRootView(); |
| 810 root_view->SetBounds(0, 0, 25, 26); | 811 root_view->SetBounds(0, 0, 25, 26); |
| 811 | 812 |
| 812 TestView* v1 = new TestView; | 813 TestView* v1 = new TestView; |
| 813 v1->SetPaintToLayer(true); | 814 v1->SetPaintToLayer(true); |
| 814 v1->SetBounds(10, 11, 12, 13); | 815 v1->SetBounds(10, 11, 12, 13); |
| 815 root_view->AddChildView(v1); | 816 root_view->AddChildView(v1); |
| 816 | 817 |
| 817 TestView* v2 = new TestView; | 818 TestView* v2 = new TestView; |
| 818 v2->SetBounds(3, 4, 6, 5); | 819 v2->SetBounds(3, 4, 6, 5); |
| 819 v1->AddChildView(v2); | 820 v1->AddChildView(v2); |
| 820 | 821 |
| 821 EXPECT_FALSE(v1->did_paint_); | 822 EXPECT_FALSE(v1->did_paint_); |
| 822 EXPECT_FALSE(v2->did_paint_); | 823 EXPECT_FALSE(v2->did_paint_); |
| 823 | 824 |
| 824 { | 825 { |
| 825 gfx::Canvas canvas(root_view->size(), 1.f, true); | 826 gfx::Canvas canvas(root_view->size(), 1.f, true); |
| 826 gfx::Rect paint_area(25, 26); | 827 gfx::Rect paint_area(25, 26); |
| 827 | 828 |
| 828 // The promoted views are not painted as they are separate paint roots. | 829 // The promoted views are not painted as they are separate paint roots. |
| 829 root_view->Paint(View::PaintContext(&canvas, paint_area)); | 830 root_view->Paint(ui::PaintContext(&canvas, paint_area)); |
| 830 EXPECT_FALSE(v1->did_paint_); | 831 EXPECT_FALSE(v1->did_paint_); |
| 831 EXPECT_FALSE(v2->did_paint_); | 832 EXPECT_FALSE(v2->did_paint_); |
| 832 } | 833 } |
| 833 | 834 |
| 834 { | 835 { |
| 835 gfx::Canvas canvas(v1->size(), 1.f, true); | 836 gfx::Canvas canvas(v1->size(), 1.f, true); |
| 836 gfx::Rect paint_area(1, 1); | 837 gfx::Rect paint_area(1, 1); |
| 837 | 838 |
| 838 // The |v1| view is painted. If it used its offset incorrect, it would think | 839 // The |v1| view is painted. If it used its offset incorrect, it would think |
| 839 // its at (10,11) instead of at (0,0) since it is the paint root. | 840 // its at (10,11) instead of at (0,0) since it is the paint root. |
| 840 v1->Paint(View::PaintContext(&canvas, paint_area)); | 841 v1->Paint(ui::PaintContext(&canvas, paint_area)); |
| 841 EXPECT_TRUE(v1->did_paint_); | 842 EXPECT_TRUE(v1->did_paint_); |
| 842 EXPECT_FALSE(v2->did_paint_); | 843 EXPECT_FALSE(v2->did_paint_); |
| 843 } | 844 } |
| 844 | 845 |
| 845 v1->Reset(); | 846 v1->Reset(); |
| 846 | 847 |
| 847 { | 848 { |
| 848 gfx::Canvas canvas(v1->size(), 1.f, true); | 849 gfx::Canvas canvas(v1->size(), 1.f, true); |
| 849 gfx::Rect paint_area(3, 3, 1, 2); | 850 gfx::Rect paint_area(3, 3, 1, 2); |
| 850 | 851 |
| 851 // The |v2| view is painted also. If it used its offset incorrect, it would | 852 // The |v2| view is painted also. If it used its offset incorrect, it would |
| 852 // think its at (13,15) instead of at (3,4) since |v1| is the paint root. | 853 // think its at (13,15) instead of at (3,4) since |v1| is the paint root. |
| 853 v1->Paint(View::PaintContext(&canvas, paint_area)); | 854 v1->Paint(ui::PaintContext(&canvas, paint_area)); |
| 854 EXPECT_TRUE(v1->did_paint_); | 855 EXPECT_TRUE(v1->did_paint_); |
| 855 EXPECT_TRUE(v2->did_paint_); | 856 EXPECT_TRUE(v2->did_paint_); |
| 856 } | 857 } |
| 857 } | 858 } |
| 858 | 859 |
| 859 void TestView::SchedulePaintInRect(const gfx::Rect& rect) { | 860 void TestView::SchedulePaintInRect(const gfx::Rect& rect) { |
| 860 scheduled_paint_rects_.push_back(rect); | 861 scheduled_paint_rects_.push_back(rect); |
| 861 View::SchedulePaintInRect(rect); | 862 View::SchedulePaintInRect(rect); |
| 862 } | 863 } |
| 863 | 864 |
| (...skipping 3032 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3896 // notification. | 3897 // notification. |
| 3897 TestView* test_view_child_2 = new TestView(); | 3898 TestView* test_view_child_2 = new TestView(); |
| 3898 test_view->AddChildView(test_view_child_2); | 3899 test_view->AddChildView(test_view_child_2); |
| 3899 EXPECT_TRUE(test_view_child_2->native_theme_); | 3900 EXPECT_TRUE(test_view_child_2->native_theme_); |
| 3900 EXPECT_EQ(widget->GetNativeTheme(), test_view_child_2->native_theme_); | 3901 EXPECT_EQ(widget->GetNativeTheme(), test_view_child_2->native_theme_); |
| 3901 | 3902 |
| 3902 widget->CloseNow(); | 3903 widget->CloseNow(); |
| 3903 } | 3904 } |
| 3904 | 3905 |
| 3905 } // namespace views | 3906 } // namespace views |
| OLD | NEW |