package com.android.volley.toolbox; import android.content.Context; import android.util.AttributeSet; import android.view.ViewGroup.LayoutParams; import android.widget.ImageView.ScaleType; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; import static org.junit.Assert.*; @RunWith(RobolectricTestRunner.class) public class NetworkImageViewTest { private NetworkImageView mNIV; private MockImageLoader mMockImageLoader; @Before public void setUp() throws Exception { mMockImageLoader = new MockImageLoader(); mNIV = new NetworkImageView(Robolectric.application); } @Test public void setImageUrl_requestsImage() { mNIV.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); mNIV.setImageUrl("http://foo", mMockImageLoader); assertEquals("http://foo", mMockImageLoader.lastRequestUrl); assertEquals(0, mMockImageLoader.lastMaxWidth); assertEquals(0, mMockImageLoader.lastMaxHeight); } // public void testSetImageUrl_setsMaxSize() { // // TODO: Not sure how to make getWidth() return something from an // // instrumentation test. Write this test once it's figured out. // } private class MockImageLoader extends ImageLoader { public MockImageLoader() { super(null, null); } public String lastRequestUrl; public int lastMaxWidth; public int lastMaxHeight; public ImageContainer get(String requestUrl, ImageListener imageListener, int maxWidth, int maxHeight, ScaleType scaleType) { lastRequestUrl = requestUrl; lastMaxWidth = maxWidth; lastMaxHeight = maxHeight; return null; } } @Test public void publicMethods() throws Exception { // Catch-all test to find API-breaking changes. assertNotNull(NetworkImageView.class.getConstructor(Context.class)); assertNotNull(NetworkImageView.class.getConstructor(Context.class, AttributeSet.class)); assertNotNull(NetworkImageView.class.getConstructor(Context.class, AttributeSet.class, int.class)); assertNotNull(NetworkImageView.class.getMethod("setImageUrl", String.class, ImageLoader.class)); assertNotNull(NetworkImageView.class.getMethod("setDefaultImageResId", int.class)); assertNotNull(NetworkImageView.class.getMethod("setErrorImageResId", int.class)); } }