OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 package org.chromium.chrome.browser.ntp.snippets; | 5 package org.chromium.chrome.browser.ntp.snippets; |
6 | 6 |
| 7 import android.graphics.Bitmap; |
7 import android.graphics.BitmapFactory; | 8 import android.graphics.BitmapFactory; |
8 import android.support.test.InstrumentationRegistry; | 9 import android.support.test.InstrumentationRegistry; |
9 import android.support.test.filters.MediumTest; | 10 import android.support.test.filters.MediumTest; |
10 import android.util.TypedValue; | 11 import android.util.TypedValue; |
11 import android.view.ViewGroup; | 12 import android.view.ViewGroup; |
12 import android.widget.FrameLayout; | 13 import android.widget.FrameLayout; |
13 | 14 |
14 import org.junit.Before; | 15 import org.junit.Before; |
15 import org.junit.Rule; | 16 import org.junit.Rule; |
16 import org.junit.Test; | 17 import org.junit.Test; |
17 import org.junit.runner.RunWith; | 18 import org.junit.runner.RunWith; |
18 | 19 |
| 20 import org.chromium.base.DiscardableReferencePool; |
19 import org.chromium.base.ThreadUtils; | 21 import org.chromium.base.ThreadUtils; |
20 import org.chromium.base.test.util.CommandLineFlags; | 22 import org.chromium.base.test.util.CommandLineFlags; |
21 import org.chromium.base.test.util.Feature; | 23 import org.chromium.base.test.util.Feature; |
22 import org.chromium.base.test.util.RetryOnFailure; | 24 import org.chromium.base.test.util.RetryOnFailure; |
23 import org.chromium.chrome.R; | 25 import org.chromium.chrome.R; |
24 import org.chromium.chrome.browser.ChromeActivity; | 26 import org.chromium.chrome.browser.ChromeActivity; |
25 import org.chromium.chrome.browser.ChromeSwitches; | 27 import org.chromium.chrome.browser.ChromeSwitches; |
26 import org.chromium.chrome.browser.favicon.FaviconHelper.FaviconImageCallback; | 28 import org.chromium.chrome.browser.favicon.FaviconHelper.FaviconImageCallback; |
27 import org.chromium.chrome.browser.favicon.FaviconHelper.IconAvailabilityCallbac
k; | 29 import org.chromium.chrome.browser.favicon.FaviconHelper.IconAvailabilityCallbac
k; |
28 import org.chromium.chrome.browser.favicon.LargeIconBridge.LargeIconCallback; | 30 import org.chromium.chrome.browser.favicon.LargeIconBridge.LargeIconCallback; |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
139 private void setupTestData() { | 141 private void setupTestData() { |
140 @CategoryInt | 142 @CategoryInt |
141 int fullCategory = 0; | 143 int fullCategory = 0; |
142 @CategoryInt | 144 @CategoryInt |
143 int minimalCategory = 1; | 145 int minimalCategory = 1; |
144 SnippetArticle shortSnippet = new SnippetArticle(fullCategory, "id1", "S
nippet", | 146 SnippetArticle shortSnippet = new SnippetArticle(fullCategory, "id1", "S
nippet", |
145 "Publisher", "Preview Text", "www.google.com", | 147 "Publisher", "Preview Text", "www.google.com", |
146 1466614774, // Publish timestamp | 148 1466614774, // Publish timestamp |
147 10f, // Score | 149 10f, // Score |
148 1466634774); // Fetch timestamp | 150 1466634774); // Fetch timestamp |
149 shortSnippet.setThumbnailBitmap( | 151 |
| 152 Bitmap thumbnail = |
150 BitmapFactory.decodeResource(mActivityTestRule.getActivity().get
Resources(), | 153 BitmapFactory.decodeResource(mActivityTestRule.getActivity().get
Resources(), |
151 R.drawable.signin_promo_illustration)); | 154 R.drawable.signin_promo_illustration); |
| 155 shortSnippet.setThumbnailBitmap(mUiDelegate.getReferencePool().put(thumb
nail)); |
152 | 156 |
153 SnippetArticle longSnippet = new SnippetArticle(fullCategory, "id2", | 157 SnippetArticle longSnippet = new SnippetArticle(fullCategory, "id2", |
154 new String(new char[20]).replace("\0", "Snippet "), | 158 new String(new char[20]).replace("\0", "Snippet "), |
155 new String(new char[20]).replace("\0", "Publisher "), | 159 new String(new char[20]).replace("\0", "Publisher "), |
156 new String(new char[80]).replace("\0", "Preview Text "), "www.go
ogle.com", | 160 new String(new char[80]).replace("\0", "Preview Text "), "www.go
ogle.com", |
157 1466614074, // Publish timestamp | 161 1466614074, // Publish timestamp |
158 20f, // Score | 162 20f, // Score |
159 1466634774); // Fetch timestamp | 163 1466634774); // Fetch timestamp |
160 | 164 |
161 SnippetArticle minimalSnippet = new SnippetArticle(minimalCategory, "id3
", | 165 SnippetArticle minimalSnippet = new SnippetArticle(minimalCategory, "id3
", |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
199 mSnippetsSource = new FakeSuggestionsSource(); | 203 mSnippetsSource = new FakeSuggestionsSource(); |
200 } | 204 } |
201 | 205 |
202 /** | 206 /** |
203 * A SuggestionsUiDelegate to initialize our Adapter. | 207 * A SuggestionsUiDelegate to initialize our Adapter. |
204 */ | 208 */ |
205 private class MockUiDelegate implements SuggestionsUiDelegate { | 209 private class MockUiDelegate implements SuggestionsUiDelegate { |
206 private SuggestionsEventReporter mSuggestionsEventReporter = | 210 private SuggestionsEventReporter mSuggestionsEventReporter = |
207 new DummySuggestionsEventReporter(); | 211 new DummySuggestionsEventReporter(); |
208 private SuggestionsRanker mSuggestionsRanker = new SuggestionsRanker(); | 212 private SuggestionsRanker mSuggestionsRanker = new SuggestionsRanker(); |
| 213 private final DiscardableReferencePool mReferencePool = new DiscardableR
eferencePool(); |
209 | 214 |
210 @Override | 215 @Override |
211 public void getLocalFaviconImageForURL( | 216 public void getLocalFaviconImageForURL( |
212 final String url, int size, final FaviconImageCallback faviconCa
llback) { | 217 final String url, int size, final FaviconImageCallback faviconCa
llback) { |
213 // Run the callback asynchronously incase the caller made that assum
ption. | 218 // Run the callback asynchronously incase the caller made that assum
ption. |
214 ThreadUtils.postOnUiThread(new Runnable(){ | 219 ThreadUtils.postOnUiThread(new Runnable(){ |
215 @Override | 220 @Override |
216 public void run() { | 221 public void run() { |
217 // Return an arbitrary drawable. | 222 // Return an arbitrary drawable. |
218 faviconCallback.onFaviconAvailable( | 223 faviconCallback.onFaviconAvailable( |
(...skipping 20 matching lines...) Expand all Loading... |
239 public SuggestionsSource getSuggestionsSource() { | 244 public SuggestionsSource getSuggestionsSource() { |
240 return mSnippetsSource; | 245 return mSnippetsSource; |
241 } | 246 } |
242 | 247 |
243 @Override | 248 @Override |
244 public SuggestionsRanker getSuggestionsRanker() { | 249 public SuggestionsRanker getSuggestionsRanker() { |
245 return mSuggestionsRanker; | 250 return mSuggestionsRanker; |
246 } | 251 } |
247 | 252 |
248 @Override | 253 @Override |
| 254 public DiscardableReferencePool getReferencePool() { |
| 255 return mReferencePool; |
| 256 } |
| 257 |
| 258 @Override |
249 public void addDestructionObserver(DestructionObserver destructionObserv
er) {} | 259 public void addDestructionObserver(DestructionObserver destructionObserv
er) {} |
250 | 260 |
251 @Override | 261 @Override |
252 public boolean isVisible() { | 262 public boolean isVisible() { |
253 return true; | 263 return true; |
254 } | 264 } |
255 | 265 |
256 @Override | 266 @Override |
257 public SuggestionsEventReporter getEventReporter() { | 267 public SuggestionsEventReporter getEventReporter() { |
258 return mSuggestionsEventReporter; | 268 return mSuggestionsEventReporter; |
259 } | 269 } |
260 | 270 |
261 @Override | 271 @Override |
262 public SuggestionsNavigationDelegate getNavigationDelegate() { | 272 public SuggestionsNavigationDelegate getNavigationDelegate() { |
263 return null; | 273 return null; |
264 } | 274 } |
265 } | 275 } |
266 | 276 |
267 } | 277 } |
OLD | NEW |