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

Side by Side Diff: components/favicon/core/large_icon_service_unittest.cc

Issue 1318523011: [Password Manager] Copiable username and origin. Linkable origin elided from the left. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Icons appearance fixed Created 5 years, 2 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 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "components/favicon/core/large_icon_service.h" 5 #include "components/favicon/core/large_icon_service.h"
6 6
7 #include <deque> 7 #include <deque>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/memory/ref_counted_memory.h" 10 #include "base/memory/ref_counted_memory.h"
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 // Not actually checking bitmap content. 130 // Not actually checking bitmap content.
131 } 131 }
132 if (expected_fallback_icon_style_.get()) { 132 if (expected_fallback_icon_style_.get()) {
133 EXPECT_EQ(*expected_fallback_icon_style_, 133 EXPECT_EQ(*expected_fallback_icon_style_,
134 *result.fallback_icon_style); 134 *result.fallback_icon_style);
135 } 135 }
136 // Ensure all mock results have been consumed. 136 // Ensure all mock results have been consumed.
137 EXPECT_FALSE(mock_favicon_service_->HasUnusedResults()); 137 EXPECT_FALSE(mock_favicon_service_->HasUnusedResults());
138 } 138 }
139 139
140 void setNonDefaultParsedFallbackStyle() {
141 parsed_fallback_icon_style_.background_color = SK_ColorGRAY;
142 parsed_fallback_icon_style_.text_color = SK_ColorWHITE;
143 parsed_fallback_icon_style_.font_size_ratio = 0.7;
144 parsed_fallback_icon_style_.roundness = 0.9;
145 }
146
140 protected: 147 protected:
141 base::MessageLoopForIO loop_; 148 base::MessageLoopForIO loop_;
142 149
143 scoped_ptr<MockFaviconService> mock_favicon_service_; 150 scoped_ptr<MockFaviconService> mock_favicon_service_;
144 scoped_ptr<TestLargeIconService> large_icon_service_; 151 scoped_ptr<TestLargeIconService> large_icon_service_;
145 base::CancelableTaskTracker cancelable_task_tracker_; 152 base::CancelableTaskTracker cancelable_task_tracker_;
146 153
147 favicon_base::FaviconRawBitmapResult expected_bitmap_; 154 favicon_base::FaviconRawBitmapResult expected_bitmap_;
148 scoped_ptr<favicon_base::FallbackIconStyle> expected_fallback_icon_style_; 155 scoped_ptr<favicon_base::FallbackIconStyle> expected_fallback_icon_style_;
156 favicon_base::FallbackIconStyle parsed_fallback_icon_style_;
149 157
150 bool is_callback_invoked_; 158 bool is_callback_invoked_;
151 159
152 private: 160 private:
153 DISALLOW_COPY_AND_ASSIGN(LargeIconServiceTest); 161 DISALLOW_COPY_AND_ASSIGN(LargeIconServiceTest);
154 }; 162 };
155 163
156 TEST_F(LargeIconServiceTest, SameSize) { 164 TEST_F(LargeIconServiceTest, SameSize) {
157 mock_favicon_service_->InjectResult(CreateTestBitmap(24, 24, kTestColor)); 165 mock_favicon_service_->InjectResult(CreateTestBitmap(24, 24, kTestColor));
158 expected_bitmap_ = CreateTestBitmap(24, 24, kTestColor); 166 expected_bitmap_ = CreateTestBitmap(24, 24, kTestColor);
159 large_icon_service_->GetLargeIconOrFallbackStyle( 167 large_icon_service_->GetLargeIconOrFallbackStyle(
160 GURL(kDummyUrl), 168 GURL(kDummyUrl),
161 24, // |min_source_size_in_pixel| 169 24, // |min_source_size_in_pixel|
162 24, // |desired_size_in_pixel| 170 24, // |desired_size_in_pixel|
171 parsed_fallback_icon_style_,
163 base::Bind(&LargeIconServiceTest::ResultCallback, base::Unretained(this)), 172 base::Bind(&LargeIconServiceTest::ResultCallback, base::Unretained(this)),
164 &cancelable_task_tracker_); 173 &cancelable_task_tracker_);
165 base::MessageLoop::current()->RunUntilIdle(); 174 base::MessageLoop::current()->RunUntilIdle();
166 EXPECT_TRUE(is_callback_invoked_); 175 EXPECT_TRUE(is_callback_invoked_);
167 } 176 }
168 177
169 TEST_F(LargeIconServiceTest, ScaleDown) { 178 TEST_F(LargeIconServiceTest, ScaleDown) {
170 mock_favicon_service_->InjectResult(CreateTestBitmap(32, 32, kTestColor)); 179 mock_favicon_service_->InjectResult(CreateTestBitmap(32, 32, kTestColor));
171 expected_bitmap_ = CreateTestBitmap(24, 24, kTestColor); 180 expected_bitmap_ = CreateTestBitmap(24, 24, kTestColor);
172 large_icon_service_->GetLargeIconOrFallbackStyle( 181 large_icon_service_->GetLargeIconOrFallbackStyle(
173 GURL(kDummyUrl), 182 GURL(kDummyUrl), 24, 24, parsed_fallback_icon_style_,
174 24,
175 24,
176 base::Bind(&LargeIconServiceTest::ResultCallback, base::Unretained(this)), 183 base::Bind(&LargeIconServiceTest::ResultCallback, base::Unretained(this)),
177 &cancelable_task_tracker_); 184 &cancelable_task_tracker_);
178 base::MessageLoop::current()->RunUntilIdle(); 185 base::MessageLoop::current()->RunUntilIdle();
179 EXPECT_TRUE(is_callback_invoked_); 186 EXPECT_TRUE(is_callback_invoked_);
180 } 187 }
181 188
182 TEST_F(LargeIconServiceTest, ScaleUp) { 189 TEST_F(LargeIconServiceTest, ScaleUp) {
183 mock_favicon_service_->InjectResult(CreateTestBitmap(16, 16, kTestColor)); 190 mock_favicon_service_->InjectResult(CreateTestBitmap(16, 16, kTestColor));
184 expected_bitmap_ = CreateTestBitmap(24, 24, kTestColor); 191 expected_bitmap_ = CreateTestBitmap(24, 24, kTestColor);
185 large_icon_service_->GetLargeIconOrFallbackStyle( 192 large_icon_service_->GetLargeIconOrFallbackStyle(
186 GURL(kDummyUrl), 193 GURL(kDummyUrl),
187 14, // Lowered requirement so stored bitmap is admitted. 194 14, // Lowered requirement so stored bitmap is admitted.
188 24, 195 24, parsed_fallback_icon_style_,
189 base::Bind(&LargeIconServiceTest::ResultCallback, base::Unretained(this)), 196 base::Bind(&LargeIconServiceTest::ResultCallback, base::Unretained(this)),
190 &cancelable_task_tracker_); 197 &cancelable_task_tracker_);
191 base::MessageLoop::current()->RunUntilIdle(); 198 base::MessageLoop::current()->RunUntilIdle();
192 EXPECT_TRUE(is_callback_invoked_); 199 EXPECT_TRUE(is_callback_invoked_);
193 } 200 }
194 201
195 // |desired_size_in_pixel| == 0 means retrieve original image without scaling. 202 // |desired_size_in_pixel| == 0 means retrieve original image without scaling.
196 TEST_F(LargeIconServiceTest, NoScale) { 203 TEST_F(LargeIconServiceTest, NoScale) {
197 mock_favicon_service_->InjectResult(CreateTestBitmap(24, 24, kTestColor)); 204 mock_favicon_service_->InjectResult(CreateTestBitmap(24, 24, kTestColor));
198 expected_bitmap_ = CreateTestBitmap(24, 24, kTestColor); 205 expected_bitmap_ = CreateTestBitmap(24, 24, kTestColor);
199 large_icon_service_->GetLargeIconOrFallbackStyle( 206 large_icon_service_->GetLargeIconOrFallbackStyle(
200 GURL(kDummyUrl), 207 GURL(kDummyUrl), 16, 0, parsed_fallback_icon_style_,
201 16,
202 0,
203 base::Bind(&LargeIconServiceTest::ResultCallback, base::Unretained(this)), 208 base::Bind(&LargeIconServiceTest::ResultCallback, base::Unretained(this)),
204 &cancelable_task_tracker_); 209 &cancelable_task_tracker_);
205 base::MessageLoop::current()->RunUntilIdle(); 210 base::MessageLoop::current()->RunUntilIdle();
206 EXPECT_TRUE(is_callback_invoked_); 211 EXPECT_TRUE(is_callback_invoked_);
207 } 212 }
208 213
209 TEST_F(LargeIconServiceTest, FallbackSinceIconTooSmall) { 214 TEST_F(LargeIconServiceTest, FallbackSinceIconTooSmall) {
210 mock_favicon_service_->InjectResult(CreateTestBitmap(16, 16, kTestColor)); 215 mock_favicon_service_->InjectResult(CreateTestBitmap(16, 16, kTestColor));
216 setNonDefaultParsedFallbackStyle();
211 expected_fallback_icon_style_.reset(new favicon_base::FallbackIconStyle); 217 expected_fallback_icon_style_.reset(new favicon_base::FallbackIconStyle);
218 *expected_fallback_icon_style_ = parsed_fallback_icon_style_;
219 // The parsed background color should be overridden with the dominant color of
220 // the icon. Other specifications should be preserved.
212 expected_fallback_icon_style_->background_color = kTestColor; 221 expected_fallback_icon_style_->background_color = kTestColor;
213 large_icon_service_->GetLargeIconOrFallbackStyle( 222 large_icon_service_->GetLargeIconOrFallbackStyle(
214 GURL(kDummyUrl), 223 GURL(kDummyUrl), 24, 24, parsed_fallback_icon_style_,
215 24,
216 24,
217 base::Bind(&LargeIconServiceTest::ResultCallback, base::Unretained(this)), 224 base::Bind(&LargeIconServiceTest::ResultCallback, base::Unretained(this)),
218 &cancelable_task_tracker_); 225 &cancelable_task_tracker_);
219 base::MessageLoop::current()->RunUntilIdle(); 226 base::MessageLoop::current()->RunUntilIdle();
220 EXPECT_TRUE(is_callback_invoked_); 227 EXPECT_TRUE(is_callback_invoked_);
221 } 228 }
222 229
223 TEST_F(LargeIconServiceTest, FallbackSinceIconNotSquare) { 230 TEST_F(LargeIconServiceTest, FallbackSinceIconNotSquare) {
224 mock_favicon_service_->InjectResult(CreateTestBitmap(24, 32, kTestColor)); 231 mock_favicon_service_->InjectResult(CreateTestBitmap(24, 32, kTestColor));
232 setNonDefaultParsedFallbackStyle();
225 expected_fallback_icon_style_.reset(new favicon_base::FallbackIconStyle); 233 expected_fallback_icon_style_.reset(new favicon_base::FallbackIconStyle);
234 *expected_fallback_icon_style_ = parsed_fallback_icon_style_;
235 // The parsed background color should be overridden with the dominant color of
236 // the icon. Other specifications should be preserved.
226 expected_fallback_icon_style_->background_color = kTestColor; 237 expected_fallback_icon_style_->background_color = kTestColor;
227 large_icon_service_->GetLargeIconOrFallbackStyle( 238 large_icon_service_->GetLargeIconOrFallbackStyle(
228 GURL(kDummyUrl), 239 GURL(kDummyUrl), 24, 24, parsed_fallback_icon_style_,
229 24,
230 24,
231 base::Bind(&LargeIconServiceTest::ResultCallback, base::Unretained(this)), 240 base::Bind(&LargeIconServiceTest::ResultCallback, base::Unretained(this)),
232 &cancelable_task_tracker_); 241 &cancelable_task_tracker_);
233 base::MessageLoop::current()->RunUntilIdle(); 242 base::MessageLoop::current()->RunUntilIdle();
234 EXPECT_TRUE(is_callback_invoked_); 243 EXPECT_TRUE(is_callback_invoked_);
235 } 244 }
236 245
237 TEST_F(LargeIconServiceTest, FallbackSinceIconMissing) { 246 TEST_F(LargeIconServiceTest, FallbackSinceIconMissing) {
238 mock_favicon_service_->InjectResult(favicon_base::FaviconRawBitmapResult()); 247 mock_favicon_service_->InjectResult(favicon_base::FaviconRawBitmapResult());
239 // Expect default fallback style, including background. 248 setNonDefaultParsedFallbackStyle();
249 // Expect specified fallback style.
240 expected_fallback_icon_style_.reset(new favicon_base::FallbackIconStyle); 250 expected_fallback_icon_style_.reset(new favicon_base::FallbackIconStyle);
251 *expected_fallback_icon_style_ = parsed_fallback_icon_style_;
241 large_icon_service_->GetLargeIconOrFallbackStyle( 252 large_icon_service_->GetLargeIconOrFallbackStyle(
242 GURL(kDummyUrl), 253 GURL(kDummyUrl), 24, 24, parsed_fallback_icon_style_,
243 24,
244 24,
245 base::Bind(&LargeIconServiceTest::ResultCallback, base::Unretained(this)), 254 base::Bind(&LargeIconServiceTest::ResultCallback, base::Unretained(this)),
246 &cancelable_task_tracker_); 255 &cancelable_task_tracker_);
247 base::MessageLoop::current()->RunUntilIdle(); 256 base::MessageLoop::current()->RunUntilIdle();
248 EXPECT_TRUE(is_callback_invoked_); 257 EXPECT_TRUE(is_callback_invoked_);
249 } 258 }
250 259
251 TEST_F(LargeIconServiceTest, FallbackSinceIconMissingNoScale) { 260 TEST_F(LargeIconServiceTest, FallbackSinceIconMissingNoScale) {
252 mock_favicon_service_->InjectResult(favicon_base::FaviconRawBitmapResult()); 261 mock_favicon_service_->InjectResult(favicon_base::FaviconRawBitmapResult());
253 // Expect default fallback style, including background. 262 setNonDefaultParsedFallbackStyle();
263 // Expect specified fallback style.
254 expected_fallback_icon_style_.reset(new favicon_base::FallbackIconStyle); 264 expected_fallback_icon_style_.reset(new favicon_base::FallbackIconStyle);
265 *expected_fallback_icon_style_ = parsed_fallback_icon_style_;
255 large_icon_service_->GetLargeIconOrFallbackStyle( 266 large_icon_service_->GetLargeIconOrFallbackStyle(
256 GURL(kDummyUrl), 267 GURL(kDummyUrl), 24, 0, parsed_fallback_icon_style_,
257 24,
258 0,
259 base::Bind(&LargeIconServiceTest::ResultCallback, base::Unretained(this)), 268 base::Bind(&LargeIconServiceTest::ResultCallback, base::Unretained(this)),
260 &cancelable_task_tracker_); 269 &cancelable_task_tracker_);
261 base::MessageLoop::current()->RunUntilIdle(); 270 base::MessageLoop::current()->RunUntilIdle();
262 EXPECT_TRUE(is_callback_invoked_); 271 EXPECT_TRUE(is_callback_invoked_);
263 } 272 }
264 273
265 // Oddball case where we demand a high resolution icon to scale down. Generates 274 // Oddball case where we demand a high resolution icon to scale down. Generates
266 // fallback even though an icon with the final size is available. 275 // fallback even though an icon with the final size is available.
267 TEST_F(LargeIconServiceTest, FallbackSinceTooPicky) { 276 TEST_F(LargeIconServiceTest, FallbackSinceTooPicky) {
268 mock_favicon_service_->InjectResult(CreateTestBitmap(24, 24, kTestColor)); 277 mock_favicon_service_->InjectResult(CreateTestBitmap(24, 24, kTestColor));
269 expected_fallback_icon_style_.reset(new favicon_base::FallbackIconStyle); 278 expected_fallback_icon_style_.reset(new favicon_base::FallbackIconStyle);
270 expected_fallback_icon_style_->background_color = kTestColor; 279 expected_fallback_icon_style_->background_color = kTestColor;
271 large_icon_service_->GetLargeIconOrFallbackStyle( 280 large_icon_service_->GetLargeIconOrFallbackStyle(
272 GURL(kDummyUrl), 281 GURL(kDummyUrl), 32, 24, *expected_fallback_icon_style_,
273 32,
274 24,
275 base::Bind(&LargeIconServiceTest::ResultCallback, base::Unretained(this)), 282 base::Bind(&LargeIconServiceTest::ResultCallback, base::Unretained(this)),
276 &cancelable_task_tracker_); 283 &cancelable_task_tracker_);
277 base::MessageLoop::current()->RunUntilIdle(); 284 base::MessageLoop::current()->RunUntilIdle();
278 EXPECT_TRUE(is_callback_invoked_); 285 EXPECT_TRUE(is_callback_invoked_);
279 } 286 }
280 287
281 } // namespace 288 } // namespace
282 } // namespace favicon 289 } // namespace favicon
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698