@Test public void testBuilder() throws Exception { AlertDialog.Builder builder = new AlertDialog.Builder(application); builder.setTitle("title").setMessage("message"); builder.setCancelable(true); AlertDialog alert = builder.create(); alert.show(); assertThat(alert.isShowing()).isTrue(); ShadowAlertDialog shadowAlertDialog = shadowOf(alert); assertEquals("title", shadowAlertDialog.getTitle()); assertThat(shadowAlertDialog.getMessage()).isEqualTo("message"); assertThat(shadowAlertDialog.isCancelable()).isTrue(); assertThat(shadowOf(ShadowAlertDialog.getLatestAlertDialog())).isSameAs(shadowAlertDialog); assertThat(ShadowAlertDialog.getLatestAlertDialog()).isSameAs(alert); }
/** * @return return the view set with {@link AlertDialog.Builder#setCustomTitle(View)} */ public View getCustomTitleView() { return getShadowAlertController().getCustomTitleView(); }
@Test public void shouldCallTheClickListenerOfTheCheckedAdapterInASingleChoiceDialog() throws Exception { AlertDialog.Builder builder = new AlertDialog.Builder(new ContextWrapper(context)); TestDialogOnClickListener listener = new TestDialogOnClickListener(); List<Integer> list = new ArrayList<>(); list.add(1); list.add(2); list.add(3); ArrayAdapter<Integer> arrayAdapter = new ArrayAdapter<>(context, R.layout.main, R.id.title, list); builder.setSingleChoiceItems(arrayAdapter, 1, listener); AlertDialog alert = builder.create(); alert.show(); ShadowAlertDialog shadowAlertDialog = shadowOf(alert); shadowAlertDialog.clickOnItem(0); assertThat(listener.transcript).containsExactly("clicked on 0"); listener.transcript.clear(); shadowAlertDialog.clickOnItem(1); assertThat(listener.transcript).containsExactly("clicked on 1"); }
@Test public void nullTitleAndMessageAreOkay() throws Exception { AlertDialog.Builder builder = new AlertDialog.Builder(application) // .setTitle(null) // .setMessage(null); ShadowAlertDialog shadowAlertDialog = shadowOf(builder.create()); assertThat(shadowAlertDialog.getTitle().toString()).isEqualTo(""); assertThat(shadowAlertDialog.getMessage()).isEqualTo(""); }
@Test public void testBuilderWithItemArrayViaResourceId() throws Exception { AlertDialog.Builder builder = new AlertDialog.Builder(new ContextWrapper(context)); builder.setTitle("title"); builder.setItems(R.array.alertDialogTestItems, new TestDialogOnClickListener()); AlertDialog alert = builder.create(); alert.show(); assertThat(alert.isShowing()).isTrue(); ShadowAlertDialog shadowAlertDialog = shadowOf(alert); assertThat(shadowAlertDialog.getTitle().toString()).isEqualTo("title"); assertThat(shadowAlertDialog.getItems().length).isEqualTo(2); assertThat(shadowAlertDialog.getItems()[0]).isEqualTo("Aloha"); assertThat(shadowOf(ShadowAlertDialog.getLatestAlertDialog())).isSameAs(shadowAlertDialog); assertThat(ShadowAlertDialog.getLatestAlertDialog()).isSameAs(alert); }
/** * @return the message displayed in the dialog */ @Override public CharSequence getMessage() { if (mProgressStyle == ProgressDialog.STYLE_HORIZONTAL) { return super.getMessage(); } else { TextView message = ReflectionHelpers.getField(realProgressDialog, "mMessageView"); return message.getText(); } }
@Test public void testSubmitUrl() { ((EditText) activity.findViewById(R.id.edittext_title)).setText("title"); ((EditText) activity.findViewById(R.id.edittext_content)).setText("http://example.com"); shadowOf(activity).clickMenuItem(R.id.menu_send); AlertDialog alertDialog = ShadowAlertDialog.getLatestAlertDialog(); assertNotNull(alertDialog); assertEquals(activity.getString(R.string.confirm_submit_url), shadowOf(alertDialog).getMessage()); }
private void validateAlertDialogClickListener(int viewId, int titleId, int messageId) { // setup SupportFragmentTestUtil.startFragment(fixture); View view = fixture.getView().findViewById(viewId); String expectedTitle = mainActivity.getApplicationContext().getString(titleId); String expectedMessage = FileUtils.readFile(mainActivity.getResources(), messageId); // execute view.callOnClick(); // validate AlertDialog alertDialog = ShadowAlertDialog.getLatestAlertDialog(); ShadowAlertDialog shadowAlertDialog = Shadows.shadowOf(alertDialog); assertEquals(expectedTitle, shadowAlertDialog.getTitle()); assertEquals(expectedMessage, shadowAlertDialog.getMessage()); }
@Test public void getLatestAlertDialog_shouldReturnARealAlertDialog() throws Exception { assertThat(ShadowAlertDialog.getLatestAlertDialog()).isNull(); AlertDialog dialog = new AlertDialog.Builder(application).show(); assertThat(ShadowAlertDialog.getLatestAlertDialog()).isSameAs(dialog); }
@Test public void onLinkClick_noSelection_openDialog() { ImageButton linkButton = (ImageButton) activity.findViewById(R.id.button_link); linkButton.performClick(); ShadowAlertDialog shadowDialog = (ShadowAlertDialog) Shadows.shadowOf(ShadowAlertDialog .getLatestDialog()); EditText editText = shadowDialog.getView().findViewById(R.id.edit_text); EditText editLink = shadowDialog.getView().findViewById(R.id.edit_link); assertEquals(resources.getString(R.string.add_link), shadowDialog.getTitle()); assertNotNull(editText); assertNotNull(editLink); }
@Test public void testTitle() { // setup String expected = mainActivity.getResources().getString(R.string.filter_title); ShadowAlertDialog shadowAlertDialog = shadowOf(alertDialog); // execute CharSequence actual = shadowAlertDialog.getTitle(); // validate assertEquals(expected, actual.toString()); }
@Test public void testExistingAccount() { AccountManager.get(activity).addAccountExplicitly(new Account("existing", BuildConfig.APPLICATION_ID), "password", null); drawerAccount.performClick(); AlertDialog alertDialog = ShadowAlertDialog.getLatestAlertDialog(); assertNotNull(alertDialog); assertThat(alertDialog.getListView().getAdapter()).hasCount(1); shadowOf(alertDialog).clickOnItem(0); alertDialog.getButton(DialogInterface.BUTTON_POSITIVE).performClick(); assertThat(alertDialog).isNotShowing(); assertThat(drawerAccount).hasText("existing"); assertThat(drawerLogout).isVisible(); drawerAccount.performClick(); alertDialog = ShadowAlertDialog.getLatestAlertDialog(); assertThat(alertDialog.getListView().getAdapter()).hasCount(1); }
@Test @Config(minSdk = LOLLIPOP) public void shouldSetView_withLayoutId() throws Exception { AlertDialog.Builder builder = new AlertDialog.Builder(application); builder.setView(R.layout.custom_layout); AlertDialog alert = builder.create(); View view = shadowOf(alert).getView(); assertThat(view.getClass()).isEqualTo(CustomView.class); }
@Test public void shouldSetMessageFromResourceId() throws Exception { AlertDialog.Builder builder = new AlertDialog.Builder(application); builder.setTitle("title").setMessage(R.string.hello); AlertDialog alert = builder.create(); ShadowAlertDialog shadowAlertDialog = shadowOf(alert); assertThat(shadowAlertDialog.getMessage()).isEqualTo("Hello"); }
@Test public void testSubmitText() { ((EditText) activity.findViewById(R.id.edittext_title)).setText("title"); ((EditText) activity.findViewById(R.id.edittext_content)).setText("content"); shadowOf(activity).clickMenuItem(R.id.menu_send); AlertDialog alertDialog = ShadowAlertDialog.getLatestAlertDialog(); assertNotNull(alertDialog); assertEquals(activity.getString(R.string.confirm_submit_question), shadowOf(alertDialog).getMessage()); }
@Test public void show_setsLatestAlertDialogAndLatestDialog() { AlertDialog alertDialog = new AlertDialog.Builder(context).create(); assertNull(ShadowDialog.getLatestDialog()); assertNull(ShadowAlertDialog.getLatestAlertDialog()); alertDialog.show(); assertEquals(alertDialog, ShadowDialog.getLatestDialog()); assertEquals(alertDialog, ShadowAlertDialog.getLatestAlertDialog()); }
@Test public void testCreateDirectoryDialogDisallowFolderNameModification() { final String directoryName = "mydir"; final DirectoryChooserFragment fragment = DirectoryChooserFragment.newInstance( DirectoryChooserConfig.builder() .newDirectoryName(directoryName) .initialDirectory("") .allowReadOnlyDirectory(false) .allowNewDirectoryNameModification(false) .build()); startFragment(fragment, DirectoryChooserActivityMock.class); fragment.onOptionsItemSelected(new TestMenuItem() { @Override public int getItemId() { return R.id.new_folder_item; } }); final AlertDialog dialog = (AlertDialog) ShadowDialog.getLatestDialog(); final ShadowAlertDialog shadowAlertDialog = Shadows.shadowOf(dialog); assertThat(shadowAlertDialog.getTitle()).isEqualTo("Create folder"); assertThat(ShadowDialog.getShownDialogs()).contains(dialog); final TextView msgView = (TextView) dialog.findViewById(R.id.msgText); assertThat(msgView).hasText("Create new folder with name \"mydir\"?"); final EditText editText = (EditText) dialog.findViewById(R.id.editText); assertThat(editText).isGone(); }
@Test public void shouldSetView() throws Exception { AlertDialog.Builder builder = new AlertDialog.Builder(application); EditText view = new EditText(application); builder.setView(view); AlertDialog alert = builder.create(); assertThat(shadowOf(alert).getView()).isEqualTo(view); }
/** * @return the view set with {@link AlertDialog.Builder#setView(View)} */ public View getView() { return getShadowAlertController().getView(); }
@Test public void testSetMessageAfterCreation() { AlertDialog.Builder builder = new AlertDialog.Builder(application); builder.setTitle("title").setMessage("message"); AlertDialog alert = builder.create(); ShadowAlertDialog shadowAlertDialog = shadowOf(alert); assertThat(shadowAlertDialog.getMessage()).isEqualTo("message"); alert.setMessage("new message"); assertThat(shadowAlertDialog.getMessage()).isEqualTo("new message"); alert.setMessage(null); assertThat(shadowAlertDialog.getMessage()).isEqualTo(""); }