Merge "Fix robolectric tests"
This commit is contained in:
committed by
Android (Google) Code Review
commit
eaec1622f5
@@ -23,7 +23,7 @@ import org.junit.Test;
|
|||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.robolectric.RobolectricTestRunner;
|
import org.robolectric.RobolectricTestRunner;
|
||||||
import org.robolectric.annotation.Config;
|
import org.robolectric.annotation.Config;
|
||||||
import org.robolectric.util.FragmentTestUtil;
|
import org.robolectric.shadows.ShadowApplication;
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
@@ -58,7 +58,7 @@ public class InstrumentedDialogFragmentTest {
|
|||||||
// Precondition: no metrics feature
|
// Precondition: no metrics feature
|
||||||
assertThat(fragment.getMetricsFeatureProvider()).isNull();
|
assertThat(fragment.getMetricsFeatureProvider()).isNull();
|
||||||
|
|
||||||
FragmentTestUtil.startFragment(fragment);
|
fragment.onAttach(ShadowApplication.getInstance().getApplicationContext());
|
||||||
|
|
||||||
// Verify: has metrics feature
|
// Verify: has metrics feature
|
||||||
assertThat(fragment.getMetricsFeatureProvider()).isNotNull();
|
assertThat(fragment.getMetricsFeatureProvider()).isNotNull();
|
||||||
|
@@ -16,47 +16,46 @@
|
|||||||
|
|
||||||
package com.android.settings.widget;
|
package com.android.settings.widget;
|
||||||
|
|
||||||
import android.annotation.Nullable;
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.os.Parcelable;
|
import android.os.Parcelable;
|
||||||
|
import android.support.v4.view.PagerAdapter;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
import com.android.settings.TestConfig;
|
import com.android.settings.TestConfig;
|
||||||
import com.android.settings.shadow.ShadowTextUtils;
|
import com.android.settings.shadow.ShadowTextUtils;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
import org.robolectric.RobolectricTestRunner;
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import org.robolectric.annotation.Config;
|
||||||
|
import org.robolectric.shadows.ShadowApplication;
|
||||||
|
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
import android.support.v4.view.PagerAdapter;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
import org.robolectric.RobolectricTestRunner;
|
|
||||||
import org.robolectric.annotation.Config;
|
|
||||||
import org.robolectric.Robolectric;
|
|
||||||
|
|
||||||
@RunWith(RobolectricTestRunner.class)
|
@RunWith(RobolectricTestRunner.class)
|
||||||
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
|
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
|
||||||
public class RtlCompatibleViewPagerTest {
|
public class RtlCompatibleViewPagerTest {
|
||||||
private ViewPagerTestActivity mTestActivity;
|
|
||||||
private RtlCompatibleViewPager mTestViewPager;
|
|
||||||
private Locale mLocaleEn;
|
private Locale mLocaleEn;
|
||||||
private Locale mLocaleHe;
|
private Locale mLocaleHe;
|
||||||
|
private RtlCompatibleViewPager mViewPager;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
mTestActivity = Robolectric.setupActivity(ViewPagerTestActivity.class);
|
mViewPager = new RtlCompatibleViewPager(
|
||||||
mTestViewPager = mTestActivity.getViewPager();
|
ShadowApplication.getInstance().getApplicationContext());
|
||||||
|
mViewPager.setAdapter(new ViewPagerAdapter());
|
||||||
mLocaleEn = new Locale("en");
|
mLocaleEn = new Locale("en");
|
||||||
mLocaleHe = new Locale("he");
|
mLocaleHe = new Locale("he");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@Config(shadows = {ShadowTextUtils.class})
|
@Config(shadows = {ShadowTextUtils.class})
|
||||||
public void testRtlCompatible() {
|
public void testGetCurrentItem_shouldMaintainIndexDuringLocaleChange() {
|
||||||
testRtlCompatibleInner(0);
|
testRtlCompatibleInner(0);
|
||||||
testRtlCompatibleInner(1);
|
testRtlCompatibleInner(1);
|
||||||
}
|
}
|
||||||
@@ -64,41 +63,20 @@ public class RtlCompatibleViewPagerTest {
|
|||||||
private void testRtlCompatibleInner(int currentItem) {
|
private void testRtlCompatibleInner(int currentItem) {
|
||||||
// Set up the environment
|
// Set up the environment
|
||||||
Locale.setDefault(mLocaleEn);
|
Locale.setDefault(mLocaleEn);
|
||||||
|
mViewPager.setCurrentItem(currentItem);
|
||||||
|
|
||||||
assertThat(TextUtils.getLayoutDirectionFromLocale(Locale.getDefault()))
|
assertThat(TextUtils.getLayoutDirectionFromLocale(Locale.getDefault()))
|
||||||
.isEqualTo(View.LAYOUT_DIRECTION_LTR);
|
.isEqualTo(View.LAYOUT_DIRECTION_LTR);
|
||||||
mTestViewPager.setCurrentItem(currentItem);
|
assertThat(mViewPager.getCurrentItem()).isEqualTo(currentItem);
|
||||||
assertThat(mTestViewPager.getCurrentItem()).isEqualTo(currentItem);
|
|
||||||
|
|
||||||
// Simulate to change the language to RTL
|
// Simulate to change the language to RTL
|
||||||
Parcelable savedInstance = mTestViewPager.onSaveInstanceState();
|
Parcelable savedInstance = mViewPager.onSaveInstanceState();
|
||||||
Locale.setDefault(mLocaleHe);
|
Locale.setDefault(mLocaleHe);
|
||||||
|
mViewPager.onRestoreInstanceState(savedInstance);
|
||||||
|
|
||||||
assertThat(TextUtils.getLayoutDirectionFromLocale(Locale.getDefault()))
|
assertThat(TextUtils.getLayoutDirectionFromLocale(Locale.getDefault()))
|
||||||
.isEqualTo(View.LAYOUT_DIRECTION_RTL);
|
.isEqualTo(View.LAYOUT_DIRECTION_RTL);
|
||||||
mTestViewPager.onRestoreInstanceState(savedInstance);
|
assertThat(mViewPager.getCurrentItem()).isEqualTo(currentItem);
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -121,11 +99,6 @@ public class RtlCompatibleViewPagerTest {
|
|||||||
return view == object;
|
return view == object;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void destroyItem(ViewGroup collection, int position, Object view) {
|
|
||||||
collection.removeView((View) view);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object instantiateItem(ViewGroup container, int position) {
|
public Object instantiateItem(ViewGroup container, int position) {
|
||||||
return null;
|
return null;
|
||||||
|
Reference in New Issue
Block a user