From 6140c8a379ef148b00c16e1dae03f32463c84cef Mon Sep 17 00:00:00 2001 From: Nitin Sabale <82660329+nsabale7@users.noreply.github.com> Date: Wed, 7 Feb 2024 13:17:11 +0530 Subject: [PATCH] Tests for Progress Bar Feature (#2418) * Tests fir Progress Bar Feature * addressed review comments * review comments --- .../test/QuestionnaireUiEspressoTest.kt | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/test/QuestionnaireUiEspressoTest.kt b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/test/QuestionnaireUiEspressoTest.kt index e5ee755f80..f7aaf41484 100644 --- a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/test/QuestionnaireUiEspressoTest.kt +++ b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/test/QuestionnaireUiEspressoTest.kt @@ -43,6 +43,7 @@ import com.google.android.fhir.datacapture.validation.QuestionnaireResponseValid import com.google.android.fhir.datacapture.validation.Valid import com.google.android.fhir.datacapture.views.factories.localDate import com.google.android.fhir.datacapture.views.factories.localDateTime +import com.google.android.material.progressindicator.LinearProgressIndicator import com.google.android.material.textfield.TextInputEditText import com.google.android.material.textfield.TextInputLayout import com.google.common.truth.Truth.assertThat @@ -519,6 +520,66 @@ class QuestionnaireUiEspressoTest { } } + @Test + fun progressBar_shouldBeVisible_withSinglePageQuestionnaire() { + buildFragmentFromQuestionnaire("/text_questionnaire_integer.json") + + onView(withId(R.id.questionnaire_progress_indicator)).check { view, _ -> + val linearProgressIndicator = (view as LinearProgressIndicator) + assertThat(linearProgressIndicator.visibility).isEqualTo(View.VISIBLE) + assertThat(linearProgressIndicator.progress).isEqualTo(100) + } + } + + @Test + fun progressBar_shouldBeVisible_withPaginatedQuestionnaire() { + buildFragmentFromQuestionnaire("/layout_paginated.json") + + onView(withId(R.id.questionnaire_progress_indicator)).check { view, _ -> + val linearProgressIndicator = (view as LinearProgressIndicator) + assertThat(linearProgressIndicator.visibility).isEqualTo(View.VISIBLE) + assertThat(linearProgressIndicator.progress).isEqualTo(50) + } + } + + @Test + fun progressBar_shouldProgress_onPaginationNext() { + buildFragmentFromQuestionnaire("/layout_paginated.json") + + onView(withId(R.id.pagination_next_button)).perform(ViewActions.click()) + + onView(withId(R.id.questionnaire_progress_indicator)).check { view, _ -> + val linearProgressIndicator = (view as LinearProgressIndicator) + assertThat(linearProgressIndicator.progress).isEqualTo(100) + } + } + + @Test + fun progressBar_shouldBeGone_whenNavigatedToReviewScreen() { + buildFragmentFromQuestionnaire("/text_questionnaire_integer.json", isReviewMode = true) + + onView(withId(R.id.review_mode_button)).perform(ViewActions.click()) + + onView(withId(R.id.questionnaire_progress_indicator)).check { view, _ -> + val linearProgressIndicator = (view as LinearProgressIndicator) + assertThat(linearProgressIndicator.visibility).isEqualTo(View.GONE) + } + } + + @Test + fun progressBar_shouldBeVisible_whenNavigatedToEditScreenFromReview() { + buildFragmentFromQuestionnaire("/text_questionnaire_integer.json", isReviewMode = true) + + onView(withId(R.id.review_mode_button)).perform(ViewActions.click()) + + onView(withId(R.id.review_mode_edit_button)).perform(ViewActions.click()) + + onView(withId(R.id.questionnaire_progress_indicator)).check { view, _ -> + val linearProgressIndicator = (view as LinearProgressIndicator) + assertThat(linearProgressIndicator.visibility).isEqualTo(View.VISIBLE) + } + } + private fun buildFragmentFromQuestionnaire( fileName: String, isReviewMode: Boolean = false,