From 37655d73aec21f84958082ea1df9f7e8e45c1b6b Mon Sep 17 00:00:00 2001 From: Mohamed Metwalli <mohamed.metwalli@sap.com> Date: Tue, 29 Dec 2020 21:59:57 +0100 Subject: [PATCH] Add View assertion to make sure Fragment is already displaying its views to avoid capturing blank screenshots --- .../screenshot/OnboardingFragmentScreenshot.kt | 7 ++++++- .../OnboardingNotificationsFragmentScreenshot.kt | 10 +++++++--- .../screenshot/OnboardingPrivacyFragmentScreenshot.kt | 10 +++++++--- .../screenshot/OnboardingTestFragmentScreenshot.kt | 6 ++++++ .../screenshot/OnboardingTracingFragmentScreenshot.kt | 10 +++++++--- 5 files changed, 33 insertions(+), 10 deletions(-) diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/screenshot/OnboardingFragmentScreenshot.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/screenshot/OnboardingFragmentScreenshot.kt index 487b75b54..bc641747b 100644 --- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/screenshot/OnboardingFragmentScreenshot.kt +++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/screenshot/OnboardingFragmentScreenshot.kt @@ -1,6 +1,10 @@ package de.rki.coronawarnapp.ui.onboarding.screenshot import androidx.fragment.app.testing.launchFragmentInContainer +import androidx.test.espresso.Espresso.onView +import androidx.test.espresso.assertion.ViewAssertions.matches +import androidx.test.espresso.matcher.ViewMatchers.isDisplayed +import androidx.test.espresso.matcher.ViewMatchers.withId import androidx.test.ext.junit.runners.AndroidJUnit4 import de.rki.coronawarnapp.R import de.rki.coronawarnapp.ui.onboarding.OnboardingFragment @@ -44,7 +48,8 @@ class OnboardingFragmentScreenshot : BaseUITest() { @Test fun capture_screenshot() { launchFragmentInContainer<OnboardingFragment>(themeResId = R.style.AppTheme) - Thread.sleep(1000) + // Check any view to make sure screenshot is not blank + onView(withId(R.id.onboarding_button_next)).check(matches(isDisplayed())) Screengrab.screenshot(OnboardingFragment::class.simpleName) } } diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/screenshot/OnboardingNotificationsFragmentScreenshot.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/screenshot/OnboardingNotificationsFragmentScreenshot.kt index aa4c1d665..ac4f72e7f 100644 --- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/screenshot/OnboardingNotificationsFragmentScreenshot.kt +++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/screenshot/OnboardingNotificationsFragmentScreenshot.kt @@ -1,6 +1,10 @@ package de.rki.coronawarnapp.ui.onboarding.screenshot import androidx.fragment.app.testing.launchFragmentInContainer +import androidx.test.espresso.Espresso.onView +import androidx.test.espresso.assertion.ViewAssertions.matches +import androidx.test.espresso.matcher.ViewMatchers.isDisplayed +import androidx.test.espresso.matcher.ViewMatchers.withId import androidx.test.ext.junit.runners.AndroidJUnit4 import de.rki.coronawarnapp.R import de.rki.coronawarnapp.ui.onboarding.OnboardingNotificationsFragment @@ -44,8 +48,8 @@ class OnboardingNotificationsFragmentScreenshot : BaseUITest() { @Test fun capture_screenshot() { launchFragmentInContainer<OnboardingNotificationsFragment>(themeResId = R.style.AppTheme) - .onFragment { - Screengrab.screenshot(OnboardingNotificationsFragment::class.simpleName) - } + // Check any view to make sure screenshot is not blank + onView(withId(R.id.onboarding_button_next)).check(matches(isDisplayed())) + Screengrab.screenshot(OnboardingNotificationsFragment::class.simpleName) } } diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/screenshot/OnboardingPrivacyFragmentScreenshot.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/screenshot/OnboardingPrivacyFragmentScreenshot.kt index eacd6e955..a348f19ad 100644 --- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/screenshot/OnboardingPrivacyFragmentScreenshot.kt +++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/screenshot/OnboardingPrivacyFragmentScreenshot.kt @@ -1,6 +1,10 @@ package de.rki.coronawarnapp.ui.onboarding.screenshot import androidx.fragment.app.testing.launchFragmentInContainer +import androidx.test.espresso.Espresso.onView +import androidx.test.espresso.assertion.ViewAssertions.matches +import androidx.test.espresso.matcher.ViewMatchers.isDisplayed +import androidx.test.espresso.matcher.ViewMatchers.withId import androidx.test.ext.junit.runners.AndroidJUnit4 import de.rki.coronawarnapp.R import de.rki.coronawarnapp.ui.onboarding.OnboardingPrivacyFragment @@ -44,8 +48,8 @@ class OnboardingPrivacyFragmentScreenshot : BaseUITest() { @Test fun capture_screenshot() { launchFragmentInContainer<OnboardingPrivacyFragment>(themeResId = R.style.AppTheme) - .onFragment { - Screengrab.screenshot(OnboardingPrivacyFragment::class.simpleName) - } + // Check any view to make sure screenshot is not blank + onView(withId(R.id.onboarding_button_next)).check(matches(isDisplayed())) + Screengrab.screenshot(OnboardingPrivacyFragment::class.simpleName) } } diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/screenshot/OnboardingTestFragmentScreenshot.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/screenshot/OnboardingTestFragmentScreenshot.kt index 8f2fb6932..c1a1a45c7 100644 --- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/screenshot/OnboardingTestFragmentScreenshot.kt +++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/screenshot/OnboardingTestFragmentScreenshot.kt @@ -1,6 +1,10 @@ package de.rki.coronawarnapp.ui.onboarding.screenshot import androidx.fragment.app.testing.launchFragmentInContainer +import androidx.test.espresso.Espresso.onView +import androidx.test.espresso.assertion.ViewAssertions.matches +import androidx.test.espresso.matcher.ViewMatchers.isDisplayed +import androidx.test.espresso.matcher.ViewMatchers.withId import androidx.test.ext.junit.runners.AndroidJUnit4 import de.rki.coronawarnapp.R import de.rki.coronawarnapp.ui.onboarding.OnboardingTestFragment @@ -44,6 +48,8 @@ class OnboardingTestFragmentScreenshot : BaseUITest() { @Test fun capture_screenshot() { launchFragmentInContainer<OnboardingTestFragment>(themeResId = R.style.AppTheme) + // Check any view to make sure screenshot is not blank + onView(withId(R.id.onboarding_button_next)).check(matches(isDisplayed())) Screengrab.screenshot(OnboardingTestFragment::class.simpleName) } } diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/screenshot/OnboardingTracingFragmentScreenshot.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/screenshot/OnboardingTracingFragmentScreenshot.kt index 462713048..93fddcb38 100644 --- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/screenshot/OnboardingTracingFragmentScreenshot.kt +++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/screenshot/OnboardingTracingFragmentScreenshot.kt @@ -1,6 +1,10 @@ package de.rki.coronawarnapp.ui.onboarding.screenshot import androidx.fragment.app.testing.launchFragmentInContainer +import androidx.test.espresso.Espresso.onView +import androidx.test.espresso.assertion.ViewAssertions.matches +import androidx.test.espresso.matcher.ViewMatchers.isDisplayed +import androidx.test.espresso.matcher.ViewMatchers.withId import androidx.test.ext.junit.runners.AndroidJUnit4 import de.rki.coronawarnapp.R import de.rki.coronawarnapp.ui.onboarding.OnboardingTracingFragment @@ -44,8 +48,8 @@ class OnboardingTracingFragmentScreenshot : BaseUITest() { @Test fun capture_screenshot() { launchFragmentInContainer<OnboardingTracingFragment>(themeResId = R.style.AppTheme) - .onFragment { - Screengrab.screenshot(OnboardingTracingFragment::class.simpleName) - } + // Check any view to make sure screenshot is not blank + onView(withId(R.id.onboarding_button_next)).check(matches(isDisplayed())) + Screengrab.screenshot(OnboardingTracingFragment::class.simpleName) } } -- GitLab