blob: f841109670dac6e8a1abaf56fa3d8f0e86e17cdd [file] [log] [blame]
package com.xtremelabs.robolectric.shadows;
import android.content.Context;
import android.view.View;
import android.view.ViewStub;
import android.widget.LinearLayout;
import com.xtremelabs.robolectric.R;
import com.xtremelabs.robolectric.Robolectric;
import com.xtremelabs.robolectric.WithTestDefaultsRunner;
import com.xtremelabs.robolectric.tester.android.util.TestAttributeSet;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
@RunWith(WithTestDefaultsRunner.class)
public class ViewStubTest {
private Context ctxt;
@Before public void setUp() throws Exception {
ctxt = Robolectric.application;
}
@Test
public void inflate_shouldReplaceOriginalWithLayout() throws Exception {
ViewStub viewStub = new ViewStub(ctxt);
int stubId = 12345;
int inflatedId = 12346;
viewStub.setId(stubId);
viewStub.setInflatedId(inflatedId);
viewStub.setLayoutResource(R.layout.media);
LinearLayout root = new LinearLayout(ctxt);
root.addView(new View(ctxt));
root.addView(viewStub);
root.addView(new View(ctxt));
View inflatedView = viewStub.inflate();
assertNotNull(inflatedView);
assertSame(inflatedView, root.findViewById(inflatedId));
assertNull(root.findViewById(stubId));
assertEquals(1, root.indexOfChild(inflatedView));
assertEquals(3, root.getChildCount());
}
@Test
public void shouldApplyAttributes() throws Exception {
ViewStub viewStub = new ViewStub(ctxt,
new TestAttributeSet()
.put("android:inflatedId", "@+id/include_id")
.put("android:layout", "@layout/media")
);
assertEquals(R.id.include_id, viewStub.getInflatedId());
assertEquals(R.layout.media, viewStub.getLayoutResource());
}
}