Fix robolectric tests

Fix: 31751980
Test: make RunSettingsRoboTests
Change-Id: Id787665d7cb44ee8a0c6ff52927394de1c3e9efc
This commit is contained in:
Fan Zhang
2016-09-27 08:41:18 -07:00
parent 0ed6ef999f
commit 081b549768
2 changed files with 22 additions and 49 deletions

View File

@@ -23,7 +23,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import org.robolectric.util.FragmentTestUtil;
import org.robolectric.shadows.ShadowApplication;
import static com.google.common.truth.Truth.assertThat;
@@ -58,7 +58,7 @@ public class InstrumentedDialogFragmentTest {
// Precondition: no metrics feature
assertThat(fragment.getMetricsFeatureProvider()).isNull();
FragmentTestUtil.startFragment(fragment);
fragment.onAttach(ShadowApplication.getInstance().getApplicationContext());
// Verify: has metrics feature
assertThat(fragment.getMetricsFeatureProvider()).isNotNull();

View File

@@ -16,47 +16,46 @@
package com.android.settings.widget;
import android.annotation.Nullable;
import android.app.Activity;
import android.os.Bundle;
import android.os.Parcelable;
import android.support.v4.view.PagerAdapter;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
import com.android.settings.TestConfig;
import com.android.settings.shadow.ShadowTextUtils;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import static com.google.common.truth.Truth.assertThat;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowApplication;
import java.util.Locale;
import android.support.v4.view.PagerAdapter;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import org.robolectric.Robolectric;
import static com.google.common.truth.Truth.assertThat;
@RunWith(RobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class RtlCompatibleViewPagerTest {
private ViewPagerTestActivity mTestActivity;
private RtlCompatibleViewPager mTestViewPager;
private Locale mLocaleEn;
private Locale mLocaleHe;
private RtlCompatibleViewPager mViewPager;
@Before
public void setUp() {
mTestActivity = Robolectric.setupActivity(ViewPagerTestActivity.class);
mTestViewPager = mTestActivity.getViewPager();
mViewPager = new RtlCompatibleViewPager(
ShadowApplication.getInstance().getApplicationContext());
mViewPager.setAdapter(new ViewPagerAdapter());
mLocaleEn = new Locale("en");
mLocaleHe = new Locale("he");
}
@Test
@Config(shadows = {ShadowTextUtils.class})
public void testRtlCompatible() {
public void testGetCurrentItem_shouldMaintainIndexDuringLocaleChange() {
testRtlCompatibleInner(0);
testRtlCompatibleInner(1);
}
@@ -64,41 +63,20 @@ public class RtlCompatibleViewPagerTest {
private void testRtlCompatibleInner(int currentItem) {
// Set up the environment
Locale.setDefault(mLocaleEn);
mViewPager.setCurrentItem(currentItem);
assertThat(TextUtils.getLayoutDirectionFromLocale(Locale.getDefault()))
.isEqualTo(View.LAYOUT_DIRECTION_LTR);
mTestViewPager.setCurrentItem(currentItem);
assertThat(mTestViewPager.getCurrentItem()).isEqualTo(currentItem);
assertThat(mViewPager.getCurrentItem()).isEqualTo(currentItem);
// Simulate to change the language to RTL
Parcelable savedInstance = mTestViewPager.onSaveInstanceState();
Parcelable savedInstance = mViewPager.onSaveInstanceState();
Locale.setDefault(mLocaleHe);
mViewPager.onRestoreInstanceState(savedInstance);
assertThat(TextUtils.getLayoutDirectionFromLocale(Locale.getDefault()))
.isEqualTo(View.LAYOUT_DIRECTION_RTL);
mTestViewPager.onRestoreInstanceState(savedInstance);
assertThat(mTestViewPager.getCurrentItem()).isEqualTo(currentItem);
}
/**
* Test activity that contains RTL viewpager
*/
private static class ViewPagerTestActivity extends Activity {
private RtlCompatibleViewPager mViewPager;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mViewPager = new RtlCompatibleViewPager(ViewPagerTestActivity.this);
mViewPager.setAdapter(new ViewPagerAdapter());
setContentView(mViewPager);
}
public RtlCompatibleViewPager getViewPager() {
return mViewPager;
}
assertThat(mViewPager.getCurrentItem()).isEqualTo(currentItem);
}
/**
@@ -121,11 +99,6 @@ public class RtlCompatibleViewPagerTest {
return view == object;
}
@Override
public void destroyItem(ViewGroup collection, int position, Object view) {
collection.removeView((View) view);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
return null;