From e9d0590b2437f7ab82ecd23d15999ffa93c9bb9a Mon Sep 17 00:00:00 2001 From: Peter_Liang Date: Tue, 22 Jun 2021 19:58:39 +0800 Subject: [PATCH] Fixing the SettingsRoboTest failure of the AnimatedImagePreference. Root cause: Seem to need lottie raw resource when inflating the LottieAnimationView. Action: Use the mock for LottieAnimationView to avoid init when inflating the layout. Bug: 191251677 Test: make RunSettingsRoboTests ROBOTEST_FILTER=AnimatedImagePreferenceTest Change-Id: I0197442e5a65b40142b128f28a1c6bcd7cd3a0bd --- .../accessibility/AnimatedImagePreferenceTest.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/tests/robotests/src/com/android/settings/accessibility/AnimatedImagePreferenceTest.java b/tests/robotests/src/com/android/settings/accessibility/AnimatedImagePreferenceTest.java index 4bce0bb264b..c7e5b13be83 100644 --- a/tests/robotests/src/com/android/settings/accessibility/AnimatedImagePreferenceTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/AnimatedImagePreferenceTest.java @@ -32,8 +32,7 @@ import android.graphics.drawable.AnimatedImageDrawable; import android.graphics.drawable.AnimatedVectorDrawable; import android.graphics.drawable.AnimationDrawable; import android.net.Uri; -import android.view.LayoutInflater; -import android.view.View; +import android.view.ViewGroup; import android.widget.ImageView; import androidx.preference.PreferenceViewHolder; @@ -45,6 +44,7 @@ import com.airbnb.lottie.LottieAnimationView; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.mockito.Spy; import org.robolectric.RobolectricTestRunner; @@ -57,10 +57,12 @@ import java.io.InputStream; public class AnimatedImagePreferenceTest { private final Context mContext = RuntimeEnvironment.application; private Uri mImageUri; - private View mRootView; private PreferenceViewHolder mViewHolder; private AnimatedImagePreference mAnimatedImagePreference; + @Mock + private ViewGroup mRootView; + @Spy private ImageView mImageView; @@ -68,9 +70,8 @@ public class AnimatedImagePreferenceTest { public void init() { MockitoAnnotations.initMocks(this); - final LayoutInflater inflater = LayoutInflater.from(mContext); - mRootView = spy(inflater.inflate(R.layout.preference_animated_image, /* root= */ null)); mViewHolder = spy(PreferenceViewHolder.createInstanceForTests(mRootView)); + doReturn(new LottieAnimationView(mContext)).when(mRootView).findViewById(R.id.lottie_view); mImageView = spy(new ImageView(mContext)); mAnimatedImagePreference = new AnimatedImagePreference(mContext);