Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eaec1622 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix robolectric tests"

parents e9a91a9a 081b5497
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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();
+20 −47
Original line number Diff line number Diff line
@@ -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;