@NonNull Paint paint) { drawable.initWithKnownDimensions(canvas.getWidth(), paint.getTextSize());
@Test public void previous_result_detached() { // when result is present it will be detached (setCallback(null)) final AsyncDrawable drawable = new AsyncDrawable("", mock(AsyncDrawable.Loader.class), imageSizeResolver, null); drawable.setCallback2(mock(Drawable.Callback.class)); drawable.initWithKnownDimensions(100, 1); final Drawable result1 = new AbstractDrawable(); final Drawable result2 = new AbstractDrawable(); drawable.setResult(result1); assertNotNull(result1.getCallback()); drawable.setResult(result2); assertNull(result1.getCallback()); assertNotNull(result2.getCallback()); }
@Test public void no_dimensions_await() { // when drawable have no known dimensions yet, it will await for them final AsyncDrawable drawable = new AsyncDrawable("", mock(AsyncDrawable.Loader.class), imageSizeResolver, new ImageSize(new ImageSize.Dimension(100.F, "%"), null)); final Drawable result = new AbstractDrawable(); result.setBounds(0, 0, 0, 0); assertFalse(drawable.hasResult()); drawable.setResult(result); assertTrue(drawable.hasResult()); assertTrue(result.getBounds().isEmpty()); drawable.initWithKnownDimensions(100, 1); assertEquals( new Rect(0, 0, 100, 0), result.getBounds() ); }