17032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrickpackage com.android.volley.toolbox; 27032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick 3e1f0d61968d5194088c18f00b1bcfc46a91adbfdRalph Bergmannimport android.content.Context; 4e1f0d61968d5194088c18f00b1bcfc46a91adbfdRalph Bergmannimport android.util.AttributeSet; 57032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrickimport android.view.ViewGroup.LayoutParams; 6ced8a98b9ffa3612656b7979f8933ae9cf19d657Ralph Bergmannimport android.widget.ImageView.ScaleType; 77032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick 8b9b8dc3d98fb1a8c3f02c2c2fcc18cbd344c05cbFicus Kirkpatrickimport org.junit.Before; 9b9b8dc3d98fb1a8c3f02c2c2fcc18cbd344c05cbFicus Kirkpatrickimport org.junit.Test; 10b9b8dc3d98fb1a8c3f02c2c2fcc18cbd344c05cbFicus Kirkpatrickimport org.junit.runner.RunWith; 11b05d05822a1e9310fd012f6cc2f15bce4b420e17Magnus Ernstssonimport org.robolectric.RuntimeEnvironment; 12b9b8dc3d98fb1a8c3f02c2c2fcc18cbd344c05cbFicus Kirkpatrickimport org.robolectric.RobolectricTestRunner; 13b9b8dc3d98fb1a8c3f02c2c2fcc18cbd344c05cbFicus Kirkpatrick 14b9b8dc3d98fb1a8c3f02c2c2fcc18cbd344c05cbFicus Kirkpatrickimport static org.junit.Assert.*; 15b9b8dc3d98fb1a8c3f02c2c2fcc18cbd344c05cbFicus Kirkpatrick 16b9b8dc3d98fb1a8c3f02c2c2fcc18cbd344c05cbFicus Kirkpatrick@RunWith(RobolectricTestRunner.class) 17b9b8dc3d98fb1a8c3f02c2c2fcc18cbd344c05cbFicus Kirkpatrickpublic class NetworkImageViewTest { 187032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick private NetworkImageView mNIV; 197032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick private MockImageLoader mMockImageLoader; 207032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick 21b9b8dc3d98fb1a8c3f02c2c2fcc18cbd344c05cbFicus Kirkpatrick @Before public void setUp() throws Exception { 227032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick mMockImageLoader = new MockImageLoader(); 23b05d05822a1e9310fd012f6cc2f15bce4b420e17Magnus Ernstsson mNIV = new NetworkImageView(RuntimeEnvironment.application); 247032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick } 257032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick 26b9b8dc3d98fb1a8c3f02c2c2fcc18cbd344c05cbFicus Kirkpatrick @Test public void setImageUrl_requestsImage() { 277032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick mNIV.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 287032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick mNIV.setImageUrl("http://foo", mMockImageLoader); 297032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick assertEquals("http://foo", mMockImageLoader.lastRequestUrl); 307032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick assertEquals(0, mMockImageLoader.lastMaxWidth); 317032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick assertEquals(0, mMockImageLoader.lastMaxHeight); 327032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick } 337032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick 347032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick // public void testSetImageUrl_setsMaxSize() { 357032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick // // TODO: Not sure how to make getWidth() return something from an 367032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick // // instrumentation test. Write this test once it's figured out. 377032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick // } 387032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick 397032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick private class MockImageLoader extends ImageLoader { 407032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick public MockImageLoader() { 417032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick super(null, null); 427032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick } 437032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick 447032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick public String lastRequestUrl; 457032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick public int lastMaxWidth; 467032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick public int lastMaxHeight; 477032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick 487032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick public ImageContainer get(String requestUrl, ImageListener imageListener, int maxWidth, 49ced8a98b9ffa3612656b7979f8933ae9cf19d657Ralph Bergmann int maxHeight, ScaleType scaleType) { 507032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick lastRequestUrl = requestUrl; 517032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick lastMaxWidth = maxWidth; 527032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick lastMaxHeight = maxHeight; 537032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick return null; 547032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick } 557032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick } 56e1f0d61968d5194088c18f00b1bcfc46a91adbfdRalph Bergmann 57e1f0d61968d5194088c18f00b1bcfc46a91adbfdRalph Bergmann @Test 58e1f0d61968d5194088c18f00b1bcfc46a91adbfdRalph Bergmann public void publicMethods() throws Exception { 59e1f0d61968d5194088c18f00b1bcfc46a91adbfdRalph Bergmann // Catch-all test to find API-breaking changes. 60e1f0d61968d5194088c18f00b1bcfc46a91adbfdRalph Bergmann assertNotNull(NetworkImageView.class.getConstructor(Context.class)); 61e1f0d61968d5194088c18f00b1bcfc46a91adbfdRalph Bergmann assertNotNull(NetworkImageView.class.getConstructor(Context.class, AttributeSet.class)); 62e1f0d61968d5194088c18f00b1bcfc46a91adbfdRalph Bergmann assertNotNull(NetworkImageView.class.getConstructor(Context.class, AttributeSet.class, 63e1f0d61968d5194088c18f00b1bcfc46a91adbfdRalph Bergmann int.class)); 64e1f0d61968d5194088c18f00b1bcfc46a91adbfdRalph Bergmann 65e1f0d61968d5194088c18f00b1bcfc46a91adbfdRalph Bergmann assertNotNull(NetworkImageView.class.getMethod("setImageUrl", String.class, ImageLoader.class)); 66e1f0d61968d5194088c18f00b1bcfc46a91adbfdRalph Bergmann assertNotNull(NetworkImageView.class.getMethod("setDefaultImageResId", int.class)); 67e1f0d61968d5194088c18f00b1bcfc46a91adbfdRalph Bergmann assertNotNull(NetworkImageView.class.getMethod("setErrorImageResId", int.class)); 68e1f0d61968d5194088c18f00b1bcfc46a91adbfdRalph Bergmann } 697032ebc0f56d43a2778388926994bc5d862ab54eFicus Kirkpatrick} 70