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

Commit 44f940c7 authored by Michael Mikhail's avatar Michael Mikhail Committed by Automerger Merge Worker
Browse files

Merge "Fix failing test in MediaControlPanel" into udc-dev am: 161bad57 am: 2388ff4a

parents 8cb19433 2388ff4a
Loading
Loading
Loading
Loading
+78 −10
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import android.content.Context
import android.content.Intent
import android.content.pm.ApplicationInfo
import android.content.pm.PackageManager
import android.content.res.Configuration
import android.graphics.Bitmap
import android.graphics.Canvas
import android.graphics.Color
@@ -42,6 +43,7 @@ import android.os.Bundle
import android.provider.Settings.ACTION_MEDIA_CONTROLS_SETTINGS
import android.testing.AndroidTestingRunner
import android.testing.TestableLooper
import android.util.TypedValue
import android.view.View
import android.view.ViewGroup
import android.view.animation.Interpolator
@@ -101,7 +103,6 @@ import dagger.Lazy
import junit.framework.Assert.assertTrue
import org.junit.After
import org.junit.Before
import org.junit.Ignore
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
@@ -2200,8 +2201,7 @@ public class MediaControlPanelTest : SysuiTestCase() {
    }

    @Test
    @Ignore("b/276920368")
    fun bindRecommendation_carouselNotFitThreeRecs() {
    fun bindRecommendation_carouselNotFitThreeRecs_OrientationPortrait() {
        useRealConstraintSets()
        setupUpdatedRecommendationViewHolder()
        val albumArt = getColorIcon(Color.RED)
@@ -2229,16 +2229,84 @@ public class MediaControlPanelTest : SysuiTestCase() {

        // set the screen width less than the width of media controls.
        player.context.resources.configuration.screenWidthDp = 350
        player.context.resources.configuration.orientation = Configuration.ORIENTATION_PORTRAIT
        player.attachRecommendation(recommendationViewHolder)
        player.bindRecommendation(data)

        assertThat(player.numberOfFittedRecommendations).isEqualTo(2)
        assertThat(expandedSet.getVisibility(coverContainer1.id)).isEqualTo(ConstraintSet.VISIBLE)
        assertThat(collapsedSet.getVisibility(coverContainer1.id)).isEqualTo(ConstraintSet.VISIBLE)
        assertThat(expandedSet.getVisibility(coverContainer2.id)).isEqualTo(ConstraintSet.VISIBLE)
        assertThat(collapsedSet.getVisibility(coverContainer2.id)).isEqualTo(ConstraintSet.VISIBLE)
        assertThat(expandedSet.getVisibility(coverContainer3.id)).isEqualTo(ConstraintSet.GONE)
        assertThat(collapsedSet.getVisibility(coverContainer3.id)).isEqualTo(ConstraintSet.GONE)
        val res = player.context.resources
        val displayAvailableWidth =
            TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 350f, res.displayMetrics).toInt()
        val recCoverWidth: Int =
            (res.getDimensionPixelSize(R.dimen.qs_media_rec_album_width) +
                res.getDimensionPixelSize(R.dimen.qs_media_info_spacing) * 2)
        val numOfRecs = displayAvailableWidth / recCoverWidth

        assertThat(player.numberOfFittedRecommendations).isEqualTo(numOfRecs)
        recommendationViewHolder.mediaCoverContainers.forEachIndexed { index, container ->
            if (index < numOfRecs) {
                assertThat(expandedSet.getVisibility(container.id)).isEqualTo(ConstraintSet.VISIBLE)
                assertThat(collapsedSet.getVisibility(container.id))
                    .isEqualTo(ConstraintSet.VISIBLE)
            } else {
                assertThat(expandedSet.getVisibility(container.id)).isEqualTo(ConstraintSet.GONE)
                assertThat(collapsedSet.getVisibility(container.id)).isEqualTo(ConstraintSet.GONE)
            }
        }
    }

    @Test
    fun bindRecommendation_carouselNotFitThreeRecs_OrientationLandscape() {
        useRealConstraintSets()
        setupUpdatedRecommendationViewHolder()
        val albumArt = getColorIcon(Color.RED)
        val data =
            smartspaceData.copy(
                recommendations =
                    listOf(
                        SmartspaceAction.Builder("id1", "title1")
                            .setSubtitle("subtitle1")
                            .setIcon(albumArt)
                            .setExtras(Bundle.EMPTY)
                            .build(),
                        SmartspaceAction.Builder("id2", "title2")
                            .setSubtitle("subtitle1")
                            .setIcon(albumArt)
                            .setExtras(Bundle.EMPTY)
                            .build(),
                        SmartspaceAction.Builder("id3", "title3")
                            .setSubtitle("subtitle1")
                            .setIcon(albumArt)
                            .setExtras(Bundle.EMPTY)
                            .build()
                    )
            )

        // set the screen width less than the width of media controls.
        // We should have dp width less than 378 to test. In landscape we should have 2x.
        player.context.resources.configuration.screenWidthDp = 700
        player.context.resources.configuration.orientation = Configuration.ORIENTATION_LANDSCAPE
        player.attachRecommendation(recommendationViewHolder)
        player.bindRecommendation(data)

        val res = player.context.resources
        val displayAvailableWidth =
            TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 350f, res.displayMetrics).toInt()
        val recCoverWidth: Int =
            (res.getDimensionPixelSize(R.dimen.qs_media_rec_album_width) +
                res.getDimensionPixelSize(R.dimen.qs_media_info_spacing) * 2)
        val numOfRecs = displayAvailableWidth / recCoverWidth

        assertThat(player.numberOfFittedRecommendations).isEqualTo(numOfRecs)
        recommendationViewHolder.mediaCoverContainers.forEachIndexed { index, container ->
            if (index < numOfRecs) {
                assertThat(expandedSet.getVisibility(container.id)).isEqualTo(ConstraintSet.VISIBLE)
                assertThat(collapsedSet.getVisibility(container.id))
                    .isEqualTo(ConstraintSet.VISIBLE)
            } else {
                assertThat(expandedSet.getVisibility(container.id)).isEqualTo(ConstraintSet.GONE)
                assertThat(collapsedSet.getVisibility(container.id)).isEqualTo(ConstraintSet.GONE)
            }
        }
    }

    @Test