OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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 "cc/layers/nine_patch_layer.h" | 5 #include "cc/layers/nine_patch_layer.h" |
6 | 6 |
7 #include "cc/debug/overdraw_metrics.h" | 7 #include "cc/debug/overdraw_metrics.h" |
8 #include "cc/resources/prioritized_resource_manager.h" | 8 #include "cc/resources/prioritized_resource_manager.h" |
9 #include "cc/resources/resource_provider.h" | 9 #include "cc/resources/resource_provider.h" |
10 #include "cc/resources/resource_update_queue.h" | 10 #include "cc/resources/resource_update_queue.h" |
11 #include "cc/resources/scoped_ui_resource.h" | 11 #include "cc/resources/scoped_ui_resource.h" |
12 #include "cc/scheduler/texture_uploader.h" | 12 #include "cc/scheduler/texture_uploader.h" |
| 13 #include "cc/test/fake_layer_tree_host.h" |
13 #include "cc/test/fake_layer_tree_host_client.h" | 14 #include "cc/test/fake_layer_tree_host_client.h" |
14 #include "cc/test/fake_output_surface.h" | 15 #include "cc/test/fake_output_surface.h" |
15 #include "cc/test/fake_output_surface_client.h" | 16 #include "cc/test/fake_output_surface_client.h" |
16 #include "cc/test/geometry_test_utils.h" | 17 #include "cc/test/geometry_test_utils.h" |
17 #include "cc/trees/layer_tree_host.h" | 18 #include "cc/trees/layer_tree_host.h" |
18 #include "cc/trees/occlusion_tracker.h" | 19 #include "cc/trees/occlusion_tracker.h" |
19 #include "cc/trees/single_thread_proxy.h" | 20 #include "cc/trees/single_thread_proxy.h" |
20 #include "testing/gmock/include/gmock/gmock.h" | 21 #include "testing/gmock/include/gmock/gmock.h" |
21 #include "testing/gtest/include/gtest/gtest.h" | 22 #include "testing/gtest/include/gtest/gtest.h" |
22 #include "third_party/skia/include/core/SkBitmap.h" | 23 #include "third_party/skia/include/core/SkBitmap.h" |
23 | 24 |
24 using ::testing::Mock; | 25 using ::testing::Mock; |
25 using ::testing::_; | 26 using ::testing::_; |
26 using ::testing::AtLeast; | 27 using ::testing::AtLeast; |
27 using ::testing::AnyNumber; | 28 using ::testing::AnyNumber; |
28 | 29 |
29 namespace cc { | 30 namespace cc { |
30 namespace { | 31 namespace { |
31 | 32 |
32 class MockLayerTreeHost : public LayerTreeHost { | |
33 public: | |
34 explicit MockLayerTreeHost(LayerTreeHostClient* client) | |
35 : LayerTreeHost(client, NULL, LayerTreeSettings()) { | |
36 Initialize(NULL); | |
37 } | |
38 }; | |
39 | |
40 class NinePatchLayerTest : public testing::Test { | 33 class NinePatchLayerTest : public testing::Test { |
41 public: | 34 public: |
42 NinePatchLayerTest() : fake_client_(FakeLayerTreeHostClient::DIRECT_3D) {} | 35 NinePatchLayerTest() : fake_client_(FakeLayerTreeHostClient::DIRECT_3D) {} |
43 | 36 |
44 cc::Proxy* Proxy() const { return layer_tree_host_->proxy(); } | |
45 | |
46 protected: | 37 protected: |
47 virtual void SetUp() { | 38 virtual void SetUp() { |
48 layer_tree_host_.reset(new MockLayerTreeHost(&fake_client_)); | 39 layer_tree_host_ = FakeLayerTreeHost::Create(); |
49 } | 40 } |
50 | 41 |
51 virtual void TearDown() { | 42 virtual void TearDown() { |
52 Mock::VerifyAndClearExpectations(layer_tree_host_.get()); | 43 Mock::VerifyAndClearExpectations(layer_tree_host_.get()); |
53 } | 44 } |
54 | 45 |
55 scoped_ptr<MockLayerTreeHost> layer_tree_host_; | 46 scoped_ptr<FakeLayerTreeHost> layer_tree_host_; |
56 FakeLayerTreeHostClient fake_client_; | 47 FakeLayerTreeHostClient fake_client_; |
57 }; | 48 }; |
58 | 49 |
59 TEST_F(NinePatchLayerTest, SetLayerProperties) { | 50 TEST_F(NinePatchLayerTest, SetLayerProperties) { |
60 scoped_refptr<NinePatchLayer> test_layer = NinePatchLayer::Create(); | 51 scoped_refptr<NinePatchLayer> test_layer = NinePatchLayer::Create(); |
61 ASSERT_TRUE(test_layer.get()); | 52 ASSERT_TRUE(test_layer.get()); |
62 test_layer->SetIsDrawable(true); | 53 test_layer->SetIsDrawable(true); |
63 test_layer->SetBounds(gfx::Size(100, 100)); | 54 test_layer->SetBounds(gfx::Size(100, 100)); |
64 | 55 |
65 layer_tree_host_->SetRootLayer(test_layer); | 56 layer_tree_host_->SetRootLayer(test_layer); |
66 Mock::VerifyAndClearExpectations(layer_tree_host_.get()); | 57 Mock::VerifyAndClearExpectations(layer_tree_host_.get()); |
67 EXPECT_EQ(test_layer->layer_tree_host(), layer_tree_host_.get()); | 58 EXPECT_EQ(test_layer->layer_tree_host(), layer_tree_host_.get()); |
68 | 59 |
69 layer_tree_host_->InitializeOutputSurfaceIfNeeded(); | |
70 | |
71 ResourceUpdateQueue queue; | 60 ResourceUpdateQueue queue; |
72 OcclusionTracker occlusion_tracker(gfx::Rect(), false); | 61 OcclusionTracker occlusion_tracker(gfx::Rect(), false); |
73 test_layer->SavePaintProperties(); | 62 test_layer->SavePaintProperties(); |
74 test_layer->Update(&queue, &occlusion_tracker); | 63 test_layer->Update(&queue, &occlusion_tracker); |
75 | 64 |
76 EXPECT_FALSE(test_layer->DrawsContent()); | 65 EXPECT_FALSE(test_layer->DrawsContent()); |
77 | 66 |
78 SkBitmap bitmap; | 67 SkBitmap bitmap; |
79 bitmap.setConfig(SkBitmap::kARGB_8888_Config, 10, 10); | 68 bitmap.setConfig(SkBitmap::kARGB_8888_Config, 10, 10); |
80 bitmap.allocPixels(); | 69 bitmap.allocPixels(); |
81 bitmap.setImmutable(); | 70 bitmap.setImmutable(); |
82 | 71 |
83 scoped_ptr<ScopedUIResource> resource = ScopedUIResource::Create( | 72 scoped_ptr<ScopedUIResource> resource = ScopedUIResource::Create( |
84 layer_tree_host_.get(), UIResourceBitmap(bitmap)); | 73 layer_tree_host_.get(), UIResourceBitmap(bitmap)); |
85 gfx::Rect aperture(5, 5, 1, 1); | 74 gfx::Rect aperture(5, 5, 1, 1); |
86 bool fill_center = true; | 75 bool fill_center = true; |
87 test_layer->SetAperture(aperture); | 76 test_layer->SetAperture(aperture); |
88 test_layer->SetUIResourceId(resource->id()); | 77 test_layer->SetUIResourceId(resource->id()); |
89 test_layer->SetFillCenter(fill_center); | 78 test_layer->SetFillCenter(fill_center); |
90 test_layer->Update(&queue, &occlusion_tracker); | 79 test_layer->Update(&queue, &occlusion_tracker); |
91 | 80 |
92 EXPECT_TRUE(test_layer->DrawsContent()); | 81 EXPECT_TRUE(test_layer->DrawsContent()); |
93 } | 82 } |
94 | 83 |
95 } // namespace | 84 } // namespace |
96 } // namespace cc | 85 } // namespace cc |
OLD | NEW |