@FixWhenMinSdkVersion(11)
  @SuppressWarnings("deprecation")
  public static void tapPreference(PreferenceActivity activity, Preference preference) {
    // IMPLEMENTATION NOTE: There's no obvious way to find out which View corresponds to the
    // preference because the Preference list in the adapter is flattened, whereas the View
    // hierarchy in the ListView is not.
    // Thus, we go for the Reflection-based invocation of Preference.performClick() which is as
    // close to the invocation stack of a normal tap as it gets.

    // Only perform the click if the preference is in the adapter to catch cases where the
    // preference is not part of the PreferenceActivity for some reason.
    ListView listView = activity.getListView();
    ListAdapter listAdapter = listView.getAdapter();
    for (int i = 0, len = listAdapter.getCount(); i < len; i++) {
      if (listAdapter.getItem(i) == preference) {
        invokePreferencePerformClickOnMainThread(preference, activity.getPreferenceScreen());
        return;
      }
    }
    throw new IllegalArgumentException("Preference " + preference + " not in list");
  }
Taps the specified preference displayed by the provided Activity.
javatests/com/google/android/apps/authenticator/testing/TestUtilities.java