@Initializer public static Picasso get() { if (instance == null) { synchronized (PicassoProvider.class) { if (instance == null) { Context autoContext = PicassoContentProvider.context; if (autoContext == null) { throw new NullPointerException("context == null"); } instance = new Picasso.Builder(autoContext).build(); } } } return instance; }
@Test public void builderWithRequestHandler() { Picasso picasso = new Picasso.Builder(RuntimeEnvironment.application) .addRequestHandler(requestHandler).build(); assertThat(picasso.getRequestHandlers()).isNotNull(); assertThat(picasso.getRequestHandlers()).isNotEmpty(); assertThat(picasso.getRequestHandlers()).contains(requestHandler); }
@Test public void evictAll() { Picasso picasso = new Picasso.Builder(RuntimeEnvironment.application).indicatorsEnabled(true).build(); picasso.cache.set("key", Bitmap.createBitmap(1, 1, ALPHA_8)); assertThat(picasso.cache.size()).isEqualTo(1); picasso.evictAll(); assertThat(picasso.cache.size()).isEqualTo(0); }
@Test public void cloneSharesStatefulInstances() { Picasso parent = defaultPicasso(RuntimeEnvironment.application, true, true); Picasso child = parent.newBuilder() .build(); assertThat(child.context).isEqualTo(parent.context); assertThat(child.callFactory).isEqualTo(parent.callFactory); assertThat(child.dispatcher.service).isEqualTo(parent.dispatcher.service); assertThat(child.cache).isEqualTo(parent.cache); assertThat(child.listener).isEqualTo(parent.listener); assertThat(child.requestTransformers).isEqualTo(parent.requestTransformers); assertThat(child.requestHandlers).hasSize(parent.requestHandlers.size()); for (int i = 0, n = child.requestHandlers.size(); i < n; i++) { assertThat(child.requestHandlers.get(i)).isInstanceOf( parent.requestHandlers.get(i).getClass()); } assertThat(child.defaultBitmapConfig).isEqualTo(parent.defaultBitmapConfig); assertThat(child.indicatorsEnabled).isEqualTo(parent.indicatorsEnabled); assertThat(child.loggingEnabled).isEqualTo(parent.loggingEnabled); assertThat(child.targetToAction).isEqualTo(parent.targetToAction); assertThat(child.targetToDeferredRequestCreator).isEqualTo( parent.targetToDeferredRequestCreator); }
static Picasso defaultPicasso(Context context, boolean hasRequestHandlers, boolean hasTransformers) { Picasso.Builder builder = new Picasso.Builder(context); if (hasRequestHandlers) { builder.addRequestHandler(NOOP_REQUEST_HANDLER); } if (hasTransformers) { builder.addRequestTransformer(NOOP_TRANSFORMER); } return builder .callFactory(UNUSED_CALL_FACTORY) .defaultBitmapConfig(DEFAULT_CONFIG) .executor(new PicassoExecutorService(new PicassoThreadFactory())) .indicatorsEnabled(true) .listener(NOOP_LISTENER) .loggingEnabled(true) .withCacheSize(DEFAULT_CACHE_SIZE) .build(); }
@Test public void builderInvalidClient() { try { new Picasso.Builder(context).client(null); fail(); } catch (NullPointerException expected) { assertThat(expected).hasMessageThat().isEqualTo("client == null"); } try { new Picasso.Builder(context).callFactory(null); fail(); } catch (NullPointerException expected) { assertThat(expected).hasMessageThat().isEqualTo("factory == null"); } }
@Test public void builderInvalidContext() { try { new Picasso.Builder((Context) null); fail("Null context should throw exception."); } catch (NullPointerException expected) { } }
@NonNull public Builder newBuilder() { return new Builder(this); }
@Test public void clonedRequestHandlersAreIndependent() { Picasso original = defaultPicasso(RuntimeEnvironment.application, false, false); original.newBuilder() .addRequestTransformer(NOOP_TRANSFORMER) .addRequestHandler(NOOP_REQUEST_HANDLER) .build(); assertThat(original.requestTransformers).hasSize(NUM_BUILTIN_TRANSFORMERS); assertThat(original.requestHandlers).hasSize(NUM_BUILTIN_HANDLERS); }
@Test public void builderInvalidCache() { try { new Picasso.Builder(context).withCacheSize(-1); fail(); } catch (IllegalArgumentException expected) { assertThat(expected).hasMessageThat().isEqualTo("maxByteCount < 0: -1"); } }
@Test public void builderWithDebugIndicators() { Picasso picasso = new Picasso.Builder(RuntimeEnvironment.application).indicatorsEnabled(true).build(); assertThat(picasso.getIndicatorsEnabled()).isTrue(); }
@Test public void builderNullRequestHandler() { try { new Picasso.Builder(context).addRequestHandler(null); fail("Null request handler should throw exception."); } catch (NullPointerException expected) { } }
@Test public void builderWithoutRequestHandler() { Picasso picasso = new Picasso.Builder(RuntimeEnvironment.application).build(); assertThat(picasso.getRequestHandlers()).isNotEmpty(); assertThat(picasso.getRequestHandlers()).doesNotContain(requestHandler); }
@Test public void builderNullRequestTransformer() { try { new Picasso.Builder(context).addRequestTransformer(null); fail("Null request transformer should throw exception."); } catch (NullPointerException expected) { } }