@Test public void shouldSetTextWithIdCorrectly() throws Exception { Toast toast = Toast.makeText(context, "short toast", Toast.LENGTH_SHORT); toast.setText(R.string.hello); toast.show(); assertThat(ShadowToast.getLatestToast()).isSameAs(toast); assertThat(ShadowToast.getTextOfLatestToast()).isEqualTo("Hello"); assertThat(ShadowToast.showedToast("Hello")).isTrue(); }
@Test public void shouldSetTextCorrectly() throws Exception { Toast toast = Toast.makeText(context, "short toast", Toast.LENGTH_SHORT); toast.setText("other toast"); toast.show(); assertThat(ShadowToast.getLatestToast()).isSameAs(toast); assertThat(ShadowToast.getTextOfLatestToast()).isEqualTo("other toast"); assertThat(ShadowToast.showedToast("other toast")).isTrue(); }
@Test public void testFailed() { verify(userManager).getUser(eq("username"), userCaptor.capture()); userCaptor.getValue().onError(null); assertEquals(activity.getString(R.string.user_failed), ShadowToast.getTextOfLatestToast()); }
@Test public void shouldMakeTextCorrectly() throws Exception { Toast toast = Toast.makeText(context, "short toast", Toast.LENGTH_SHORT); assertThat(toast).isNotNull(); assertThat(toast.getDuration()).isEqualTo(Toast.LENGTH_SHORT); toast.show(); assertThat(ShadowToast.getLatestToast()).isSameAs(toast); assertThat(ShadowToast.getTextOfLatestToast()).isEqualTo("short toast"); assertThat(ShadowToast.showedToast("short toast")).isTrue(); }
@TargetApi(Build.VERSION_CODES.HONEYCOMB) @Test public void testVoteItemFailed() { viewHolder.itemView.findViewById(R.id.button_more).performClick(); PopupMenu popupMenu = ShadowPopupMenu.getLatestPopupMenu(); assertNotNull(popupMenu); shadowOf(popupMenu).getOnMenuItemClickListener() .onMenuItemClick(new RoboMenuItem(R.id.menu_contextual_vote)); verify(userServices).voteUp(any(Context.class), any(), voteCallback.capture()); voteCallback.getValue().onError(new IOException()); assertEquals(activity.getString(R.string.vote_failed), ShadowToast.getTextOfLatestToast()); }
@TargetApi(Build.VERSION_CODES.HONEYCOMB) @Test public void testVote() { viewHolder.itemView.findViewById(R.id.button_more).performClick(); PopupMenu popupMenu = ShadowPopupMenu.getLatestPopupMenu(); assertNotNull(popupMenu); shadowOf(popupMenu).getOnMenuItemClickListener() .onMenuItemClick(new RoboMenuItem(R.id.menu_contextual_vote)); verify(userServices).voteUp(any(Context.class), any(), voteCallback.capture()); voteCallback.getValue().onDone(true); assertEquals(activity.getString(R.string.voted), ShadowToast.getTextOfLatestToast()); }
@Test public void testDelayedError() { doSend(); shadowOf(activity).clickMenuItem(android.R.id.home); replyCallback.getValue().onError(new IOException()); assertEquals(activity.getString(R.string.comment_failed), ShadowToast.getTextOfLatestToast()); }
@TargetApi(Build.VERSION_CODES.HONEYCOMB) @Test public void testVoteItemFailed() { shadowAdapter.getViewHolder(0).itemView.findViewById(R.id.button_more).performClick(); PopupMenu popupMenu = ShadowPopupMenu.getLatestPopupMenu(); Assert.assertNotNull(popupMenu); shadowOf(popupMenu).getOnMenuItemClickListener() .onMenuItemClick(new RoboMenuItem(R.id.menu_contextual_vote)); verify(userServices).voteUp(any(Context.class), any(), userServicesCallback.capture()); userServicesCallback.getValue().onError(new IOException()); assertEquals(activity.getString(R.string.vote_failed), ShadowToast.getTextOfLatestToast()); }
@Test public void testVote() { Intent intent = new Intent(); intent.putExtra(ItemActivity.EXTRA_ITEM, new TestHnItem(1)); controller = Robolectric.buildActivity(ItemActivity.class, intent); controller.create().start().resume(); activity = controller.get(); activity.findViewById(R.id.vote_button).performClick(); verify(userServices).voteUp(any(Context.class), eq("1"), userServicesCallback.capture()); userServicesCallback.getValue().onDone(true); assertEquals(activity.getString(R.string.voted), ShadowToast.getTextOfLatestToast()); }
@Test public void testSendEmpty() { shadowOf(activity).clickMenuItem(R.id.menu_send); assertEquals(activity.getString(R.string.comment_required), ShadowToast.getTextOfLatestToast()); }
@Test public void testVoteError() { Intent intent = new Intent(); intent.putExtra(ItemActivity.EXTRA_ITEM, new TestHnItem(1)); controller = Robolectric.buildActivity(ItemActivity.class, intent); controller.create().start().resume(); activity = controller.get(); activity.findViewById(R.id.vote_button).performClick(); verify(userServices).voteUp(any(Context.class), eq("1"), userServicesCallback.capture()); userServicesCallback.getValue().onError(new IOException()); assertEquals(activity.getString(R.string.vote_failed), ShadowToast.getTextOfLatestToast()); }
@TargetApi(Build.VERSION_CODES.HONEYCOMB) @Test public void testVoteItem() { shadowAdapter.getViewHolder(0).itemView.findViewById(R.id.button_more).performClick(); PopupMenu popupMenu = ShadowPopupMenu.getLatestPopupMenu(); Assert.assertNotNull(popupMenu); shadowOf(popupMenu).getOnMenuItemClickListener() .onMenuItemClick(new RoboMenuItem(R.id.menu_contextual_vote)); verify(userServices).voteUp(any(Context.class), any(), userServicesCallback.capture()); userServicesCallback.getValue().onDone(true); assertEquals(activity.getString(R.string.voted), ShadowToast.getTextOfLatestToast()); }
@Test public void testSuccessful() { ((EditText) activity.findViewById(R.id.edittext_title)).setText("title"); ((EditText) activity.findViewById(R.id.edittext_body)).setText("body"); activity.findViewById(R.id.feedback_button).performClick(); verify(feedbackClient).send(eq("title"), eq("body"), callback.capture()); callback.getValue().onSent(true); assertThat(activity).isFinishing(); assertEquals(activity.getString(R.string.feedback_sent), ShadowToast.getTextOfLatestToast()); controller.pause().stop().destroy(); }
@TargetApi(Build.VERSION_CODES.HONEYCOMB) @Test public void testVoteItemFailed() { verify(itemManager).getItem(any(), eq(ItemManager.MODE_DEFAULT), itemListener.capture()); itemListener.getValue().onResponse(item); adapter.getViewHolder(0).itemView.performLongClick(); PopupMenu popupMenu = ShadowPopupMenu.getLatestPopupMenu(); assertNotNull(popupMenu); shadowOf(popupMenu).getOnMenuItemClickListener() .onMenuItemClick(new RoboMenuItem(R.id.menu_contextual_vote)); verify(userServices).voteUp(any(Context.class), eq(item.getId()), voteCallback.capture()); voteCallback.getValue().onError(new IOException()); assertEquals(activity.getString(R.string.vote_failed), ShadowToast.getTextOfLatestToast()); }
@Test public void testFailed() { ((EditText) activity.findViewById(R.id.edittext_title)).setText("title"); ((EditText) activity.findViewById(R.id.edittext_body)).setText("body"); activity.findViewById(R.id.feedback_button).performClick(); verify(feedbackClient).send(eq("title"), eq("body"), callback.capture()); callback.getValue().onSent(false); assertThat(activity).isNotFinishing(); assertEquals(activity.getString(R.string.feedback_failed), ShadowToast.getTextOfLatestToast()); controller.pause().stop().destroy(); }
@Test public void testNavButtonHint() { PreferenceManager.getDefaultSharedPreferences(activity) .edit() .putString(activity.getString(R.string.pref_story_display), activity.getString(R.string.pref_story_display_value_comments)) .putBoolean(activity.getString(R.string.pref_navigation), true) .apply(); startWithIntent(); View navButton = activity.findViewById(R.id.navigation_button); assertThat(navButton).isVisible(); ((GestureDetector.SimpleOnGestureListener) getDetector(navButton).getListener()) .onSingleTapConfirmed(mock(MotionEvent.class)); assertThat(ShadowToast.getTextOfLatestToast()) .contains(activity.getString(R.string.hint_nav_short)); }
@Test public void testSubmitDelayedError() { ((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); ShadowAlertDialog.getLatestAlertDialog().getButton(DialogInterface.BUTTON_POSITIVE) .performClick(); verify(userServices).submit(any(Context.class), eq("title"), eq("http://example.com"), eq(true), submitCallback.capture()); shadowOf(activity).clickMenuItem(android.R.id.home); ShadowAlertDialog.getLatestAlertDialog().getButton(DialogInterface.BUTTON_POSITIVE) .performClick(); submitCallback.getValue().onError(new IOException()); assertEquals(activity.getString(R.string.submit_failed), ShadowToast.getTextOfLatestToast()); }
@Test public void testSendFailed() { doSend(); assertFalse(shadowOf(activity).getOptionsMenu().findItem(R.id.menu_send).isEnabled()); assertFalse(shadowOf(activity).getOptionsMenu().findItem(R.id.menu_quote).isVisible()); assertFalse(shadowOf(activity).getOptionsMenu().findItem(R.id.menu_save_draft).isEnabled()); assertFalse(shadowOf(activity).getOptionsMenu().findItem(R.id.menu_discard_draft).isEnabled()); replyCallback.getValue().onError(new IOException()); assertTrue(shadowOf(activity).getOptionsMenu().findItem(R.id.menu_send).isEnabled()); assertTrue(shadowOf(activity).getOptionsMenu().findItem(R.id.menu_quote).isVisible()); assertTrue(shadowOf(activity).getOptionsMenu().findItem(R.id.menu_save_draft).isEnabled()); assertTrue(shadowOf(activity).getOptionsMenu().findItem(R.id.menu_discard_draft).isEnabled()); assertThat(activity).isNotFinishing(); assertEquals(activity.getString(R.string.comment_failed), ShadowToast.getTextOfLatestToast()); }
@Test public void testDelayedSuccessfulResponse() { doSend(); shadowOf(activity).clickMenuItem(android.R.id.home); assertThat(activity).isFinishing(); replyCallback.getValue().onDone(true); assertEquals(activity.getString(R.string.comment_successful), ShadowToast.getTextOfLatestToast()); }
@Test public void testParseFailed() { assertThat(shadowOf(activity).getOptionsMenu().findItem(R.id.menu_font_options)).isNotVisible(); assertThat((View) activity.findViewById(R.id.progress)).isVisible(); verify(readabilityClient).parse(eq("1"), eq("http://example.com/article.html"), callback.capture()); callback.getValue().onResponse(null); reset(readabilityClient); assertThat(ShadowToast.getTextOfLatestToast()) .contains(activity.getString(R.string.readability_failed)); WebView webView = (WebView) activity.findViewById(R.id.web_view); shadowOf(webView).getWebViewClient().onPageFinished(webView, "about:blank"); assertThat(ShadowWebView.getLastGlobalLoadedUrl()) .contains("http://example.com/article.html"); assertThat(shadowOf(activity).getOptionsMenu().findItem(R.id.menu_font_options)).isNotVisible(); controller.pause().stop().destroy(); }