mirror of
https://github.com/CatimaLoyalty/Android.git
synced 2026-01-30 09:41:56 -05:00
* WIP * test: Add test tags for compose components * test: Add basic test for compose about screen * refactor: Add defaults for `AboutScreenContent` * refactor: Move compose tests to unit tests * refactor: Make `showRateOnGooglePlay` default to `app/build.gradle.kts/defaultConfig` value * refactor: Best practise to make previews private to reduce pollution * refactor: Best practise apply theme as high as possible for most cases * style: Format AboutActivity.kt * test: Add more comprehensive tests for about screen * test: Fix configuration of compose tests * Fix Gradle setup * Fix build issues * Adjust text sizing * Use full black OLED theme in Compose if chosen in settings --------- Co-authored-by: LooKeR <iamlooker@proton.me>
89 lines
3.3 KiB
Kotlin
89 lines
3.3 KiB
Kotlin
package protect.card_locker
|
|
|
|
import android.app.Instrumentation
|
|
import androidx.compose.ui.test.ExperimentalTestApi
|
|
import androidx.compose.ui.test.assertIsDisplayed
|
|
import androidx.compose.ui.test.assertIsNotDisplayed
|
|
import androidx.compose.ui.test.junit4.ComposeContentTestRule
|
|
import androidx.compose.ui.test.junit4.createComposeRule
|
|
import androidx.compose.ui.test.onNodeWithTag
|
|
import androidx.compose.ui.test.onNodeWithText
|
|
import androidx.compose.ui.test.performScrollTo
|
|
import androidx.compose.ui.test.runComposeUiTest
|
|
import androidx.test.ext.junit.runners.AndroidJUnit4
|
|
import androidx.test.platform.app.InstrumentationRegistry
|
|
import org.junit.Rule
|
|
import org.junit.Test
|
|
import org.junit.runner.RunWith
|
|
import protect.card_locker.compose.theme.CatimaTheme
|
|
|
|
@OptIn(ExperimentalTestApi::class)
|
|
@RunWith(AndroidJUnit4::class)
|
|
class AboutActivityTest {
|
|
@get:Rule
|
|
private val rule: ComposeContentTestRule = createComposeRule()
|
|
|
|
private val instrumentation: Instrumentation = InstrumentationRegistry.getInstrumentation()
|
|
|
|
private val content: AboutContent = AboutContent(instrumentation.targetContext)
|
|
|
|
@Test
|
|
fun testInitialState(): Unit = runComposeUiTest {
|
|
setContent {
|
|
AboutScreenContent(content = content)
|
|
}
|
|
|
|
onNodeWithTag("topbar_catima").assertIsDisplayed()
|
|
|
|
onNodeWithTag("card_version_history").assertIsDisplayed()
|
|
onNodeWithText(content.versionHistory).assertIsDisplayed()
|
|
|
|
onNodeWithTag("card_credits").assertIsDisplayed()
|
|
onNodeWithText(content.copyrightShort).assertIsDisplayed()
|
|
|
|
onNodeWithTag("card_translate").assertIsDisplayed()
|
|
onNodeWithTag("card_license").assertIsDisplayed()
|
|
|
|
// We might be off the screen so start scrolling
|
|
onNodeWithTag("card_source_github").performScrollTo().assertIsDisplayed()
|
|
onNodeWithTag("card_privacy_policy").performScrollTo().assertIsDisplayed()
|
|
onNodeWithTag("card_donate").performScrollTo().assertIsDisplayed()
|
|
// Dont scroll to this, since its not displayed
|
|
onNodeWithTag("card_rate_google").assertIsNotDisplayed()
|
|
onNodeWithTag("card_report_error").performScrollTo().assertIsDisplayed()
|
|
}
|
|
|
|
@Test
|
|
fun testDonateAndGoogleCardVisible(): Unit = runComposeUiTest {
|
|
setContent {
|
|
CatimaTheme {
|
|
AboutScreenContent(
|
|
content = content,
|
|
showDonate = true,
|
|
showRateOnGooglePlay = true,
|
|
)
|
|
}
|
|
}
|
|
|
|
onNodeWithTag("card_donate").performScrollTo().assertIsDisplayed()
|
|
onNodeWithTag("card_rate_google").performScrollTo().assertIsDisplayed()
|
|
}
|
|
|
|
@Test
|
|
fun testDonateAndGoogleCardHidden(): Unit = runComposeUiTest {
|
|
setContent {
|
|
CatimaTheme {
|
|
AboutScreenContent(
|
|
content = content,
|
|
showDonate = false,
|
|
showRateOnGooglePlay = false,
|
|
)
|
|
}
|
|
}
|
|
|
|
onNodeWithTag("card_privacy_policy").performScrollTo().assertIsDisplayed()
|
|
onNodeWithTag("card_donate").assertIsNotDisplayed()
|
|
onNodeWithTag("card_rate_google").assertIsNotDisplayed()
|
|
onNodeWithTag("card_report_error").performScrollTo().assertIsDisplayed()
|
|
}
|
|
} |