protected FrameLayout.LayoutParams createLayoutParams () { FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(android.view.ViewGroup.LayoutParams.MATCH_PARENT, android.view.ViewGroup.LayoutParams.MATCH_PARENT); layoutParams.gravity = Gravity.CENTER; return layoutParams; }
protected FrameLayout.LayoutParams createLayoutParams () { FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(android.view.ViewGroup.LayoutParams.MATCH_PARENT, android.view.ViewGroup.LayoutParams.MATCH_PARENT); layoutParams.gravity = Gravity.CENTER; return layoutParams; }
protected FrameLayout.LayoutParams createLayoutParams () { FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(android.view.ViewGroup.LayoutParams.MATCH_PARENT, android.view.ViewGroup.LayoutParams.MATCH_PARENT); layoutParams.gravity = Gravity.CENTER; return layoutParams; }
@Test public void testDoesNotThrowOnPreDrawIfViewTreeObserverIsDead() { target.getSize(cb); int width = 1; int height = 2; LayoutParams layoutParams = new FrameLayout.LayoutParams(width, height); view.setLayoutParams(layoutParams); ViewTreeObserver vto = view.getViewTreeObserver(); view.requestLayout(); activity.visible(); assertFalse(vto.isAlive()); vto.dispatchOnPreDraw(); verify(cb).onSizeReady(eq(width), eq(height)); }
@Test public void getSize_withValidWidthAndHeight_preV19_layoutRequested_callsSizeReady() { setSdkVersionInt(18); view.setLayoutParams(new FrameLayout.LayoutParams(100, 100)); view.requestLayout(); target.getSize(cb); verify(cb).onSizeReady(100, 100); }
@Test public void getSize_withLayoutParams_emptyParams_notLaidOutOrLayoutRequested_callsSizeReady() { view.setLayoutParams(new FrameLayout.LayoutParams(0, 0)); view.setRight(100); view.setBottom(100); target.getSize(cb); verify(cb).onSizeReady(100, 100); }
@Test public void testMatchParentWidthAndHeight() { LayoutParams params = new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); view.setLayoutParams(params); target.getSize(cb); verify(cb, never()).onSizeReady(anyInt(), anyInt()); activity.visible(); view.getViewTreeObserver().dispatchOnPreDraw(); verify(cb).onSizeReady(eq(parent.getWidth()), eq(parent.getHeight())); }
@Test public void getSize_withWrapContentHeightAndValidWidth_returnsWidthAndDisplayDimen() { int width = 100; LayoutParams params = new FrameLayout.LayoutParams(width, LayoutParams.WRAP_CONTENT); view.setLayoutParams(params); setDisplayDimens(200, 100); parent.getLayoutParams().height = 200; activity.visible(); target.getSize(cb); verify(cb).onSizeReady(width, 200); }
@Test public void getSize_withBothWrapContent_usesDisplayDimens() { LayoutParams layoutParams = new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); view.setLayoutParams(layoutParams); setDisplayDimens(200, 300); activity.visible(); view.layout(0, 0, 0, 0); target.getSize(cb); verify(cb).onSizeReady(300, 300); }
@Test public void testSizeCallbackIsCalledSynchronouslyIfLayoutParamsConcreteSizeSet() { int dimens = 444; LayoutParams layoutParams = new FrameLayout.LayoutParams(dimens, dimens); view.setLayoutParams(layoutParams); view.requestLayout(); target.getSize(cb); verify(cb).onSizeReady(eq(dimens), eq(dimens)); }
@Test public void getSize_withWidthAndHeightEqualToPadding_doesNotCallSizeReady() { view.setLayoutParams(new FrameLayout.LayoutParams(100, 100)); view.requestLayout(); view.setPadding(50, 50, 50, 50); target.getSize(cb); verify(cb, never()).onSizeReady(anyInt(), anyInt()); }
@Test public void getSize_withLayoutParams_notLaidOut_doesCallSizeReady() { view.setLayoutParams(new FrameLayout.LayoutParams(10, 10)); view.setRight(100); view.setBottom(100); target.getSize(cb); verify(cb, times(1)).onSizeReady(anyInt(), anyInt()); }
@Test public void testSizeCallbackIsCalledPreDrawIfNoDimensAndNoLayoutParamsButLayoutParamsSetLater() { target.getSize(cb); int width = 689; int height = 354; LayoutParams layoutParams = new FrameLayout.LayoutParams(width, height); view.setLayoutParams(layoutParams); view.requestLayout(); view.getViewTreeObserver().dispatchOnPreDraw(); verify(cb).onSizeReady(eq(width), eq(height)); }
@Test public void getSize_withWrapContentWidthAndValidHeight_usesDisplayDimenAndValidHeight() { int height = 100; LayoutParams params = new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, height); view.setLayoutParams(params); setDisplayDimens(100, 200); activity.visible(); view.setRight(0); target.getSize(cb); verify(cb).onSizeReady(200, height); }
@Test public void testDecreasesDimensionsByViewPadding() { activity.visible(); view.setLayoutParams(new FrameLayout.LayoutParams(100, 100)); view.setPadding(25, 25, 25, 25); view.requestLayout(); target.getSize(cb); verify(cb).onSizeReady(50, 50); }
@Test public void testCallbackIsNotCalledTwiceIfPreDrawFiresTwice() { activity.visible(); target.getSize(cb); LayoutParams layoutParams = new FrameLayout.LayoutParams(1234, 4123); view.setLayoutParams(layoutParams); view.requestLayout(); view.getViewTreeObserver().dispatchOnPreDraw(); view.getViewTreeObserver().dispatchOnPreDraw(); verify(cb, times(1)).onSizeReady(anyInt(), anyInt()); }
@Test public void testDoesNotNotifyCallbackTwiceIfAddedTwice() { target.getSize(cb); target.getSize(cb); view.setLayoutParams(new FrameLayout.LayoutParams(100, 100)); activity.visible(); view.getViewTreeObserver().dispatchOnPreDraw(); verify(cb, times(1)).onSizeReady(anyInt(), anyInt()); }
protected FrameLayout.LayoutParams createLayoutParams () { FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(android.view.ViewGroup.LayoutParams.MATCH_PARENT, android.view.ViewGroup.LayoutParams.MATCH_PARENT); layoutParams.gravity = Gravity.CENTER; return layoutParams; }
protected FrameLayout.LayoutParams createLayoutParams () { FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(android.view.ViewGroup.LayoutParams.MATCH_PARENT, android.view.ViewGroup.LayoutParams.MATCH_PARENT); layoutParams.gravity = Gravity.CENTER; return layoutParams; }
protected FrameLayout.LayoutParams createLayoutParams () { FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(android.view.ViewGroup.LayoutParams.MATCH_PARENT, android.view.ViewGroup.LayoutParams.MATCH_PARENT); layoutParams.gravity = Gravity.CENTER; return layoutParams; }