84 lines
3.1 KiB
Kotlin
84 lines
3.1 KiB
Kotlin
package co.electriccoin.zcash.ui.screen.receive.view
|
|
|
|
import androidx.compose.material3.SnackbarHostState
|
|
import androidx.compose.runtime.CompositionLocalProvider
|
|
import androidx.compose.ui.test.junit4.ComposeContentTestRule
|
|
import androidx.compose.ui.test.onNodeWithContentDescription
|
|
import androidx.compose.ui.test.performClick
|
|
import cash.z.ecc.android.sdk.model.WalletAddresses
|
|
import co.electriccoin.zcash.ui.R
|
|
import co.electriccoin.zcash.ui.common.LocalScreenBrightness
|
|
import co.electriccoin.zcash.ui.common.LocalScreenTimeout
|
|
import co.electriccoin.zcash.ui.common.ScreenBrightness
|
|
import co.electriccoin.zcash.ui.common.ScreenTimeout
|
|
import co.electriccoin.zcash.ui.common.model.VersionInfo
|
|
import co.electriccoin.zcash.ui.design.theme.ZcashTheme
|
|
import co.electriccoin.zcash.ui.fixture.VersionInfoFixture
|
|
import co.electriccoin.zcash.ui.test.getStringResource
|
|
import java.util.concurrent.atomic.AtomicBoolean
|
|
import java.util.concurrent.atomic.AtomicInteger
|
|
|
|
class ReceiveViewTestSetup(
|
|
private val composeTestRule: ComposeContentTestRule,
|
|
walletAddresses: WalletAddresses,
|
|
versionInfo: VersionInfo = VersionInfoFixture.new()
|
|
) {
|
|
private val onSettingsCount = AtomicInteger(0)
|
|
private val onAddressDetailsCount = AtomicInteger(0)
|
|
private val screenBrightness = ScreenBrightness()
|
|
private val screenTimeout = ScreenTimeout()
|
|
private val onAdjustBrightness = AtomicBoolean(false)
|
|
|
|
fun getScreenBrightnessCount() = screenBrightness.referenceCount.value
|
|
|
|
fun getScreenTimeoutCount() = screenTimeout.referenceCount.value
|
|
|
|
fun getOnAdjustBrightness(): Boolean {
|
|
composeTestRule.waitForIdle()
|
|
return onAdjustBrightness.get()
|
|
}
|
|
|
|
fun getOnSettingsCount(): Int {
|
|
composeTestRule.waitForIdle()
|
|
return onSettingsCount.get()
|
|
}
|
|
|
|
fun getOnAddressDetailsCount(): Int {
|
|
composeTestRule.waitForIdle()
|
|
return onAddressDetailsCount.get()
|
|
}
|
|
|
|
init {
|
|
composeTestRule.setContent {
|
|
CompositionLocalProvider(
|
|
LocalScreenBrightness provides screenBrightness,
|
|
LocalScreenTimeout provides screenTimeout
|
|
) {
|
|
ZcashTheme {
|
|
ZcashTheme {
|
|
Receive(
|
|
walletAddress = walletAddresses,
|
|
snackbarHostState = SnackbarHostState(),
|
|
onSettings = {
|
|
onSettingsCount.getAndIncrement()
|
|
},
|
|
onAdjustBrightness = {
|
|
onAdjustBrightness.getAndSet(it)
|
|
},
|
|
onAddrCopyToClipboard = {},
|
|
onQrImageShare = {},
|
|
versionInfo = versionInfo
|
|
)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
fun ComposeContentTestRule.clickAdjustBrightness() {
|
|
onNodeWithContentDescription(getStringResource(R.string.receive_brightness_content_description)).also {
|
|
it.performClick()
|
|
}
|
|
}
|