TestUtilities.java 文件源码

java
阅读 37 收藏 0 点赞 0 评论 0

项目:google-authenticator-android-pebble 作者:
/**
 * Taps the specified preference displayed by the provided Activity.
 */
public static void tapPreference(InstrumentationTestCase instrumentationTestCase,
    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(
          instrumentationTestCase.getInstrumentation(),
          preference,
          activity.getPreferenceScreen());
      return;
    }
  }
  throw new IllegalArgumentException("Preference " + preference + " not in list");
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号