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

Unified Diff: ui/android/resources/resource_manager_impl_unittest.cc

Issue 1371523003: Android: Don't destroy LayerTreeHost when Surface goes away (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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 side-by-side diff with in-line comments
Download patch
Index: ui/android/resources/resource_manager_impl_unittest.cc
diff --git a/ui/android/resources/resource_manager_impl_unittest.cc b/ui/android/resources/resource_manager_impl_unittest.cc
index 0c78a1a101e127f0fdb15e9739cbb2a6b8969bff..9c83dbc0f57a050d37aeda18eaa94b0a6fef36ef 100644
--- a/ui/android/resources/resource_manager_impl_unittest.cc
+++ b/ui/android/resources/resource_manager_impl_unittest.cc
@@ -2,23 +2,22 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "base/thread_task_runner_handle.h"
#include "cc/resources/ui_resource_bitmap.h"
+#include "cc/trees/layer_tree_host.h"
+#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/skia/include/core/SkBitmap.h"
#include "third_party/skia/include/core/SkCanvas.h"
#include "ui/android/resources/resource_manager_impl.h"
#include "ui/android/resources/system_ui_resource_type.h"
-#include "ui/android/resources/ui_resource_client_android.h"
-#include "ui/android/resources/ui_resource_provider.h"
#include "ui/gfx/android/java_bitmap.h"
namespace ui {
class TestResourceManagerImpl : public ResourceManagerImpl {
public:
- explicit TestResourceManagerImpl(UIResourceProvider* provider)
- : ResourceManagerImpl(provider) {}
-
+ TestResourceManagerImpl() {}
~TestResourceManagerImpl() override {}
void SetResourceAsLoaded(AndroidResourceType res_type, int res_id) {
@@ -48,113 +47,52 @@ namespace {
const ui::SystemUIResourceType kTestResourceType = ui::OVERSCROLL_GLOW;
-class MockUIResourceProvider : public ui::UIResourceProvider {
- public:
- MockUIResourceProvider()
- : next_ui_resource_id_(1),
- has_layer_tree_host_(true),
- resource_manager_(this) {}
-
- virtual ~MockUIResourceProvider() {}
-
- cc::UIResourceId CreateUIResource(
- ui::UIResourceClientAndroid* client) override {
- if (!has_layer_tree_host_)
- return 0;
- cc::UIResourceId id = next_ui_resource_id_++;
- client->GetBitmap(id, false);
- ui_resource_client_map_[id] = client;
- return id;
- }
-
- void DeleteUIResource(cc::UIResourceId id) override {
- CHECK(has_layer_tree_host_);
- ui_resource_client_map_.erase(id);
- }
-
- bool SupportsETC1NonPowerOfTwo() const override { return true; }
-
- void LayerTreeHostCleared() {
- has_layer_tree_host_ = false;
- UIResourceClientMap client_map = ui_resource_client_map_;
- ui_resource_client_map_.clear();
- for (UIResourceClientMap::iterator iter = client_map.begin();
- iter != client_map.end(); iter++) {
- iter->second->UIResourceIsInvalid();
- }
- }
-
- void LayerTreeHostReturned() { has_layer_tree_host_ = true; }
-
- TestResourceManagerImpl& GetResourceManager() { return resource_manager_; }
-
- cc::UIResourceId next_ui_resource_id() const { return next_ui_resource_id_; }
+cc::LayerTreeHost::InitParams g_init_params;
- private:
- typedef base::hash_map<cc::UIResourceId, ui::UIResourceClientAndroid*>
- UIResourceClientMap;
-
- cc::UIResourceId next_ui_resource_id_;
- UIResourceClientMap ui_resource_client_map_;
- bool has_layer_tree_host_;
+class MockLayerTreeHost : public cc::LayerTreeHost {
+ public:
+ MockLayerTreeHost() : cc::LayerTreeHost(&g_init_params) {}
- // The UIResourceProvider owns the ResourceManager.
- TestResourceManagerImpl resource_manager_;
+ MOCK_METHOD1(CreateUIResource, cc::UIResourceId(cc::UIResourceClient*));
jdduke (slow) 2015/09/30 17:19:44 Hopefully this is much cleaner =/
+ MOCK_METHOD1(DeleteUIResource, void(cc::UIResourceId));
};
} // namespace
class ResourceManagerTest : public testing::Test {
public:
- void PreloadResource(ui::SystemUIResourceType type) {
- ui_resource_provider_.GetResourceManager().PreloadResource(
- ui::ANDROID_RESOURCE_TYPE_SYSTEM, type);
+ ResourceManagerTest() {
+ resource_manager_.Init(&host_);
}
- cc::UIResourceId GetUIResourceId(ui::SystemUIResourceType type) {
- return ui_resource_provider_.GetResourceManager().GetUIResourceId(
- ui::ANDROID_RESOURCE_TYPE_SYSTEM, type);
+ void PreloadResource(ui::SystemUIResourceType type) {
+ resource_manager_.PreloadResource(ui::ANDROID_RESOURCE_TYPE_SYSTEM, type);
}
- void LayerTreeHostCleared() { ui_resource_provider_.LayerTreeHostCleared(); }
-
- void LayerTreeHostReturned() {
- ui_resource_provider_.LayerTreeHostReturned();
+ cc::UIResourceId GetUIResourceId(ui::SystemUIResourceType type) {
+ return resource_manager_.GetUIResourceId(ui::ANDROID_RESOURCE_TYPE_SYSTEM,
+ type);
}
void SetResourceAsLoaded(ui::SystemUIResourceType type) {
- ui_resource_provider_.GetResourceManager().SetResourceAsLoaded(
- ui::ANDROID_RESOURCE_TYPE_SYSTEM, type);
- }
-
- cc::UIResourceId GetNextUIResourceId() const {
- return ui_resource_provider_.next_ui_resource_id();
+ resource_manager_.SetResourceAsLoaded(ui::ANDROID_RESOURCE_TYPE_SYSTEM,
+ type);
}
- private:
- MockUIResourceProvider ui_resource_provider_;
+ protected:
+ TestResourceManagerImpl resource_manager_;
+ MockLayerTreeHost host_;
};
TEST_F(ResourceManagerTest, GetResource) {
+ // TODO: |host_| expectations
EXPECT_NE(0, GetUIResourceId(kTestResourceType));
}
TEST_F(ResourceManagerTest, PreloadEnsureResource) {
- // Preloading the resource should trigger bitmap loading, but the actual
- // resource id will not be generated until it is explicitly requested.
- cc::UIResourceId first_resource_id = GetNextUIResourceId();
+ // TODO: |host_| expectations
PreloadResource(kTestResourceType);
SetResourceAsLoaded(kTestResourceType);
- EXPECT_EQ(first_resource_id, GetNextUIResourceId());
- EXPECT_NE(0, GetUIResourceId(kTestResourceType));
- EXPECT_NE(first_resource_id, GetNextUIResourceId());
-}
-
-TEST_F(ResourceManagerTest, ResetLayerTreeHost) {
- EXPECT_NE(0, GetUIResourceId(kTestResourceType));
- LayerTreeHostCleared();
- EXPECT_EQ(0, GetUIResourceId(kTestResourceType));
- LayerTreeHostReturned();
EXPECT_NE(0, GetUIResourceId(kTestResourceType));
}

Powered by Google App Engine
This is Rietveld 408576698