NetworkImageViewTest.java revision f58de9c02dfc64c1ec4743ba040debc5cf87b560
1package com.android.volley.toolbox;
2
3import android.content.Context;
4import android.util.AttributeSet;
5import android.view.ViewGroup.LayoutParams;
6import android.widget.ImageView.ScaleType;
7
8import org.junit.Before;
9import org.junit.Test;
10import org.junit.runner.RunWith;
11import org.robolectric.Robolectric;
12import org.robolectric.RobolectricTestRunner;
13
14import static org.junit.Assert.*;
15
16@RunWith(RobolectricTestRunner.class)
17public class NetworkImageViewTest {
18    private NetworkImageView mNIV;
19    private MockImageLoader mMockImageLoader;
20
21    @Before public void setUp() throws Exception {
22        mMockImageLoader = new MockImageLoader();
23        mNIV = new NetworkImageView(Robolectric.application);
24    }
25
26    @Test public void setImageUrl_requestsImage() {
27        mNIV.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
28        mNIV.setImageUrl("http://foo", mMockImageLoader);
29        assertEquals("http://foo", mMockImageLoader.lastRequestUrl);
30        assertEquals(0, mMockImageLoader.lastMaxWidth);
31        assertEquals(0, mMockImageLoader.lastMaxHeight);
32    }
33
34    // public void testSetImageUrl_setsMaxSize() {
35    // // TODO: Not sure how to make getWidth() return something from an
36    // // instrumentation test. Write this test once it's figured out.
37    // }
38
39    private class MockImageLoader extends ImageLoader {
40        public MockImageLoader() {
41            super(null, null);
42        }
43
44        public String lastRequestUrl;
45        public int lastMaxWidth;
46        public int lastMaxHeight;
47
48        public ImageContainer get(String requestUrl, ImageListener imageListener, int maxWidth,
49                int maxHeight, ScaleType scaleType) {
50            lastRequestUrl = requestUrl;
51            lastMaxWidth = maxWidth;
52            lastMaxHeight = maxHeight;
53            return null;
54        }
55    }
56
57    @Test
58    public void publicMethods() throws Exception {
59        // Catch-all test to find API-breaking changes.
60        assertNotNull(NetworkImageView.class.getConstructor(Context.class));
61        assertNotNull(NetworkImageView.class.getConstructor(Context.class, AttributeSet.class));
62        assertNotNull(NetworkImageView.class.getConstructor(Context.class, AttributeSet.class,
63                int.class));
64
65        assertNotNull(NetworkImageView.class.getMethod("setImageUrl", String.class, ImageLoader.class));
66        assertNotNull(NetworkImageView.class.getMethod("setDefaultImageResId", int.class));
67        assertNotNull(NetworkImageView.class.getMethod("setErrorImageResId", int.class));
68    }
69}
70