Skip to content

Commit

Permalink
Update to Robolectric 3.1
Browse files Browse the repository at this point in the history
  • Loading branch information
ZacSweers authored and JakeWharton committed Jun 16, 2016
1 parent 3f379e0 commit 81ead3e
Show file tree
Hide file tree
Showing 24 changed files with 124 additions and 196 deletions.
2 changes: 1 addition & 1 deletion dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ ext {
junit : 'junit:junit:4.10',
fest : 'org.easytesting:fest-assert-core:2.0M10',
festAndroid : 'com.squareup:fest-android:1.0.6',
robolectric : 'org.robolectric:robolectric:2.2',
robolectric : 'org.robolectric:robolectric:3.1',
mockito : 'org.mockito:mockito-core:1.9.5'
]

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,19 @@
import com.squareup.pollexor.Thumbor;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RobolectricGradleTestRunner;
import org.robolectric.annotation.Config;

import static com.squareup.picasso.Picasso.RequestTransformer;
import static org.fest.assertions.api.Assertions.assertThat;
import static org.robolectric.annotation.Config.NONE;

@RunWith(RobolectricTestRunner.class) //
@Config(manifest = NONE)
@RunWith(RobolectricGradleTestRunner.class)
@Config(
sdk = 18,
manifest = NONE,
constants = BuildConfig.class
)
public class PollexorRequestTransformerTest {
private static final String HOST = "http://example.com/";
private static final String KEY = "omgsecretpassword";
Expand Down
1 change: 1 addition & 0 deletions picasso/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ dependencies {
testCompile dep.junit
testCompile dep.fest
testCompile dep.festAndroid
testCompile dep.supportV4
testCompile dep.robolectric
testCompile dep.mockito
testCompile dep.mockWebServer
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,12 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import org.robolectric.RobolectricGradleTestRunner;

import static org.fest.assertions.api.Assertions.assertThat;
import static org.mockito.MockitoAnnotations.initMocks;

@RunWith(RobolectricTestRunner.class)
@Config(manifest = Config.NONE)
@RunWith(RobolectricGradleTestRunner.class)
public class AssetRequestHandlerTest {
@Mock Context context;

Expand Down
23 changes: 10 additions & 13 deletions picasso/src/test/java/com/squareup/picasso/BitmapHunterTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,16 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import org.robolectric.RobolectricGradleTestRunner;
import org.robolectric.shadows.ShadowBitmap;
import org.robolectric.shadows.ShadowMatrix;

import static android.graphics.Bitmap.Config.ARGB_8888;
import static android.media.ExifInterface.ORIENTATION_FLIP_HORIZONTAL;
import static android.media.ExifInterface.ORIENTATION_FLIP_VERTICAL;
import static android.media.ExifInterface.ORIENTATION_ROTATE_90;
import static android.media.ExifInterface.ORIENTATION_TRANSPOSE;
import static android.media.ExifInterface.ORIENTATION_TRANSVERSE;
import static com.squareup.picasso.BitmapHunter.forRequest;
import static com.squareup.picasso.BitmapHunter.transformResult;
import static com.squareup.picasso.Picasso.LoadedFrom.MEMORY;
Expand All @@ -43,11 +47,11 @@
import static com.squareup.picasso.TestUtils.ASSET_KEY_1;
import static com.squareup.picasso.TestUtils.ASSET_URI_1;
import static com.squareup.picasso.TestUtils.CONTACT_KEY_1;
import static com.squareup.picasso.TestUtils.CONTACT_PHOTO_KEY_1;
import static com.squareup.picasso.TestUtils.CONTACT_PHOTO_URI_1;
import static com.squareup.picasso.TestUtils.CONTACT_URI_1;
import static com.squareup.picasso.TestUtils.CONTENT_1_URL;
import static com.squareup.picasso.TestUtils.CONTENT_KEY_1;
import static com.squareup.picasso.TestUtils.CONTACT_PHOTO_KEY_1;
import static com.squareup.picasso.TestUtils.CONTACT_PHOTO_URI_1;
import static com.squareup.picasso.TestUtils.CUSTOM_URI;
import static com.squareup.picasso.TestUtils.CUSTOM_URI_KEY;
import static com.squareup.picasso.TestUtils.FILE_1_URL;
Expand Down Expand Up @@ -76,16 +80,9 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.mockito.MockitoAnnotations.initMocks;
import static org.robolectric.Robolectric.shadowOf;

import static android.media.ExifInterface.ORIENTATION_ROTATE_90;
import static android.media.ExifInterface.ORIENTATION_FLIP_HORIZONTAL ;
import static android.media.ExifInterface.ORIENTATION_FLIP_VERTICAL;
import static android.media.ExifInterface.ORIENTATION_TRANSPOSE;
import static android.media.ExifInterface.ORIENTATION_TRANSVERSE;
import static org.robolectric.Shadows.shadowOf;

@RunWith(RobolectricTestRunner.class)
@Config(manifest = Config.NONE)
@RunWith(RobolectricGradleTestRunner.class)
public class BitmapHunterTest {

@Mock Context context;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
import org.mockito.ArgumentCaptor;
import org.mockito.Captor;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;

import static com.squareup.picasso.TestUtils.TRANSFORM_REQUEST_ANSWER;
import static com.squareup.picasso.TestUtils.URI_1;
Expand All @@ -43,7 +42,6 @@
import static org.mockito.MockitoAnnotations.initMocks;

@RunWith(RobolectricTestRunner.class)
@Config(manifest = Config.NONE, reportSdk = 11)
@SuppressWarnings("deprecation")
public class DeferredRequestCreatorTest {

Expand All @@ -54,7 +52,6 @@ public class DeferredRequestCreatorTest {
initMocks(this);
}

@Config(reportSdk = 12)
@Test public void initAddsAttachListenerWhichDefersLayoutListener() {
ImageView target = mockFitImageViewTarget(true);
ViewTreeObserver observer = target.getViewTreeObserver();
Expand All @@ -70,7 +67,6 @@ public class DeferredRequestCreatorTest {
verify(observer).addOnPreDrawListener(request);
}

@Config(reportSdk = 12)
@Test public void initAttachedTargetSkipsAttachListener() {
ImageView target = mockFitImageViewTarget(true);
ViewTreeObserver observer = target.getViewTreeObserver();
Expand All @@ -80,32 +76,17 @@ public class DeferredRequestCreatorTest {
verify(observer).addOnPreDrawListener(request);
}

@Test public void initAttachesLayoutListenerApi11() {
ImageView target = mockFitImageViewTarget(true);
ViewTreeObserver observer = target.getViewTreeObserver();
DeferredRequestCreator request = new DeferredRequestCreator(mock(RequestCreator.class), target);
verify(observer).addOnPreDrawListener(request);
}

@Config(reportSdk = 12)
@Test public void cancelRemovesAttachListener() {
@Test public void cancelWhileAttachedRemovesAttachListener() {
ImageView target = mockFitImageViewTarget(true);
DeferredRequestCreator request = new DeferredRequestCreator(mock(RequestCreator.class), target);
verify(target).addOnAttachStateChangeListener(attachListenerCaptor.capture());
request.cancel();
verify(target).removeOnAttachStateChangeListener(attachListenerCaptor.getValue());
}

@Test public void cancelRemovesLayoutListenerApi11() {
ImageView target = mockFitImageViewTarget(true);
ViewTreeObserver observer = target.getViewTreeObserver();
DeferredRequestCreator request = new DeferredRequestCreator(mock(RequestCreator.class), target);
request.cancel();
verify(observer).removeOnPreDrawListener(request);
}

@Test public void cancelTwiceOnlyPerformsOnce() {
@Test public void cancelTwiceWhileAttachedOnlyPerformsOnce() {
ImageView target = mockFitImageViewTarget(true);
when(target.getWindowToken()).thenReturn(mock(IBinder.class));
ViewTreeObserver observer = target.getViewTreeObserver();
DeferredRequestCreator request = new DeferredRequestCreator(mock(RequestCreator.class), target);
request.cancel();
Expand All @@ -132,8 +113,9 @@ public class DeferredRequestCreatorTest {
verify(creator).clearTag();
}

@Test public void onLayoutSkipsIfTargetIsNull() {
@Test public void onLayoutSkipsIfTargetIsNullAfterAttach() {
ImageView target = mockFitImageViewTarget(true);
when(target.getWindowToken()).thenReturn(mock(IBinder.class));
RequestCreator creator = mock(RequestCreator.class);
DeferredRequestCreator request = new DeferredRequestCreator(creator, target);
ViewTreeObserver viewTreeObserver = target.getViewTreeObserver();
Expand All @@ -144,8 +126,9 @@ public class DeferredRequestCreatorTest {
verifyNoMoreInteractions(viewTreeObserver);
}

@Test public void onLayoutSkipsIfViewTreeObserverIsDead() {
@Test public void onLayoutSkipsIfViewIsAttachedAndViewTreeObserverIsDead() {
ImageView target = mockFitImageViewTarget(false);
when(target.getWindowToken()).thenReturn(mock(IBinder.class));
RequestCreator creator = mock(RequestCreator.class);
DeferredRequestCreator request = new DeferredRequestCreator(creator, target);
ViewTreeObserver viewTreeObserver = target.getViewTreeObserver();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,7 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import org.robolectric.RobolectricGradleTestRunner;

import static android.content.Context.CONNECTIVITY_SERVICE;
import static android.content.Intent.ACTION_AIRPLANE_MODE_CHANGED;
Expand Down Expand Up @@ -63,8 +62,7 @@
import static org.mockito.Mockito.when;
import static org.mockito.MockitoAnnotations.initMocks;

@RunWith(RobolectricTestRunner.class)
@Config(manifest = Config.NONE)
@RunWith(RobolectricGradleTestRunner.class)
public class DispatcherTest {

@Mock Context context;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,8 @@
import android.widget.ImageView;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import org.robolectric.RobolectricGradleTestRunner;
import org.robolectric.RuntimeEnvironment;

import static com.squareup.picasso.Picasso.LoadedFrom.MEMORY;
import static com.squareup.picasso.Picasso.RequestTransformer.IDENTITY;
Expand All @@ -39,8 +38,7 @@
import static org.mockito.Mockito.verifyZeroInteractions;
import static org.mockito.Mockito.when;

@RunWith(RobolectricTestRunner.class)
@Config(manifest = Config.NONE)
@RunWith(RobolectricGradleTestRunner.class)
public class ImageViewActionTest {

@Test(expected = AssertionError.class)
Expand Down Expand Up @@ -84,7 +82,7 @@ public void returnsIfTargetIsNullOnError() throws Exception {
public void invokesTargetAndCallbackSuccessIfTargetIsNotNull() throws Exception {
Bitmap bitmap = makeBitmap();
Picasso picasso =
new Picasso(Robolectric.application, mock(Dispatcher.class), Cache.NONE, null, IDENTITY,
new Picasso(RuntimeEnvironment.application, mock(Dispatcher.class), Cache.NONE, null, IDENTITY,
null, mock(Stats.class), Bitmap.Config.ARGB_8888, false, false);
ImageView target = mockImageViewTarget();
Callback callback = mockCallback();
Expand Down
6 changes: 2 additions & 4 deletions picasso/src/test/java/com/squareup/picasso/LruCacheTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,16 +23,14 @@
import java.util.Map;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import org.robolectric.RobolectricGradleTestRunner;

import static android.graphics.Bitmap.Config.ALPHA_8;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.fail;
import static org.fest.assertions.api.Assertions.assertThat;

@RunWith(RobolectricTestRunner.class)
@Config(manifest = Config.NONE)
@RunWith(RobolectricGradleTestRunner.class)
public class LruCacheTest {
// The use of ALPHA_8 simplifies the size math in tests since only one byte is used per-pixel.
private final Bitmap A = Bitmap.createBitmap(1, 1, ALPHA_8);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RobolectricGradleTestRunner;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowBitmap;

import static android.graphics.Bitmap.Config.ARGB_8888;
import static com.squareup.picasso.MediaStoreRequestHandler.PicassoKind.FULL;
Expand All @@ -21,14 +22,15 @@
import static com.squareup.picasso.TestUtils.makeBitmap;
import static com.squareup.picasso.TestUtils.mockAction;
import static org.fest.assertions.api.Assertions.assertThat;
import static org.junit.Assert.fail;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import static org.mockito.MockitoAnnotations.initMocks;
import static org.robolectric.Shadows.shadowOf;

@RunWith(RobolectricTestRunner.class) //
@Config(manifest = Config.NONE,
shadows = { Shadows.ShadowVideoThumbnails.class, Shadows.ShadowImageThumbnails.class })
@RunWith(RobolectricGradleTestRunner.class)
@Config(shadows = { Shadows.ShadowVideoThumbnails.class, Shadows.ShadowImageThumbnails.class })
public class MediaStoreRequestHandlerTest {

@Mock Context context;
Expand All @@ -44,7 +46,7 @@ public class MediaStoreRequestHandlerTest {
Action action = mockAction(MEDIA_STORE_CONTENT_KEY_1, request);
MediaStoreRequestHandler requestHandler = create("video/");
Bitmap result = requestHandler.load(action.getRequest(), 0).getBitmap();
assertThat(result).isEqualTo(bitmap);
assertBitmapsEqual(result, bitmap);
}

@Test public void decodesImageThumbnailWithImageMimeType() throws Exception {
Expand All @@ -54,7 +56,7 @@ public class MediaStoreRequestHandlerTest {
Action action = mockAction(MEDIA_STORE_CONTENT_KEY_1, request);
MediaStoreRequestHandler requestHandler = create("image/png");
Bitmap result = requestHandler.load(action.getRequest(), 0).getBitmap();
assertThat(result).isEqualTo(bitmap);
assertBitmapsEqual(result, bitmap);
}

@Test public void getPicassoKindMicro() throws Exception {
Expand Down Expand Up @@ -85,4 +87,19 @@ private MediaStoreRequestHandler create(ContentResolver contentResolver) {
when(context.getContentResolver()).thenReturn(contentResolver);
return new MediaStoreRequestHandler(context);
}

private static void assertBitmapsEqual(Bitmap a, Bitmap b) {
ShadowBitmap shadowA = shadowOf(a);
ShadowBitmap shadowB = shadowOf(b);

if (shadowA.getHeight() != shadowB.getHeight()) {
fail();
}
if (shadowA.getWidth() != shadowB.getWidth()) {
fail();
}
if (shadowA.getDescription() != null ? !shadowA.getDescription().equals(shadowB.getDescription()) : shadowB.getDescription() != null) {
fail();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,14 @@
import android.net.NetworkInfo;
import android.net.Uri;
import android.support.annotation.NonNull;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import org.robolectric.RobolectricGradleTestRunner;

import static android.graphics.Bitmap.Config.ARGB_8888;
import static com.squareup.picasso.TestUtils.URI_1;
Expand All @@ -45,8 +43,7 @@
import static org.mockito.Mockito.when;
import static org.mockito.MockitoAnnotations.initMocks;

@RunWith(RobolectricTestRunner.class)
@Config(manifest = Config.NONE)
@RunWith(RobolectricGradleTestRunner.class)
public class NetworkRequestHandlerTest {

@Mock Picasso picasso;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,26 +16,24 @@
package com.squareup.picasso;

import android.net.Uri;

import okhttp3.OkHttpClient;
import okhttp3.mockwebserver.MockResponse;
import okhttp3.mockwebserver.MockWebServer;
import okhttp3.mockwebserver.RecordedRequest;
import okio.Okio;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RobolectricGradleTestRunner;
import org.robolectric.annotation.Config;

import okhttp3.OkHttpClient;
import okhttp3.mockwebserver.MockResponse;
import okhttp3.mockwebserver.MockWebServer;
import okhttp3.mockwebserver.RecordedRequest;
import okio.Okio;

import static org.fest.assertions.api.Assertions.assertThat;
import static org.junit.Assert.fail;

@RunWith(RobolectricTestRunner.class)
@Config(manifest = Config.NONE)
@RunWith(RobolectricGradleTestRunner.class)
@Config(shadows = { Shadows.ShadowNetwork.class })
public class OkHttp3DownloaderTest {
@Rule public TemporaryFolder temporaryFolder = new TemporaryFolder();
@Rule public MockWebServer server = new MockWebServer();
Expand Down
Loading

0 comments on commit 81ead3e

Please sign in to comment.