Chromium Code Reviews| Index: cc/resources/resource_provider_unittest.cc |
| diff --git a/cc/resources/resource_provider_unittest.cc b/cc/resources/resource_provider_unittest.cc |
| index a1246f473a7614d0bfad72fa51f8e1fe0ac2a559..801efe8290a1598c24e54f8762a3c28110647572 100644 |
| --- a/cc/resources/resource_provider_unittest.cc |
| +++ b/cc/resources/resource_provider_unittest.cc |
| @@ -267,6 +267,13 @@ class ResourceProviderContext : public TestWebGraphicsContext3D { |
| return texture->filter; |
| } |
| + gfx::Size GetCurrentTextureSize() { |
| + DCHECK(current_texture_); |
| + Texture* texture = textures_.get(current_texture_); |
| + DCHECK(texture); |
| + return texture->size; |
| + } |
| + |
| int texture_count() { return textures_.size(); } |
| protected: |
| @@ -1143,6 +1150,55 @@ TEST_P(ResourceProviderTest, AbortForcedAsyncUpload) { |
| Mock::VerifyAndClearExpectations(context); |
| } |
| +void CheckResourceSize( |
| + ResourceProvider* resource_provider, |
| + ResourceProviderContext* context, |
| + ResourceProvider::ResourceId id, |
| + gfx::Size size) { |
| + switch (resource_provider->GetResourceType(id)) { |
| + case ResourceProvider::GLTexture: { |
| + // Enforce texture allocation. |
| + ResourceProvider::ScopedWriteLockGL lock(resource_provider, id); |
| + EXPECT_EQ(context->GetCurrentTextureSize(), size); |
| + break; |
| + } |
| + case ResourceProvider::Bitmap: { |
| + ResourceProvider::ScopedReadLockSoftware lock(resource_provider, id); |
| + EXPECT_EQ(lock.sk_bitmap()->width(), size.width()); |
| + EXPECT_EQ(lock.sk_bitmap()->height(), size.height()); |
| + |
| + // Ensure bitmap pixels were allocated during resize. |
| + lock.sk_bitmap()->lockPixels(); |
| + EXPECT_TRUE(lock.sk_bitmap()->getPixels()); |
| + lock.sk_bitmap()->unlockPixels(); |
| + break; |
| + } |
| + default: |
|
piman
2013/03/22 20:52:34
nit: no need for default clause.
|
| + NOTREACHED(); |
| + break; |
| + } |
| +} |
| + |
| +TEST_P(ResourceProviderTest, ResizeResource) { |
| + gfx::Size size(1, 2); |
| + ResourceProvider::ResourceId id = resource_provider_->CreateResource( |
| + size, |
| + GL_RGBA, |
| + ResourceProvider::TextureUsageAny); |
| + ExpectNumResources(1); |
| + |
| + CheckResourceSize(resource_provider_.get(), context(), id, size); |
| + |
| + gfx::Size new_size(3, 4); |
| + resource_provider_->ResizeResource(id, new_size); |
| + ExpectNumResources(1); |
| + |
| + CheckResourceSize(resource_provider_.get(), context(), id, new_size); |
| + |
| + resource_provider_->DeleteResource(id); |
| + ExpectNumResources(0); |
| +} |
| + |
| INSTANTIATE_TEST_CASE_P( |
| ResourceProviderTests, |
| ResourceProviderTest, |