diff --git a/src/main/java/com/xtremelabs/robolectric/shadows/ShadowAlertDialog.java b/src/main/java/com/xtremelabs/robolectric/shadows/ShadowAlertDialog.java index 3164abcd890..dde2f1b168e 100644 --- a/src/main/java/com/xtremelabs/robolectric/shadows/ShadowAlertDialog.java +++ b/src/main/java/com/xtremelabs/robolectric/shadows/ShadowAlertDialog.java @@ -48,7 +48,7 @@ public static AlertDialog getLatestAlertDialog() { @Implementation public View findViewById(int viewId) { if(view == null) { - return null; + return super.findViewById(viewId); } return view.findViewById(viewId); diff --git a/src/test/java/com/xtremelabs/robolectric/shadows/AlertDialogTest.java b/src/test/java/com/xtremelabs/robolectric/shadows/AlertDialogTest.java index 3a0dca7a615..60116843a95 100644 --- a/src/test/java/com/xtremelabs/robolectric/shadows/AlertDialogTest.java +++ b/src/test/java/com/xtremelabs/robolectric/shadows/AlertDialogTest.java @@ -11,12 +11,14 @@ import org.junit.Test; import org.junit.runner.RunWith; +import static com.xtremelabs.robolectric.Robolectric.resetStaticState; import static com.xtremelabs.robolectric.Robolectric.shadowOf; import static junit.framework.Assert.assertNull; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.nullValue; import static org.hamcrest.CoreMatchers.sameInstance; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertThat; @RunWith(WithTestDefaultsRunner.class) @@ -175,7 +177,19 @@ public void shouldFindViewsByIdIfAViewIsSet() throws Exception { assertThat(dialog.findViewById(66), nullValue()); } - + + @Test + public void shouldDelegateToDialogFindViewByIdIfViewIsNull() { + AlertDialog dialog = new AlertDialog(Robolectric.application) { + }; + + assertThat(dialog.findViewById(99), nullValue()); + + dialog.setContentView(R.layout.main); + assertNotNull(dialog.findViewById(R.id.title)); + } + + private static class TestDialogOnClickListener implements DialogInterface.OnClickListener { private DialogInterface dialog; private int clickedItem;