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

Side by Side Diff: views/view_unittest.cc

Issue 8362006: Reland r107720 - Enable the new layer animation framework. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge Created 9 years, 1 month 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 | Annotate | Revision Log
« no previous file with comments | « views/view.cc ('k') | views/views.gyp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <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/string_util.h" 9 #include "base/string_util.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
11 #include "testing/gmock/include/gmock/gmock.h" 11 #include "testing/gmock/include/gmock/gmock.h"
12 #include "ui/base/clipboard/clipboard.h" 12 #include "ui/base/clipboard/clipboard.h"
13 #include "ui/base/keycodes/keyboard_codes.h" 13 #include "ui/base/keycodes/keyboard_codes.h"
14 #include "ui/base/models/simple_menu_model.h" 14 #include "ui/base/models/simple_menu_model.h"
15 #include "ui/gfx/canvas_skia.h" 15 #include "ui/gfx/canvas_skia.h"
16 #include "ui/gfx/compositor/compositor.h" 16 #include "ui/gfx/compositor/compositor.h"
17 #include "ui/gfx/compositor/layer.h" 17 #include "ui/gfx/compositor/layer.h"
18 #include "ui/gfx/compositor/layer_animator.h"
18 #include "ui/gfx/compositor/test_compositor.h" 19 #include "ui/gfx/compositor/test_compositor.h"
19 #include "ui/gfx/compositor/test_texture.h" 20 #include "ui/gfx/compositor/test_texture.h"
20 #include "ui/gfx/path.h" 21 #include "ui/gfx/path.h"
21 #include "ui/gfx/transform.h" 22 #include "ui/gfx/transform.h"
22 #include "views/background.h" 23 #include "views/background.h"
23 #include "views/controls/button/button_dropdown.h" 24 #include "views/controls/button/button_dropdown.h"
24 #include "views/controls/button/checkbox.h" 25 #include "views/controls/button/checkbox.h"
25 #include "views/controls/native/native_view_host.h" 26 #include "views/controls/native/native_view_host.h"
26 #include "views/controls/scroll_view.h" 27 #include "views/controls/scroll_view.h"
27 #include "views/controls/textfield/textfield.h" 28 #include "views/controls/textfield/textfield.h"
28 #include "views/events/event.h" 29 #include "views/events/event.h"
29 #include "views/focus/accelerator_handler.h" 30 #include "views/focus/accelerator_handler.h"
30 #include "views/focus/view_storage.h" 31 #include "views/focus/view_storage.h"
31 #include "views/layer_property_setter.h"
32 #include "views/test/views_test_base.h" 32 #include "views/test/views_test_base.h"
33 #include "views/touchui/gesture_manager.h" 33 #include "views/touchui/gesture_manager.h"
34 #include "views/view.h" 34 #include "views/view.h"
35 #include "views/views_delegate.h" 35 #include "views/views_delegate.h"
36 #include "views/widget/native_widget.h" 36 #include "views/widget/native_widget.h"
37 #include "views/widget/root_view.h" 37 #include "views/widget/root_view.h"
38 #include "views/window/dialog_delegate.h" 38 #include "views/window/dialog_delegate.h"
39 39
40 #if defined(OS_WIN) 40 #if defined(OS_WIN)
41 #include "views/test/test_views_delegate.h" 41 #include "views/test/test_views_delegate.h"
(...skipping 2395 matching lines...) Expand 10 before | Expand all | Expand 10 after
2437 } 2437 }
2438 2438
2439 //////////////////////////////////////////////////////////////////////////////// 2439 ////////////////////////////////////////////////////////////////////////////////
2440 // Layers 2440 // Layers
2441 //////////////////////////////////////////////////////////////////////////////// 2441 ////////////////////////////////////////////////////////////////////////////////
2442 2442
2443 #if defined(VIEWS_COMPOSITOR) 2443 #if defined(VIEWS_COMPOSITOR)
2444 2444
2445 namespace { 2445 namespace {
2446 2446
2447 // Test implementation of LayerPropertySetter; 2447 // Test implementation of LayerAnimator.
2448 class TestLayerPropertySetter : public LayerPropertySetter { 2448 class TestLayerAnimator : public ui::LayerAnimator {
2449 public: 2449 public:
2450 TestLayerPropertySetter(); 2450 TestLayerAnimator();
2451 2451
2452 bool installed() const { return installed_; }
2453 const gfx::Rect& last_bounds() const { return last_bounds_; } 2452 const gfx::Rect& last_bounds() const { return last_bounds_; }
2454 2453
2455 // LayerPropertySetter: 2454 // LayerAnimator.
2456 virtual void Installed(ui::Layer* layer) OVERRIDE; 2455 virtual void SetBounds(const gfx::Rect& bounds) OVERRIDE;
2457 virtual void Uninstalled(ui::Layer* layer) OVERRIDE;
2458 virtual void SetTransform(ui::Layer* layer,
2459 const ui::Transform& transform) OVERRIDE;
2460 virtual void SetBounds(ui::Layer* layer, const gfx::Rect& bounds) OVERRIDE;
2461 2456
2462 private: 2457 private:
2463 bool installed_;
2464 gfx::Rect last_bounds_; 2458 gfx::Rect last_bounds_;
2465 2459
2466 DISALLOW_COPY_AND_ASSIGN(TestLayerPropertySetter); 2460 DISALLOW_COPY_AND_ASSIGN(TestLayerAnimator);
2467 }; 2461 };
2468 2462
2469 TestLayerPropertySetter::TestLayerPropertySetter() : installed_(false) {} 2463 TestLayerAnimator::TestLayerAnimator()
2470 2464 : ui::LayerAnimator(base::TimeDelta::FromMilliseconds(0)) {
2471 void TestLayerPropertySetter::Installed(ui::Layer* layer) {
2472 installed_ = true;
2473 } 2465 }
2474 2466
2475 void TestLayerPropertySetter::Uninstalled(ui::Layer* layer) { 2467 void TestLayerAnimator::SetBounds(const gfx::Rect& bounds) {
2476 installed_ = false;
2477 }
2478
2479 void TestLayerPropertySetter::SetTransform(ui::Layer* layer,
2480 const ui::Transform& transform) {
2481 }
2482
2483 void TestLayerPropertySetter::SetBounds(ui::Layer* layer,
2484 const gfx::Rect& bounds) {
2485 last_bounds_ = bounds; 2468 last_bounds_ = bounds;
2486 } 2469 }
2487 2470
2488 } // namespace 2471 } // namespace
2489 2472
2490 class ViewLayerTest : public ViewsTestBase { 2473 class ViewLayerTest : public ViewsTestBase {
2491 public: 2474 public:
2492 ViewLayerTest() : widget_(NULL), old_use_acceleration_(false) {} 2475 ViewLayerTest() : widget_(NULL), old_use_acceleration_(false) {}
2493 2476
2494 virtual ~ViewLayerTest() { 2477 virtual ~ViewLayerTest() {
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
2669 v3->SetPaintToLayer(true); 2652 v3->SetPaintToLayer(true);
2670 v2->AddChildView(v3); 2653 v2->AddChildView(v3);
2671 ASSERT_TRUE(v3->layer() != NULL); 2654 ASSERT_TRUE(v3->layer() != NULL);
2672 2655
2673 // At this point we have v1-v2-v3. v3 has a layer, v1 and v2 don't. 2656 // At this point we have v1-v2-v3. v3 has a layer, v1 and v2 don't.
2674 2657
2675 v1->SetPaintToLayer(true); 2658 v1->SetPaintToLayer(true);
2676 EXPECT_EQ(v1->layer(), v3->layer()->parent()); 2659 EXPECT_EQ(v1->layer(), v3->layer()->parent());
2677 } 2660 }
2678 2661
2679 TEST_F(ViewLayerTest, LayerPropertySetter) { 2662 TEST_F(ViewLayerTest, LayerAnimator) {
2680 View* content_view = new View; 2663 View* content_view = new View;
2681 widget()->SetContentsView(content_view); 2664 widget()->SetContentsView(content_view);
2682 2665
2683 View* v1 = new View; 2666 View* v1 = new View;
2684 content_view->AddChildView(v1); 2667 content_view->AddChildView(v1);
2685 v1->SetPaintToLayer(true); 2668 v1->SetPaintToLayer(true);
2686 TestLayerPropertySetter* setter = new TestLayerPropertySetter; 2669 EXPECT_TRUE(v1->layer() != NULL);
2687 v1->SetLayerPropertySetter(setter);
2688 EXPECT_TRUE(setter->installed());
2689 2670
2690 // Turn off the layer, which should trigger uninstall. 2671 TestLayerAnimator* animator = new TestLayerAnimator();
2691 v1->SetPaintToLayer(false); 2672 v1->layer()->SetAnimator(animator);
2692 EXPECT_FALSE(setter->installed());
2693
2694 v1->SetPaintToLayer(true);
2695 EXPECT_TRUE(setter->installed());
2696 2673
2697 gfx::Rect bounds(1, 2, 3, 4); 2674 gfx::Rect bounds(1, 2, 3, 4);
2698 v1->SetBoundsRect(bounds); 2675 v1->SetBoundsRect(bounds);
2699 EXPECT_EQ(bounds, setter->last_bounds()); 2676 EXPECT_EQ(bounds, animator->last_bounds());
2700 // TestLayerPropertySetter doesn't update the layer. 2677 // TestLayerAnimator doesn't update the layer.
2701 EXPECT_NE(bounds, v1->layer()->bounds()); 2678 EXPECT_NE(bounds, v1->layer()->bounds());
2702 } 2679 }
2703 2680
2704 // Verifies the bounds of a layer are updated if the bounds of ancestor that 2681 // Verifies the bounds of a layer are updated if the bounds of ancestor that
2705 // doesn't have a layer change. 2682 // doesn't have a layer change.
2706 TEST_F(ViewLayerTest, BoundsChangeWithLayer) { 2683 TEST_F(ViewLayerTest, BoundsChangeWithLayer) {
2707 View* content_view = new View; 2684 View* content_view = new View;
2708 widget()->SetContentsView(content_view); 2685 widget()->SetContentsView(content_view);
2709 2686
2710 View* v1 = new View; 2687 View* v1 = new View;
(...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after
3094 ScrambleTree(content); 3071 ScrambleTree(content);
3095 EXPECT_TRUE(ViewAndLayerTreeAreConsistent(content, content->layer())); 3072 EXPECT_TRUE(ViewAndLayerTreeAreConsistent(content, content->layer()));
3096 3073
3097 ScrambleTree(content); 3074 ScrambleTree(content);
3098 EXPECT_TRUE(ViewAndLayerTreeAreConsistent(content, content->layer())); 3075 EXPECT_TRUE(ViewAndLayerTreeAreConsistent(content, content->layer()));
3099 } 3076 }
3100 3077
3101 #endif // VIEWS_COMPOSITOR 3078 #endif // VIEWS_COMPOSITOR
3102 3079
3103 } // namespace views 3080 } // namespace views
OLDNEW
« no previous file with comments | « views/view.cc ('k') | views/views.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698