Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 "base/message_loop/message_loop.h" | |
| 9 #include "base/trace_event/memory_dump_manager.h" | |
| 10 #include "base/trace_event/process_memory_dump.h" | |
| 8 #include "cc/animation/animation_host.h" | 11 #include "cc/animation/animation_host.h" |
| 9 #include "cc/resources/ui_resource_bitmap.h" | 12 #include "cc/resources/ui_resource_bitmap.h" |
| 10 #include "cc/resources/ui_resource_manager.h" | 13 #include "cc/resources/ui_resource_manager.h" |
| 11 #include "cc/test/stub_layer_tree_host_client.h" | 14 #include "cc/test/stub_layer_tree_host_client.h" |
| 12 #include "cc/test/test_task_graph_runner.h" | 15 #include "cc/test/test_task_graph_runner.h" |
| 13 #include "testing/gmock/include/gmock/gmock.h" | 16 #include "testing/gmock/include/gmock/gmock.h" |
| 14 #include "testing/gtest/include/gtest/gtest.h" | 17 #include "testing/gtest/include/gtest/gtest.h" |
| 15 #include "third_party/skia/include/core/SkBitmap.h" | 18 #include "third_party/skia/include/core/SkBitmap.h" |
| 16 #include "third_party/skia/include/core/SkCanvas.h" | 19 #include "third_party/skia/include/core/SkCanvas.h" |
| 17 #include "ui/android/resources/resource_manager_impl.h" | 20 #include "ui/android/resources/resource_manager_impl.h" |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 104 return resource_manager_.GetUIResourceId(ui::ANDROID_RESOURCE_TYPE_SYSTEM, | 107 return resource_manager_.GetUIResourceId(ui::ANDROID_RESOURCE_TYPE_SYSTEM, |
| 105 type); | 108 type); |
| 106 } | 109 } |
| 107 | 110 |
| 108 void SetResourceAsLoaded(ui::SystemUIResourceType type) { | 111 void SetResourceAsLoaded(ui::SystemUIResourceType type) { |
| 109 resource_manager_.SetResourceAsLoaded(ui::ANDROID_RESOURCE_TYPE_SYSTEM, | 112 resource_manager_.SetResourceAsLoaded(ui::ANDROID_RESOURCE_TYPE_SYSTEM, |
| 110 type); | 113 type); |
| 111 } | 114 } |
| 112 | 115 |
| 113 private: | 116 private: |
| 117 base::MessageLoop message_loop_; | |
| 114 WindowAndroid* window_android_; | 118 WindowAndroid* window_android_; |
| 115 | 119 |
| 116 protected: | 120 protected: |
| 117 MockUIResourceManager ui_resource_manager_; | 121 MockUIResourceManager ui_resource_manager_; |
| 118 TestResourceManagerImpl resource_manager_; | 122 TestResourceManagerImpl resource_manager_; |
| 119 cc::TestTaskGraphRunner task_graph_runner_; | |
| 120 cc::StubLayerTreeHostClient stub_client_; | 123 cc::StubLayerTreeHostClient stub_client_; |
| 121 }; | 124 }; |
| 122 | 125 |
| 123 TEST_F(ResourceManagerTest, GetResource) { | 126 TEST_F(ResourceManagerTest, GetResource) { |
| 124 const cc::UIResourceId kResourceId = 99; | 127 const cc::UIResourceId kResourceId = 99; |
| 125 EXPECT_CALL(ui_resource_manager_, CreateUIResource(_)) | 128 EXPECT_CALL(ui_resource_manager_, CreateUIResource(_)) |
| 126 .WillOnce(Return(kResourceId)) | 129 .WillOnce(Return(kResourceId)) |
| 127 .RetiresOnSaturation(); | 130 .RetiresOnSaturation(); |
| 128 EXPECT_EQ(kResourceId, GetUIResourceId(kTestResourceType)); | 131 EXPECT_EQ(kResourceId, GetUIResourceId(kTestResourceType)); |
| 129 } | 132 } |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 170 resource_manager_.ProcessCrushedSpriteFrameRects(frame_rects_vector); | 173 resource_manager_.ProcessCrushedSpriteFrameRects(frame_rects_vector); |
| 171 EXPECT_EQ(kNumFrames, actual_rects.size()); | 174 EXPECT_EQ(kNumFrames, actual_rects.size()); |
| 172 for (size_t i = 0; i < kNumFrames; i++) { | 175 for (size_t i = 0; i < kNumFrames; i++) { |
| 173 EXPECT_EQ(expected_rects[i].size(), actual_rects[i].size()); | 176 EXPECT_EQ(expected_rects[i].size(), actual_rects[i].size()); |
| 174 for (size_t j = 0; j < actual_rects[i].size(); j++) { | 177 for (size_t j = 0; j < actual_rects[i].size(); j++) { |
| 175 EXPECT_EQ(expected_rects[i][j], actual_rects[i][j]); | 178 EXPECT_EQ(expected_rects[i][j], actual_rects[i][j]); |
| 176 } | 179 } |
| 177 } | 180 } |
| 178 } | 181 } |
| 179 | 182 |
| 183 TEST_F(ResourceManagerTest, TestOnMemoryDumpEmitsData) { | |
| 184 SetResourceAsLoaded(kTestResourceType); | |
| 185 | |
| 186 base::trace_event::MemoryDumpArgs dump_args = { | |
| 187 base::trace_event::MemoryDumpLevelOfDetail::DETAILED}; | |
| 188 std::unique_ptr<base::trace_event::ProcessMemoryDump> process_memory_dump( | |
| 189 new base::trace_event::ProcessMemoryDump(nullptr, dump_args)); | |
|
David Trainor- moved to gerrit
2016/10/13 04:07:21
MakeUnique
ssid
2016/10/13 17:45:16
Done.
| |
| 190 resource_manager_.OnMemoryDump(dump_args, process_memory_dump.get()); | |
| 191 const auto& allocator_dumps = process_memory_dump->allocator_dumps(); | |
| 192 const char* system_allocator_pool_name = | |
| 193 base::trace_event::MemoryDumpManager::GetInstance() | |
| 194 ->system_allocator_pool_name(); | |
| 195 size_t expected_dump_count = system_allocator_pool_name ? 2 : 1; | |
| 196 EXPECT_EQ(expected_dump_count, allocator_dumps.size()); | |
| 197 for (const auto& dump : allocator_dumps) { | |
| 198 ASSERT_TRUE(dump.first.find("ui/resource_manager") == 0 || | |
| 199 dump.first.find(system_allocator_pool_name) == 0); | |
| 200 } | |
| 201 } | |
| 202 | |
| 180 } // namespace ui | 203 } // namespace ui |
| OLD | NEW |