diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/covidcertificate/RequestCovidCertificateFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/covidcertificate/RequestCovidCertificateFragmentTest.kt new file mode 100644 index 0000000000000000000000000000000000000000..68b8a1b80a3d8ae83fad80d050cced8549a2e6b0 --- /dev/null +++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/covidcertificate/RequestCovidCertificateFragmentTest.kt @@ -0,0 +1,116 @@ +package de.rki.coronawarnapp.ui.submission.covidcertificate + +import androidx.lifecycle.MutableLiveData +import androidx.test.espresso.Espresso.onView +import androidx.test.espresso.action.ViewActions.click +import androidx.test.espresso.action.ViewActions.swipeUp +import androidx.test.espresso.matcher.ViewMatchers.withId +import androidx.test.ext.junit.runners.AndroidJUnit4 +import dagger.Module +import dagger.android.ContributesAndroidInjector +import de.rki.coronawarnapp.R +import de.rki.coronawarnapp.coronatest.qrcode.CoronaTestQRCode +import de.rki.coronawarnapp.ui.submission.ApiRequestState +import de.rki.coronawarnapp.ui.submission.qrcode.QrCodeRegistrationStateProcessor +import io.mockk.MockKAnnotations +import io.mockk.every +import io.mockk.impl.annotations.MockK +import org.joda.time.Instant +import org.junit.After +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import testhelpers.BaseUITest +import testhelpers.Screenshot +import testhelpers.launchFragmentInContainer2 +import testhelpers.takeScreenshot + +@RunWith(AndroidJUnit4::class) +class RequestCovidCertificateFragmentTest : BaseUITest() { + + @MockK lateinit var viewModel: RequestCovidCertificateViewModel + + @Before + fun setup() { + MockKAnnotations.init(this, relaxed = true) + + every { viewModel.birthDate } returns MutableLiveData(null) + every { viewModel.registrationState } returns MutableLiveData( + QrCodeRegistrationStateProcessor.RegistrationState(ApiRequestState.IDLE) + ) + + setupMockViewModel( + object : RequestCovidCertificateViewModel.Factory { + override fun create( + coronaTestQrCode: CoronaTestQRCode, + coronaTestConsent: Boolean, + deleteOldTest: Boolean + ): RequestCovidCertificateViewModel = viewModel + } + ) + } + + @Test + fun launch_fragment_pcr() { + val args = RequestCovidCertificateFragmentArgs( + CoronaTestQRCode.PCR(qrCodeGUID = "GUID") + ).toBundle() + launchFragmentInContainer2<RequestCovidCertificateFragment>(fragmentArgs = args) + } + + @Test + fun launch_fragment_rat() { + val args = RequestCovidCertificateFragmentArgs( + CoronaTestQRCode.RapidAntigen(hash = "hash", createdAt = Instant.EPOCH) + ).toBundle() + launchFragmentInContainer2<RequestCovidCertificateFragment>(fragmentArgs = args) + } + + @Test + @Screenshot + fun capture_fragment_pcr() { + val args = RequestCovidCertificateFragmentArgs( + CoronaTestQRCode.PCR(qrCodeGUID = "GUID") + ).toBundle() + launchFragmentInContainer2<RequestCovidCertificateFragment>(fragmentArgs = args) + takeScreenshot<RequestCovidCertificateFragment>("pcr") + + onView(withId(R.id.scrollview)).perform(swipeUp()) + takeScreenshot<RequestCovidCertificateFragment>("pcr_2") + } + + @Test + @Screenshot + fun capture_fragment_pcr_birthdate_dialog() { + val args = RequestCovidCertificateFragmentArgs( + CoronaTestQRCode.PCR(qrCodeGUID = "GUID") + ).toBundle() + launchFragmentInContainer2<RequestCovidCertificateFragment>(fragmentArgs = args) + onView(withId(R.id.date_input_edit)).perform(click()) + takeScreenshot<RequestCovidCertificateFragment>("date_picker") + } + + @Test + @Screenshot + fun capture_fragment_rat() { + val args = RequestCovidCertificateFragmentArgs( + CoronaTestQRCode.RapidAntigen(hash = "hash", createdAt = Instant.EPOCH) + ).toBundle() + launchFragmentInContainer2<RequestCovidCertificateFragment>(fragmentArgs = args) + takeScreenshot<RequestCovidCertificateFragment>("rat") + + onView(withId(R.id.scrollview)).perform(swipeUp()) + takeScreenshot<RequestCovidCertificateFragment>("rat_2") + } + + @After + fun teardown() { + clearAllViewModels() + } +} + +@Module +abstract class RequestCovidCertificateFragmentTestModule { + @ContributesAndroidInjector + abstract fun requestCovidCertificateFragment(): RequestCovidCertificateFragment +} diff --git a/Corona-Warn-App/src/androidTest/java/testhelpers/FragmentTestModuleRegistrar.kt b/Corona-Warn-App/src/androidTest/java/testhelpers/FragmentTestModuleRegistrar.kt index 937486ea384b8b2e3835c2dcc74aee533ff7a657..c2cd3038e54570e48777ce2153f85d958fa542a0 100644 --- a/Corona-Warn-App/src/androidTest/java/testhelpers/FragmentTestModuleRegistrar.kt +++ b/Corona-Warn-App/src/androidTest/java/testhelpers/FragmentTestModuleRegistrar.kt @@ -35,6 +35,7 @@ import de.rki.coronawarnapp.ui.submission.SubmissionTestResultTestAvailableModul import de.rki.coronawarnapp.ui.submission.SubmissionTestResultTestModule import de.rki.coronawarnapp.ui.submission.SubmissionTestResultTestNegativeModule import de.rki.coronawarnapp.ui.submission.SubmissionYourConsentFragmentTestModule +import de.rki.coronawarnapp.ui.submission.covidcertificate.RequestCovidCertificateFragmentTestModule import de.rki.coronawarnapp.ui.tracing.TracingDetailsFragmentTestTestModule import de.rki.coronawarnapp.ui.vaccination.VaccinationConsentFragmentTestModule import de.rki.coronawarnapp.vaccination.ui.details.VaccinationDetailsFragmentTestModule @@ -88,7 +89,8 @@ import de.rki.coronawarnapp.vaccination.ui.list.VaccinationListFragmentTestModul // Vaccination VaccinationDetailsFragmentTestModule::class, VaccinationConsentFragmentTestModule::class, - VaccinationListFragmentTestModule::class + VaccinationListFragmentTestModule::class, + RequestCovidCertificateFragmentTestModule::class, ] ) class FragmentTestModuleRegistrar diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/greencertificate/RequestCovidCertificateFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/covidcertificate/RequestCovidCertificateFragment.kt similarity index 99% rename from Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/greencertificate/RequestCovidCertificateFragment.kt rename to Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/covidcertificate/RequestCovidCertificateFragment.kt index 6ada9a9747eacc1581735ae1d68ac13efdf885bd..2635a01a5d5cdcfec0d8b5f48f392d1616777c46 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/greencertificate/RequestCovidCertificateFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/covidcertificate/RequestCovidCertificateFragment.kt @@ -1,4 +1,4 @@ -package de.rki.coronawarnapp.ui.submission.greencertificate +package de.rki.coronawarnapp.ui.submission.covidcertificate import android.os.Bundle import androidx.fragment.app.Fragment diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/greencertificate/RequestCovidCertificateFragmentModule.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/covidcertificate/RequestCovidCertificateFragmentModule.kt similarity index 90% rename from Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/greencertificate/RequestCovidCertificateFragmentModule.kt rename to Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/covidcertificate/RequestCovidCertificateFragmentModule.kt index 74c2e8f205297db138d98de358174a45ce2da4bc..6bc12c024573270581707f0cf504024d2be50ca2 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/greencertificate/RequestCovidCertificateFragmentModule.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/covidcertificate/RequestCovidCertificateFragmentModule.kt @@ -1,4 +1,4 @@ -package de.rki.coronawarnapp.ui.submission.greencertificate +package de.rki.coronawarnapp.ui.submission.covidcertificate import dagger.Binds import dagger.Module diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/greencertificate/RequestCovidCertificateViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/covidcertificate/RequestCovidCertificateViewModel.kt similarity index 98% rename from Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/greencertificate/RequestCovidCertificateViewModel.kt rename to Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/covidcertificate/RequestCovidCertificateViewModel.kt index e6603079d74c953af578d0f6655f1e588603476f..ff0e272e71fbba2a1b6de47be1defa317be6f66c 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/greencertificate/RequestCovidCertificateViewModel.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/covidcertificate/RequestCovidCertificateViewModel.kt @@ -1,4 +1,4 @@ -package de.rki.coronawarnapp.ui.submission.greencertificate +package de.rki.coronawarnapp.ui.submission.covidcertificate import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/greencertificate/RequestDccNavEvent.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/covidcertificate/RequestDccNavEvent.kt similarity index 72% rename from Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/greencertificate/RequestDccNavEvent.kt rename to Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/covidcertificate/RequestDccNavEvent.kt index 1bb251b76e2760f8183d4df792b992857304ad8c..d1b3d8c6075c668fb5410864e1a0eed51d37bf46 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/greencertificate/RequestDccNavEvent.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/covidcertificate/RequestDccNavEvent.kt @@ -1,4 +1,4 @@ -package de.rki.coronawarnapp.ui.submission.greencertificate +package de.rki.coronawarnapp.ui.submission.covidcertificate sealed class RequestDccNavEvent object ToDispatcherScreen : RequestDccNavEvent() diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/viewmodel/SubmissionFragmentModule.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/viewmodel/SubmissionFragmentModule.kt index 2f0c1d50985049173bd6fc25c468936899b70776..fe135a5d3ae934c14066d17ee3cdd426cce8af24 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/viewmodel/SubmissionFragmentModule.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/viewmodel/SubmissionFragmentModule.kt @@ -8,8 +8,8 @@ import de.rki.coronawarnapp.ui.submission.fragment.SubmissionContactFragment import de.rki.coronawarnapp.ui.submission.fragment.SubmissionDispatcherFragment import de.rki.coronawarnapp.ui.submission.deletionwarning.SubmissionDeletionWarningFragment import de.rki.coronawarnapp.ui.submission.deletionwarning.SubmissionDeletionWarningModule -import de.rki.coronawarnapp.ui.submission.greencertificate.RequestCovidCertificateFragment -import de.rki.coronawarnapp.ui.submission.greencertificate.RequestCovidCertificateFragmentModule +import de.rki.coronawarnapp.ui.submission.covidcertificate.RequestCovidCertificateFragment +import de.rki.coronawarnapp.ui.submission.covidcertificate.RequestCovidCertificateFragmentModule import de.rki.coronawarnapp.ui.submission.qrcode.consent.SubmissionConsentFragment import de.rki.coronawarnapp.ui.submission.qrcode.consent.SubmissionConsentModule import de.rki.coronawarnapp.ui.submission.qrcode.scan.SubmissionQRCodeScanFragment @@ -102,7 +102,7 @@ internal abstract class SubmissionFragmentModule { abstract fun submissionTestResultNoConsentScreen(): SubmissionTestResultNoConsentFragment @ContributesAndroidInjector(modules = [SubmissionResultPositiveOtherWarningNoConsentModule::class]) - abstract fun SubmissionResultPositiveOtherWarningNoConsentScreen(): SubmissionResultPositiveOtherWarningNoConsentFragment + abstract fun submissionResultPositiveOtherWarningNoConsentScreen(): SubmissionResultPositiveOtherWarningNoConsentFragment @ContributesAndroidInjector(modules = [SubmissionDeletionWarningModule::class]) abstract fun submissionDeletionWarningScreen(): SubmissionDeletionWarningFragment @@ -114,5 +114,5 @@ internal abstract class SubmissionFragmentModule { abstract fun submissionTestResultKeysSharedScreen(): SubmissionTestResultKeysSharedFragment @ContributesAndroidInjector(modules = [RequestCovidCertificateFragmentModule::class]) - abstract fun requestGreenCertificateFragment(): RequestCovidCertificateFragment + abstract fun requestCovidCertificateFragment(): RequestCovidCertificateFragment } diff --git a/Corona-Warn-App/src/main/res/layout/fragment_request_covid_certificate.xml b/Corona-Warn-App/src/main/res/layout/fragment_request_covid_certificate.xml index 7129eb51e8c8e4b22b94a8866299d6d63fece73f..31c266359a5d50b349373be2e991227bd614083e 100644 --- a/Corona-Warn-App/src/main/res/layout/fragment_request_covid_certificate.xml +++ b/Corona-Warn-App/src/main/res/layout/fragment_request_covid_certificate.xml @@ -5,7 +5,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/colorBackground" - tools:context="ui.submission.greencertificate.RequestCovidCertificateFragment"> + tools:context="ui.submission.covidcertificate.RequestCovidCertificateFragment"> <com.google.android.material.appbar.MaterialToolbar android:id="@+id/toolbar" diff --git a/Corona-Warn-App/src/main/res/navigation/nav_graph.xml b/Corona-Warn-App/src/main/res/navigation/nav_graph.xml index 919fadb96bacaf782dd41ab5ee9e32c21e9fbf64..8d879a4bb77ffea0650d57ebc6590f0d199bfeae 100644 --- a/Corona-Warn-App/src/main/res/navigation/nav_graph.xml +++ b/Corona-Warn-App/src/main/res/navigation/nav_graph.xml @@ -830,7 +830,7 @@ app:destination="@id/qrCodeFullScreenFragment" /> <fragment android:id="@+id/requestCovidCertificateFragment" - android:name="de.rki.coronawarnapp.ui.submission.greencertificate.RequestCovidCertificateFragment" + android:name="de.rki.coronawarnapp.ui.submission.covidcertificate.RequestCovidCertificateFragment" android:label="fragment_request_covid_certificate" tools:layout="@layout/fragment_request_covid_certificate"> <argument diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/greencertificate/RequestCovidCertificateViewModelTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/covidcertificate/RequestCovidCertificateViewModelTest.kt similarity index 99% rename from Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/greencertificate/RequestCovidCertificateViewModelTest.kt rename to Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/covidcertificate/RequestCovidCertificateViewModelTest.kt index bd9be00a552e0f6721b82097711e3917eb2e901f..0dd5558e9d79036859b109df6a37ea9e6c9a6b74 100644 --- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/greencertificate/RequestCovidCertificateViewModelTest.kt +++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/covidcertificate/RequestCovidCertificateViewModelTest.kt @@ -1,4 +1,4 @@ -package de.rki.coronawarnapp.ui.submission.greencertificate +package de.rki.coronawarnapp.ui.submission.covidcertificate import androidx.lifecycle.MutableLiveData import de.rki.coronawarnapp.coronatest.CoronaTestRepository