10e1c92ca35030e2c173b141c41341636bbb7a258Christian Williamspackage com.xtremelabs.robolectric.shadows; 20e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams 30e1c92ca35030e2c173b141c41341636bbb7a258Christian Williamsimport android.content.Context; 40e1c92ca35030e2c173b141c41341636bbb7a258Christian Williamsimport android.view.View; 50e1c92ca35030e2c173b141c41341636bbb7a258Christian Williamsimport android.view.ViewStub; 60e1c92ca35030e2c173b141c41341636bbb7a258Christian Williamsimport android.widget.LinearLayout; 70e1c92ca35030e2c173b141c41341636bbb7a258Christian Williamsimport com.xtremelabs.robolectric.R; 80e1c92ca35030e2c173b141c41341636bbb7a258Christian Williamsimport com.xtremelabs.robolectric.Robolectric; 90e1c92ca35030e2c173b141c41341636bbb7a258Christian Williamsimport com.xtremelabs.robolectric.WithTestDefaultsRunner; 102cdde11355e7c249e83a8b7aaabae5977bbc3e49Phil Goodwinimport com.xtremelabs.robolectric.tester.android.util.TestAttributeSet; 110e1c92ca35030e2c173b141c41341636bbb7a258Christian Williamsimport org.junit.Before; 120e1c92ca35030e2c173b141c41341636bbb7a258Christian Williamsimport org.junit.Test; 130e1c92ca35030e2c173b141c41341636bbb7a258Christian Williamsimport org.junit.runner.RunWith; 140e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams 150e1c92ca35030e2c173b141c41341636bbb7a258Christian Williamsimport static org.junit.Assert.*; 160e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams 170e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams@RunWith(WithTestDefaultsRunner.class) 180e1c92ca35030e2c173b141c41341636bbb7a258Christian Williamspublic class ViewStubTest { 190e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams private Context ctxt; 200e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams 210e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams @Before public void setUp() throws Exception { 220e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams ctxt = Robolectric.application; 230e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams } 240e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams 250e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams @Test 260e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams public void inflate_shouldReplaceOriginalWithLayout() throws Exception { 270e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams ViewStub viewStub = new ViewStub(ctxt); 280e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams int stubId = 12345; 290e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams int inflatedId = 12346; 300e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams 310e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams viewStub.setId(stubId); 320e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams viewStub.setInflatedId(inflatedId); 330e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams viewStub.setLayoutResource(R.layout.media); 340e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams 350e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams LinearLayout root = new LinearLayout(ctxt); 360e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams root.addView(new View(ctxt)); 370e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams root.addView(viewStub); 380e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams root.addView(new View(ctxt)); 390e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams 400e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams View inflatedView = viewStub.inflate(); 410e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams assertNotNull(inflatedView); 420e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams assertSame(inflatedView, root.findViewById(inflatedId)); 430e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams 440e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams assertNull(root.findViewById(stubId)); 450e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams 460e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams assertEquals(1, root.indexOfChild(inflatedView)); 470e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams assertEquals(3, root.getChildCount()); 480e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams } 490e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams 500e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams @Test 510e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams public void shouldApplyAttributes() throws Exception { 520e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams ViewStub viewStub = new ViewStub(ctxt, 530e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams new TestAttributeSet() 540e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams .put("android:inflatedId", "@+id/include_id") 550e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams .put("android:layout", "@layout/media") 560e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams ); 570e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams 580e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams assertEquals(R.id.include_id, viewStub.getInflatedId()); 590e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams assertEquals(R.layout.media, viewStub.getLayoutResource()); 600e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams } 610e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams} 62