add screenshot tests around the combined server selection
This commit is contained in:
parent
51888e176c
commit
bc6a0a842f
@ -19,23 +19,31 @@ package im.vector.app
|
|||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.widget.FrameLayout
|
import android.widget.FrameLayout
|
||||||
|
import androidx.lifecycle.LifecycleOwner
|
||||||
|
import androidx.lifecycle.LifecycleRegistry
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import app.cash.paparazzi.DeviceConfig.Companion.PIXEL_3
|
import app.cash.paparazzi.DeviceConfig.Companion.PIXEL_3
|
||||||
import app.cash.paparazzi.Paparazzi
|
import app.cash.paparazzi.Paparazzi
|
||||||
import com.airbnb.epoxy.EpoxyController
|
import com.airbnb.epoxy.EpoxyController
|
||||||
import com.airbnb.mvrx.Success
|
import com.airbnb.mvrx.Success
|
||||||
|
import im.vector.app.core.error.DefaultErrorFormatter
|
||||||
import im.vector.app.core.extensions.configureWith
|
import im.vector.app.core.extensions.configureWith
|
||||||
import im.vector.app.core.resources.StringProvider
|
import im.vector.app.core.resources.StringProvider
|
||||||
import im.vector.app.core.utils.DimensionConverter
|
import im.vector.app.core.utils.DimensionConverter
|
||||||
|
import im.vector.app.databinding.FragmentFtueServerSelectionCombinedBinding
|
||||||
import im.vector.app.features.home.AvatarRenderer
|
import im.vector.app.features.home.AvatarRenderer
|
||||||
import im.vector.app.features.home.room.detail.timeline.format.RoomHistoryVisibilityFormatter
|
import im.vector.app.features.home.room.detail.timeline.format.RoomHistoryVisibilityFormatter
|
||||||
|
import im.vector.app.features.onboarding.OnboardingFlow
|
||||||
|
import im.vector.app.features.onboarding.OnboardingViewState
|
||||||
|
import im.vector.app.features.onboarding.SelectedHomeserverState
|
||||||
|
import im.vector.app.features.onboarding.ftueauth.FtueAuthCombinedServerSelectionFragment
|
||||||
import im.vector.app.features.roomprofile.settings.RoomSettingsController
|
import im.vector.app.features.roomprofile.settings.RoomSettingsController
|
||||||
import im.vector.app.features.roomprofile.settings.RoomSettingsViewState
|
import im.vector.app.features.roomprofile.settings.RoomSettingsViewState
|
||||||
|
import im.vector.app.test.fakes.FakeErrorFormatter
|
||||||
import im.vector.app.test.fakes.FakeVectorPreferences
|
import im.vector.app.test.fakes.FakeVectorPreferences
|
||||||
import io.mockk.coJustRun
|
import io.mockk.coJustRun
|
||||||
import io.mockk.every
|
import io.mockk.every
|
||||||
import io.mockk.mockk
|
import io.mockk.mockk
|
||||||
import kotlinx.coroutines.test.runTest
|
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
import org.junit.Rule
|
import org.junit.Rule
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
@ -58,7 +66,40 @@ class PaparazziScreenshotTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `room settings`() = runTest {
|
fun `empty server selection`() {
|
||||||
|
val (view, binding) = paparazzi.inflate(R.layout.fragment_ftue_server_selection_combined, FragmentFtueServerSelectionCombinedBinding::bind)
|
||||||
|
val stringProvider = StringProvider(paparazzi.resources)
|
||||||
|
val lifecycleOwner = fakeLifecycleOwner()
|
||||||
|
|
||||||
|
FtueAuthCombinedServerSelectionFragment.Controller(lifecycleOwner, binding, stringProvider, FakeErrorFormatter())
|
||||||
|
.setData(
|
||||||
|
OnboardingViewState(
|
||||||
|
onboardingFlow = OnboardingFlow.SignIn,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
paparazzi.snapshot(view)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `server selection with content`() {
|
||||||
|
val (view, binding) = paparazzi.inflate(R.layout.fragment_ftue_server_selection_combined, FragmentFtueServerSelectionCombinedBinding::bind)
|
||||||
|
val stringProvider = StringProvider(paparazzi.resources)
|
||||||
|
val lifecycleOwner = fakeLifecycleOwner()
|
||||||
|
|
||||||
|
FtueAuthCombinedServerSelectionFragment.Controller(lifecycleOwner, binding, stringProvider, DefaultErrorFormatter(stringProvider))
|
||||||
|
.setData(
|
||||||
|
OnboardingViewState(
|
||||||
|
onboardingFlow = OnboardingFlow.SignIn,
|
||||||
|
selectedHomeserver = SelectedHomeserverState(userFacingUrl = "matrix.org")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
paparazzi.snapshot(view)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `room settings`() {
|
||||||
// Material components aren't fully supported yet https://github.com/cashapp/paparazzi/issues/223
|
// Material components aren't fully supported yet https://github.com/cashapp/paparazzi/issues/223
|
||||||
val strings = StringProvider(paparazzi.resources)
|
val strings = StringProvider(paparazzi.resources)
|
||||||
val fakeAvatarRender = FakeAvatarRender()
|
val fakeAvatarRender = FakeAvatarRender()
|
||||||
@ -110,6 +151,18 @@ fun setFinalStaticValue(field: Field, value: Any) {
|
|||||||
field.set(null, value)
|
field.set(null, value)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun <B> Paparazzi.inflate(layoutId: Int, binder: (View) -> B): Pair<View, B> {
|
||||||
|
val view = inflate<View>(layoutId)
|
||||||
|
val binding = binder(view)
|
||||||
|
return view to binding
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun fakeLifecycleOwner(): LifecycleOwner {
|
||||||
|
val lifecycleOwner = mockk<LifecycleOwner>()
|
||||||
|
every { lifecycleOwner.lifecycle } returns LifecycleRegistry(lifecycleOwner)
|
||||||
|
return lifecycleOwner
|
||||||
|
}
|
||||||
|
|
||||||
class FakeDimensionConverter {
|
class FakeDimensionConverter {
|
||||||
|
|
||||||
val instance = mockk<DimensionConverter>().also {
|
val instance = mockk<DimensionConverter>().also {
|
||||||
|
Loading…
Reference in New Issue
Block a user