private static android.widget.EditText getEditText(Component.Builder component) { final LithoView lithoView = ComponentTestHelper.mountComponent(component); return (android.widget.EditText) lithoView.getChildAt(0); } }
@Test public void testMountedViewBounds() { final LithoView lithoView = mountComponent( mContext, new InlineLayoutSpec() { @Override protected Component onCreateLayout(ComponentContext c) { return TestViewComponent.create(c).widthPx(10).heightPx(10).build(); } }); final View mountedView = lithoView.getChildAt(0); assertThat(new Rect( mountedView.getLeft(), mountedView.getTop(), mountedView.getRight(), mountedView.getBottom())).isEqualTo(new Rect(0, 0, 10, 10)); }
@Test public void testInnerComponentHostViewTags() { final Object tag1 = new Object(); final SparseArray<Object> tags1 = new SparseArray<>(1); tags1.put(DUMMY_ID, tag1); final Object tag2 = new Object(); final SparseArray<Object> tags2 = new SparseArray<>(1); tags2.put(DUMMY_ID, tag2); final LithoView lithoView = mountComponent( mContext, new InlineLayoutSpec() { @Override protected Component onCreateLayout(ComponentContext c) { return create(c) .child( create(c) .viewTags(tags1) .child(TestDrawableComponent.create(c)) .child(TestDrawableComponent.create(c))) .child(TestDrawableComponent.create(c)) .child(TestDrawableComponent.create(c).viewTags(tags2)) .build(); } }); final View innerHost1 = lithoView.getChildAt(0); final View innerHost2 = lithoView.getChildAt(1); assertThat(innerHost1.getTag(DUMMY_ID)).isEqualTo(tag1); assertThat(innerHost2.getTag(DUMMY_ID)).isEqualTo(tag2); }
10); View view1 = lithoView.getChildAt(0); View view2 = lithoView.getChildAt(1); 10); view1 = lithoView.getChildAt(0); view2 = lithoView.getChildAt(1);
@Test public void testInnerComponentHostBounds() { final LithoView lithoView = mountComponent( mContext, new InlineLayoutSpec() { @Override protected Component onCreateLayout(ComponentContext c) { return Column.create(c) .child( Column.create(c) .widthPx(20) .heightPx(20) .wrapInView() .child(create(c).widthPx(10).heightPx(10))) .build(); } }); final ComponentHost host = (ComponentHost) lithoView.getChildAt(0); assertThat(host.getDrawables().get(0).getBounds()).isEqualTo(new Rect(0, 0, 10, 10)); assertThat(new Rect( host.getLeft(), host.getTop(), host.getRight(), host.getBottom())).isEqualTo(new Rect(0, 0, 20, 20)); }
@Test public void testInnerComponentHostClickable() { final LithoView lithoView = mountComponent( mContext, new InlineLayoutSpec() { @Override protected Component onCreateLayout(ComponentContext c) { return create(c) .child( create(c) .clickHandler(c.newEventHandler(1)) .child(TestViewComponent.create(c))) .build(); } }); assertThat(lithoView.getChildCount()).isEqualTo(1); assertThat(lithoView.isClickable()).isFalse(); ComponentHost innerHost = (ComponentHost) lithoView.getChildAt(0); assertThat(innerHost.isClickable()).isTrue(); }
@Test public void testInnerComponentHostClickableWithLongClickHandler() { final LithoView lithoView = mountComponent( mContext, new InlineLayoutSpec() { @Override protected Component onCreateLayout(ComponentContext c) { return create(c) .child( create(c) .longClickHandler(c.newEventHandler(1)) .child(TestViewComponent.create(c))) .build(); } }); assertThat(lithoView.getChildCount()).isEqualTo(1); assertThat(lithoView.isClickable()).isFalse(); ComponentHost innerHost = (ComponentHost) lithoView.getChildAt(0); assertThat(innerHost.isLongClickable()).isTrue(); }
@Test public void testInnerComponentHostFocusable() { final LithoView lithoView = mountComponent( mContext, new InlineLayoutSpec() { @Override protected Component onCreateLayout(ComponentContext c) { return create(c) .child(create(c).focusable(true).child(TestViewComponent.create(c))) .build(); } }); assertThat(lithoView.getChildCount()).isEqualTo(1); // TODO(T16959291): The default varies between internal and external test runs, which indicates // that our Robolectric setup is not actually identical. Until we can figure out why, // we will compare against the dynamic default instead of asserting false. assertThat(lithoView.isFocusable()).isEqualTo(mFocusableDefault); ComponentHost innerHost = (ComponentHost) lithoView.getChildAt(0); assertThat(innerHost.isFocusable()).isTrue(); }
@Test public void testEditTextWithText() { final ComponentContext c = mComponentsRule.getContext(); final LithoView lithoView = ComponentTestHelper.mountComponent( EditText.create(c) .textChangedEventHandler(null) .textSizePx(10) .text(TEXT)); final android.widget.EditText editText = (android.widget.EditText) lithoView.getChildAt(0); assertThat(editText.getText().toString()).isEqualTo(TEXT); assertThat(editText.getTextSize()).isEqualTo(10); } }
10); final ComponentHost host = (ComponentHost) lithoView.getChildAt(0); final Drawable drawable1 = host.getDrawables().get(0); final Drawable drawable2 = host.getDrawables().get(1);
/** * Tests to make sure the layout direction set on the component tree is correctly propagated to * mounted views. */ @Test public void testLayoutDirectionPropagation() { final TestComponent child = create(mContext) .build(); LithoView lithoView = mountComponent( mContext, new InlineLayoutSpec() { @Override protected Component onCreateLayout(ComponentContext c) { return Column.create(c).layoutDirection(RTL).child(child).build(); } }); final View childView = lithoView.getChildAt(0); assertThat(childView.getLayoutDirection()).isEqualTo(LAYOUT_DIRECTION_RTL); } }
10); final ComponentHost host = (ComponentHost) lithoView.getChildAt(0); final Drawable drawable1 = host.getDrawables().get(0); final Drawable drawable2 = host.getDrawables().get(1);
final View child = lithoView.getChildAt(0); Drawable background = child.getBackground();
200); final ComponentHost host = (ComponentHost) lithoView.getChildAt(0); final ComponentHost nestedHost = (ComponentHost) host.getChildAt(0);
lithoView, componentTree, makeMeasureSpec(400, EXACTLY), makeMeasureSpec(400, EXACTLY)); final View oldView = lithoView.getChildAt(0); View newView = lithoView.getChildAt(0);
@Test public void testSettingOneSidePaddingClearsTheRest() { final ComponentContext c = new ComponentContext( new ContextThemeWrapper( RuntimeEnvironment.application, R.style.TestTheme_BackgroundWithPadding)); final LithoView lithoView = mountComponent(c, TestViewComponent.create(c).paddingPx(LEFT, 12).build()); final View child = lithoView.getChildAt(0); assertThat(child.getPaddingLeft()).isEqualTo(12); assertThat(child.getPaddingTop()).isZero(); assertThat(child.getPaddingRight()).isZero(); assertThat(child.getPaddingBottom()).isZero(); }
lithoView, componentTree, makeMeasureSpec(400, EXACTLY), makeMeasureSpec(400, EXACTLY)); final View oldView = lithoView.getChildAt(0); final View newView = lithoView.getChildAt(0);
lithoView, componentTree, makeMeasureSpec(400, EXACTLY), makeMeasureSpec(400, EXACTLY)); final View oldView = lithoView.getChildAt(0); final View newView = lithoView.getChildAt(0);
@Test public void testSettingZeroPaddingOverridesDefaultBackgroundPadding() { final ComponentContext c = new ComponentContext( new ContextThemeWrapper( RuntimeEnvironment.application, R.style.TestTheme_BackgroundWithPadding)); final LithoView lithoView = mountComponent(c, TestViewComponent.create(c).paddingPx(ALL, 0).build()); final View child = lithoView.getChildAt(0); assertThat(child.getPaddingLeft()).isZero(); assertThat(child.getPaddingTop()).isZero(); assertThat(child.getPaddingRight()).isZero(); assertThat(child.getPaddingBottom()).isZero(); }