@Test public void sequenceIsIncremented() { Action action = mockAction(URI_KEY_1, URI_1); Picasso picasso = mockPicasso(); BitmapHunter hunter1 = forRequest(picasso, dispatcher, cache, stats, action); BitmapHunter hunter2 = forRequest(picasso, dispatcher, cache, stats, action); assertThat(hunter2.sequence).isGreaterThan(hunter1.sequence); }
@Test public void forFileWithNoPathSegments() { Action action = mockAction("keykeykey", Uri.fromFile(new File("/"))); BitmapHunter hunter = forRequest(mockPicasso(new FileRequestHandler(context)), dispatcher, cache, stats, action); assertThat(hunter.requestHandler).isInstanceOf(FileRequestHandler.class); }
@Test public void forAndroidBitmapResourceRequest() { Resources resources = mockResources(BITMAP_RESOURCE_VALUE); when(context.getResources()).thenReturn(resources); Action action = mockAction(RESOURCE_ID_KEY_1, null, null, RESOURCE_ID_1); BitmapHunter hunter = forRequest(mockPicasso(new ResourceRequestHandler(context)), dispatcher, cache, stats, action); assertThat(hunter.requestHandler).isInstanceOf(ResourceRequestHandler.class); }
@Test public void forAndroidXmlResourceRequest() { Resources resources = mockResources(XML_RESOURCE_VALUE); when(context.getResources()).thenReturn(resources); Action action = mockAction(RESOURCE_ID_KEY_1, null, null, RESOURCE_ID_1); ResourceDrawableRequestHandler requestHandler = ResourceDrawableRequestHandler.create(context, makeLoaderWithDrawable(null)); BitmapHunter hunter = forRequest(mockPicasso(requestHandler), dispatcher, cache, stats, action); assertThat(hunter.requestHandler).isInstanceOf(ResourceDrawableRequestHandler.class); }
@Test public void forOverrideRequest() { Action action = mockAction(ASSET_KEY_1, ASSET_URI_1); RequestHandler handler = new AssetRequestHandler(context); List<RequestHandler> handlers = Collections.singletonList(handler); // Must use non-mock constructor because that is where Picasso's list of handlers is created. Picasso picasso = new Picasso(context, dispatcher, UNUSED_CALL_FACTORY, null, cache, null, NO_TRANSFORMERS, handlers, stats, ARGB_8888, false, false); BitmapHunter hunter = forRequest(picasso, dispatcher, cache, stats, action); assertThat(hunter.requestHandler).isEqualTo(handler); }
@Test public void forAndroidBitmapResourceUriWithId() { Action action = mockAction(RESOURCE_ID_URI_KEY, RESOURCE_ID_URI); BitmapHunter hunter = forRequest(mockPicasso(new ResourceRequestHandler(context)), dispatcher, cache, stats, action); assertThat(hunter.requestHandler).isInstanceOf(ResourceRequestHandler.class); }
@Test public void forAndroidBitmapResourceUriWithType() { Action action = mockAction(RESOURCE_TYPE_URI_KEY, RESOURCE_TYPE_URI); BitmapHunter hunter = forRequest(mockPicasso(new ResourceRequestHandler(context)), dispatcher, cache, stats, action); assertThat(hunter.requestHandler).isInstanceOf(ResourceRequestHandler.class); }
@Test public void forCustomRequest() { Action action = mockAction(CUSTOM_URI_KEY, CUSTOM_URI); BitmapHunter hunter = forRequest(mockPicasso(new CustomRequestHandler()), dispatcher, cache, stats, action); assertThat(hunter.requestHandler).isInstanceOf(CustomRequestHandler.class); }
@Test public void forContentProviderRequest() { Action action = mockAction(CONTENT_KEY_1, CONTENT_1_URL); BitmapHunter hunter = forRequest(mockPicasso(new ContentStreamRequestHandler(context)), dispatcher, cache, stats, action); assertThat(hunter.requestHandler).isInstanceOf(ContentStreamRequestHandler.class); }
@Test public void forContactsThumbnailPhotoRequest() { Action action = mockAction(CONTACT_PHOTO_KEY_1, CONTACT_PHOTO_URI_1); BitmapHunter hunter = forRequest(mockPicasso(new ContactsPhotoRequestHandler(context)), dispatcher, cache, stats, action); assertThat(hunter.requestHandler).isInstanceOf(ContactsPhotoRequestHandler.class); }
@Test public void forFileWithAuthorityRequest() { Action action = mockAction(FILE_KEY_1, FILE_1_URL); BitmapHunter hunter = forRequest(mockPicasso(new FileRequestHandler(context)), dispatcher, cache, stats, action); assertThat(hunter.requestHandler).isInstanceOf(FileRequestHandler.class); }
@Test public void forMediaStoreRequest() { Action action = mockAction(MEDIA_STORE_CONTENT_KEY_1, MEDIA_STORE_CONTENT_1_URL); BitmapHunter hunter = forRequest(mockPicasso(new MediaStoreRequestHandler(context)), dispatcher, cache, stats, action); assertThat(hunter.requestHandler).isInstanceOf(MediaStoreRequestHandler.class); }
@Test public void forContactsPhotoRequest() { Action action = mockAction(CONTACT_KEY_1, CONTACT_URI_1); BitmapHunter hunter = forRequest(mockPicasso(new ContactsPhotoRequestHandler(context)), dispatcher, cache, stats, action); assertThat(hunter.requestHandler).isInstanceOf(ContactsPhotoRequestHandler.class); }
@Test public void forNetworkRequest() { Action action = mockAction(URI_KEY_1, URI_1); NetworkRequestHandler requestHandler = new NetworkRequestHandler(UNUSED_CALL_FACTORY, stats); BitmapHunter hunter = forRequest(mockPicasso(requestHandler), dispatcher, cache, stats, action); assertThat(hunter.requestHandler).isSameAs(requestHandler); }
@Test public void forAssetRequest() { Action action = mockAction(ASSET_KEY_1, ASSET_URI_1); BitmapHunter hunter = forRequest(mockPicasso(new AssetRequestHandler(context)), dispatcher, cache, stats, action); assertThat(hunter.requestHandler).isInstanceOf(AssetRequestHandler.class); }
@Test public void huntUnrecognizedUri() throws Exception { Action action = mockAction(CUSTOM_URI_KEY, CUSTOM_URI); BitmapHunter hunter = forRequest(picasso, dispatcher, cache, stats, action); try { hunter.hunt(); fail("Unrecognized URI should throw exception."); } catch (IllegalStateException ignored) { } }
@Test public void getPriorityWithSingleRequest() { Action action = mockAction(URI_KEY_1, URI_1, HIGH); NetworkRequestHandler requestHandler = new NetworkRequestHandler(UNUSED_CALL_FACTORY, stats); BitmapHunter hunter = forRequest(mockPicasso(requestHandler), dispatcher, cache, stats, action); assertThat(hunter.getAction()).isEqualTo(action); assertThat(hunter.getActions()).isNull(); assertThat(hunter.getPriority()).isEqualTo(HIGH); }
@Test public void getPriorityWithNoRequests() { Action action = mockAction(URI_KEY_1, URI_1); NetworkRequestHandler requestHandler = new NetworkRequestHandler(UNUSED_CALL_FACTORY, stats); BitmapHunter hunter = forRequest(mockPicasso(requestHandler), dispatcher, cache, stats, action); hunter.detach(action); assertThat(hunter.getAction()).isNull(); assertThat(hunter.getActions()).isNull(); assertThat(hunter.getPriority()).isEqualTo(LOW); }
@Test public void huntDecodesWithRequestHandler() throws Exception { Action action = mockAction(CUSTOM_URI_KEY, CUSTOM_URI); BitmapHunter hunter = forRequest(mockPicasso(new CustomRequestHandler()), dispatcher, cache, stats, action); RequestHandler.Result result = hunter.hunt(); assertThat(result.getBitmap()).isEqualTo(bitmap); }
@Test public void getPriorityWithMultipleRequests() { Action action1 = mockAction(URI_KEY_1, URI_1, NORMAL); Action action2 = mockAction(URI_KEY_1, URI_1, HIGH); NetworkRequestHandler requestHandler = new NetworkRequestHandler(UNUSED_CALL_FACTORY, stats); BitmapHunter hunter = forRequest(mockPicasso(requestHandler), dispatcher, cache, stats, action1); hunter.attach(action2); assertThat(hunter.getAction()).isEqualTo(action1); assertThat(hunter.getActions()).containsExactly(action2); assertThat(hunter.getPriority()).isEqualTo(HIGH); }