@Test public void testCreate() { assertNull(shadowOf(activity).getOptionsMenu().findItem(R.id.menu_share)); }
@Test public void testCreateLand() { assertNotNull(shadowOf(activity).getOptionsMenu().findItem(R.id.menu_share)); assertFalse(shadowOf(activity).getOptionsMenu().findItem(R.id.menu_share).isVisible()); assertNotNull(shadowOf(activity).getOptionsMenu().findItem(R.id.menu_external)); assertFalse(shadowOf(activity).getOptionsMenu().findItem(R.id.menu_external).isVisible()); assertFalse(((ShadowFloatingActionButton) Shadow.extract(activity.findViewById(R.id.reply_button))).isVisible()); }
@Test public void testFilter() { assertTrue(shadowOf(activity).getOptionsMenu().findItem(R.id.menu_search).isVisible()); Intent intent = new Intent(); intent.putExtra(SearchManager.QUERY, "blah"); controller.newIntent(intent); verify(favoriteManager).attach(any(LocalItemManager.Observer.class), eq("blah")); intent = new Intent(); intent.putExtra(SearchManager.QUERY, "ask"); controller.newIntent(intent); verify(favoriteManager).attach(any(LocalItemManager.Observer.class), eq("ask")); }
@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 testSort() { Intent intent = new Intent(); intent.putExtra(SearchManager.QUERY, "filter"); controller = Robolectric.buildActivity(SearchActivity.class, intent); controller.create().postCreate(null).start().resume().visible(); activity = controller.get(); assertTrue(AlgoliaClient.sSortByTime); activity.onOptionsItemSelected(shadowOf(activity).getOptionsMenu() .findItem(R.id.menu_sort_recent)); // should not trigger search activity.onOptionsItemSelected(shadowOf(activity).getOptionsMenu() .findItem(R.id.menu_sort_popular)); // should trigger search assertFalse(AlgoliaClient.sSortByTime); verify(itemManager, times(2)).getStories(any(), eq(ItemManager.MODE_DEFAULT)); }
@Test public void testReset() { PreferenceManager.getDefaultSharedPreferences(activity) .edit() .putBoolean(activity.getString(R.string.pref_color_code), false) .apply(); assertFalse(Preferences.colorCodeEnabled(activity)); assertNotNull(shadowOf(activity).getOptionsMenu().findItem(R.id.menu_reset)); shadowOf(activity).clickMenuItem(R.id.menu_reset); AlertDialog alertDialog = ShadowAlertDialog.getLatestAlertDialog(); assertNotNull(alertDialog); alertDialog.getButton(DialogInterface.BUTTON_POSITIVE).performClick(); assertTrue(Preferences.colorCodeEnabled(activity)); }
@Test public void testClearRecentSearches() { ShadowSearchRecentSuggestions.historyClearCount = 0; assertNotNull(shadowOf(activity).getOptionsMenu().findItem(R.id.menu_clear_recent)); shadowOf(activity).clickMenuItem(R.id.menu_clear_recent); AlertDialog alertDialog = ShadowAlertDialog.getLatestAlertDialog(); assertNotNull(alertDialog); alertDialog.getButton(DialogInterface.BUTTON_POSITIVE).performClick(); assertEquals(1, ShadowSearchRecentSuggestions.historyClearCount); }
@Override public void supportInvalidateOptionsMenu() { Menu optionsMenu = shadowOf(this).getOptionsMenu(); if (optionsMenu != null) { onCreateOptionsMenu(optionsMenu); onPrepareOptionsMenu(optionsMenu); } } }
@Test public void testOptionsMenuClear() { assertTrue(shadowOf(activity).getOptionsMenu().findItem(R.id.menu_clear).isVisible()); shadowOf(activity).clickMenuItem(R.id.menu_clear); AlertDialog dialog = ShadowAlertDialog.getLatestAlertDialog(); dialog.getButton(DialogInterface.BUTTON_NEGATIVE).performClick(); assertEquals(2, adapter.getItemCount()); shadowOf(activity).clickMenuItem(R.id.menu_clear); dialog = ShadowAlertDialog.getLatestAlertDialog(); dialog.getButton(DialogInterface.BUTTON_POSITIVE).performClick(); verify(favoriteManager).clear(any(Context.class), any()); when(favoriteManager.getSize()).thenReturn(0); observerCaptor.getValue().onChanged(); assertEquals(0, adapter.getItemCount()); }
@Test public void testTogglePreferenceChange() { Bundle args = new Bundle(); args.putString(ListFragment.EXTRA_ITEM_MANAGER, HackerNewsClient.class.getName()); args.putString(ListFragment.EXTRA_FILTER, ItemManager.TOP_FETCH_MODE); activity.getSupportFragmentManager() .beginTransaction() .add(android.R.id.list, Fragment.instantiate(activity, ListFragment.class.getName(), args), ListFragment.class.getName()) .commit(); assertCompactView(); controller.pause(); PreferenceManager.getDefaultSharedPreferences(activity) .edit() .putBoolean(activity.getString(R.string.pref_list_item_view), true) .apply(); controller.resume().postResume(); activity.getSupportFragmentManager().findFragmentByTag(ListFragment.class.getName()) .onPrepareOptionsMenu(shadowOf(activity).getOptionsMenu()); assertCardView(); controller.pause().stop().destroy(); }
@Test public void testQuote() { assertTrue(shadowOf(activity).getOptionsMenu().findItem(R.id.menu_quote).isVisible()); ((EditText) activity.findViewById(R.id.edittext_body)).setText("Reply"); shadowOf(activity).clickMenuItem(R.id.menu_quote); assertThat((EditText) activity.findViewById(R.id.edittext_body)) .hasTextString("> Paragraph 1\n\n> Paragraph 2\n\nReply"); }
@Test public void canGetOptionsMenu() throws Exception { Activity activity = buildActivity(OptionsMenuActivity.class).create().visible().get(); Menu optionsMenu = shadowOf(activity).getOptionsMenu(); assertThat(optionsMenu).isNotNull(); assertThat(optionsMenu.getItem(0).getTitle()).isEqualTo("Algebraic!"); }
@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(); }
@Test public void testEmpty() { assertThat((View) activity.findViewById(R.id.empty)).isVisible(); activity.findViewById(R.id.header_card_view).performLongClick(); assertThat((View) activity.findViewById(R.id.header_card_view) .findViewById(R.id.bookmarked)).isVisible(); activity.findViewById(R.id.header_card_view).performLongClick(); assertThat((View) activity.findViewById(R.id.header_card_view) .findViewById(R.id.bookmarked)).isNotVisible(); assertNull(shadowOf(activity).getOptionsMenu().findItem(R.id.menu_clear)); assertThat(shadowOf(activity).getOptionsMenu().findItem(R.id.menu_search)).isNotVisible(); }
@Test public void testEmptyQuote() { Intent intent = new Intent(); intent.putExtra(ComposeActivity.EXTRA_PARENT_ID, "1"); controller = Robolectric.buildActivity(ComposeActivity.class, intent) .create().start().resume().visible(); activity = controller.get(); assertThat((View) activity.findViewById(R.id.quote)).isNotVisible(); assertFalse(shadowOf(activity).getOptionsMenu().findItem(R.id.menu_quote).isVisible()); }
@Test public void testRotate() { Bundle savedState = new Bundle(); activity.onSaveInstanceState(savedState); RuntimeEnvironment.setQualifiers("w820dp-land"); controller = Robolectric.buildActivity(TestListActivity.class); activity = controller.create(savedState).postCreate(null).start().resume().visible().get(); assertNotNull(shadowOf(activity).getOptionsMenu().findItem(R.id.menu_share)); }
@Test public void onCreateShouldInflateLayout() throws Exception { final MainActivity activity = Robolectric.setupActivity(MainActivity.class); final Menu menu = shadowOf(activity).getOptionsMenu(); assertTrue(menu != null); // The settings and add button should be present assertEquals(menu.size(), 2); assertEquals("About", menu.findItem(R.id.action_about).getTitle().toString()); assertEquals("Settings", menu.findItem(R.id.action_settings).getTitle().toString()); }
@Test public void onCreateShouldInflateMenu() throws Exception { final Activity activity = Robolectric.setupActivity(BudgetActivity.class); final Menu menu = shadowOf(activity).getOptionsMenu(); assertTrue(menu != null); // The settings and add button should be present assertEquals(menu.size(), 2); assertEquals("Add", menu.findItem(R.id.action_add).getTitle().toString()); assertEquals("Select Dates", menu.findItem(R.id.action_calendar).getTitle().toString()); }
@Test public void startAsAddCheckActionBar() throws Exception { ActivityController activityController = setupActivity("budget", null, false, false); Activity activity = (Activity)activityController.get(); final Menu menu = shadowOf(activity).getOptionsMenu(); assertTrue(menu != null); assertEquals(menu.size(), 1); MenuItem item = menu.findItem(R.id.action_save); assertNotNull(item); assertEquals("Save", item.getTitle().toString()); }
@Test public void startAsViewCheckActionBar() throws Exception { ActivityController activityController = setupActivity("budget", "", true, false); Activity activity = (Activity)activityController.get(); final Menu menu = shadowOf(activity).getOptionsMenu(); assertTrue(menu != null); assertEquals(menu.size(), 1); MenuItem item = menu.findItem(R.id.action_edit); assertNotNull(item); assertEquals("Edit", item.getTitle().toString()); }