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

Side by Side Diff: ui/android/resources/resource_manager_impl_unittest.cc

Issue 2322943003: cc: Move UI Resource management out of LayerTreeHost. (Closed)
Patch Set: virtual dtor Created 4 years, 3 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
« no previous file with comments | « ui/android/resources/resource_manager_impl.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 <stddef.h> 5 #include <stddef.h>
6 6
7 #include "base/macros.h" 7 #include "base/macros.h"
8 #include "cc/animation/animation_host.h" 8 #include "cc/animation/animation_host.h"
9 #include "cc/resources/ui_resource_bitmap.h" 9 #include "cc/resources/ui_resource_bitmap.h"
10 #include "cc/resources/ui_resource_manager.h"
10 #include "cc/test/stub_layer_tree_host_client.h" 11 #include "cc/test/stub_layer_tree_host_client.h"
11 #include "cc/test/test_task_graph_runner.h" 12 #include "cc/test/test_task_graph_runner.h"
12 #include "cc/trees/layer_tree_host.h"
13 #include "testing/gmock/include/gmock/gmock.h" 13 #include "testing/gmock/include/gmock/gmock.h"
14 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
15 #include "third_party/skia/include/core/SkBitmap.h" 15 #include "third_party/skia/include/core/SkBitmap.h"
16 #include "third_party/skia/include/core/SkCanvas.h" 16 #include "third_party/skia/include/core/SkCanvas.h"
17 #include "ui/android/resources/resource_manager_impl.h" 17 #include "ui/android/resources/resource_manager_impl.h"
18 #include "ui/android/resources/system_ui_resource_type.h" 18 #include "ui/android/resources/system_ui_resource_type.h"
19 #include "ui/android/window_android.h" 19 #include "ui/android/window_android.h"
20 #include "ui/gfx/android/java_bitmap.h" 20 #include "ui/gfx/android/java_bitmap.h"
21 21
22 22
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 void RequestResourceFromJava(AndroidResourceType res_type, 64 void RequestResourceFromJava(AndroidResourceType res_type,
65 int res_id) override { 65 int res_id) override {
66 SetResourceAsLoaded(res_type, res_id); 66 SetResourceAsLoaded(res_type, res_id);
67 } 67 }
68 }; 68 };
69 69
70 namespace { 70 namespace {
71 71
72 const ui::SystemUIResourceType kTestResourceType = ui::OVERSCROLL_GLOW; 72 const ui::SystemUIResourceType kTestResourceType = ui::OVERSCROLL_GLOW;
73 73
74 class MockLayerTreeHost : public cc::LayerTreeHost { 74 class MockUIResourceManager : public cc::UIResourceManager {
75 public: 75 public:
76 MockLayerTreeHost(cc::LayerTreeHost::InitParams* params, 76 MockUIResourceManager() {}
77 cc::CompositorMode mode)
78 : cc::LayerTreeHost(params, mode) {}
79 77
80 MOCK_METHOD1(CreateUIResource, cc::UIResourceId(cc::UIResourceClient*)); 78 MOCK_METHOD1(CreateUIResource, cc::UIResourceId(cc::UIResourceClient*));
81 MOCK_METHOD1(DeleteUIResource, void(cc::UIResourceId)); 79 MOCK_METHOD1(DeleteUIResource, void(cc::UIResourceId));
82 80
83 private: 81 private:
84 DISALLOW_COPY_AND_ASSIGN(MockLayerTreeHost); 82 DISALLOW_COPY_AND_ASSIGN(MockUIResourceManager);
85 }; 83 };
86 84
87 } // namespace 85 } // namespace
88 86
89 class ResourceManagerTest : public testing::Test { 87 class ResourceManagerTest : public testing::Test {
90 public: 88 public:
91 ResourceManagerTest() 89 ResourceManagerTest()
92 : window_android_(WindowAndroid::CreateForTesting()), 90 : window_android_(WindowAndroid::CreateForTesting()),
93 resource_manager_(window_android_) { 91 resource_manager_(window_android_) {
94 cc::LayerTreeHost::InitParams params; 92 resource_manager_.Init(&ui_resource_manager_);
95 cc::LayerTreeSettings settings;
96 params.client = &stub_client_;
97 params.settings = &settings;
98 params.task_graph_runner = &task_graph_runner_;
99 params.animation_host =
100 cc::AnimationHost::CreateForTesting(cc::ThreadInstance::MAIN);
101 host_.reset(new MockLayerTreeHost(&params,
102 cc::CompositorMode::SINGLE_THREADED));
103 resource_manager_.Init(host_.get());
104 } 93 }
105 94
106 ~ResourceManagerTest() override { 95 ~ResourceManagerTest() override {
107 window_android_->Destroy(nullptr, nullptr); 96 window_android_->Destroy(nullptr, nullptr);
108 } 97 }
109 98
110 void PreloadResource(ui::SystemUIResourceType type) { 99 void PreloadResource(ui::SystemUIResourceType type) {
111 resource_manager_.PreloadResource(ui::ANDROID_RESOURCE_TYPE_SYSTEM, type); 100 resource_manager_.PreloadResource(ui::ANDROID_RESOURCE_TYPE_SYSTEM, type);
112 } 101 }
113 102
114 cc::UIResourceId GetUIResourceId(ui::SystemUIResourceType type) { 103 cc::UIResourceId GetUIResourceId(ui::SystemUIResourceType type) {
115 return resource_manager_.GetUIResourceId(ui::ANDROID_RESOURCE_TYPE_SYSTEM, 104 return resource_manager_.GetUIResourceId(ui::ANDROID_RESOURCE_TYPE_SYSTEM,
116 type); 105 type);
117 } 106 }
118 107
119 void SetResourceAsLoaded(ui::SystemUIResourceType type) { 108 void SetResourceAsLoaded(ui::SystemUIResourceType type) {
120 resource_manager_.SetResourceAsLoaded(ui::ANDROID_RESOURCE_TYPE_SYSTEM, 109 resource_manager_.SetResourceAsLoaded(ui::ANDROID_RESOURCE_TYPE_SYSTEM,
121 type); 110 type);
122 } 111 }
123 112
124 private: 113 private:
125 WindowAndroid* window_android_; 114 WindowAndroid* window_android_;
126 115
127 protected: 116 protected:
128 std::unique_ptr<MockLayerTreeHost> host_; 117 MockUIResourceManager ui_resource_manager_;
129 TestResourceManagerImpl resource_manager_; 118 TestResourceManagerImpl resource_manager_;
130 cc::TestTaskGraphRunner task_graph_runner_; 119 cc::TestTaskGraphRunner task_graph_runner_;
131 cc::StubLayerTreeHostClient stub_client_; 120 cc::StubLayerTreeHostClient stub_client_;
132 }; 121 };
133 122
134 TEST_F(ResourceManagerTest, GetResource) { 123 TEST_F(ResourceManagerTest, GetResource) {
135 const cc::UIResourceId kResourceId = 99; 124 const cc::UIResourceId kResourceId = 99;
136 EXPECT_CALL(*host_.get(), CreateUIResource(_)) 125 EXPECT_CALL(ui_resource_manager_, CreateUIResource(_))
137 .WillOnce(Return(kResourceId)) 126 .WillOnce(Return(kResourceId))
138 .RetiresOnSaturation(); 127 .RetiresOnSaturation();
139 EXPECT_EQ(kResourceId, GetUIResourceId(kTestResourceType)); 128 EXPECT_EQ(kResourceId, GetUIResourceId(kTestResourceType));
140 } 129 }
141 130
142 TEST_F(ResourceManagerTest, PreloadEnsureResource) { 131 TEST_F(ResourceManagerTest, PreloadEnsureResource) {
143 const cc::UIResourceId kResourceId = 99; 132 const cc::UIResourceId kResourceId = 99;
144 PreloadResource(kTestResourceType); 133 PreloadResource(kTestResourceType);
145 EXPECT_CALL(*host_.get(), CreateUIResource(_)) 134 EXPECT_CALL(ui_resource_manager_, CreateUIResource(_))
146 .WillOnce(Return(kResourceId)) 135 .WillOnce(Return(kResourceId))
147 .RetiresOnSaturation(); 136 .RetiresOnSaturation();
148 SetResourceAsLoaded(kTestResourceType); 137 SetResourceAsLoaded(kTestResourceType);
149 EXPECT_EQ(kResourceId, GetUIResourceId(kTestResourceType)); 138 EXPECT_EQ(kResourceId, GetUIResourceId(kTestResourceType));
150 } 139 }
151 140
152 TEST_F(ResourceManagerTest, ProcessCrushedSpriteFrameRects) { 141 TEST_F(ResourceManagerTest, ProcessCrushedSpriteFrameRects) {
153 const size_t kNumFrames = 3; 142 const size_t kNumFrames = 3;
154 143
155 // Create input 144 // Create input
(...skipping 26 matching lines...) Expand all
182 EXPECT_EQ(kNumFrames, actual_rects.size()); 171 EXPECT_EQ(kNumFrames, actual_rects.size());
183 for (size_t i = 0; i < kNumFrames; i++) { 172 for (size_t i = 0; i < kNumFrames; i++) {
184 EXPECT_EQ(expected_rects[i].size(), actual_rects[i].size()); 173 EXPECT_EQ(expected_rects[i].size(), actual_rects[i].size());
185 for (size_t j = 0; j < actual_rects[i].size(); j++) { 174 for (size_t j = 0; j < actual_rects[i].size(); j++) {
186 EXPECT_EQ(expected_rects[i][j], actual_rects[i][j]); 175 EXPECT_EQ(expected_rects[i][j], actual_rects[i][j]);
187 } 176 }
188 } 177 }
189 } 178 }
190 179
191 } // namespace ui 180 } // namespace ui
OLDNEW
« no previous file with comments | « ui/android/resources/resource_manager_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698