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

Side by Side Diff: third_party/WebKit/Source/platform/graphics/ImageDecodingStoreTest.cpp

Issue 2080623002: Revert "Remove OwnPtr from Blink." (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 10 matching lines...) Expand all
21 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 21 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */ 24 */
25 25
26 #include "platform/graphics/ImageDecodingStore.h" 26 #include "platform/graphics/ImageDecodingStore.h"
27 27
28 #include "platform/graphics/ImageFrameGenerator.h" 28 #include "platform/graphics/ImageFrameGenerator.h"
29 #include "platform/graphics/test/MockImageDecoder.h" 29 #include "platform/graphics/test/MockImageDecoder.h"
30 #include "testing/gtest/include/gtest/gtest.h" 30 #include "testing/gtest/include/gtest/gtest.h"
31 #include <memory>
32 31
33 namespace blink { 32 namespace blink {
34 33
35 class ImageDecodingStoreTest : public ::testing::Test, public MockImageDecoderCl ient { 34 class ImageDecodingStoreTest : public ::testing::Test, public MockImageDecoderCl ient {
36 public: 35 public:
37 void SetUp() override 36 void SetUp() override
38 { 37 {
39 ImageDecodingStore::instance().setCacheLimitInBytes(1024 * 1024); 38 ImageDecodingStore::instance().setCacheLimitInBytes(1024 * 1024);
40 m_generator = ImageFrameGenerator::create(SkISize::Make(100, 100), true) ; 39 m_generator = ImageFrameGenerator::create(SkISize::Make(100, 100), true) ;
41 m_decodersDestroyed = 0; 40 m_decodersDestroyed = 0;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 ImageDecodingStore::instance().setCacheLimitInBytes(0); 75 ImageDecodingStore::instance().setCacheLimitInBytes(0);
77 } 76 }
78 77
79 RefPtr<ImageFrameGenerator> m_generator; 78 RefPtr<ImageFrameGenerator> m_generator;
80 int m_decodersDestroyed; 79 int m_decodersDestroyed;
81 }; 80 };
82 81
83 TEST_F(ImageDecodingStoreTest, insertDecoder) 82 TEST_F(ImageDecodingStoreTest, insertDecoder)
84 { 83 {
85 const SkISize size = SkISize::Make(1, 1); 84 const SkISize size = SkISize::Make(1, 1);
86 std::unique_ptr<ImageDecoder> decoder = MockImageDecoder::create(this); 85 OwnPtr<ImageDecoder> decoder = MockImageDecoder::create(this);
87 decoder->setSize(1, 1); 86 decoder->setSize(1, 1);
88 const ImageDecoder* refDecoder = decoder.get(); 87 const ImageDecoder* refDecoder = decoder.get();
89 ImageDecodingStore::instance().insertDecoder(m_generator.get(), std::move(de coder)); 88 ImageDecodingStore::instance().insertDecoder(m_generator.get(), std::move(de coder));
90 EXPECT_EQ(1, ImageDecodingStore::instance().cacheEntries()); 89 EXPECT_EQ(1, ImageDecodingStore::instance().cacheEntries());
91 EXPECT_EQ(4u, ImageDecodingStore::instance().memoryUsageInBytes()); 90 EXPECT_EQ(4u, ImageDecodingStore::instance().memoryUsageInBytes());
92 91
93 ImageDecoder* testDecoder; 92 ImageDecoder* testDecoder;
94 EXPECT_TRUE(ImageDecodingStore::instance().lockDecoder(m_generator.get(), si ze, &testDecoder)); 93 EXPECT_TRUE(ImageDecodingStore::instance().lockDecoder(m_generator.get(), si ze, &testDecoder));
95 EXPECT_TRUE(testDecoder); 94 EXPECT_TRUE(testDecoder);
96 EXPECT_EQ(refDecoder, testDecoder); 95 EXPECT_EQ(refDecoder, testDecoder);
97 ImageDecodingStore::instance().unlockDecoder(m_generator.get(), testDecoder) ; 96 ImageDecodingStore::instance().unlockDecoder(m_generator.get(), testDecoder) ;
98 EXPECT_EQ(1, ImageDecodingStore::instance().cacheEntries()); 97 EXPECT_EQ(1, ImageDecodingStore::instance().cacheEntries());
99 } 98 }
100 99
101 TEST_F(ImageDecodingStoreTest, evictDecoder) 100 TEST_F(ImageDecodingStoreTest, evictDecoder)
102 { 101 {
103 std::unique_ptr<ImageDecoder> decoder1 = MockImageDecoder::create(this); 102 OwnPtr<ImageDecoder> decoder1 = MockImageDecoder::create(this);
104 std::unique_ptr<ImageDecoder> decoder2 = MockImageDecoder::create(this); 103 OwnPtr<ImageDecoder> decoder2 = MockImageDecoder::create(this);
105 std::unique_ptr<ImageDecoder> decoder3 = MockImageDecoder::create(this); 104 OwnPtr<ImageDecoder> decoder3 = MockImageDecoder::create(this);
106 decoder1->setSize(1, 1); 105 decoder1->setSize(1, 1);
107 decoder2->setSize(2, 2); 106 decoder2->setSize(2, 2);
108 decoder3->setSize(3, 3); 107 decoder3->setSize(3, 3);
109 ImageDecodingStore::instance().insertDecoder(m_generator.get(), std::move(de coder1)); 108 ImageDecodingStore::instance().insertDecoder(m_generator.get(), std::move(de coder1));
110 ImageDecodingStore::instance().insertDecoder(m_generator.get(), std::move(de coder2)); 109 ImageDecodingStore::instance().insertDecoder(m_generator.get(), std::move(de coder2));
111 ImageDecodingStore::instance().insertDecoder(m_generator.get(), std::move(de coder3)); 110 ImageDecodingStore::instance().insertDecoder(m_generator.get(), std::move(de coder3));
112 EXPECT_EQ(3, ImageDecodingStore::instance().cacheEntries()); 111 EXPECT_EQ(3, ImageDecodingStore::instance().cacheEntries());
113 EXPECT_EQ(56u, ImageDecodingStore::instance().memoryUsageInBytes()); 112 EXPECT_EQ(56u, ImageDecodingStore::instance().memoryUsageInBytes());
114 113
115 evictOneCache(); 114 evictOneCache();
116 EXPECT_EQ(2, ImageDecodingStore::instance().cacheEntries()); 115 EXPECT_EQ(2, ImageDecodingStore::instance().cacheEntries());
117 EXPECT_EQ(52u, ImageDecodingStore::instance().memoryUsageInBytes()); 116 EXPECT_EQ(52u, ImageDecodingStore::instance().memoryUsageInBytes());
118 117
119 evictOneCache(); 118 evictOneCache();
120 EXPECT_EQ(1, ImageDecodingStore::instance().cacheEntries()); 119 EXPECT_EQ(1, ImageDecodingStore::instance().cacheEntries());
121 EXPECT_EQ(36u, ImageDecodingStore::instance().memoryUsageInBytes()); 120 EXPECT_EQ(36u, ImageDecodingStore::instance().memoryUsageInBytes());
122 121
123 evictOneCache(); 122 evictOneCache();
124 EXPECT_FALSE(ImageDecodingStore::instance().cacheEntries()); 123 EXPECT_FALSE(ImageDecodingStore::instance().cacheEntries());
125 EXPECT_FALSE(ImageDecodingStore::instance().memoryUsageInBytes()); 124 EXPECT_FALSE(ImageDecodingStore::instance().memoryUsageInBytes());
126 } 125 }
127 126
128 TEST_F(ImageDecodingStoreTest, decoderInUseNotEvicted) 127 TEST_F(ImageDecodingStoreTest, decoderInUseNotEvicted)
129 { 128 {
130 std::unique_ptr<ImageDecoder> decoder1 = MockImageDecoder::create(this); 129 OwnPtr<ImageDecoder> decoder1 = MockImageDecoder::create(this);
131 std::unique_ptr<ImageDecoder> decoder2 = MockImageDecoder::create(this); 130 OwnPtr<ImageDecoder> decoder2 = MockImageDecoder::create(this);
132 std::unique_ptr<ImageDecoder> decoder3 = MockImageDecoder::create(this); 131 OwnPtr<ImageDecoder> decoder3 = MockImageDecoder::create(this);
133 decoder1->setSize(1, 1); 132 decoder1->setSize(1, 1);
134 decoder2->setSize(2, 2); 133 decoder2->setSize(2, 2);
135 decoder3->setSize(3, 3); 134 decoder3->setSize(3, 3);
136 ImageDecodingStore::instance().insertDecoder(m_generator.get(), std::move(de coder1)); 135 ImageDecodingStore::instance().insertDecoder(m_generator.get(), std::move(de coder1));
137 ImageDecodingStore::instance().insertDecoder(m_generator.get(), std::move(de coder2)); 136 ImageDecodingStore::instance().insertDecoder(m_generator.get(), std::move(de coder2));
138 ImageDecodingStore::instance().insertDecoder(m_generator.get(), std::move(de coder3)); 137 ImageDecodingStore::instance().insertDecoder(m_generator.get(), std::move(de coder3));
139 EXPECT_EQ(3, ImageDecodingStore::instance().cacheEntries()); 138 EXPECT_EQ(3, ImageDecodingStore::instance().cacheEntries());
140 139
141 ImageDecoder* testDecoder; 140 ImageDecoder* testDecoder;
142 EXPECT_TRUE(ImageDecodingStore::instance().lockDecoder(m_generator.get(), Sk ISize::Make(2, 2), &testDecoder)); 141 EXPECT_TRUE(ImageDecodingStore::instance().lockDecoder(m_generator.get(), Sk ISize::Make(2, 2), &testDecoder));
143 142
144 evictOneCache(); 143 evictOneCache();
145 evictOneCache(); 144 evictOneCache();
146 evictOneCache(); 145 evictOneCache();
147 EXPECT_EQ(1, ImageDecodingStore::instance().cacheEntries()); 146 EXPECT_EQ(1, ImageDecodingStore::instance().cacheEntries());
148 EXPECT_EQ(16u, ImageDecodingStore::instance().memoryUsageInBytes()); 147 EXPECT_EQ(16u, ImageDecodingStore::instance().memoryUsageInBytes());
149 148
150 ImageDecodingStore::instance().unlockDecoder(m_generator.get(), testDecoder) ; 149 ImageDecodingStore::instance().unlockDecoder(m_generator.get(), testDecoder) ;
151 evictOneCache(); 150 evictOneCache();
152 EXPECT_FALSE(ImageDecodingStore::instance().cacheEntries()); 151 EXPECT_FALSE(ImageDecodingStore::instance().cacheEntries());
153 EXPECT_FALSE(ImageDecodingStore::instance().memoryUsageInBytes()); 152 EXPECT_FALSE(ImageDecodingStore::instance().memoryUsageInBytes());
154 } 153 }
155 154
156 TEST_F(ImageDecodingStoreTest, removeDecoder) 155 TEST_F(ImageDecodingStoreTest, removeDecoder)
157 { 156 {
158 const SkISize size = SkISize::Make(1, 1); 157 const SkISize size = SkISize::Make(1, 1);
159 std::unique_ptr<ImageDecoder> decoder = MockImageDecoder::create(this); 158 OwnPtr<ImageDecoder> decoder = MockImageDecoder::create(this);
160 decoder->setSize(1, 1); 159 decoder->setSize(1, 1);
161 const ImageDecoder* refDecoder = decoder.get(); 160 const ImageDecoder* refDecoder = decoder.get();
162 ImageDecodingStore::instance().insertDecoder(m_generator.get(), std::move(de coder)); 161 ImageDecodingStore::instance().insertDecoder(m_generator.get(), std::move(de coder));
163 EXPECT_EQ(1, ImageDecodingStore::instance().cacheEntries()); 162 EXPECT_EQ(1, ImageDecodingStore::instance().cacheEntries());
164 EXPECT_EQ(4u, ImageDecodingStore::instance().memoryUsageInBytes()); 163 EXPECT_EQ(4u, ImageDecodingStore::instance().memoryUsageInBytes());
165 164
166 ImageDecoder* testDecoder; 165 ImageDecoder* testDecoder;
167 EXPECT_TRUE(ImageDecodingStore::instance().lockDecoder(m_generator.get(), si ze, &testDecoder)); 166 EXPECT_TRUE(ImageDecodingStore::instance().lockDecoder(m_generator.get(), si ze, &testDecoder));
168 EXPECT_TRUE(testDecoder); 167 EXPECT_TRUE(testDecoder);
169 EXPECT_EQ(refDecoder, testDecoder); 168 EXPECT_EQ(refDecoder, testDecoder);
170 ImageDecodingStore::instance().removeDecoder(m_generator.get(), testDecoder) ; 169 ImageDecodingStore::instance().removeDecoder(m_generator.get(), testDecoder) ;
171 EXPECT_FALSE(ImageDecodingStore::instance().cacheEntries()); 170 EXPECT_FALSE(ImageDecodingStore::instance().cacheEntries());
172 171
173 EXPECT_FALSE(ImageDecodingStore::instance().lockDecoder(m_generator.get(), s ize, &testDecoder)); 172 EXPECT_FALSE(ImageDecodingStore::instance().lockDecoder(m_generator.get(), s ize, &testDecoder));
174 } 173 }
175 174
176 } // namespace blink 175 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698