From a0bfe00567702b25adc94cfcf6ad48f6216c6980 Mon Sep 17 00:00:00 2001 From: damodar Date: Fri, 14 Nov 2025 11:26:07 +0530 Subject: [PATCH 01/21] MOSIP-42652: ARC UI automation Signed-off-by: damodar --- ui-test/dependency-reduced-pom.xml | 67 + ui-test/pom.xml | 5 + .../regclient/BaseTest/AndroidBaseTest.java | 1 - .../java/regclient/BaseTest/BaseTest.java | 19 +- .../androidTestCases/AddMachineDetails.java | 33 +- .../androidTestCases/BiometricCorrection.java | 908 ++++++++++ .../{IntialLunch.java => InitialLaunch.java} | 8 +- .../regclient/androidTestCases/LostUin.java | 578 ++++++ .../NewRegistrationAdult.java | 1361 ++++---------- .../NewRegistrationAdultException.java | 729 ++++---- .../NewRegistrationInfant.java | 667 +++---- .../NewRegistrationMinor.java | 708 ++++---- .../NewRegistrationMinorException.java | 812 ++++----- .../PreRegFetchingPacket.java | 1565 +++++++++++++++++ .../androidTestCases/ResetPassword.java | 222 +++ .../regclient/androidTestCases/Settings.java | 164 ++ .../UpdateMyUINUpdateDemographicDetails.java | 652 ++++--- .../androidTestCases/UpdateMyUinInfant.java | 662 +++---- .../androidTestCases/UpdateMyUinMinor.java | 809 ++++----- .../UpdateMyUinUpdateBiometrics.java | 674 ++++--- .../UpdateMyUinUpdateDocuments.java | 533 ++++++ .../regclient/androidTestCases/logintest.java | 907 +++++----- .../java/regclient/api/AdminTestUtil.java | 443 ++--- .../regclient/api/ApplicationLibrary.java | 1 - .../java/regclient/api/ArcConfigManager.java | 12 +- .../main/java/regclient/api/BaseTestCase.java | 41 +- .../java/regclient/api/CommonLibrary.java | 29 +- .../main/java/regclient/api/FetchUiSpec.java | 280 +-- .../java/regclient/api/GlobalConstants.java | 2 - .../regclient/api/KernelAuthentication.java | 54 +- .../regclient/api/KeycloakUserManager.java | 143 +- .../java/regclient/driver/DriverManager.java | 16 +- .../regclient/page/AcknowledgementPage.java | 6 +- .../page/ApplicantBiometricsPage.java | 13 +- .../regclient/page/AuthenticationPage.java | 7 +- .../main/java/regclient/page/BasePage.java | 571 ++++-- .../regclient/page/BiometricDetailsPage.java | 42 +- .../main/java/regclient/page/CameraPage.java | 46 +- .../main/java/regclient/page/ConsentPage.java | 14 +- .../java/regclient/page/DashboardPage.java | 2 +- .../page/DemographicDetailsPage.java | 25 +- .../regclient/page/DocumentUploadPage.java | 27 +- .../regclient/page/IdentityProofPage.java | 3 +- .../page/IntroducerBiometricPage.java | 7 +- .../java/regclient/page/KeycloakPage.java | 44 + .../main/java/regclient/page/LoginPage.java | 29 +- .../page/ManageApplicationsPage.java | 17 +- .../main/java/regclient/page/MockSBIPage.java | 260 +++ .../main/java/regclient/page/OnBoardPage.java | 19 +- .../regclient/page/OperationalTaskPage.java | 20 +- .../java/regclient/page/PendingApproval.java | 106 +- .../main/java/regclient/page/PreviewPage.java | 19 +- .../main/java/regclient/page/ProfilePage.java | 13 +- .../regclient/page/RegistrationTasksPage.java | 49 +- .../regclient/page/SelectLanguagePage.java | 14 +- .../java/regclient/page/SettingsPage.java | 48 + .../SupervisorBiometricVerificationpage.java | 69 +- .../page/UpdateOperatorBiometricspage.java | 68 +- .../java/regclient/page/UpdateUINPage.java | 5 +- .../arabic/AcknowledgementPageArabic.java | 39 +- .../arabic/ApplicantBiometricsPageArabic.java | 130 +- .../arabic/AuthenticationPageArabic.java | 31 +- .../arabic/BiometricDetailsPageArabic.java | 85 +- .../pages/arabic/ConsentPageArabic.java | 40 +- .../pages/arabic/DashboardPageArabic.java | 32 +- .../arabic/DemographicDetailsPageArabic.java | 747 ++++++-- .../arabic/DocumentuploadPageArabic.java | 181 +- .../pages/arabic/IdentityProofPageArabic.java | 8 +- .../arabic/IntroducerBiometricPageArabic.java | 150 +- .../pages/arabic/LoginPageArabic.java | 33 +- .../arabic/ManageApplicationsPageArabic.java | 154 +- .../pages/arabic/OnBoardPageArabic.java | 10 +- .../arabic/OperationalTaskPageArabic.java | 39 +- .../pages/arabic/PendingApprovalArabic.java | 183 +- .../pages/arabic/PreviewPageArabic.java | 95 +- .../pages/arabic/ProfilePageArabic.java | 38 +- .../arabic/RegistrationTasksPageArabic.java | 108 +- .../arabic/SelectLanguagePageArabic.java | 24 +- ...rvisorBiometricVerificationpageArabic.java | 298 ++-- .../UpdateOperatorBiometricspageArabic.java | 306 ++-- .../pages/arabic/UpdateUINPageArabic.java | 50 +- .../english/AcknowledgementPageEnglish.java | 47 +- .../ApplicantBiometricsPageEnglish.java | 74 +- .../english/AuthenticationPageEnglish.java | 35 +- .../english/BiometricDetailsPageEnglish.java | 133 +- .../pages/english/ConsentPageEnglish.java | 47 +- .../pages/english/DashboardPageEnglish.java | 24 +- .../DemographicDetailsPageEnglish.java | 649 +++++-- .../english/DocumentuploadPageEnglish.java | 177 +- .../english/IdentityProofPageEnglish.java | 8 +- .../IntroducerBiometricPageEnglish.java | 349 ++-- .../pages/english/KeycloakPageEnglish.java | 152 ++ .../pages/english/LoginPageEnglish.java | 48 +- .../ManageApplicationsPageEnglish.java | 110 +- .../pages/english/OnBoardPageEnglish.java | 10 +- .../english/OperationalTaskPageEnglish.java | 42 +- .../pages/english/PendingApprovalEnglish.java | 174 +- .../pages/english/PreviewPageEnglish.java | 90 +- .../pages/english/ProfilePageEnglish.java | 35 +- .../english/RegistrationTasksPageEnglish.java | 100 +- .../english/SelectLanguagePageEnglish.java | 22 +- .../pages/english/SettingsPageEnglish.java | 216 +++ ...visorBiometricVerificationpageEnglish.java | 305 ++-- .../UpdateOperatorBiometricspageEnglish.java | 312 ++-- .../pages/english/UpdateUINPageEnglish.java | 38 +- .../french/AcknowledgementPageFrench.java | 45 +- .../french/ApplicantBiometricsPageFrench.java | 133 +- .../french/AuthenticationPageFrench.java | 33 +- .../french/BiometricDetailsPageFrench.java | 94 +- .../pages/french/ConsentPageFrench.java | 43 +- .../pages/french/DashboardPageFrench.java | 34 +- .../french/DemographicDetailsPageFrench.java | 747 ++++++-- .../french/DocumentUploadPageFrench.java | 186 +- .../pages/french/IdentityProofPageFrench.java | 8 +- .../french/IntroducerBiometricPageFrench.java | 147 +- .../pages/french/LoginPageFrench.java | 30 +- .../french/ManageApplicationsPageFrench.java | 133 +- .../pages/french/OnBoardPageFrench.java | 12 +- .../french/OperationalTaskPageFrench.java | 36 +- .../pages/french/PendingApprovalFrench.java | 181 +- .../pages/french/PreviewPageFrench.java | 82 +- .../pages/french/ProfilePageFrench.java | 37 +- .../french/RegistrationTasksPageFrench.java | 94 +- .../french/SelectLanguagePageFrench.java | 23 +- ...rvisorBiometricVerificationpageFrench.java | 288 ++- .../UpdateOperatorBiometricspageFrench.java | 296 ++-- .../pages/french/UpdateUINPageFrench.java | 50 +- .../pages/hindi/AcknowledgementPageHindi.java | 39 +- .../hindi/ApplicantBiometricsPageHindi.java | 130 +- .../pages/hindi/AuthenticationPageHindi.java | 33 +- .../hindi/BiometricDetailsPageHindi.java | 138 +- .../pages/hindi/ConsentPageHindi.java | 33 +- .../pages/hindi/DashboardPageHindi.java | 32 +- .../hindi/DemographicDetailsPageHindi.java | 747 ++++++-- .../hindi/IntroducerBiometricPageHindi.java | 4 + .../regclient/pages/hindi/LoginPageHindi.java | 28 +- .../hindi/ManageApplicationsPageHindi.java | 48 + .../pages/hindi/PendingApprovalHindi.java | 157 +- .../pages/hindi/PreviewPageHindi.java | 81 +- .../pages/hindi/ProfilePageHindi.java | 10 + .../hindi/RegistrationTasksPageHindi.java | 99 +- .../UpdateOperatorBiometricspageHindi.java | 308 ++-- .../kannada/AuthenticationPageKannada.java | 7 + .../kannada/BiometricDetailsPageKannada.java | 132 +- .../pages/kannada/ConsentPageKannada.java | 41 +- .../DemographicDetailsPageKannada.java | 744 ++++++-- .../IntroducerBiometricPageKannada.java | 4 + .../pages/kannada/LoginPageKannada.java | 33 +- .../ManageApplicationsPageKannada.java | 48 + .../pages/kannada/PendingApprovalKannada.java | 164 +- .../pages/kannada/PreviewPageKannada.java | 83 +- .../pages/kannada/ProfilePageKannada.java | 36 +- .../kannada/RegistrationTasksPageKannada.java | 99 +- .../UpdateOperatorBiometricspageKannada.java | 306 ++-- .../pages/tamil/AuthenticationPageTamil.java | 7 + .../tamil/BiometricDetailsPageTamil.java | 131 +- .../pages/tamil/ConsentPageTamil.java | 41 +- .../tamil/DemographicDetailsPageTamil.java | 749 ++++++-- .../tamil/IntroducerBiometricPageTamil.java | 4 + .../regclient/pages/tamil/LoginPageTamil.java | 33 +- .../tamil/ManageApplicationsPageTamil.java | 48 + .../pages/tamil/PendingApprovalTamil.java | 162 +- .../pages/tamil/PreviewPageTamil.java | 84 +- .../pages/tamil/ProfilePageTamil.java | 36 +- .../tamil/RegistrationTasksPageTamil.java | 95 +- .../UpdateOperatorBiometricspageTamil.java | 306 ++-- .../java/regclient/utils/TestDataReader.java | 10 + .../main/java/regclient/utils/TestRunner.java | 97 +- .../main/resources/DesiredCapabilities.json | 18 +- ui-test/src/main/resources/config.properties | 2 +- .../main/resources/config/Kernel.properties | 46 +- .../idaData/createPrereg/createPrereg.yml | 23 + ui-test/src/main/resources/testdata.json | 20 +- ui-test/testng.xml | 25 + 174 files changed, 18817 insertions(+), 10062 deletions(-) create mode 100644 ui-test/dependency-reduced-pom.xml create mode 100644 ui-test/src/main/java/regclient/androidTestCases/BiometricCorrection.java rename ui-test/src/main/java/regclient/androidTestCases/{IntialLunch.java => InitialLaunch.java} (89%) create mode 100644 ui-test/src/main/java/regclient/androidTestCases/LostUin.java create mode 100644 ui-test/src/main/java/regclient/androidTestCases/PreRegFetchingPacket.java create mode 100644 ui-test/src/main/java/regclient/androidTestCases/ResetPassword.java create mode 100644 ui-test/src/main/java/regclient/androidTestCases/Settings.java create mode 100644 ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinUpdateDocuments.java create mode 100644 ui-test/src/main/java/regclient/page/KeycloakPage.java create mode 100644 ui-test/src/main/java/regclient/page/MockSBIPage.java create mode 100644 ui-test/src/main/java/regclient/page/SettingsPage.java create mode 100644 ui-test/src/main/java/regclient/pages/english/KeycloakPageEnglish.java create mode 100644 ui-test/src/main/java/regclient/pages/english/SettingsPageEnglish.java create mode 100644 ui-test/src/main/resources/idaData/createPrereg/createPrereg.yml diff --git a/ui-test/dependency-reduced-pom.xml b/ui-test/dependency-reduced-pom.xml new file mode 100644 index 000000000..07436c47f --- /dev/null +++ b/ui-test/dependency-reduced-pom.xml @@ -0,0 +1,67 @@ + + + 4.0.0 + io.mosip.regclient + uitest-regclient + uitest-regclient + 0.0.1 + Parent project of MOSIP regclient mobile automation + https://github.com/mosip/android-registration-client + + + + maven-compiler-plugin + 3.10.1 + + ${maven.compiler.source} + ${maven.compiler.target} + + + + maven-jar-plugin + 3.2.0 + + + + regclient.utils.TestRunner + + + + + + maven-shade-plugin + 3.3.0 + + + package + + shade + + + + + *:* + + META-INF/*.SF + META-INF/*.DSA + META-INF/*.RSA + + + + + + regclient.utils.TestRunner + + + + + + + + + + 21 + 21 + UTF-8 + + diff --git a/ui-test/pom.xml b/ui-test/pom.xml index 3354d6a58..a5bf8f695 100644 --- a/ui-test/pom.xml +++ b/ui-test/pom.xml @@ -180,6 +180,11 @@ resteasy-jackson2-provider 3.15.0.Final + + io.mosip.preregistration + apitest-prereg + 1.3.0-beta.1 + org.jboss.resteasy resteasy-jaxb-provider diff --git a/ui-test/src/main/java/regclient/BaseTest/AndroidBaseTest.java b/ui-test/src/main/java/regclient/BaseTest/AndroidBaseTest.java index 604337fa4..2f8cbcc8d 100644 --- a/ui-test/src/main/java/regclient/BaseTest/AndroidBaseTest.java +++ b/ui-test/src/main/java/regclient/BaseTest/AndroidBaseTest.java @@ -6,7 +6,6 @@ import regclient.driver.DriverManager; - public class AndroidBaseTest extends BaseTest { @BeforeMethod(alwaysRun = true) public void setup() { diff --git a/ui-test/src/main/java/regclient/BaseTest/BaseTest.java b/ui-test/src/main/java/regclient/BaseTest/BaseTest.java index 75b8c14a9..c1dfe7ab8 100644 --- a/ui-test/src/main/java/regclient/BaseTest/BaseTest.java +++ b/ui-test/src/main/java/regclient/BaseTest/BaseTest.java @@ -1,6 +1,5 @@ package regclient.BaseTest; - import io.appium.java_client.AppiumDriver; import regclient.driver.DriverManager; @@ -8,16 +7,16 @@ import org.testng.annotations.BeforeSuite; public class BaseTest { - protected AppiumDriver driver; + protected AppiumDriver driver; - @BeforeSuite(alwaysRun = true) - public void beforeSuite() { - DriverManager.startAppiumServer(); - } + @BeforeSuite(alwaysRun = true) + public void beforeSuite() { + DriverManager.startAppiumServer(); + } - @AfterSuite(alwaysRun = true) - public void afterSuite() { - DriverManager.stopAppiumServer(); - } + @AfterSuite(alwaysRun = true) + public void afterSuite() { + DriverManager.stopAppiumServer(); + } } \ No newline at end of file diff --git a/ui-test/src/main/java/regclient/androidTestCases/AddMachineDetails.java b/ui-test/src/main/java/regclient/androidTestCases/AddMachineDetails.java index cb1bed1da..e7a6334bc 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/AddMachineDetails.java +++ b/ui-test/src/main/java/regclient/androidTestCases/AddMachineDetails.java @@ -1,6 +1,7 @@ package regclient.androidTestCases; import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertTrue; import java.awt.datatransfer.UnsupportedFlavorException; import java.io.IOException; @@ -14,28 +15,36 @@ import regclient.page.BasePage; import regclient.pages.english.LoginPageEnglish; +public class AddMachineDetails extends AndroidBaseTest { -public class AddMachineDetails extends AndroidBaseTest{ - @Test - public void addMachineDetails() throws UnsupportedFlavorException, IOException { - + public void addMachineDetails() { + BasePage.disableAutoRotation(); - LoginPageEnglish loginPage= new LoginPageEnglish(driver); -// assertTrue(loginPage.isWelcomeMessageInSelectedLanguageDisplayed(), "verify if the welcome msg in selected language displayed"); + LoginPageEnglish loginPage = new LoginPageEnglish(driver); + + assertTrue(loginPage.isWelcomeMessageInSelectedLanguageDisplayed(), + "verify if the welcome msg in selected language displayed"); + loginPage.enterUserName(KeycloakUserManager.moduleSpecificUser); - loginPage.clickOnNextButton(); + assertTrue(loginPage.isNextButtonEnabled(), "verify if the next button enabled"); + loginPage.clickOnNextButton(); loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); + + assertTrue(loginPage.isLoginButtonEnabled(), "Verify if the login button enabled"); loginPage.clickOnloginButton(); - -// assertTrue(loginPage.isMachineNotFoundMessageDisplayed(), "verify if the machine not found message displayed"); + assertTrue(loginPage.isMachineNotFoundMessageDisplayed(), "verify if machine not found displayed"); + loginPage.clickandHold(); + assertTrue(loginPage.isCopyTextPopupDisplayed(), "verify if copy text popup displayed"); + loginPage.clickOnCopyTextButton(); loginPage.getMachineDetails(); - String id=AdminTestUtil.creteaMachine(BasePage.getSignPublicKey(),BasePage.getPublicKey(),BasePage.getName()); - String responce=AdminTestUtil.activateMachine(id); - assertEquals(responce, "Status updated successfully for machine","verify if machine is created or not "); + String id = AdminTestUtil.creteaMachine(BasePage.getSignPublicKey(), BasePage.getPublicKey(), + BasePage.getName()); + String responce = AdminTestUtil.activateMachine(id); + assertEquals(responce, "Status updated successfully for machine", "verify if machine is created or not "); } diff --git a/ui-test/src/main/java/regclient/androidTestCases/BiometricCorrection.java b/ui-test/src/main/java/regclient/androidTestCases/BiometricCorrection.java new file mode 100644 index 000000000..041d8a78b --- /dev/null +++ b/ui-test/src/main/java/regclient/androidTestCases/BiometricCorrection.java @@ -0,0 +1,908 @@ +package regclient.androidTestCases; + +import static org.testng.Assert.assertTrue; + +import java.util.List; +import java.util.Map; + +import org.openqa.selenium.By; +import org.openqa.selenium.WebElement; +import org.testng.annotations.Test; + +import io.appium.java_client.android.AndroidDriver; +import regclient.BaseTest.AndroidBaseTest; +import regclient.api.ArcConfigManager; +import regclient.api.FetchUiSpec; +import regclient.api.KeycloakUserManager; +import regclient.page.AcknowledgementPage; +import regclient.page.ApplicantBiometricsPage; +import regclient.page.AuthenticationPage; +import regclient.page.BasePage; +import regclient.page.BiometricDetailsPage; +import regclient.page.ConsentPage; +import regclient.page.DemographicDetailsPage; +import regclient.page.DocumentUploadPage; +import regclient.page.LoginPage; +import regclient.page.ManageApplicationsPage; +import regclient.page.MockSBIPage; +import regclient.page.OperationalTaskPage; +import regclient.page.PendingApproval; +import regclient.page.PreviewPage; +import regclient.page.ProfilePage; +import regclient.page.RegistrationTasksPage; +import regclient.page.SelectLanguagePage; +import regclient.page.SettingsPage; +import regclient.pages.arabic.AcknowledgementPageArabic; +import regclient.pages.arabic.ApplicantBiometricsPageArabic; +import regclient.pages.arabic.AuthenticationPageArabic; +import regclient.pages.arabic.BiometricDetailsPageArabic; +import regclient.pages.arabic.ConsentPageArabic; +import regclient.pages.arabic.DemographicDetailsPageArabic; +import regclient.pages.arabic.DocumentuploadPageArabic; +import regclient.pages.arabic.LoginPageArabic; +import regclient.pages.arabic.ManageApplicationsPageArabic; +import regclient.pages.arabic.OperationalTaskPageArabic; +import regclient.pages.arabic.PendingApprovalArabic; +import regclient.pages.arabic.PreviewPageArabic; +import regclient.pages.arabic.ProfilePageArabic; +import regclient.pages.arabic.RegistrationTasksPageArabic; +import regclient.pages.arabic.SelectLanguagePageArabic; +import regclient.pages.english.AcknowledgementPageEnglish; +import regclient.pages.english.ApplicantBiometricsPageEnglish; +import regclient.pages.english.AuthenticationPageEnglish; +import regclient.pages.english.BiometricDetailsPageEnglish; +import regclient.pages.english.ConsentPageEnglish; +import regclient.pages.english.DemographicDetailsPageEnglish; +import regclient.pages.english.DocumentuploadPageEnglish; +import regclient.pages.english.LoginPageEnglish; +import regclient.pages.english.ManageApplicationsPageEnglish; +import regclient.pages.english.OperationalTaskPageEnglish; +import regclient.pages.english.PendingApprovalEnglish; +import regclient.pages.english.PreviewPageEnglish; +import regclient.pages.english.ProfilePageEnglish; +import regclient.pages.english.RegistrationTasksPageEnglish; +import regclient.pages.english.SelectLanguagePageEnglish; +import regclient.pages.french.AcknowledgementPageFrench; +import regclient.pages.french.ApplicantBiometricsPageFrench; +import regclient.pages.french.AuthenticationPageFrench; +import regclient.pages.french.BiometricDetailsPageFrench; +import regclient.pages.french.ConsentPageFrench; +import regclient.pages.french.DemographicDetailsPageFrench; +import regclient.pages.french.DocumentUploadPageFrench; +import regclient.pages.french.LoginPageFrench; +import regclient.pages.french.ManageApplicationsPageFrench; +import regclient.pages.french.OperationalTaskPageFrench; +import regclient.pages.french.PendingApprovalFrench; +import regclient.pages.french.PreviewPageFrench; +import regclient.pages.french.ProfilePageFrench; +import regclient.pages.french.RegistrationTasksPageFrench; +import regclient.pages.french.SelectLanguagePageFrench; +import regclient.pages.hindi.AcknowledgementPageHindi; +import regclient.pages.hindi.ApplicantBiometricsPageHindi; +import regclient.pages.hindi.AuthenticationPageHindi; +import regclient.pages.hindi.BiometricDetailsPageHindi; +import regclient.pages.hindi.ConsentPageHindi; +import regclient.pages.hindi.DemographicDetailsPageHindi; +import regclient.pages.hindi.DocumentUploadPageHindi; +import regclient.pages.hindi.LoginPageHindi; +import regclient.pages.hindi.ManageApplicationsPageHindi; +import regclient.pages.hindi.OperationalTaskPageHindi; +import regclient.pages.hindi.PendingApprovalHindi; +import regclient.pages.hindi.PreviewPageHindi; +import regclient.pages.hindi.ProfilePageHindi; +import regclient.pages.hindi.RegistrationTasksPageHindi; +import regclient.pages.hindi.SelectLanguagePageHindi; +import regclient.pages.kannada.AcknowledgementPageKannada; +import regclient.pages.kannada.ApplicantBiometricsPageKannada; +import regclient.pages.kannada.AuthenticationPageKannada; +import regclient.pages.kannada.BiometricDetailsPageKannada; +import regclient.pages.kannada.ConsentPageKannada; +import regclient.pages.kannada.DemographicDetailsPageKannada; +import regclient.pages.kannada.DocumentuploadPageKannada; +import regclient.pages.kannada.LoginPageKannada; +import regclient.pages.kannada.ManageApplicationsPageKannada; +import regclient.pages.kannada.OperationalTaskPageKannada; +import regclient.pages.kannada.PendingApprovalKannada; +import regclient.pages.kannada.PreviewPageKannada; +import regclient.pages.kannada.ProfilePageKannada; +import regclient.pages.kannada.RegistrationTasksPageKannada; +import regclient.pages.kannada.SelectLanguagePageKannada; +import regclient.pages.tamil.AcknowledgementPageTamil; +import regclient.pages.tamil.ApplicantBiometricsPageTamil; +import regclient.pages.tamil.AuthenticationPageTamil; +import regclient.pages.tamil.BiometricDetailsPageTamil; +import regclient.pages.tamil.ConsentPageTamil; +import regclient.pages.tamil.DemographicDetailsPageTamil; +import regclient.pages.tamil.DocumentuploadPageTamil; +import regclient.pages.tamil.LoginPageTamil; +import regclient.pages.tamil.ManageApplicationsPageTamil; +import regclient.pages.tamil.OperationalTaskPageTamil; +import regclient.pages.tamil.PendingApprovalTamil; +import regclient.pages.tamil.PreviewPageTamil; +import regclient.pages.tamil.ProfilePageTamil; +import regclient.pages.tamil.RegistrationTasksPageTamil; +import regclient.pages.tamil.SelectLanguagePageTamil; +import regclient.utils.TestDataReader; + +public class BiometricCorrection extends AndroidBaseTest { + + @Test + public void biometricCorrection() throws InterruptedException { + + BasePage.disableAutoRotation(); + List screenOrder = FetchUiSpec.getAllScreenOrder(); + LoginPage loginPage = null; + RegistrationTasksPage registrationTasksPage = null; + SelectLanguagePage selectLanguagePage = null; + ConsentPage consentPage = null; + DemographicDetailsPage demographicPage = null; + DocumentUploadPage documentuploadPage = null; + BiometricDetailsPage biometricDetailsPage = null; + ApplicantBiometricsPage applicantBiometricsPage = null; + PreviewPage previewPage = null; + AuthenticationPage authenticationPage = null; + AcknowledgementPage acknowledgementPage = null; + OperationalTaskPage operationalTaskPage = null; + PendingApproval pendingApproval = null; + ManageApplicationsPage manageApplicationsPage = null; + ProfilePage profilePage = null; + + // Navigate to mocksbi page + MockSBIPage mockSBIPage = new MockSBIPage(driver); + mockSBIPage.switchToMockSBI(); + mockSBIPage.setAllModalityLowScroe(); + mockSBIPage.switchBackToArcApp(); + + // New registration with low biometric score + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + loginPage = new LoginPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + loginPage = new LoginPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + loginPage = new LoginPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + loginPage = new LoginPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + loginPage = new LoginPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + loginPage = new LoginPageArabic(driver); + } + loginPage.selectLanguage(); + + assertTrue(loginPage.isWelcomeMessageInSelectedLanguageDisplayed(), + "verify if the welcome msg in selected language displayed"); + loginPage.enterUserName(KeycloakUserManager.moduleSpecificUser); + loginPage.clickOnNextButton(); + + loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); + loginPage.clickOnloginButton(); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + registrationTasksPage = new RegistrationTasksPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + registrationTasksPage = new RegistrationTasksPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + registrationTasksPage = new RegistrationTasksPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + registrationTasksPage = new RegistrationTasksPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + registrationTasksPage = new RegistrationTasksPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + registrationTasksPage = new RegistrationTasksPageArabic(driver); + } + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + registrationTasksPage.clickOnNewRegistrationButton(); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + selectLanguagePage = new SelectLanguagePageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + selectLanguagePage = new SelectLanguagePageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + selectLanguagePage = new SelectLanguagePageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + selectLanguagePage = new SelectLanguagePageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + selectLanguagePage = new SelectLanguagePageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + selectLanguagePage = new SelectLanguagePageArabic(driver); + } + assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), "Verify if select language page is loaded"); + selectLanguagePage.clickOnSubmitButtonWithoutSelectingLanguage(); + + assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), + "Verify if user should not be allow to navigate to next screen."); + selectLanguagePage.selectSecondLanguage(); + + assertTrue(selectLanguagePage.isNotificationLanguageEnglishDisplayed(), + "verify if the notification language display in english"); + selectLanguagePage.selectNotificationlanguage(TestDataReader.readData("notificationLanguage")); + + assertTrue(selectLanguagePage.isSubmitButtonEnabled(), "verify if the submit button enabled"); + selectLanguagePage.clickOnSubmitButton(); + for (String screen : screenOrder) { + if (screen.equals("consentdet") || screen.equals("consent")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + consentPage = new ConsentPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + consentPage = new ConsentPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + consentPage = new ConsentPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + consentPage = new ConsentPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + consentPage = new ConsentPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + consentPage = new ConsentPageArabic(driver); + } + consentPage.clickOnInformedButton(); + } else if (screen.equals("DemographicDetails")) { + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + demographicPage = new DemographicDetailsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + demographicPage = new DemographicDetailsPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + demographicPage = new DemographicDetailsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + demographicPage = new DemographicDetailsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + demographicPage = new DemographicDetailsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + demographicPage = new DemographicDetailsPageArabic(driver); + } + assertTrue(demographicPage.isPageDisplayed("DemographicDetails"), + "Verify if demographic details page is displayed"); + + demographicPage.fillDemographicDetailsPage("adult"); + + demographicPage.clickOnContinueButton(); + } else if (screen.equals("Documents")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + documentuploadPage = new DocumentuploadPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + documentuploadPage = new DocumentUploadPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + documentuploadPage = new DocumentUploadPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + documentuploadPage = new DocumentuploadPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + documentuploadPage = new DocumentuploadPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + documentuploadPage = new DocumentuploadPageArabic(driver); + } + assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(), + "Verify if doccumentupload page is displayed"); + documentuploadPage.uploadDoccuments("adult", "ReferenceNumber"); + documentuploadPage.clickOnContinueButton(); + + } else if (screen.equals("BiometricDetails")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + biometricDetailsPage = new BiometricDetailsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + biometricDetailsPage = new BiometricDetailsPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + biometricDetailsPage = new BiometricDetailsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + biometricDetailsPage = new BiometricDetailsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + biometricDetailsPage = new BiometricDetailsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + biometricDetailsPage = new BiometricDetailsPageArabic(driver); + } + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); + } + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + if (FetchUiSpec.eye.equals("yes")) { + biometricDetailsPage.clickOnIrisScan(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + + applicantBiometricsPage.clickOnScanButton(); + assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 2nd attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + + applicantBiometricsPage.clickOnScanButton(); + assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 3rd attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + } + // righthand + if (FetchUiSpec.rightHand.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnRightHandScanIcon(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isRightHandScan(), "Verify if right hand scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + } + // lefthand + if (FetchUiSpec.leftHand.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnLeftHandScanIcon(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isLeftHandScan(), "Verify if Left hand scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + } + // thumb + if (FetchUiSpec.thumb.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnThumbsScanIcon(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isThumbsScan(), "Verify if thumbs scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + } + // face + if (FetchUiSpec.face.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + biometricDetailsPage.clickOnFaceScanIcon(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isFaceScan(), "Verify if face scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + + applicantBiometricsPage.clickOnScanButton(); + assertTrue(applicantBiometricsPage.isFaceScan(), "Verify if face scan 2nd attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + + applicantBiometricsPage.clickOnScanButton(); + assertTrue(applicantBiometricsPage.isFaceScan(), "Verify if face scan 3rd attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + + applicantBiometricsPage.clickOnBackButton(); + } + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + biometricDetailsPage.clickOnContinueButton(); + } + } + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + previewPage = new PreviewPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + previewPage = new PreviewPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + previewPage = new PreviewPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + previewPage = new PreviewPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + previewPage = new PreviewPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + previewPage = new PreviewPageArabic(driver); + } + + assertTrue(previewPage.isNewRegistrationTitleDisplayed(), "Verify if new Registration title is displayed"); + assertTrue(previewPage.isApplicationIDPreviewPagePageDisplayed(), + "Verify if application ID In PreviewPage is displayed"); + assertTrue(previewPage.isDemographicInformationInPreviewPageDisplayed(), + "Verify if Demographic Information In PreviewPage is displayed"); + assertTrue(previewPage.isDocumentsInformationInPreviewPageDisplayed(), + "Verify if Documents Information In PreviewPage is displayed"); +// assertTrue(previewPage.isBiometricsInformationInPreviewPagePageDisplayed(),"Verify if Biometrics Information In PreviewPage is displayed"); + String Aid = previewPage.getAID(); + String emailId = previewPage.getEmailId(); + previewPage.clickOnContinueButton(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + authenticationPage = new AuthenticationPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + authenticationPage = new AuthenticationPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + authenticationPage = new AuthenticationPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + authenticationPage = new AuthenticationPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + authenticationPage = new AuthenticationPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + authenticationPage = new AuthenticationPageArabic(driver); + } + assertTrue(authenticationPage.isAuthenticationPageDisplayed(), + "Verify if authentication details page is displayed"); + authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); + authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); + authenticationPage.clickOnAuthenticatenButton(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + acknowledgementPage = new AcknowledgementPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + acknowledgementPage = new AcknowledgementPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + acknowledgementPage = new AcknowledgementPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + acknowledgementPage = new AcknowledgementPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + acknowledgementPage = new AcknowledgementPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + acknowledgementPage = new AcknowledgementPageArabic(driver); + } + assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(), + "Verify if acknowledgement details page is displayed"); + + // assertTrue(acknowledgementPage.isQrCodeImageDisplayed(),"Verify if qr code + // image is displayed"); + acknowledgementPage.clickOnGoToHomeButton(); + + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + registrationTasksPage.clickOnOperationalTasksTitle(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + operationalTaskPage = new OperationalTaskPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + operationalTaskPage = new OperationalTaskPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + operationalTaskPage = new OperationalTaskPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + operationalTaskPage = new OperationalTaskPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + operationalTaskPage = new OperationalTaskPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + operationalTaskPage = new OperationalTaskPageArabic(driver); + } + assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); + assertTrue(operationalTaskPage.isPendingApprovalTitleDisplayed(), "Verify if pending approval tite displayed"); + operationalTaskPage.clickPendingApprovalTitle(); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + pendingApproval = new PendingApprovalEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + pendingApproval = new PendingApprovalHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + pendingApproval = new PendingApprovalFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + pendingApproval = new PendingApprovalKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + pendingApproval = new PendingApprovalTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + pendingApproval = new PendingApprovalArabic(driver); + } + assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed"); + pendingApproval.enterAID(Aid); + assertTrue(pendingApproval.isNumberOfApplicationDisplayed(), "Verify if no. of pending approval display"); + pendingApproval.clickOnAID(Aid); + + assertTrue(pendingApproval.isApprovalButtonDisplayed(), "Verify if approval button displayed"); + pendingApproval.clickOnApproveButton(); + pendingApproval.clickOnClosePopUpButton(); + + assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), + "Verify if pending approval page displayed after approving packet"); + pendingApproval.clickOnCheckBox(); + + assertTrue(pendingApproval.isAuthenticateButtonEnabled(), + "Verify if authenticate button is enable after selecting packet"); + + boolean isPageDisplayed = false; + for (int i = 0; i < 3; i++) { + pendingApproval.clickOnAuthenticateButton(); + Thread.sleep(2000); + if (pendingApproval.isSupervisorAuthenticationTitleDisplayed()) { + isPageDisplayed = true; + break; + } + } + assertTrue(isPageDisplayed, "Supervisor Authentication page not displayed after retries"); + + pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser); + + pendingApproval.enterPassword(ArcConfigManager.getIAMUsersPassword()); + pendingApproval.clickOnSubmitButton(); + pendingApproval.clickOnBackButton(); + assertTrue(operationalTaskPage.isApplicationUploadTitleDisplayed(), + "Verify if application upload tite displayed"); + + operationalTaskPage.clickApplicationUploadTitle(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + manageApplicationsPage = new ManageApplicationsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + manageApplicationsPage = new ManageApplicationsPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + manageApplicationsPage = new ManageApplicationsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + manageApplicationsPage = new ManageApplicationsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + manageApplicationsPage = new ManageApplicationsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + manageApplicationsPage = new ManageApplicationsPageArabic(driver); + } + assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), + "Verify if manage Applications Page displayed"); + manageApplicationsPage.enterAID(Aid); + + assertTrue(manageApplicationsPage.isSearchAIDDisplayed(Aid), "Verify if Search Aid should displayed"); + manageApplicationsPage.selectApprovedValueDropdown(); + + assertTrue(manageApplicationsPage.isPacketApproved(Aid), "Verify if Filtre packet is approved "); + manageApplicationsPage.clickOnSearchCheckBox(); + for (int i = 0; i < 3; i++) { + manageApplicationsPage.clickOnUploadButton(); + Thread.sleep(2000); + if (!manageApplicationsPage.isNoNetworkFoundDisplayed()) + break; + } + manageApplicationsPage.clickOnBackButton(); + + // Return to mocksbi page + mockSBIPage.switchToMockSBI(); + mockSBIPage.setAllModalityHighScroe(); + mockSBIPage.switchBackToArcApp(); + + // Biometric correction packet process + assertTrue(registrationTasksPage.isOperationalTaskDisplayed(), "Verify if operation tasks page is loaded"); + + registrationTasksPage.clickOnRegistrationTasksTab(); + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + + assertTrue(registrationTasksPage.isBiometricCorrectionTitleDisplayed(), + "Verify if biometric correction is displayed"); + registrationTasksPage.clickOnBiometricCorrectionButton(); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + selectLanguagePage = new SelectLanguagePageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + selectLanguagePage = new SelectLanguagePageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + selectLanguagePage = new SelectLanguagePageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + selectLanguagePage = new SelectLanguagePageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + selectLanguagePage = new SelectLanguagePageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + selectLanguagePage = new SelectLanguagePageArabic(driver); + } + assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), "Verify if select language page is loaded"); + selectLanguagePage.clickOnSubmitButtonWithoutSelectingLanguage(); + + assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), + "Verify if user should not be allow to navigate to next screen."); + selectLanguagePage.selectSecondLanguage(); + + assertTrue(selectLanguagePage.isNotificationLanguageEnglishDisplayed(), + "verify if the notification language display in english"); + selectLanguagePage.selectNotificationlanguage(TestDataReader.readData("notificationLanguage")); + + assertTrue(selectLanguagePage.isSubmitButtonEnabled(), "verify if the submit button enabled"); + selectLanguagePage.clickOnSubmitButton(); + for (String screen : screenOrder) { + if (screen.equals("consentdet") || screen.equals("consent")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + consentPage = new ConsentPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + consentPage = new ConsentPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + consentPage = new ConsentPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + consentPage = new ConsentPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + consentPage = new ConsentPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + consentPage = new ConsentPageArabic(driver); + } + assertTrue(consentPage.isPageDisplayed("consentdet"), "Verify if Consent page is loaded"); + consentPage.clickOnInformedButton(); + + } else if (screen.equals("BiometricDetails")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + biometricDetailsPage = new BiometricDetailsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + biometricDetailsPage = new BiometricDetailsPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + biometricDetailsPage = new BiometricDetailsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + biometricDetailsPage = new BiometricDetailsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + biometricDetailsPage = new BiometricDetailsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + biometricDetailsPage = new BiometricDetailsPageArabic(driver); + } + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); + } + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + + biometricDetailsPage.isAdditionalInfoRequestIdTextboxDisplayed(); + + biometricDetailsPage.enterAdditionalInfoUsingEmail(emailId); + + if (FetchUiSpec.eye.equals("yes")) { + biometricDetailsPage.clickOnIrisScan(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + + applicantBiometricsPage.clickOnScanButton(); + assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 2nd attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + + applicantBiometricsPage.clickOnScanButton(); + assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 3rd attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + } + // righthand + if (FetchUiSpec.rightHand.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnRightHandScanIcon(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isRightHandScan(), "Verify if right hand scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + } + // lefthand + if (FetchUiSpec.leftHand.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnLeftHandScanIcon(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isLeftHandScan(), "Verify if Left hand scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + } + // thumb + if (FetchUiSpec.thumb.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnThumbsScanIcon(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isThumbsScan(), "Verify if thumbs scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + } + // face + if (FetchUiSpec.face.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + biometricDetailsPage.clickOnFaceScanIcon(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isFaceScan(), "Verify if face scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + applicantBiometricsPage.clickOnBackButton(); + } + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + biometricDetailsPage.clickOnContinueButton(); + } + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + previewPage = new PreviewPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + previewPage = new PreviewPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + previewPage = new PreviewPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + previewPage = new PreviewPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + previewPage = new PreviewPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + previewPage = new PreviewPageArabic(driver); + } + } + + assertTrue(previewPage.isNewRegistrationTitleDisplayed(), "Verify if new Registration title is displayed"); + assertTrue(previewPage.isApplicationIDPreviewPagePageDisplayed(), + "Verify if application ID In PreviewPage is displayed"); + assertTrue(previewPage.isDemographicInformationInPreviewPageDisplayed(), + "Verify if Demographic Information In PreviewPage is displayed"); + assertTrue(previewPage.isDocumentsInformationInPreviewPageDisplayed(), + "Verify if Documents Information In PreviewPage is displayed"); +// assertTrue(previewPage.isBiometricsInformationInPreviewPagePageDisplayed(),"Verify if Biometrics Information In PreviewPage is displayed"); + previewPage.clickOnContinueButton(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + authenticationPage = new AuthenticationPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + authenticationPage = new AuthenticationPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + authenticationPage = new AuthenticationPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + authenticationPage = new AuthenticationPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + authenticationPage = new AuthenticationPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + authenticationPage = new AuthenticationPageArabic(driver); + } + assertTrue(authenticationPage.isAuthenticationPageDisplayed(), + "Verify if authentication details page is displayed"); + authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); + authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); + authenticationPage.clickOnAuthenticatenButton(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + acknowledgementPage = new AcknowledgementPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + acknowledgementPage = new AcknowledgementPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + acknowledgementPage = new AcknowledgementPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + acknowledgementPage = new AcknowledgementPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + acknowledgementPage = new AcknowledgementPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + acknowledgementPage = new AcknowledgementPageArabic(driver); + } + assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(), + "Verify if acknowledgement details page is displayed"); + + // assertTrue(acknowledgementPage.isQrCodeImageDisplayed(),"Verify if qr code + // image is displayed"); + acknowledgementPage.clickOnGoToHomeButton(); + + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + registrationTasksPage.clickOnOperationalTasksTitle(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + operationalTaskPage = new OperationalTaskPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + operationalTaskPage = new OperationalTaskPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + operationalTaskPage = new OperationalTaskPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + operationalTaskPage = new OperationalTaskPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + operationalTaskPage = new OperationalTaskPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + operationalTaskPage = new OperationalTaskPageArabic(driver); + } + assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); + assertTrue(operationalTaskPage.isPendingApprovalTitleDisplayed(), "Verify if pending approval tite displayed"); + operationalTaskPage.clickPendingApprovalTitle(); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + pendingApproval = new PendingApprovalEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + pendingApproval = new PendingApprovalHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + pendingApproval = new PendingApprovalFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + pendingApproval = new PendingApprovalKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + pendingApproval = new PendingApprovalTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + pendingApproval = new PendingApprovalArabic(driver); + } + assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed"); + pendingApproval.enterAID(Aid); + assertTrue(pendingApproval.isNumberOfApplicationDisplayed(), "Verify if no. of pending approval display"); + pendingApproval.clickOnAID(Aid); + + assertTrue(pendingApproval.isApprovalButtonDisplayed(), "Verify if approval button displayed"); + pendingApproval.clickOnApproveButton(); + pendingApproval.clickOnClosePopUpButton(); + + assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), + "Verify if pending approval page displayed after approving packet"); + pendingApproval.clickOnCheckBox(); + + assertTrue(pendingApproval.isAuthenticateButtonEnabled(), + "Verify if authenticate button is enable after selecting packet"); + + boolean isBioCorrectionAuthenticationPageDisplayed = false; + for (int i = 0; i < 3; i++) { + pendingApproval.clickOnAuthenticateButton(); + Thread.sleep(2000); + if (pendingApproval.isSupervisorAuthenticationTitleDisplayed()) { + isBioCorrectionAuthenticationPageDisplayed = true; + break; + } + } + assertTrue(isBioCorrectionAuthenticationPageDisplayed, + "Supervisor Authentication page not displayed after retries"); + + pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser); + + pendingApproval.enterPassword(ArcConfigManager.getIAMUsersPassword()); + pendingApproval.clickOnSubmitButton(); + pendingApproval.clickOnBackButton(); + assertTrue(operationalTaskPage.isApplicationUploadTitleDisplayed(), + "Verify if application upload tite displayed"); + + operationalTaskPage.clickApplicationUploadTitle(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + manageApplicationsPage = new ManageApplicationsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + manageApplicationsPage = new ManageApplicationsPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + manageApplicationsPage = new ManageApplicationsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + manageApplicationsPage = new ManageApplicationsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + manageApplicationsPage = new ManageApplicationsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + manageApplicationsPage = new ManageApplicationsPageArabic(driver); + } + assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), + "Verify if manage Applications Page displayed"); + manageApplicationsPage.enterAID(Aid); + + assertTrue(manageApplicationsPage.isSearchAIDDisplayed(Aid), "Verify if Search Aid should displayed"); + manageApplicationsPage.selectApprovedValueDropdown(); + + assertTrue(manageApplicationsPage.isPacketApproved(Aid), "Verify if Filtre packet is approved "); + manageApplicationsPage.clickOnSearchCheckBox(); + for (int i = 0; i < 3; i++) { + manageApplicationsPage.clickOnUploadButton(); + Thread.sleep(2000); + if (!manageApplicationsPage.isNoNetworkFoundDisplayed()) + break; + } + manageApplicationsPage.clickOnBackButton(); + + } + +} diff --git a/ui-test/src/main/java/regclient/androidTestCases/IntialLunch.java b/ui-test/src/main/java/regclient/androidTestCases/InitialLaunch.java similarity index 89% rename from ui-test/src/main/java/regclient/androidTestCases/IntialLunch.java rename to ui-test/src/main/java/regclient/androidTestCases/InitialLaunch.java index 7d4fa844f..61cd89374 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/IntialLunch.java +++ b/ui-test/src/main/java/regclient/androidTestCases/InitialLaunch.java @@ -10,12 +10,12 @@ import regclient.page.BasePage; import regclient.pages.english.LoginPageEnglish; -public class IntialLunch extends AndroidBaseTest { +public class InitialLaunch extends AndroidBaseTest { @Test - public void initallLaunch() { + public void initialLaunch() { BasePage.disableAutoRotation(); - LoginPageEnglish loginPage= new LoginPageEnglish(driver); + LoginPageEnglish loginPage = new LoginPageEnglish(driver); // assertTrue(loginPage.isWelcomeMessageInSelectedLanguageDisplayed(), "verify if the welcome msg in selected language displayed"); loginPage.enterUserName(KeycloakUserManager.moduleSpecificUser); @@ -30,7 +30,7 @@ public void initallLaunch() { assertTrue(loginPage.isLoginButtonEnabled(), "Verify if the login button enabled"); loginPage.clickOnloginButton(); - + assertTrue(loginPage.isSyncCompletedSuccessfullyMessageDisplayed(), "Verify if the sync is completed"); } diff --git a/ui-test/src/main/java/regclient/androidTestCases/LostUin.java b/ui-test/src/main/java/regclient/androidTestCases/LostUin.java new file mode 100644 index 000000000..035c1f16e --- /dev/null +++ b/ui-test/src/main/java/regclient/androidTestCases/LostUin.java @@ -0,0 +1,578 @@ +package regclient.androidTestCases; + +import static org.testng.Assert.assertTrue; + +import java.util.List; + +import org.testng.annotations.Test; + +import regclient.BaseTest.AndroidBaseTest; +import regclient.api.ArcConfigManager; +import regclient.api.FetchUiSpec; +import regclient.api.KeycloakUserManager; +import regclient.page.AcknowledgementPage; +import regclient.page.ApplicantBiometricsPage; +import regclient.page.AuthenticationPage; +import regclient.page.BasePage; +import regclient.page.BiometricDetailsPage; +import regclient.page.ConsentPage; +import regclient.page.DemographicDetailsPage; +import regclient.page.DocumentUploadPage; +import regclient.page.LoginPage; +import regclient.page.ManageApplicationsPage; +import regclient.page.OperationalTaskPage; +import regclient.page.PendingApproval; +import regclient.page.PreviewPage; +import regclient.page.ProfilePage; +import regclient.page.RegistrationTasksPage; +import regclient.page.SelectLanguagePage; +import regclient.pages.arabic.AcknowledgementPageArabic; +import regclient.pages.arabic.ApplicantBiometricsPageArabic; +import regclient.pages.arabic.AuthenticationPageArabic; +import regclient.pages.arabic.BiometricDetailsPageArabic; +import regclient.pages.arabic.ConsentPageArabic; +import regclient.pages.arabic.DemographicDetailsPageArabic; +import regclient.pages.arabic.DocumentuploadPageArabic; +import regclient.pages.arabic.LoginPageArabic; +import regclient.pages.arabic.ManageApplicationsPageArabic; +import regclient.pages.arabic.OperationalTaskPageArabic; +import regclient.pages.arabic.PendingApprovalArabic; +import regclient.pages.arabic.PreviewPageArabic; +import regclient.pages.arabic.ProfilePageArabic; +import regclient.pages.arabic.RegistrationTasksPageArabic; +import regclient.pages.arabic.SelectLanguagePageArabic; +import regclient.pages.english.AcknowledgementPageEnglish; +import regclient.pages.english.ApplicantBiometricsPageEnglish; +import regclient.pages.english.AuthenticationPageEnglish; +import regclient.pages.english.BiometricDetailsPageEnglish; +import regclient.pages.english.ConsentPageEnglish; +import regclient.pages.english.DemographicDetailsPageEnglish; +import regclient.pages.english.DocumentuploadPageEnglish; +import regclient.pages.english.LoginPageEnglish; +import regclient.pages.english.ManageApplicationsPageEnglish; +import regclient.pages.english.OperationalTaskPageEnglish; +import regclient.pages.english.PendingApprovalEnglish; +import regclient.pages.english.PreviewPageEnglish; +import regclient.pages.english.ProfilePageEnglish; +import regclient.pages.english.RegistrationTasksPageEnglish; +import regclient.pages.english.SelectLanguagePageEnglish; +import regclient.pages.french.AcknowledgementPageFrench; +import regclient.pages.french.ApplicantBiometricsPageFrench; +import regclient.pages.french.AuthenticationPageFrench; +import regclient.pages.french.BiometricDetailsPageFrench; +import regclient.pages.french.ConsentPageFrench; +import regclient.pages.french.DemographicDetailsPageFrench; +import regclient.pages.french.DocumentUploadPageFrench; +import regclient.pages.french.LoginPageFrench; +import regclient.pages.french.ManageApplicationsPageFrench; +import regclient.pages.french.OperationalTaskPageFrench; +import regclient.pages.french.PendingApprovalFrench; +import regclient.pages.french.PreviewPageFrench; +import regclient.pages.french.ProfilePageFrench; +import regclient.pages.french.RegistrationTasksPageFrench; +import regclient.pages.french.SelectLanguagePageFrench; +import regclient.pages.hindi.AcknowledgementPageHindi; +import regclient.pages.hindi.ApplicantBiometricsPageHindi; +import regclient.pages.hindi.AuthenticationPageHindi; +import regclient.pages.hindi.BiometricDetailsPageHindi; +import regclient.pages.hindi.ConsentPageHindi; +import regclient.pages.hindi.DemographicDetailsPageHindi; +import regclient.pages.hindi.DocumentUploadPageHindi; +import regclient.pages.hindi.LoginPageHindi; +import regclient.pages.hindi.ManageApplicationsPageHindi; +import regclient.pages.hindi.OperationalTaskPageHindi; +import regclient.pages.hindi.PendingApprovalHindi; +import regclient.pages.hindi.PreviewPageHindi; +import regclient.pages.hindi.ProfilePageHindi; +import regclient.pages.hindi.RegistrationTasksPageHindi; +import regclient.pages.hindi.SelectLanguagePageHindi; +import regclient.pages.kannada.AcknowledgementPageKannada; +import regclient.pages.kannada.ApplicantBiometricsPageKannada; +import regclient.pages.kannada.AuthenticationPageKannada; +import regclient.pages.kannada.BiometricDetailsPageKannada; +import regclient.pages.kannada.ConsentPageKannada; +import regclient.pages.kannada.DemographicDetailsPageKannada; +import regclient.pages.kannada.DocumentuploadPageKannada; +import regclient.pages.kannada.LoginPageKannada; +import regclient.pages.kannada.ManageApplicationsPageKannada; +import regclient.pages.kannada.OperationalTaskPageKannada; +import regclient.pages.kannada.PendingApprovalKannada; +import regclient.pages.kannada.PreviewPageKannada; +import regclient.pages.kannada.ProfilePageKannada; +import regclient.pages.kannada.RegistrationTasksPageKannada; +import regclient.pages.kannada.SelectLanguagePageKannada; +import regclient.pages.tamil.AcknowledgementPageTamil; +import regclient.pages.tamil.ApplicantBiometricsPageTamil; +import regclient.pages.tamil.AuthenticationPageTamil; +import regclient.pages.tamil.BiometricDetailsPageTamil; +import regclient.pages.tamil.ConsentPageTamil; +import regclient.pages.tamil.DemographicDetailsPageTamil; +import regclient.pages.tamil.DocumentuploadPageTamil; +import regclient.pages.tamil.LoginPageTamil; +import regclient.pages.tamil.ManageApplicationsPageTamil; +import regclient.pages.tamil.OperationalTaskPageTamil; +import regclient.pages.tamil.PendingApprovalTamil; +import regclient.pages.tamil.PreviewPageTamil; +import regclient.pages.tamil.ProfilePageTamil; +import regclient.pages.tamil.RegistrationTasksPageTamil; +import regclient.pages.tamil.SelectLanguagePageTamil; +import regclient.utils.TestDataReader; + +public class LostUin extends AndroidBaseTest { + + @Test + public void lostUinAdult() { + BasePage.disableAutoRotation(); + FetchUiSpec.getUiSpec("newProcess"); + FetchUiSpec.getBiometricDetails("individualBiometrics"); + List screenOrder = FetchUiSpec.getAllScreenOrder(); + LoginPage loginPage = null; + RegistrationTasksPage registrationTasksPage = null; + SelectLanguagePage selectLanguagePage = null; + ConsentPage consentPage = null; + DemographicDetailsPage demographicPage = null; + DocumentUploadPage documentuploadPage = null; + BiometricDetailsPage biometricDetailsPage = null; + ApplicantBiometricsPage applicantBiometricsPage = null; + PreviewPage previewPage = null; + AuthenticationPage authenticationPage = null; + AcknowledgementPage acknowledgementPage = null; + OperationalTaskPage operationalTaskPage = null; + PendingApproval pendingApproval = null; + ManageApplicationsPage manageApplicationsPage = null; + ProfilePage profilePage = null; + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + loginPage = new LoginPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + loginPage = new LoginPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + loginPage = new LoginPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + loginPage = new LoginPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + loginPage = new LoginPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + loginPage = new LoginPageArabic(driver); + } + loginPage.selectLanguage(); + + assertTrue(loginPage.isWelcomeMessageInSelectedLanguageDisplayed(), + "verify if the welcome msg in selected language displayed"); + loginPage.enterUserName(KeycloakUserManager.moduleSpecificUser); + loginPage.clickOnNextButton(); + + loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); + loginPage.clickOnloginButton(); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + registrationTasksPage = new RegistrationTasksPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + registrationTasksPage = new RegistrationTasksPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + registrationTasksPage = new RegistrationTasksPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + registrationTasksPage = new RegistrationTasksPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + registrationTasksPage = new RegistrationTasksPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + registrationTasksPage = new RegistrationTasksPageArabic(driver); + } + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + registrationTasksPage.clickOnLostUinButton(); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + selectLanguagePage = new SelectLanguagePageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + selectLanguagePage = new SelectLanguagePageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + selectLanguagePage = new SelectLanguagePageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + selectLanguagePage = new SelectLanguagePageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + selectLanguagePage = new SelectLanguagePageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + selectLanguagePage = new SelectLanguagePageArabic(driver); + } + assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), "Verify if select language page is loaded"); + selectLanguagePage.clickOnSubmitButtonWithoutSelectingLanguage(); + + assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), + "Verify if user should not be allow to navigate to next screen."); + selectLanguagePage.selectSecondLanguage(); + + assertTrue(selectLanguagePage.isNotificationLanguageEnglishDisplayed(), + "verify if the notification language display in english"); + selectLanguagePage.selectNotificationlanguage(TestDataReader.readData("notificationLanguage")); + + assertTrue(selectLanguagePage.isSubmitButtonEnabled(), "verify if the submit button enabled"); + selectLanguagePage.clickOnSubmitButton(); + for (String screen : screenOrder) { + if (screen.equals("consentdet") || screen.equals("consent")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + consentPage = new ConsentPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + consentPage = new ConsentPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + consentPage = new ConsentPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + consentPage = new ConsentPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + consentPage = new ConsentPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + consentPage = new ConsentPageArabic(driver); + } + assertTrue(consentPage.isPageDisplayed("consentdet"), "Verify if Consent page is loaded"); +// assertTrue(consentPage.isCheckBoxReadable(), "Verify if the check box in readable"); + + assertTrue(consentPage.isInformedButtonEnabled(), "Verify if informed button enabled"); + consentPage.clickOnInformedButton(); + + } else if (screen.equals("DemographicDetails")) { + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + demographicPage = new DemographicDetailsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + demographicPage = new DemographicDetailsPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + demographicPage = new DemographicDetailsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + demographicPage = new DemographicDetailsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + demographicPage = new DemographicDetailsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + demographicPage = new DemographicDetailsPageArabic(driver); + } + assertTrue(demographicPage.isPageDisplayed("DemographicDetails"), + "Verify if demographic details page is displayed"); + + demographicPage.clickOnContinueButton(); + } else if (screen.equals("Documents")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + documentuploadPage = new DocumentuploadPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + documentuploadPage = new DocumentUploadPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + documentuploadPage = new DocumentUploadPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + documentuploadPage = new DocumentuploadPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + documentuploadPage = new DocumentuploadPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + documentuploadPage = new DocumentuploadPageArabic(driver); + } + assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(), + "Verify if doccumentupload page is displayed"); + documentuploadPage.clickOnContinueButton(); + + } else if (screen.equals("BiometricDetails")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + biometricDetailsPage = new BiometricDetailsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + biometricDetailsPage = new BiometricDetailsPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + biometricDetailsPage = new BiometricDetailsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + biometricDetailsPage = new BiometricDetailsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + biometricDetailsPage = new BiometricDetailsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + biometricDetailsPage = new BiometricDetailsPageArabic(driver); + } + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); + } + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + biometricDetailsPage.clickOnContinueButton(); + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + + if (FetchUiSpec.eye.equals("yes")) { + biometricDetailsPage.clickOnIrisScan(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + + applicantBiometricsPage.clickOnScanButton(); + assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 2nd attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + + applicantBiometricsPage.clickOnScanButton(); + assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 3rd attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + } + // righthand + if (FetchUiSpec.rightHand.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnRightHandScanIcon(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isRightHandScan(), "Verify if right hand scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + } + // lefthand + if (FetchUiSpec.leftHand.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnLeftHandScanIcon(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isLeftHandScan(), "Verify if Left hand scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + } + // thumb + if (FetchUiSpec.thumb.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnThumbsScanIcon(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isThumbsScan(), "Verify if thumbs scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + } + // face + if (FetchUiSpec.face.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + biometricDetailsPage.clickOnFaceScanIcon(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isFaceScan(), "Verify if face scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + applicantBiometricsPage.clickOnBackButton(); + } + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + biometricDetailsPage.clickOnContinueButton(); + } + } + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + previewPage = new PreviewPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + previewPage = new PreviewPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + previewPage = new PreviewPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + previewPage = new PreviewPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + previewPage = new PreviewPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + previewPage = new PreviewPageArabic(driver); + } + + assertTrue(previewPage.isLostUinTitleDisplayed(), "Verify if lost uin title is displayed"); + assertTrue(previewPage.isApplicationIDPreviewPagePageDisplayed(), + "Verify if application ID In PreviewPage is displayed"); + assertTrue(previewPage.isDemographicInformationInPreviewPageDisplayed(), + "Verify if Demographic Information In PreviewPage is displayed"); + assertTrue(previewPage.isDocumentsInformationInPreviewPageDisplayed(), + "Verify if Documents Information In PreviewPage is displayed"); + assertTrue(previewPage.isBiometricsInformationInPreviewPagePageDisplayed(), + "Verify if Biometrics Information In PreviewPage is displayed"); + String Aid = previewPage.getAID(); + previewPage.clickOnContinueButton(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + authenticationPage = new AuthenticationPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + authenticationPage = new AuthenticationPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + authenticationPage = new AuthenticationPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + authenticationPage = new AuthenticationPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + authenticationPage = new AuthenticationPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + authenticationPage = new AuthenticationPageArabic(driver); + } + assertTrue(authenticationPage.isAuthenticationPageDisplayed(), + "Verify if authentication details page is displayed"); + authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); + authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); + authenticationPage.clickOnAuthenticatenButton(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + acknowledgementPage = new AcknowledgementPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + acknowledgementPage = new AcknowledgementPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + acknowledgementPage = new AcknowledgementPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + acknowledgementPage = new AcknowledgementPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + acknowledgementPage = new AcknowledgementPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + acknowledgementPage = new AcknowledgementPageArabic(driver); + } + assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(), + "Verify if acknowledgement details page is displayed"); + + // assertTrue(acknowledgementPage.isQrCodeImageDisplayed(),"Verify if qr code + // image is displayed"); + acknowledgementPage.clickOnGoToHomeButton(); + + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + registrationTasksPage.clickOnOperationalTasksTitle(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + operationalTaskPage = new OperationalTaskPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + operationalTaskPage = new OperationalTaskPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + operationalTaskPage = new OperationalTaskPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + operationalTaskPage = new OperationalTaskPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + operationalTaskPage = new OperationalTaskPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + operationalTaskPage = new OperationalTaskPageArabic(driver); + } + assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); + assertTrue(operationalTaskPage.isPendingApprovalTitleDisplayed(), "Verify if pending approval tite displayed"); + operationalTaskPage.clickPendingApprovalTitle(); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + pendingApproval = new PendingApprovalEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + pendingApproval = new PendingApprovalHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + pendingApproval = new PendingApprovalFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + pendingApproval = new PendingApprovalKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + pendingApproval = new PendingApprovalTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + pendingApproval = new PendingApprovalArabic(driver); + } + assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed"); + pendingApproval.clickOnAID(Aid); + + assertTrue(pendingApproval.isApprovalButtonDisplayed(), "Verify if approval button displayed"); + pendingApproval.clickOnApproveButton(); + pendingApproval.clickOnClosePopUpButton(); + + assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), + "Verify if pending approval page displayed after approving packet"); + pendingApproval.clickOnCheckBox(); + + assertTrue(pendingApproval.isAuthenticateButtonEnabled(), + "Verify if authenticate button is enable after selecting packet"); + pendingApproval.clickOnAuthenticateButton(); + + assertTrue(pendingApproval.isSupervisorAuthenticationTitleDisplayed(), + "Verify if Supervisor Authentication page displayed"); + + pendingApproval.clickOnSubmitButton(); + assertTrue(pendingApproval.isInvalidemptyUsernameSumbitButtonEnbled(), + "Verify if error empty username submit button enabled"); + + pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser + "123"); + + assertTrue(pendingApproval.isInvalidUsernameMessageDisplayed(), + "Verify if invalid username messgae is displayed"); + pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser); + + pendingApproval.enterPassword(ArcConfigManager.getIAMUsersPassword()); + pendingApproval.clickOnSubmitButton(); + pendingApproval.clickOnBackButton(); + assertTrue(operationalTaskPage.isApplicationUploadTitleDisplayed(), + "Verify if application upload tite displayed"); + + operationalTaskPage.clickApplicationUploadTitle(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + manageApplicationsPage = new ManageApplicationsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + manageApplicationsPage = new ManageApplicationsPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + manageApplicationsPage = new ManageApplicationsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + manageApplicationsPage = new ManageApplicationsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + manageApplicationsPage = new ManageApplicationsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + manageApplicationsPage = new ManageApplicationsPageArabic(driver); + } + assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), + "Verify if manage Applications Page displayed"); + manageApplicationsPage.enterAID(Aid); + + assertTrue(manageApplicationsPage.isSearchAIDDisplayed(Aid), "Verify if Search Aid should displayed"); + manageApplicationsPage.selectApprovedValueDropdown(); + + assertTrue(manageApplicationsPage.isPacketApproved(Aid), "Verify if Filtre packet is approved "); + + assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), + "Verify if manage Applications Page displayed"); + manageApplicationsPage.enterAID(Aid); + + assertTrue(manageApplicationsPage.isSearchAIDDisplayed(Aid), "Verify if Search Aid should displayed"); + manageApplicationsPage.clickOnSearchCheckBox(); + manageApplicationsPage.clickOnUploadButton(); + + // assertTrue(manageApplicationsPage.isPacketUploadDone(Aid), "Verify if packet + // upload is done"); + manageApplicationsPage.clickOnBackButton(); + + assertTrue(registrationTasksPage.isProfileTitleDisplayed(), "Verify if profile title display on homepage"); + registrationTasksPage.clickProfileButton(); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + profilePage = new ProfilePageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + profilePage = new ProfilePageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + profilePage = new ProfilePageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + profilePage = new ProfilePageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + profilePage = new ProfilePageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + profilePage = new ProfilePageArabic(driver); + } + // assertTrue(profilePage.isProfileTitleDisplayed(),"Verify if profile title + // display on Profilepage"); + profilePage.clickOnLogoutButton(); + + profilePage.clickOnLogoutButton(); + + assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayeded in Selected language"); + } + +} diff --git a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdult.java b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdult.java index 2d3e505dc..e61737a65 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdult.java +++ b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdult.java @@ -5,6 +5,7 @@ import java.util.List; +import org.openqa.selenium.ScreenOrientation; import org.testng.annotations.Test; import regclient.BaseTest.AndroidBaseTest; @@ -125,456 +126,433 @@ import regclient.pages.tamil.RegistrationTasksPageTamil; import regclient.pages.tamil.SelectLanguagePageTamil; import regclient.utils.TestDataReader; +import io.appium.java_client.android.AndroidDriver; public class NewRegistrationAdult extends AndroidBaseTest { @Test - public void newRegistrationAdult(){ + public void newRegistrationAdult() throws InterruptedException { + BasePage.disableAutoRotation(); FetchUiSpec.getUiSpec("newProcess"); FetchUiSpec.getBiometricDetails("individualBiometrics"); - List screenOrder=FetchUiSpec.getAllScreenOrder(); + List screenOrder = FetchUiSpec.getAllScreenOrder(); LoginPage loginPage = null; - RegistrationTasksPage registrationTasksPage=null; - SelectLanguagePage selectLanguagePage=null; - ConsentPage consentPage=null; - DemographicDetailsPage demographicPage=null; - DocumentUploadPage documentuploadPage=null; - BiometricDetailsPage biometricDetailsPage=null; - ApplicantBiometricsPage applicantBiometricsPage=null; - PreviewPage previewPage=null; - AuthenticationPage authenticationPage=null; - AcknowledgementPage acknowledgementPage=null; - OperationalTaskPage operationalTaskPage=null; - PendingApproval pendingApproval=null; - ManageApplicationsPage manageApplicationsPage=null; - ProfilePage profilePage=null; - - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { + RegistrationTasksPage registrationTasksPage = null; + SelectLanguagePage selectLanguagePage = null; + ConsentPage consentPage = null; + DemographicDetailsPage demographicPage = null; + DocumentUploadPage documentuploadPage = null; + BiometricDetailsPage biometricDetailsPage = null; + ApplicantBiometricsPage applicantBiometricsPage = null; + PreviewPage previewPage = null; + AuthenticationPage authenticationPage = null; + AcknowledgementPage acknowledgementPage = null; + OperationalTaskPage operationalTaskPage = null; + PendingApproval pendingApproval = null; + ManageApplicationsPage manageApplicationsPage = null; + ProfilePage profilePage = null; + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { loginPage = new LoginPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { loginPage = new LoginPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { loginPage = new LoginPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { loginPage = new LoginPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { loginPage = new LoginPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { loginPage = new LoginPageArabic(driver); } loginPage.selectLanguage(); - assertTrue(loginPage.isWelcomeMessageInSelectedLanguageDisplayed(), "verify if the welcome msg in selected language displayed"); + assertTrue(loginPage.isWelcomeMessageInSelectedLanguageDisplayed(), + "verify if the welcome msg in selected language displayed"); loginPage.enterUserName(KeycloakUserManager.moduleSpecificUser); loginPage.clickOnNextButton(); loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); loginPage.clickOnloginButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - registrationTasksPage=new RegistrationTasksPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - registrationTasksPage=new RegistrationTasksPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - registrationTasksPage=new RegistrationTasksPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - registrationTasksPage=new RegistrationTasksPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - registrationTasksPage=new RegistrationTasksPageTamil(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + registrationTasksPage = new RegistrationTasksPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + registrationTasksPage = new RegistrationTasksPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + registrationTasksPage = new RegistrationTasksPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + registrationTasksPage = new RegistrationTasksPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + registrationTasksPage = new RegistrationTasksPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + registrationTasksPage = new RegistrationTasksPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - registrationTasksPage=new RegistrationTasksPageArabic(driver); - } - assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(),"Verify if registration tasks page is loaded"); + + registrationTasksPage.handleLocationPermission(); + + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + registrationTasksPage.clickOnNewRegistrationButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - selectLanguagePage=new SelectLanguagePageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - selectLanguagePage=new SelectLanguagePageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - selectLanguagePage=new SelectLanguagePageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - selectLanguagePage=new SelectLanguagePageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - selectLanguagePage=new SelectLanguagePageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - selectLanguagePage=new SelectLanguagePageArabic(driver); - } - assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(),"Verify if select language page is loaded"); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + selectLanguagePage = new SelectLanguagePageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + selectLanguagePage = new SelectLanguagePageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + selectLanguagePage = new SelectLanguagePageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + selectLanguagePage = new SelectLanguagePageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + selectLanguagePage = new SelectLanguagePageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + selectLanguagePage = new SelectLanguagePageArabic(driver); + } + assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), "Verify if select language page is loaded"); selectLanguagePage.clickOnSubmitButtonWithoutSelectingLanguage(); - assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(),"Verify if user should not be allow to navigate to next screen."); + assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), + "Verify if user should not be allow to navigate to next screen."); selectLanguagePage.selectSecondLanguage(); - assertTrue(selectLanguagePage.isNotificationLanguageEnglishDisplayed(),"verify if the notification language display in english"); + assertTrue(selectLanguagePage.isNotificationLanguageEnglishDisplayed(), + "verify if the notification language display in english"); selectLanguagePage.selectNotificationlanguage(TestDataReader.readData("notificationLanguage")); - assertTrue(selectLanguagePage.isSubmitButtonEnabled(),"verify if the submit button enabled"); + assertTrue(selectLanguagePage.isSubmitButtonEnabled(), "verify if the submit button enabled"); selectLanguagePage.clickOnSubmitButton(); - for(String screen :screenOrder) { - if(screen.equals("consentdet") || screen.equals("consent")) { - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - consentPage =new ConsentPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - consentPage =new ConsentPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - consentPage =new ConsentPageFrench(driver); + for (String screen : screenOrder) { + if (screen.equals("consentdet") || screen.equals("consent")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + consentPage = new ConsentPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + consentPage = new ConsentPageHindi(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - consentPage =new ConsentPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - consentPage =new ConsentPageTamil(driver); + + else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + consentPage = new ConsentPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + consentPage = new ConsentPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + consentPage = new ConsentPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + consentPage = new ConsentPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - consentPage =new ConsentPageArabic(driver); - } - assertTrue(consentPage.isConsentPageDisplayed(),"Verify if Consent page is loaded"); - assertTrue(consentPage.isCheckBoxReadable(),"Verify if the check box in readable"); + assertTrue(consentPage.isPageDisplayed("consentdet"), "Verify if Consent page is loaded"); + assertTrue(consentPage.isCheckBoxReadable(), "Verify if the check box in readable"); - assertTrue(consentPage.isInformedButtonEnabled(),"Verify if informed button enabled"); + assertTrue(consentPage.isInformedButtonEnabled(), "Verify if informed button enabled"); consentPage.clickOnInformedButton(); - }else if(screen.equals("DemographicDetails")) { - - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - demographicPage=new DemographicDetailsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - demographicPage=new DemographicDetailsPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - demographicPage=new DemographicDetailsPageFrench(driver); + } else if (screen.equals("DemographicDetails")) { + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + demographicPage = new DemographicDetailsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + demographicPage = new DemographicDetailsPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + demographicPage = new DemographicDetailsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + demographicPage = new DemographicDetailsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + demographicPage = new DemographicDetailsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + demographicPage = new DemographicDetailsPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - demographicPage=new DemographicDetailsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - demographicPage=new DemographicDetailsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - demographicPage=new DemographicDetailsPageArabic(driver); - } - assertTrue(demographicPage.isDemographicDetailsPageDisplayed(),"Verify if demographic details page is displayed"); + assertTrue(demographicPage.isPageDisplayed("DemographicDetails"), + "Verify if demographic details page is displayed"); + demographicPage.fillDemographicDetailsPage("adult"); demographicPage.clickOnContinueButton(); - }else if(screen.equals("Documents")) { - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - documentuploadPage=new DocumentuploadPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - documentuploadPage=new DocumentUploadPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - documentuploadPage=new DocumentUploadPageFrench(driver); + } else if (screen.equals("Documents")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + documentuploadPage = new DocumentuploadPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + documentuploadPage = new DocumentUploadPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + documentuploadPage = new DocumentUploadPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + documentuploadPage = new DocumentuploadPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + documentuploadPage = new DocumentuploadPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + documentuploadPage = new DocumentuploadPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - documentuploadPage=new DocumentuploadPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - documentuploadPage=new DocumentuploadPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - documentuploadPage=new DocumentuploadPageArabic(driver); - } - assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(),"Verify if doccumentupload page is displayed"); - documentuploadPage.uploadDoccuments("adult","ReferenceNumber"); + assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(), + "Verify if doccumentupload page is displayed"); + documentuploadPage.uploadDoccuments("adult", "ReferenceNumber"); documentuploadPage.clickOnContinueButton(); - }else if(screen.equals("BiometricDetails")) { - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - biometricDetailsPage=new BiometricDetailsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - biometricDetailsPage=new BiometricDetailsPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - biometricDetailsPage=new BiometricDetailsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - biometricDetailsPage=new BiometricDetailsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - biometricDetailsPage=new BiometricDetailsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - biometricDetailsPage=new BiometricDetailsPageArabic(driver); - } - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - applicantBiometricsPage=new ApplicantBiometricsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - applicantBiometricsPage=new ApplicantBiometricsPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - applicantBiometricsPage=new ApplicantBiometricsPageFrench(driver); + } else if (screen.equals("BiometricDetails")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + biometricDetailsPage = new BiometricDetailsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + biometricDetailsPage = new BiometricDetailsPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + biometricDetailsPage = new BiometricDetailsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + biometricDetailsPage = new BiometricDetailsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + biometricDetailsPage = new BiometricDetailsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + biometricDetailsPage = new BiometricDetailsPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - applicantBiometricsPage=new ApplicantBiometricsPageKannada(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - applicantBiometricsPage=new ApplicantBiometricsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - applicantBiometricsPage=new ApplicantBiometricsPageArabic(driver); - } - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - if(FetchUiSpec.eye.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + if (FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIrisScan(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(),"Verify if applicant biometric page is displayed"); + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isIrisScan(),"Verify if iris scan 1st attempt"); + assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isIrisScan(),"Verify if iris scan 2nd attempt"); + assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 2nd attempt"); applicantBiometricsPage.closeScanCapturePopUp(); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isIrisScan(),"Verify if iris scan 3rd attempt"); + assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 3rd attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage=applicantBiometricsPage.clickOnBackButton(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); } - //righthand - if(FetchUiSpec.rightHand.equals("yes")) { - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - applicantBiometricsPage=biometricDetailsPage.clickOnRightHandScanIcon(); - - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(),"Verify if applicant biometric page is displayed"); + // righthand + if (FetchUiSpec.rightHand.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnRightHandScanIcon(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isRightHandScan(),"Verify if right hand scan 1st attempt"); + assertTrue(applicantBiometricsPage.isRightHandScan(), "Verify if right hand scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage=applicantBiometricsPage.clickOnBackButton(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); } - //lefthand - if(FetchUiSpec.leftHand.equals("yes")) { - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - applicantBiometricsPage=biometricDetailsPage.clickOnLeftHandScanIcon(); - - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(),"Verify if applicant biometric page is displayed"); + // lefthand + if (FetchUiSpec.leftHand.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnLeftHandScanIcon(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isLeftHandScan(),"Verify if Left hand scan 1st attempt"); + assertTrue(applicantBiometricsPage.isLeftHandScan(), "Verify if Left hand scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage=applicantBiometricsPage.clickOnBackButton(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); } - //thumb - if(FetchUiSpec.thumb.equals("yes")) { - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - applicantBiometricsPage=biometricDetailsPage.clickOnThumbsScanIcon(); - - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(),"Verify if applicant biometric page is displayed"); + // thumb + if (FetchUiSpec.thumb.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnThumbsScanIcon(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isThumbsScan(),"Verify if thumbs scan 1st attempt"); + assertTrue(applicantBiometricsPage.isThumbsScan(), "Verify if thumbs scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage=applicantBiometricsPage.clickOnBackButton(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); } - //face - if(FetchUiSpec.face.equals("yes")) { - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); + // face + if (FetchUiSpec.face.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); biometricDetailsPage.clickOnFaceScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(),"Verify if applicant biometric page is displayed"); + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isFaceScan(),"Verify if face scan 1st attempt"); + assertTrue(applicantBiometricsPage.isFaceScan(), "Verify if face scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); applicantBiometricsPage.clickOnBackButton(); } - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); biometricDetailsPage.clickOnContinueButton(); } } - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - previewPage=new PreviewPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - previewPage=new PreviewPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - previewPage=new PreviewPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - previewPage=new PreviewPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - previewPage=new PreviewPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - previewPage=new PreviewPageArabic(driver); - } - - assertTrue(previewPage.isNewRegistrationTitleDisplayed(),"Verify if new Registration title is displayed"); - assertTrue(previewPage.isApplicationIDPreviewPagePageDisplayed(),"Verify if application ID In PreviewPage is displayed"); - assertTrue(previewPage.isDemographicInformationInPreviewPageDisplayed(),"Verify if Demographic Information In PreviewPage is displayed"); - assertTrue(previewPage.isDocumentsInformationInPreviewPageDisplayed(),"Verify if Documents Information In PreviewPage is displayed"); - assertTrue(previewPage.isBiometricsInformationInPreviewPagePageDisplayed(),"Verify if Biometrics Information In PreviewPage is displayed"); - String Aid=previewPage.getAID(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + previewPage = new PreviewPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + previewPage = new PreviewPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + previewPage = new PreviewPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + previewPage = new PreviewPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + previewPage = new PreviewPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + previewPage = new PreviewPageArabic(driver); + } + + assertTrue(previewPage.isNewRegistrationTitleDisplayed(), "Verify if new Registration title is displayed"); + assertTrue(previewPage.isApplicationIDPreviewPagePageDisplayed(), + "Verify if application ID In PreviewPage is displayed"); + assertTrue(previewPage.isDemographicInformationInPreviewPageDisplayed(), + "Verify if Demographic Information In PreviewPage is displayed"); + assertTrue(previewPage.isDocumentsInformationInPreviewPageDisplayed(), + "Verify if Documents Information In PreviewPage is displayed"); +// assertTrue(previewPage.isBiometricsInformationInPreviewPagePageDisplayed(),"Verify if Biometrics Information In PreviewPage is displayed"); + String Aid = previewPage.getAID(); previewPage.clickOnContinueButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - authenticationPage=new AuthenticationPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - authenticationPage=new AuthenticationPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - authenticationPage=new AuthenticationPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - authenticationPage=new AuthenticationPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - authenticationPage=new AuthenticationPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - authenticationPage=new AuthenticationPageArabic(driver); - } - assertTrue(authenticationPage.isAuthenticationPageDisplayed(),"Verify if authentication details page is displayed"); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + authenticationPage = new AuthenticationPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + authenticationPage = new AuthenticationPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + authenticationPage = new AuthenticationPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + authenticationPage = new AuthenticationPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + authenticationPage = new AuthenticationPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + authenticationPage = new AuthenticationPageArabic(driver); + } + assertTrue(authenticationPage.isAuthenticationPageDisplayed(), + "Verify if authentication details page is displayed"); authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); authenticationPage.clickOnAuthenticatenButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - acknowledgementPage=new AcknowledgementPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - acknowledgementPage=new AcknowledgementPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - acknowledgementPage=new AcknowledgementPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - acknowledgementPage=new AcknowledgementPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - acknowledgementPage=new AcknowledgementPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - acknowledgementPage=new AcknowledgementPageArabic(driver); - } - assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(),"Verify if acknowledgement details page is displayed"); - - //assertTrue(acknowledgementPage.isQrCodeImageDisplayed(),"Verify if qr code image is displayed"); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + acknowledgementPage = new AcknowledgementPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + acknowledgementPage = new AcknowledgementPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + acknowledgementPage = new AcknowledgementPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + acknowledgementPage = new AcknowledgementPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + acknowledgementPage = new AcknowledgementPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + acknowledgementPage = new AcknowledgementPageArabic(driver); + } + assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(), + "Verify if acknowledgement details page is displayed"); + + // assertTrue(acknowledgementPage.isQrCodeImageDisplayed(),"Verify if qr code + // image is displayed"); acknowledgementPage.clickOnGoToHomeButton(); - assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(),"Verify if registration tasks page is loaded"); - registrationTasksPage.clickOnOperationalTasksTitle(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - operationalTaskPage=new OperationalTaskPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - operationalTaskPage=new OperationalTaskPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - operationalTaskPage=new OperationalTaskPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - operationalTaskPage=new OperationalTaskPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - operationalTaskPage=new OperationalTaskPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - operationalTaskPage=new OperationalTaskPageArabic(driver); + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + registrationTasksPage.clickOnOperationalTasksTitle(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + operationalTaskPage = new OperationalTaskPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + operationalTaskPage = new OperationalTaskPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + operationalTaskPage = new OperationalTaskPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + operationalTaskPage = new OperationalTaskPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + operationalTaskPage = new OperationalTaskPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + operationalTaskPage = new OperationalTaskPageArabic(driver); } assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); assertTrue(operationalTaskPage.isPendingApprovalTitleDisplayed(), "Verify if pending approval tite displayed"); operationalTaskPage.clickPendingApprovalTitle(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - pendingApproval=new PendingApprovalEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - pendingApproval=new PendingApprovalHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - pendingApproval=new PendingApprovalFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - pendingApproval=new PendingApprovalKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - pendingApproval=new PendingApprovalTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - pendingApproval=new PendingApprovalArabic(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + pendingApproval = new PendingApprovalEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + pendingApproval = new PendingApprovalHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + pendingApproval = new PendingApprovalFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + pendingApproval = new PendingApprovalKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + pendingApproval = new PendingApprovalTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + pendingApproval = new PendingApprovalArabic(driver); } assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed"); + pendingApproval.enterAID(Aid); + assertTrue(pendingApproval.isNumberOfApplicationDisplayed(), "Verify if no. of pending approval display"); pendingApproval.clickOnAID(Aid); assertTrue(pendingApproval.isApprovalButtonDisplayed(), "Verify if approval button displayed"); pendingApproval.clickOnApproveButton(); pendingApproval.clickOnClosePopUpButton(); - assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed after approving packet"); + assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), + "Verify if pending approval page displayed after approving packet"); pendingApproval.clickOnCheckBox(); - assertTrue(pendingApproval.isSubmitButtonEnabled(), "Verify if submit button is enable after selecting packet"); - pendingApproval.clickOnSubmitButton(); + assertTrue(pendingApproval.isAuthenticateButtonEnabled(), + "Verify if authenticate button is enable after selecting packet"); + + boolean isPageDisplayed = false; + for (int i = 0; i < 3; i++) { + pendingApproval.clickOnAuthenticateButton(); + Thread.sleep(2000); + if (pendingApproval.isSupervisorAuthenticationTitleDisplayed()) { + isPageDisplayed = true; + break; + } + } + assertTrue(isPageDisplayed, "Supervisor Authentication page not displayed after retries"); - assertTrue(pendingApproval.isSupervisorAuthenticationTitleDisplayed(), "Verify if Supervisor Authentication page displayed"); - pendingApproval.clickOnSubmitButton(); - assertTrue(pendingApproval.isInvalidemptyUsernameSumbitButtonEnbled(), "Verify if error empty username submit button enabled"); - - pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser+"123"); - - assertTrue(pendingApproval.isInvalidUsernameMessageDisplayed(), "Verify if invalid username messgae is displayed"); + assertTrue(pendingApproval.isInvalidemptyUsernameSumbitButtonEnbled(), + "Verify if error empty username submit button enabled"); + + pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser + "123"); + + assertTrue(pendingApproval.isInvalidUsernameMessageDisplayed(), + "Verify if invalid username messgae is displayed"); pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser); - + pendingApproval.enterPassword(ArcConfigManager.getIAMUsersPassword()); pendingApproval.clickOnSubmitButton(); pendingApproval.clickOnBackButton(); - assertTrue(operationalTaskPage.isApplicationUploadTitleDisplayed(), "Verify if application upload tite displayed"); - - operationalTaskPage.clickApplicationUploadTitle(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - manageApplicationsPage=new ManageApplicationsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - manageApplicationsPage=new ManageApplicationsPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - manageApplicationsPage=new ManageApplicationsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - manageApplicationsPage=new ManageApplicationsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - manageApplicationsPage=new ManageApplicationsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - manageApplicationsPage=new ManageApplicationsPageArabic(driver); - } - assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), "Verify if manage Applications Page displayed"); - manageApplicationsPage.enterWrongAID(Aid+123); + assertTrue(operationalTaskPage.isApplicationUploadTitleDisplayed(), + "Verify if application upload tite displayed"); + + operationalTaskPage.clickApplicationUploadTitle(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + manageApplicationsPage = new ManageApplicationsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + manageApplicationsPage = new ManageApplicationsPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + manageApplicationsPage = new ManageApplicationsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + manageApplicationsPage = new ManageApplicationsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + manageApplicationsPage = new ManageApplicationsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + manageApplicationsPage = new ManageApplicationsPageArabic(driver); + } + assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), + "Verify if manage Applications Page displayed"); + manageApplicationsPage.enterWrongAID(Aid + 123); assertTrue(manageApplicationsPage.isZeroApplicationDisplayed(), "Verify if wrong Aid should not display"); manageApplicationsPage.enterAID(Aid); @@ -584,690 +562,37 @@ else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ assertTrue(manageApplicationsPage.isPacketApproved(Aid), "Verify if Filtre packet is approved "); manageApplicationsPage.clickOnSearchCheckBox(); - manageApplicationsPage.clickOnUploadButton(); - - // assertTrue(manageApplicationsPage.isPacketUploadDone(Aid), "Verify if packet upload is done"); + for (int i = 0; i < 3; i++) { + manageApplicationsPage.clickOnUploadButton(); + Thread.sleep(2000); + if (!manageApplicationsPage.isNoNetworkFoundDisplayed()) + break; + } manageApplicationsPage.clickOnBackButton(); - assertTrue(registrationTasksPage.isProfileTitleDisplayed(),"Verify if profile title display on homepage"); + assertTrue(registrationTasksPage.isProfileTitleDisplayed(), "Verify if profile title display on homepage"); registrationTasksPage.clickProfileButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - profilePage=new ProfilePageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - profilePage=new ProfilePageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - profilePage=new ProfilePageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - profilePage=new ProfilePageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - profilePage=new ProfilePageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - profilePage=new ProfilePageArabic(driver); - } - //assertTrue(profilePage.isProfileTitleDisplayed(),"Verify if profile title display on Profilepage"); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + profilePage = new ProfilePageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + profilePage = new ProfilePageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + profilePage = new ProfilePageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + profilePage = new ProfilePageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + profilePage = new ProfilePageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + profilePage = new ProfilePageArabic(driver); + } + // assertTrue(profilePage.isProfileTitleDisplayed(),"Verify if profile title + // display on Profilepage"); profilePage.clickOnLogoutButton(); profilePage.clickOnLogoutButton(); - assertTrue(loginPage.isLoginPageLoaded(),"verify if login page is displayeded in Selected language"); - } - - - public void newRegistrationAdultUploadMultipleDoccuments(){ - FetchUiSpec.getUiSpec("newProcess"); - FetchUiSpec.getBiometricDetails("individualBiometrics"); - BasePage.disableAutoRotation(); - LoginPage loginPage = null; - RegistrationTasksPage registrationTasksPage=null; - SelectLanguagePage selectLanguagePage=null; - ConsentPage consentPage=null; - DemographicDetailsPage demographicPage=null; - DocumentUploadPage documentuploadPage=null; - BiometricDetailsPage biometricDetailsPage=null; - ApplicantBiometricsPage applicantBiometricsPage=null; - PreviewPage previewPage=null; - AuthenticationPage authenticationPage=null; - AcknowledgementPage acknowledgementPage=null; - PendingApproval pendingApproval=null; - - IntroducerBiometricPage introducerBiometricPage=null; - OperationalTaskPage operationalTaskPage=null; - ManageApplicationsPage manageApplicationsPage=null; - - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - loginPage = new LoginPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - loginPage = new LoginPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - loginPage = new LoginPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - loginPage = new LoginPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - loginPage = new LoginPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - loginPage = new LoginPageArabic(driver); - } - loginPage.selectLanguage(); - - loginPage.enterUserName(KeycloakUserManager.moduleSpecificUser); - loginPage.clickOnNextButton(); - - loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); - loginPage.clickOnloginButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - registrationTasksPage=new RegistrationTasksPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - registrationTasksPage=new RegistrationTasksPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - registrationTasksPage=new RegistrationTasksPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - registrationTasksPage=new RegistrationTasksPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - registrationTasksPage=new RegistrationTasksPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - registrationTasksPage=new RegistrationTasksPageArabic(driver); - } - assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(),"Verify if registration tasks page is loaded"); - registrationTasksPage.clickOnNewRegistrationButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - selectLanguagePage=new SelectLanguagePageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - selectLanguagePage=new SelectLanguagePageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - selectLanguagePage=new SelectLanguagePageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - selectLanguagePage=new SelectLanguagePageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - selectLanguagePage=new SelectLanguagePageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - selectLanguagePage=new SelectLanguagePageArabic(driver); - } - assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(),"Verify if select language page is loaded"); - selectLanguagePage.clickOnSubmitButtonWithoutSelectingLanguage(); - - assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(),"Verify if user should not be allow to navigate to next screen."); - selectLanguagePage.selectSecondLanguage(); - - assertTrue(selectLanguagePage.isNotificationLanguageEnglishDisplayed(),"verify if the notification language display in english"); - selectLanguagePage.selectNotificationlanguage(TestDataReader.readData("notificationLanguage")); - - assertTrue(selectLanguagePage.isSubmitButtonEnabled(),"verify if the submit button enabled"); - selectLanguagePage.clickOnSubmitButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - consentPage =new ConsentPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - consentPage =new ConsentPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - consentPage =new ConsentPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - consentPage =new ConsentPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - consentPage =new ConsentPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - consentPage =new ConsentPageArabic(driver); - } - assertTrue(consentPage.isConsentPageDisplayed(),"Verify if Consent page is loaded"); - - assertTrue(consentPage.isInformedButtonEnabled(),"Verify if informed button enabled"); - consentPage.clickOnInformedButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - demographicPage=new DemographicDetailsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - demographicPage=new DemographicDetailsPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - demographicPage=new DemographicDetailsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - demographicPage=new DemographicDetailsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - demographicPage=new DemographicDetailsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - demographicPage=new DemographicDetailsPageArabic(driver); - } - assertTrue(demographicPage.isDemographicDetailsPageDisplayed(),"Verify if demographic details page is displayed"); - demographicPage.fillDemographicDetailsPage("adult"); - - demographicPage.clickOnContinueButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - documentuploadPage=new DocumentuploadPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - documentuploadPage=new DocumentUploadPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - documentuploadPage=new DocumentUploadPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - documentuploadPage=new DocumentuploadPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - documentuploadPage=new DocumentuploadPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - documentuploadPage=new DocumentuploadPageArabic(driver); - } - assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(),"Verify if doccumentupload page is displayed"); - documentuploadPage.uploadDoccuments("adult","withoutReferenceNumber"); - - assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(),"Verify if doccumentupload page is displayed"); - documentuploadPage.uploadDoccuments("adult","withoutReferenceNumber"); - - assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(),"Verify if doccumentupload page is displayed"); - documentuploadPage.uploadDoccuments("adult","withoutReferenceNumber"); - - documentuploadPage.clickOnContinueButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - biometricDetailsPage=new BiometricDetailsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - biometricDetailsPage=new BiometricDetailsPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - biometricDetailsPage=new BiometricDetailsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - biometricDetailsPage=new BiometricDetailsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - biometricDetailsPage=new BiometricDetailsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - biometricDetailsPage=new BiometricDetailsPageArabic(driver); - } - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if Reference id field an optional in document upload page."); - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - applicantBiometricsPage=new ApplicantBiometricsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - applicantBiometricsPage=new ApplicantBiometricsPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - applicantBiometricsPage=new ApplicantBiometricsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - applicantBiometricsPage=new ApplicantBiometricsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - applicantBiometricsPage=new ApplicantBiometricsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - applicantBiometricsPage=new ApplicantBiometricsPageArabic(driver); - } - if(FetchUiSpec.eye.equals("yes")) { - biometricDetailsPage.clickOnIrisScan(); - - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(),"Verify if applicant biometric page is displayed"); - applicantBiometricsPage.clickOnScanButton(); - - assertTrue(applicantBiometricsPage.isIrisScan(),"Verify if iris scan 1st attempt"); - applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage=applicantBiometricsPage.clickOnBackButton(); - } - //righthand - if(FetchUiSpec.rightHand.equals("yes")) { - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - applicantBiometricsPage=biometricDetailsPage.clickOnRightHandScanIcon(); - - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(),"Verify if applicant biometric page is displayed"); - applicantBiometricsPage.clickOnScanButton(); - - assertTrue(applicantBiometricsPage.isRightHandScan(),"Verify if right hand scan 1st attempt"); - applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage=applicantBiometricsPage.clickOnBackButton(); - } - //lefthand - if(FetchUiSpec.leftHand.equals("yes")) { - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - applicantBiometricsPage=biometricDetailsPage.clickOnLeftHandScanIcon(); - - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(),"Verify if applicant biometric page is displayed"); - applicantBiometricsPage.clickOnScanButton(); - - assertTrue(applicantBiometricsPage.isLeftHandScan(),"Verify if Left hand scan 1st attempt"); - applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage=applicantBiometricsPage.clickOnBackButton(); - } - //thumb - if(FetchUiSpec.thumb.equals("yes")) { - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - applicantBiometricsPage=biometricDetailsPage.clickOnThumbsScanIcon(); - - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(),"Verify if applicant biometric page is displayed"); - applicantBiometricsPage.clickOnScanButton(); - - assertTrue(applicantBiometricsPage.isThumbsScan(),"Verify if thumbs scan 1st attempt"); - applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage=applicantBiometricsPage.clickOnBackButton(); - } - //face - if(FetchUiSpec.face.equals("yes")) { - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - biometricDetailsPage.clickOnFaceScanIcon(); - - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(),"Verify if applicant biometric page is displayed"); - applicantBiometricsPage.clickOnScanButton(); - - assertTrue(applicantBiometricsPage.isFaceScan(),"Verify if face scan 1st attempt"); - applicantBiometricsPage.closeScanCapturePopUp(); - applicantBiometricsPage.clickOnBackButton(); - } - - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - biometricDetailsPage.clickOnContinueButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - previewPage=new PreviewPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - previewPage=new PreviewPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - previewPage=new PreviewPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - previewPage=new PreviewPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - previewPage=new PreviewPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - previewPage=new PreviewPageArabic(driver); - } - - assertTrue(previewPage.isNewRegistrationTitleDisplayed(),"Verify if new Registration title is displayed"); - assertTrue(previewPage.isBothIrisImageDisplayed(),"Verify if both iris image In PreviewPage is displayed"); - assertTrue(previewPage.isDemographicInformationInPreviewPageDisplayed(),"Verify if Demographic Information In PreviewPage is displayed"); - assertTrue(previewPage.isBiometricsInformationInPreviewPagePageDisplayed(),"Verify if Biometrics Information In PreviewPage is displayed"); - assertTrue(previewPage.isDocumentsInformationInPreviewPageDisplayed(),"Verify if Documents Information In PreviewPage is displayed"); - previewPage.clickOnDemographicDetailsTitle(); - - assertTrue(demographicPage.isDemographicDetailsPageDisplayed(),"Verify if demographic details page is displayed"); - demographicPage.fillDemographicDetailsPage("minor"); - demographicPage.clickOnContinueButton(); - - assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(),"Verify if doccumentupload page is displayed"); - documentuploadPage.uploadDoccuments("minor","withoutReferenceNumber"); - - documentuploadPage.clickOnContinueButton(); - - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - if(FetchUiSpec.eye.equals("yes")) { - biometricDetailsPage.clickOnIrisScan(); - - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(),"Verify if applicant biometric page is displayed"); - applicantBiometricsPage.clickOnMarkExceptionButton(); - - assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(),"Verify if applicant biometric mark exception is displayed"); - applicantBiometricsPage.markOneEyeException(); - // applicantBiometricsPage.clickOnExceptionTypeTemporaryButton(); - // - // assertTrue(applicantBiometricsPage.isCommentHeaderDisplyed(),"Verify if Comments header is displayed"); - //applicantBiometricsPage.enterCommentsInTextBox(TestDataReader.readData("comments")); - - applicantBiometricsPage.clickOnIrisScanTitle(); - applicantBiometricsPage.clickOnScanButton(); - - assertTrue(applicantBiometricsPage.isIrisScan(),"Verify if iris scan 1st attempt"); - applicantBiometricsPage.closeScanCapturePopUp(); - - applicantBiometricsPage.clickOnBackButton(); - } - //righthand - if(FetchUiSpec.rightHand.equals("yes")) { - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - applicantBiometricsPage=biometricDetailsPage.clickOnRightHandScanIcon(); - - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(),"Verify if applicant biometric page is displayed"); - applicantBiometricsPage.clickOnScanButton(); - - assertTrue(applicantBiometricsPage.isRightHandScan(),"Verify if right hand scan 1st attempt"); - applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage=applicantBiometricsPage.clickOnBackButton(); - } - //lefthand - if(FetchUiSpec.leftHand.equals("yes")) { - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - applicantBiometricsPage=biometricDetailsPage.clickOnLeftHandScanIcon(); - - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(),"Verify if applicant biometric page is displayed"); - applicantBiometricsPage.clickOnScanButton(); - - assertTrue(applicantBiometricsPage.isLeftHandScan(),"Verify if Left hand scan 1st attempt"); - applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage=applicantBiometricsPage.clickOnBackButton(); - } - //thumb - if(FetchUiSpec.thumb.equals("yes")) { - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - applicantBiometricsPage=biometricDetailsPage.clickOnThumbsScanIcon(); - - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(),"Verify if applicant biometric page is displayed"); - applicantBiometricsPage.clickOnScanButton(); - - assertTrue(applicantBiometricsPage.isThumbsScan(),"Verify if thumbs scan 1st attempt"); - applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage=applicantBiometricsPage.clickOnBackButton(); - } - //face - if(FetchUiSpec.face.equals("yes")) { - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - biometricDetailsPage.clickOnFaceScanIcon(); - - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(),"Verify if applicant biometric page is displayed"); - applicantBiometricsPage.clickOnScanButton(); - - assertTrue(applicantBiometricsPage.isFaceScan(),"Verify if face scan 1st attempt"); - applicantBiometricsPage.closeScanCapturePopUp(); - applicantBiometricsPage.clickOnBackButton(); - } - - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - biometricDetailsPage.clickOnContinueButton(); - //Exception - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is still displayed without capture exception"); - applicantBiometricsPage=biometricDetailsPage.clickOnExceptionScanIcon(); - - assertTrue(applicantBiometricsPage.isExceptionScanTitleDisplyed(),"Verify if exception scan page is displayed"); - applicantBiometricsPage.clickOnScanButton(); - - assertTrue(applicantBiometricsPage.isExceptionScan(),"Verify if exception scan 1st attempt"); - applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage=applicantBiometricsPage.clickOnNextButton(); - - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - biometricDetailsPage.clickOnContinueButton(); - - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - introducerBiometricPage=new IntroducerBiometricPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - introducerBiometricPage=new IntroducerBiometricPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - introducerBiometricPage=new IntroducerBiometricPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - introducerBiometricPage=new IntroducerBiometricPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - introducerBiometricPage=new IntroducerBiometricPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - introducerBiometricPage=new IntroducerBiometricPageArabic(driver); - } - FetchUiSpec.getBiometricDetails("introducerBiometrics"); - if(FetchUiSpec.eye.equals("yes")) { - biometricDetailsPage.clickOnIntroducerIrisScan(); - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(),"Verify if introducer biometric page is displayed"); - introducerBiometricPage.clickOnScanButton(); - - assertTrue(introducerBiometricPage.isIrisScan(),"Verify if iris scan 1st attempt"); - introducerBiometricPage.closeScanCapturePopUp(); - introducerBiometricPage.clickOnNextButton(); - } - //righthand - if(FetchUiSpec.rightHand.equals("yes")) { - if(!FetchUiSpec.eye.equals("yes")) { - biometricDetailsPage.clickOnIntroducerRightHandScan(); - } - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(),"Verify if introducer biometric page is displayed"); - - assertTrue(introducerBiometricPage.isRightHandScanTitleDisplyed(),"Verify if right hand scan is displayed"); - introducerBiometricPage.clickOnScanButton(); - - assertTrue(introducerBiometricPage.isRightHandScan(),"Verify if right hand scan 1st attempt"); - introducerBiometricPage.closeScanCapturePopUp(); - introducerBiometricPage.clickOnNextButton(); - } - //lefthand - if(FetchUiSpec.leftHand.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(),"Verify if introducer biometric page is displayed"); - - assertTrue(introducerBiometricPage.isLeftHandScanTitleDisplyed(),"Verify if applicant left hand scan title is displayed"); - introducerBiometricPage.clickOnScanButton(); - - assertTrue(introducerBiometricPage.isLeftHandScan(),"Verify if Left hand scan 1st attempt"); - introducerBiometricPage.closeScanCapturePopUp(); - introducerBiometricPage.clickOnNextButton(); - } - //thumb - if(FetchUiSpec.thumb.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(),"Verify if introducer biometric page is displayed"); - - assertTrue(introducerBiometricPage.isThumbsScanTitleDisplyed(),"Verify if thumbs scan page is displayed"); - introducerBiometricPage.clickOnScanButton(); - - assertTrue(introducerBiometricPage.isThumbsScan(),"Verify if thumbs scan 1st attempt"); - introducerBiometricPage.closeScanCapturePopUp(); - introducerBiometricPage.clickOnNextButton(); - } - //face - if(FetchUiSpec.face.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(),"Verify if introducer biometric page is displayed"); - - assertTrue(introducerBiometricPage.isFaceScanTitleDisplyed(),"Verify if face scan page is displayed"); - introducerBiometricPage.clickOnScanButton(); - - assertTrue(introducerBiometricPage.isFaceScan(),"Verify if face scan 1st attempt"); - introducerBiometricPage.closeScanCapturePopUp(); - biometricDetailsPage=introducerBiometricPage.clickOnNextButton(); - } - - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - biometricDetailsPage.clickOnContinueButton(); - - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - previewPage=new PreviewPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - previewPage=new PreviewPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - previewPage=new PreviewPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - previewPage=new PreviewPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - previewPage=new PreviewPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - previewPage=new PreviewPageArabic(driver); - } - assertTrue(previewPage.isNewRegistrationTitleDisplayed(),"Verify if new Registration title is displayed"); - assertTrue(previewPage.isApplicationIDPreviewPagePageDisplayed(),"Verify if application ID In PreviewPage is displayed"); - assertTrue(previewPage.isDemographicInformationInPreviewPageDisplayed(),"Verify if Demographic Information In PreviewPage is displayed"); - assertTrue(previewPage.isDocumentsInformationInPreviewPageDisplayed(),"Verify if Documents Information In PreviewPage is displayed"); - assertTrue(previewPage.isBiometricsInformationInPreviewPagePageDisplayed(),"Verify if Biometrics Information In PreviewPage is displayed"); - assertTrue(previewPage.isSingleIrisImageDisplayed(),"Verify if single iris exception image In PreviewPage is displayed"); - - assertTrue(previewPage.isSingleIrisImageDisplayed(),"Verify if single iris exception image In PreviewPage is displayed"); - String Aid=previewPage.getAID(); - previewPage.clickOnContinueButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - authenticationPage=new AuthenticationPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - authenticationPage=new AuthenticationPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - authenticationPage=new AuthenticationPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - authenticationPage=new AuthenticationPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - authenticationPage=new AuthenticationPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - authenticationPage=new AuthenticationPageArabic(driver); - } - assertTrue(authenticationPage.isAuthenticationPageDisplayed(),"Verify if authentication details page is displayed"); - authenticationPage.clickOnAuthenticatenButton(); - assertTrue(authenticationPage.isAuthenticationPageDisplayed(),"Username/password required error should be displayed"); - authenticationPage.clickOnAuthenticatenButton(); - authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); - authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); - authenticationPage.clickOnAuthenticatenButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - acknowledgementPage=new AcknowledgementPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - acknowledgementPage=new AcknowledgementPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - acknowledgementPage=new AcknowledgementPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - acknowledgementPage=new AcknowledgementPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - acknowledgementPage=new AcknowledgementPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - acknowledgementPage=new AcknowledgementPageArabic(driver); - } - assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(),"Verify if acknowledgement details page is displayed"); - - acknowledgementPage.clickOnGoToHomeButton(); - assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(),"Verify if registration tasks page is loaded"); - registrationTasksPage.clickOnNewRegistrationButton(); - - assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(),"Verify if select language page is loaded"); - selectLanguagePage.selectAllSecondLanguage(); - - assertTrue(selectLanguagePage.isNotificationLanguageEnglishDisplayed(),"verify if the notification language display in english"); - selectLanguagePage.selectNotificationlanguage(TestDataReader.readData("notificationLanguage")); - selectLanguagePage.clickOnSubmitButton(); - - assertFalse(consentPage.isConsentPageDisplayed(),"Verify if Consent page is loaded after selecting all languages"); - consentPage.clickOnCancelButton(); - - assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(),"Verify if registration tasks page is loaded after click on cancel button"); - registrationTasksPage.clickOnOperationalTasksTitle(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - operationalTaskPage=new OperationalTaskPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - operationalTaskPage=new OperationalTaskPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - operationalTaskPage=new OperationalTaskPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - operationalTaskPage=new OperationalTaskPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - operationalTaskPage=new OperationalTaskPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - operationalTaskPage=new OperationalTaskPageArabic(driver); - } - assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); - assertTrue(operationalTaskPage.isPendingApprovalTitleDisplayed(), "Verify if pending approval tite displayed"); - operationalTaskPage.clickPendingApprovalTitle(); - - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - pendingApproval=new PendingApprovalEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - pendingApproval=new PendingApprovalHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - pendingApproval=new PendingApprovalFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - pendingApproval=new PendingApprovalKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - pendingApproval=new PendingApprovalTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - pendingApproval=new PendingApprovalArabic(driver); - } - assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed"); - pendingApproval.clickOnAID(Aid); - - assertTrue(pendingApproval.isApprovalButtonDisplayed(), "Verify if approval button displayed"); - pendingApproval.clickOnApproveButton(); - pendingApproval.clickOnClosePopUpButton(); - - assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed after approving packet"); - pendingApproval.clickOnCheckBox(); - - assertTrue(pendingApproval.isSubmitButtonEnabled(), "Verify if submit button is enable after selecting packet"); - pendingApproval.clickOnSubmitButton(); - - assertTrue(pendingApproval.isSupervisorAuthenticationTitleDisplayed(), "Verify if Supervisor Authentication page displayed"); - pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser); - pendingApproval.enterPassword(ArcConfigManager.getIAMUsersPassword()); - pendingApproval.clickOnSubmitButton(); - pendingApproval.clickOnBackButton(); - assertTrue(operationalTaskPage.isApplicationUploadTitleDisplayed(), "Verify if application upload tite displayed"); - - operationalTaskPage.clickApplicationUploadTitle(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - manageApplicationsPage=new ManageApplicationsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - manageApplicationsPage=new ManageApplicationsPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - manageApplicationsPage=new ManageApplicationsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - manageApplicationsPage=new ManageApplicationsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - manageApplicationsPage=new ManageApplicationsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - manageApplicationsPage=new ManageApplicationsPageArabic(driver); - } - assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), "Verify if manage Applications Page displayed"); - manageApplicationsPage.enterAID(Aid); - - assertTrue(manageApplicationsPage.isSearchAIDDisplayed(Aid), "Verify if Search Aid should displayed"); - manageApplicationsPage.clickOnSearchCheckBox(); - manageApplicationsPage.clickOnUploadButton(); - + assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayeded in Selected language"); } } diff --git a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdultException.java b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdultException.java index 9fe3dad1d..ac8700de5 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdultException.java +++ b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdultException.java @@ -121,44 +121,38 @@ public class NewRegistrationAdultException extends AndroidBaseTest { @Test - public void newRegistrationAdultException(){ + public void newRegistrationAdultException() throws InterruptedException { FetchUiSpec.getUiSpec("newProcess"); FetchUiSpec.getBiometricDetails("individualBiometrics"); - List screenOrder=FetchUiSpec.getAllScreenOrder(); + List screenOrder = FetchUiSpec.getAllScreenOrder(); BasePage.disableAutoRotation(); LoginPage loginPage = null; - RegistrationTasksPage registrationTasksPage=null; - SelectLanguagePage selectLanguagePage=null; - ConsentPage consentPage=null; - DemographicDetailsPage demographicPage=null; - DocumentUploadPage documentuploadPage=null; - BiometricDetailsPage biometricDetailsPage=null; - ApplicantBiometricsPage applicantBiometricsPage=null; - PreviewPage previewPage=null; - AuthenticationPage authenticationPage=null; - AcknowledgementPage acknowledgementPage=null; - OperationalTaskPage operationalTaskPage=null; - PendingApproval pendingApproval=null; - ManageApplicationsPage manageApplicationsPage=null; - ProfilePage profilePage=null; - - - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { + RegistrationTasksPage registrationTasksPage = null; + SelectLanguagePage selectLanguagePage = null; + ConsentPage consentPage = null; + DemographicDetailsPage demographicPage = null; + DocumentUploadPage documentuploadPage = null; + BiometricDetailsPage biometricDetailsPage = null; + ApplicantBiometricsPage applicantBiometricsPage = null; + PreviewPage previewPage = null; + AuthenticationPage authenticationPage = null; + AcknowledgementPage acknowledgementPage = null; + OperationalTaskPage operationalTaskPage = null; + PendingApproval pendingApproval = null; + ManageApplicationsPage manageApplicationsPage = null; + ProfilePage profilePage = null; + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { loginPage = new LoginPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { loginPage = new LoginPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { loginPage = new LoginPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { loginPage = new LoginPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { loginPage = new LoginPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { loginPage = new LoginPageArabic(driver); } loginPage.selectLanguage(); @@ -167,408 +161,375 @@ else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); loginPage.clickOnloginButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - registrationTasksPage=new RegistrationTasksPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - registrationTasksPage=new RegistrationTasksPageHindi(driver); - + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + registrationTasksPage = new RegistrationTasksPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + registrationTasksPage = new RegistrationTasksPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + registrationTasksPage = new RegistrationTasksPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + registrationTasksPage = new RegistrationTasksPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + registrationTasksPage = new RegistrationTasksPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + registrationTasksPage = new RegistrationTasksPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - registrationTasksPage=new RegistrationTasksPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - registrationTasksPage=new RegistrationTasksPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - registrationTasksPage=new RegistrationTasksPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - registrationTasksPage=new RegistrationTasksPageArabic(driver); - } - assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(),"Verify if registration tasks page is loaded"); registrationTasksPage.clickOnNewRegistrationButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - selectLanguagePage=new SelectLanguagePageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - selectLanguagePage=new SelectLanguagePageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - selectLanguagePage=new SelectLanguagePageFrench(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + selectLanguagePage = new SelectLanguagePageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + selectLanguagePage = new SelectLanguagePageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + selectLanguagePage = new SelectLanguagePageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + selectLanguagePage = new SelectLanguagePageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + selectLanguagePage = new SelectLanguagePageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + selectLanguagePage = new SelectLanguagePageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - selectLanguagePage=new SelectLanguagePageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - selectLanguagePage=new SelectLanguagePageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - selectLanguagePage=new SelectLanguagePageArabic(driver); - } - assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(),"Verify if select language page is loaded"); selectLanguagePage.selectSecondLanguage(); - assertTrue(selectLanguagePage.isNotificationLanguageEnglishDisplayed(),"verify if the notification language display in english"); selectLanguagePage.selectNotificationlanguage(TestDataReader.readData("notificationLanguage")); - assertTrue(selectLanguagePage.isSubmitButtonEnabled(),"verify if the submit button enabled"); selectLanguagePage.clickOnSubmitButton(); - for(String screen :screenOrder) { - if(screen.equals("consentdet") || screen.equals("consent")) { - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - consentPage =new ConsentPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - consentPage =new ConsentPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - consentPage =new ConsentPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - consentPage =new ConsentPageKannada(driver); + for (String screen : screenOrder) { + if (screen.equals("consentdet") || screen.equals("consent")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + consentPage = new ConsentPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + consentPage = new ConsentPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + consentPage = new ConsentPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + consentPage = new ConsentPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + consentPage = new ConsentPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + consentPage = new ConsentPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - consentPage =new ConsentPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - consentPage =new ConsentPageArabic(driver); - } - assertTrue(consentPage.isConsentPageDisplayed(),"Verify if Consent page is loaded"); - assertTrue(consentPage.isInformedButtonEnabled(),"Verify if informed button enabled"); consentPage.clickOnInformedButton(); - }else if(screen.equals("DemographicDetails")) { - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - demographicPage=new DemographicDetailsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - demographicPage=new DemographicDetailsPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - demographicPage=new DemographicDetailsPageFrench(driver); + } else if (screen.equals("DemographicDetails")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + demographicPage = new DemographicDetailsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + demographicPage = new DemographicDetailsPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + demographicPage = new DemographicDetailsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + demographicPage = new DemographicDetailsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + demographicPage = new DemographicDetailsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + demographicPage = new DemographicDetailsPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - demographicPage=new DemographicDetailsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - demographicPage=new DemographicDetailsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - demographicPage=new DemographicDetailsPageArabic(driver); - } - assertTrue(demographicPage.isDemographicDetailsPageDisplayed(),"Verify if demographic details page is displayed"); - assertTrue(demographicPage.isContinueButtonEnable(),"Verify if continue button is enabled with filling demographic details"); + demographicPage.fillDemographicDetailsPage("adult"); demographicPage.clickOnContinueButton(); - }else if(screen.equals("Documents")) { - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - documentuploadPage=new DocumentuploadPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - documentuploadPage=new DocumentUploadPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - documentuploadPage=new DocumentUploadPageFrench(driver); + } else if (screen.equals("Documents")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + documentuploadPage = new DocumentuploadPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + documentuploadPage = new DocumentUploadPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + documentuploadPage = new DocumentUploadPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + documentuploadPage = new DocumentuploadPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + documentuploadPage = new DocumentuploadPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + documentuploadPage = new DocumentuploadPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - documentuploadPage=new DocumentuploadPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - documentuploadPage=new DocumentuploadPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - documentuploadPage=new DocumentuploadPageArabic(driver); - } - assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(),"Verify if doccumentupload page is displayed"); - documentuploadPage.uploadDoccuments("adult","withoutReferenceNumber"); + assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(), + "Verify if doccumentupload page is displayed"); + documentuploadPage.uploadDoccuments("adult", "withoutReferenceNumber"); documentuploadPage.clickOnContinueButton(); - }else if(screen.equals("BiometricDetails")) { - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - biometricDetailsPage=new BiometricDetailsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - biometricDetailsPage=new BiometricDetailsPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - biometricDetailsPage=new BiometricDetailsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - biometricDetailsPage=new BiometricDetailsPageKannada(driver); + } else if (screen.equals("BiometricDetails")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + biometricDetailsPage = new BiometricDetailsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + biometricDetailsPage = new BiometricDetailsPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + biometricDetailsPage = new BiometricDetailsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + biometricDetailsPage = new BiometricDetailsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + biometricDetailsPage = new BiometricDetailsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + biometricDetailsPage = new BiometricDetailsPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - biometricDetailsPage=new BiometricDetailsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - biometricDetailsPage=new BiometricDetailsPageArabic(driver); - } - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); biometricDetailsPage.clickOnContinueButton(); - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if user is not navigated to the next page without biometric scan"); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - applicantBiometricsPage=new ApplicantBiometricsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - applicantBiometricsPage=new ApplicantBiometricsPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - applicantBiometricsPage=new ApplicantBiometricsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - applicantBiometricsPage=new ApplicantBiometricsPageKannada(driver); + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if user is not navigated to the next page without biometric scan"); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - applicantBiometricsPage=new ApplicantBiometricsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - applicantBiometricsPage=new ApplicantBiometricsPageArabic(driver); - } - if(FetchUiSpec.eye.equals("yes")) { + if (FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIrisScan(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(),"Verify if applicant biometric page is displayed"); + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnMarkExceptionButton(); - assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(),"Verify if applicant biometric mark exception is displayed"); + assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(), + "Verify if applicant biometric mark exception is displayed"); applicantBiometricsPage.markOneEyeException(); - assertTrue(applicantBiometricsPage.isExceptionCountDisplyed(),"Verify if exception count is displayed"); - // applicantBiometricsPage.clickOnExceptionTypeTemporaryButton(); + assertTrue(applicantBiometricsPage.isExceptionCountDisplyed(), + "Verify if exception count is displayed"); + // applicantBiometricsPage.clickOnExceptionTypeTemporaryButton(); // - // assertTrue(applicantBiometricsPage.isCommentHeaderDisplyed(),"Verify if Comments header is displayed"); - // applicantBiometricsPage.enterCommentsInTextBox(TestDataReader.readData("comments")); + // assertTrue(applicantBiometricsPage.isCommentHeaderDisplyed(),"Verify if + // Comments header is displayed"); + // applicantBiometricsPage.enterCommentsInTextBox(TestDataReader.readData("comments")); applicantBiometricsPage.clickOnIrisScanTitle(); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isIrisScan(),"Verify if iris scan 1st attempt"); + assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); applicantBiometricsPage.clickOnBackButton(); } - if(FetchUiSpec.rightHand.equals("yes")) { - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - applicantBiometricsPage=biometricDetailsPage.clickOnRightHandScanIcon(); + if (FetchUiSpec.rightHand.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnRightHandScanIcon(); - assertTrue(applicantBiometricsPage.isRightHandScanTitleDisplyed(),"Verify if right hand scan is displayed"); + assertTrue(applicantBiometricsPage.isRightHandScanTitleDisplyed(), + "Verify if right hand scan is displayed"); applicantBiometricsPage.clickOnMarkExceptionButton(); - assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(),"Verify if applicant biometric mark exception is displayed"); - // applicantBiometricsPage.clickOnZoomButton(); + assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(), + "Verify if applicant biometric mark exception is displayed"); - assertTrue(applicantBiometricsPage.isRightHandScanTitleDisplyed(),"Verify if applicant right hand scan is displayed"); + assertTrue(applicantBiometricsPage.isRightHandScanTitleDisplyed(), + "Verify if applicant right hand scan is displayed"); applicantBiometricsPage.markOneFingureException(); - // applicantBiometricsPage.clickOnClosePopUp(); - assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(),"Verify if applicant biometric mark exception is displayed"); + assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(), + "Verify if applicant biometric mark exception is displayed"); applicantBiometricsPage.clickOnRightHandScanTitle(); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isRightHandScan(),"Verify if right hand scan 1st attempt"); + assertTrue(applicantBiometricsPage.isRightHandScan(), "Verify if right hand scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage=applicantBiometricsPage.clickOnBackButton(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); } - //lefthand - if(FetchUiSpec.leftHand.equals("yes")) { - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - applicantBiometricsPage=biometricDetailsPage.clickOnLeftHandScanIcon(); - - assertTrue(applicantBiometricsPage.isLeftHandScanTitleDisplyed(),"Verify if applicant left hand scan title is displayed"); + // lefthand + if (FetchUiSpec.leftHand.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnLeftHandScanIcon(); + + assertTrue(applicantBiometricsPage.isLeftHandScanTitleDisplyed(), + "Verify if applicant left hand scan title is displayed"); applicantBiometricsPage.clickOnMarkExceptionButton(); - assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(),"Verify if applicant biometric mark exception is displayed"); - // applicantBiometricsPage.clickOnZoomButton(); + assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(), + "Verify if applicant biometric mark exception is displayed"); + // applicantBiometricsPage.clickOnZoomButton(); - assertTrue(applicantBiometricsPage.isLeftHandScanTitleDisplyed(),"Verify if applicant right hand scan is displayed"); + assertTrue(applicantBiometricsPage.isLeftHandScanTitleDisplyed(), + "Verify if applicant right hand scan is displayed"); applicantBiometricsPage.markOneFingureException(); - // applicantBiometricsPage.clickOnClosePopUp(); + // applicantBiometricsPage.clickOnClosePopUp(); - assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(),"Verify if applicant biometric mark exception type is displayed"); - // assertTrue(applicantBiometricsPage.isExceptionCountDisplyed(),"Verify if exception count is displayed"); - // applicantBiometricsPage.clickOnExceptionTypeTemporaryButton(); + assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(), + "Verify if applicant biometric mark exception type is displayed"); + // assertTrue(applicantBiometricsPage.isExceptionCountDisplyed(),"Verify if + // exception count is displayed"); + // applicantBiometricsPage.clickOnExceptionTypeTemporaryButton(); // - // assertTrue(applicantBiometricsPage.isCommentHeaderDisplyed(),"Verify if Comments header is displayed"); - // applicantBiometricsPage.enterCommentsInTextBox(TestDataReader.readData("comments")); + // assertTrue(applicantBiometricsPage.isCommentHeaderDisplyed(),"Verify if + // Comments header is displayed"); + // applicantBiometricsPage.enterCommentsInTextBox(TestDataReader.readData("comments")); applicantBiometricsPage.clickOnleftHandScanTitle(); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isLeftHandScan(),"Verify if Left hand scan 1st attempt"); + assertTrue(applicantBiometricsPage.isLeftHandScan(), "Verify if Left hand scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage=applicantBiometricsPage.clickOnBackButton(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); } - //thumb - if(FetchUiSpec.thumb.equals("yes")) { - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); + // thumb + if (FetchUiSpec.thumb.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); biometricDetailsPage.clickOnContinueButton(); - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if user is not navigated to the next page without biometric scan"); - applicantBiometricsPage=biometricDetailsPage.clickOnThumbsScanIcon(); + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if user is not navigated to the next page without biometric scan"); + applicantBiometricsPage = biometricDetailsPage.clickOnThumbsScanIcon(); - assertTrue(applicantBiometricsPage.isThumbsScanTitleDisplyed(),"Verify if thumbs scan page is displayed"); + assertTrue(applicantBiometricsPage.isThumbsScanTitleDisplyed(), + "Verify if thumbs scan page is displayed"); applicantBiometricsPage.clickOnMarkExceptionButton(); - assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(),"Verify if applicant biometric mark exception is displayed"); + assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(), + "Verify if applicant biometric mark exception is displayed"); applicantBiometricsPage.markOneFingureException(); - assertTrue(applicantBiometricsPage.isExceptionCountDisplyed(),"Verify if exception count is displayed"); - // applicantBiometricsPage.clickOnExceptionTypeTemporaryButton(); + assertTrue(applicantBiometricsPage.isExceptionCountDisplyed(), + "Verify if exception count is displayed"); + // applicantBiometricsPage.clickOnExceptionTypeTemporaryButton(); // - // assertTrue(applicantBiometricsPage.isCommentHeaderDisplyed(),"Verify if Comments header is displayed"); - // applicantBiometricsPage.enterCommentsInTextBox(TestDataReader.readData("comments")); + // assertTrue(applicantBiometricsPage.isCommentHeaderDisplyed(),"Verify if + // Comments header is displayed"); + // applicantBiometricsPage.enterCommentsInTextBox(TestDataReader.readData("comments")); applicantBiometricsPage.clickOnThumbsScanTitle(); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isThumbsScan(),"Verify if thumbs scan 1st attempt"); + assertTrue(applicantBiometricsPage.isThumbsScan(), "Verify if thumbs scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage=applicantBiometricsPage.clickOnBackButton(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); } - //face - if(FetchUiSpec.face.equals("yes")) { - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); + // face + if (FetchUiSpec.face.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); biometricDetailsPage.clickOnFaceScanIcon(); - assertTrue(applicantBiometricsPage.isFaceScanTitleDisplyed(),"Verify if face scan page is displayed"); + assertTrue(applicantBiometricsPage.isFaceScanTitleDisplyed(), + "Verify if face scan page is displayed"); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isFaceScan(),"Verify if face scan 1st attempt"); + assertTrue(applicantBiometricsPage.isFaceScan(), "Verify if face scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); applicantBiometricsPage.clickOnBackButton(); } biometricDetailsPage.clickOnContinueButton(); - //Exception - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is still displayed without capture exception"); - applicantBiometricsPage=biometricDetailsPage.clickOnExceptionScanIcon(); + // Exception + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is still displayed without capture exception"); + applicantBiometricsPage = biometricDetailsPage.clickOnExceptionScanIcon(); - assertTrue(applicantBiometricsPage.isExceptionScanTitleDisplyed(),"Verify if exception scan page is displayed"); + assertTrue(applicantBiometricsPage.isExceptionScanTitleDisplyed(), + "Verify if exception scan page is displayed"); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isExceptionScan(),"Verify if exception scan 1st attempt"); + assertTrue(applicantBiometricsPage.isExceptionScan(), "Verify if exception scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage=applicantBiometricsPage.clickOnNextButton(); + biometricDetailsPage = applicantBiometricsPage.clickOnNextButton(); - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); biometricDetailsPage.clickOnContinueButton(); } } - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - previewPage=new PreviewPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - previewPage=new PreviewPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - previewPage=new PreviewPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - previewPage=new PreviewPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - previewPage=new PreviewPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - previewPage=new PreviewPageArabic(driver); - } - assertTrue(previewPage.isNewRegistrationTitleDisplayed(),"Verify if new Registration title is displayed"); - assertTrue(previewPage.isApplicationIDPreviewPagePageDisplayed(),"Verify if application ID In PreviewPage is displayed"); - assertTrue(previewPage.isDemographicInformationInPreviewPageDisplayed(),"Verify if Demographic Information In PreviewPage is displayed"); - assertTrue(previewPage.isDocumentsInformationInPreviewPageDisplayed(),"Verify if Documents Information In PreviewPage is displayed"); - assertTrue(previewPage.isBiometricsInformationInPreviewPagePageDisplayed(),"Verify if Biometrics Information In PreviewPage is displayed"); - // assertTrue(previewPage.isSingleIrisImageDisplayed(),"Verify if single iris exception image In PreviewPage is displayed"); - // assertTrue(previewPage.isFingerExceptionText(),"Verify if finger exception In PreviewPage is displayed"); - String Aid=previewPage.getAID(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + previewPage = new PreviewPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + previewPage = new PreviewPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + previewPage = new PreviewPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + previewPage = new PreviewPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + previewPage = new PreviewPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + previewPage = new PreviewPageArabic(driver); + } + assertTrue(previewPage.isNewRegistrationTitleDisplayed(), "Verify if new Registration title is displayed"); + assertTrue(previewPage.isApplicationIDPreviewPagePageDisplayed(), + "Verify if application ID In PreviewPage is displayed"); + assertTrue(previewPage.isDemographicInformationInPreviewPageDisplayed(), + "Verify if Demographic Information In PreviewPage is displayed"); + assertTrue(previewPage.isDocumentsInformationInPreviewPageDisplayed(), + "Verify if Documents Information In PreviewPage is displayed"); +// assertTrue(previewPage.isBiometricsInformationInPreviewPagePageDisplayed(),"Verify if Biometrics Information In PreviewPage is displayed"); + // assertTrue(previewPage.isSingleIrisImageDisplayed(),"Verify if single iris + // exception image In PreviewPage is displayed"); + // assertTrue(previewPage.isFingerExceptionText(),"Verify if finger exception In + // PreviewPage is displayed"); + String Aid = previewPage.getAID(); previewPage.clickOnContinueButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - authenticationPage=new AuthenticationPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - authenticationPage=new AuthenticationPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - authenticationPage=new AuthenticationPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - authenticationPage=new AuthenticationPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - authenticationPage=new AuthenticationPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - authenticationPage=new AuthenticationPageArabic(driver); - } - assertTrue(authenticationPage.isAuthenticationPageDisplayed(),"Verify if authentication details page is displayed"); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + authenticationPage = new AuthenticationPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + authenticationPage = new AuthenticationPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + authenticationPage = new AuthenticationPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + authenticationPage = new AuthenticationPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + authenticationPage = new AuthenticationPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + authenticationPage = new AuthenticationPageArabic(driver); + } + assertTrue(authenticationPage.isAuthenticationPageDisplayed(), + "Verify if authentication details page is displayed"); authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); authenticationPage.clickOnAuthenticatenButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - acknowledgementPage=new AcknowledgementPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - acknowledgementPage=new AcknowledgementPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - acknowledgementPage=new AcknowledgementPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - acknowledgementPage=new AcknowledgementPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - acknowledgementPage=new AcknowledgementPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - acknowledgementPage=new AcknowledgementPageArabic(driver); - } - assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(),"Verify if acknowledgement details page is displayed"); - // assertTrue(acknowledgementPage.isQrCodeImageDisplayed(),"Verify if qr code image is displayed"); - + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + acknowledgementPage = new AcknowledgementPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + acknowledgementPage = new AcknowledgementPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + acknowledgementPage = new AcknowledgementPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + acknowledgementPage = new AcknowledgementPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + acknowledgementPage = new AcknowledgementPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + acknowledgementPage = new AcknowledgementPageArabic(driver); + } + assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(), + "Verify if acknowledgement details page is displayed"); acknowledgementPage.clickOnGoToHomeButton(); - assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(),"Verify if registration tasks page is loaded"); - registrationTasksPage.clickOnOperationalTasksTitle(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - operationalTaskPage=new OperationalTaskPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - operationalTaskPage=new OperationalTaskPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - operationalTaskPage=new OperationalTaskPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - operationalTaskPage=new OperationalTaskPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - operationalTaskPage=new OperationalTaskPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - operationalTaskPage=new OperationalTaskPageArabic(driver); + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + registrationTasksPage.clickOnOperationalTasksTitle(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + operationalTaskPage = new OperationalTaskPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + operationalTaskPage = new OperationalTaskPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + operationalTaskPage = new OperationalTaskPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + operationalTaskPage = new OperationalTaskPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + operationalTaskPage = new OperationalTaskPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + operationalTaskPage = new OperationalTaskPageArabic(driver); } assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); assertTrue(operationalTaskPage.isPendingApprovalTitleDisplayed(), "Verify if pending approval tite displayed"); operationalTaskPage.clickPendingApprovalTitle(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - pendingApproval=new PendingApprovalEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - pendingApproval=new PendingApprovalHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - pendingApproval=new PendingApprovalFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - pendingApproval=new PendingApprovalKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - pendingApproval=new PendingApprovalTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - pendingApproval=new PendingApprovalArabic(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + pendingApproval = new PendingApprovalEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + pendingApproval = new PendingApprovalHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + pendingApproval = new PendingApprovalFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + pendingApproval = new PendingApprovalKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + pendingApproval = new PendingApprovalTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + pendingApproval = new PendingApprovalArabic(driver); } assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed"); pendingApproval.clickOnAID(Aid); @@ -577,77 +538,83 @@ else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ pendingApproval.clickOnApproveButton(); pendingApproval.clickOnClosePopUpButton(); - assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed after approving packet"); + assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), + "Verify if pending approval page displayed after approving packet"); pendingApproval.clickOnCheckBox(); - assertTrue(pendingApproval.isSubmitButtonEnabled(), "Verify if submit button is enable after selecting packet"); - pendingApproval.clickOnSubmitButton(); + assertTrue(pendingApproval.isAuthenticateButtonEnabled(), + "Verify if authenticate button is enable after selecting packet"); - assertTrue(pendingApproval.isSupervisorAuthenticationTitleDisplayed(), "Verify if Supervisor Authentication page displayed"); + boolean isPageDisplayed = false; + for (int i = 0; i < 3; i++) { + pendingApproval.clickOnAuthenticateButton(); + Thread.sleep(2000); + if (pendingApproval.isSupervisorAuthenticationTitleDisplayed()) { + isPageDisplayed = true; + break; + } + } + assertTrue(pendingApproval.isSupervisorAuthenticationTitleDisplayed(), + "Verify if Supervisor Authentication page displayed"); pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser); pendingApproval.enterPassword(ArcConfigManager.getIAMUsersPassword()); pendingApproval.clickOnSubmitButton(); pendingApproval.clickOnBackButton(); - assertTrue(operationalTaskPage.isApplicationUploadTitleDisplayed(), "Verify if application upload tite displayed"); - assertTrue(operationalTaskPage.isApplicationUploadTitleDisplayed(), "Verify if application upload tite displayed"); - - operationalTaskPage.clickApplicationUploadTitle(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - manageApplicationsPage=new ManageApplicationsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - manageApplicationsPage=new ManageApplicationsPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - manageApplicationsPage=new ManageApplicationsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - manageApplicationsPage=new ManageApplicationsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - manageApplicationsPage=new ManageApplicationsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - manageApplicationsPage=new ManageApplicationsPageArabic(driver); - } - assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), "Verify if manage Applications Page displayed"); + assertTrue(operationalTaskPage.isApplicationUploadTitleDisplayed(), + "Verify if application upload tite displayed"); + assertTrue(operationalTaskPage.isApplicationUploadTitleDisplayed(), + "Verify if application upload tite displayed"); + + operationalTaskPage.clickApplicationUploadTitle(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + manageApplicationsPage = new ManageApplicationsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + manageApplicationsPage = new ManageApplicationsPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + manageApplicationsPage = new ManageApplicationsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + manageApplicationsPage = new ManageApplicationsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + manageApplicationsPage = new ManageApplicationsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + manageApplicationsPage = new ManageApplicationsPageArabic(driver); + } + assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), + "Verify if manage Applications Page displayed"); manageApplicationsPage.enterAID(Aid); assertTrue(manageApplicationsPage.isSearchAIDDisplayed(Aid), "Verify if Search Aid should displayed"); - assertTrue(manageApplicationsPage.isPacketApproved(Aid), "Verify if packet is approved after approve in pending approval"); + assertTrue(manageApplicationsPage.isPacketApproved(Aid), + "Verify if packet is approved after approve in pending approval"); manageApplicationsPage.clickOnSearchCheckBox(); manageApplicationsPage.clickOnUploadButton(); manageApplicationsPage.clickOnBackButton(); - assertTrue(registrationTasksPage.isProfileTitleDisplayed(),"Verify if profile title display on homepage"); + assertTrue(registrationTasksPage.isProfileTitleDisplayed(), "Verify if profile title display on homepage"); registrationTasksPage.clickProfileButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - profilePage=new ProfilePageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - profilePage=new ProfilePageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - profilePage=new ProfilePageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - profilePage=new ProfilePageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - profilePage=new ProfilePageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - profilePage=new ProfilePageArabic(driver); - } - // assertTrue(profilePage.isProfileTitleDisplayed(),"Verify if profile title display on Profilepage"); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + profilePage = new ProfilePageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + profilePage = new ProfilePageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + profilePage = new ProfilePageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + profilePage = new ProfilePageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + profilePage = new ProfilePageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + profilePage = new ProfilePageArabic(driver); + } + // assertTrue(profilePage.isProfileTitleDisplayed(),"Verify if profile title + // display on Profilepage"); profilePage.clickOnLogoutButton(); profilePage.clickOnLogoutButton(); - assertTrue(loginPage.isLoginPageLoaded(),"verify if login page is displayeded in Selected language"); + assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayeded in Selected language"); } } diff --git a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationInfant.java b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationInfant.java index 453e9f155..0679af626 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationInfant.java +++ b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationInfant.java @@ -128,44 +128,39 @@ public class NewRegistrationInfant extends AndroidBaseTest { @Test - public void newRegistrationInfant(){ + public void newRegistrationInfant() throws InterruptedException { FetchUiSpec.getUiSpec("newProcess"); FetchUiSpec.getBiometricDetails("individualBiometrics"); - List screenOrder=FetchUiSpec.getAllScreenOrder(); + List screenOrder = FetchUiSpec.getAllScreenOrder(); BasePage.disableAutoRotation(); LoginPage loginPage = null; - RegistrationTasksPage registrationTasksPage=null; - SelectLanguagePage selectLanguagePage=null; - ConsentPage consentPage=null; - DemographicDetailsPage demographicPage=null; - DocumentUploadPage documentuploadPage=null; - BiometricDetailsPage biometricDetailsPage=null; - ApplicantBiometricsPage applicantBiometricsPage=null; - PreviewPage previewPage=null; - AuthenticationPage authenticationPage=null; - AcknowledgementPage acknowledgementPage=null; - IntroducerBiometricPage introducerBiometricPage=null; - OperationalTaskPage operationalTaskPage=null; - PendingApproval pendingApproval=null; - ManageApplicationsPage manageApplicationsPage=null; - ProfilePage profilePage=null; - - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { + RegistrationTasksPage registrationTasksPage = null; + SelectLanguagePage selectLanguagePage = null; + ConsentPage consentPage = null; + DemographicDetailsPage demographicPage = null; + DocumentUploadPage documentuploadPage = null; + BiometricDetailsPage biometricDetailsPage = null; + ApplicantBiometricsPage applicantBiometricsPage = null; + PreviewPage previewPage = null; + AuthenticationPage authenticationPage = null; + AcknowledgementPage acknowledgementPage = null; + IntroducerBiometricPage introducerBiometricPage = null; + OperationalTaskPage operationalTaskPage = null; + PendingApproval pendingApproval = null; + ManageApplicationsPage manageApplicationsPage = null; + ProfilePage profilePage = null; + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { loginPage = new LoginPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { loginPage = new LoginPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { loginPage = new LoginPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { loginPage = new LoginPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { loginPage = new LoginPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { loginPage = new LoginPageArabic(driver); } loginPage.selectLanguage(); @@ -175,452 +170,366 @@ else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); loginPage.clickOnloginButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - registrationTasksPage=new RegistrationTasksPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - registrationTasksPage=new RegistrationTasksPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - registrationTasksPage=new RegistrationTasksPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - registrationTasksPage=new RegistrationTasksPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - registrationTasksPage=new RegistrationTasksPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - registrationTasksPage=new RegistrationTasksPageArabic(driver); - } - assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(),"Verify if registration tasks page is loaded"); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + registrationTasksPage = new RegistrationTasksPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + registrationTasksPage = new RegistrationTasksPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + registrationTasksPage = new RegistrationTasksPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + registrationTasksPage = new RegistrationTasksPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + registrationTasksPage = new RegistrationTasksPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + registrationTasksPage = new RegistrationTasksPageArabic(driver); + } + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnNewRegistrationButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - selectLanguagePage=new SelectLanguagePageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - selectLanguagePage=new SelectLanguagePageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - selectLanguagePage=new SelectLanguagePageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - selectLanguagePage=new SelectLanguagePageKannada(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + selectLanguagePage = new SelectLanguagePageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + selectLanguagePage = new SelectLanguagePageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + selectLanguagePage = new SelectLanguagePageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + selectLanguagePage = new SelectLanguagePageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + selectLanguagePage = new SelectLanguagePageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + selectLanguagePage = new SelectLanguagePageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - selectLanguagePage=new SelectLanguagePageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - selectLanguagePage=new SelectLanguagePageArabic(driver); - } - assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(),"Verify if select language page is loaded"); selectLanguagePage.clickOnSubmitButtonWithoutSelectingLanguage(); - assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(),"Verify if user should not be allow to navigate to next screen."); selectLanguagePage.selectSecondLanguage(); - assertTrue(selectLanguagePage.isNotificationLanguageEnglishDisplayed(),"verify if the notification language display in english"); selectLanguagePage.selectNotificationlanguage(TestDataReader.readData("notificationLanguage")); - assertTrue(selectLanguagePage.isSubmitButtonEnabled(),"verify if the submit button enabled"); selectLanguagePage.clickOnSubmitButton(); - for(String screen :screenOrder) { - if(screen.equals("consentdet") || screen.equals("consent")) { - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - consentPage =new ConsentPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - consentPage =new ConsentPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - consentPage =new ConsentPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - consentPage =new ConsentPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - consentPage =new ConsentPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - consentPage =new ConsentPageArabic(driver); + for (String screen : screenOrder) { + if (screen.equals("consentdet") || screen.equals("consent")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + consentPage = new ConsentPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + consentPage = new ConsentPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + consentPage = new ConsentPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + consentPage = new ConsentPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + consentPage = new ConsentPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + consentPage = new ConsentPageArabic(driver); } - assertTrue(consentPage.isConsentPageDisplayed(),"Verify if Consent page is loaded"); - - assertTrue(consentPage.isInformedButtonEnabled(),"Verify if informed button enabled"); consentPage.clickOnInformedButton(); - }else if(screen.equals("DemographicDetails")) { - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - demographicPage=new DemographicDetailsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - demographicPage=new DemographicDetailsPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - demographicPage=new DemographicDetailsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - demographicPage=new DemographicDetailsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - demographicPage=new DemographicDetailsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - demographicPage=new DemographicDetailsPageArabic(driver); + } else if (screen.equals("DemographicDetails")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + demographicPage = new DemographicDetailsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + demographicPage = new DemographicDetailsPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + demographicPage = new DemographicDetailsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + demographicPage = new DemographicDetailsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + demographicPage = new DemographicDetailsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + demographicPage = new DemographicDetailsPageArabic(driver); } - assertTrue(demographicPage.isDemographicDetailsPageDisplayed(),"Verify if demographic details page is displayed"); demographicPage.fillDemographicDetailsPage("currentCalenderDate"); demographicPage.clickOnContinueButton(); - }else if(screen.equals("Documents")) { - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - documentuploadPage=new DocumentuploadPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - documentuploadPage=new DocumentUploadPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - documentuploadPage=new DocumentUploadPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - documentuploadPage=new DocumentuploadPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - documentuploadPage=new DocumentuploadPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - documentuploadPage=new DocumentuploadPageArabic(driver); - } - assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(),"Verify if doccumentupload page is displayed"); - documentuploadPage.uploadDoccuments("infant","withoutReferenceNumber"); + } else if (screen.equals("Documents")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + documentuploadPage = new DocumentuploadPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + documentuploadPage = new DocumentUploadPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + documentuploadPage = new DocumentUploadPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + documentuploadPage = new DocumentuploadPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + documentuploadPage = new DocumentuploadPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + documentuploadPage = new DocumentuploadPageArabic(driver); + } + documentuploadPage.uploadDoccuments("infant", "withoutReferenceNumber"); documentuploadPage.clickOnContinueButton(); - }else if(screen.equals("BiometricDetails")) { - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - biometricDetailsPage=new BiometricDetailsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - biometricDetailsPage=new BiometricDetailsPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - biometricDetailsPage=new BiometricDetailsPageFrench(driver); + } else if (screen.equals("BiometricDetails")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + biometricDetailsPage = new BiometricDetailsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + biometricDetailsPage = new BiometricDetailsPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + biometricDetailsPage = new BiometricDetailsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + biometricDetailsPage = new BiometricDetailsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + biometricDetailsPage = new BiometricDetailsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + biometricDetailsPage = new BiometricDetailsPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - biometricDetailsPage=new BiometricDetailsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - biometricDetailsPage=new BiometricDetailsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - biometricDetailsPage=new BiometricDetailsPageArabic(driver); - } - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); biometricDetailsPage.clickOnFaceScanIcon(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - applicantBiometricsPage=new ApplicantBiometricsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - applicantBiometricsPage=new ApplicantBiometricsPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - applicantBiometricsPage=new ApplicantBiometricsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - applicantBiometricsPage=new ApplicantBiometricsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - applicantBiometricsPage=new ApplicantBiometricsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - applicantBiometricsPage=new ApplicantBiometricsPageArabic(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); } applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isFaceScan(),"Verify if face captured and 2 attempts left text is displayed"); - applicantBiometricsPage.closeScanCapturePopUp();; - biometricDetailsPage=applicantBiometricsPage.clickOnNextButton(); + assertTrue(applicantBiometricsPage.isFaceScan(), + "Verify if face captured and 2 attempts left text is displayed"); + applicantBiometricsPage.closeScanCapturePopUp(); - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - introducerBiometricPage=new IntroducerBiometricPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - introducerBiometricPage=new IntroducerBiometricPageHindi(driver); + biometricDetailsPage = applicantBiometricsPage.clickOnNextButton(); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - introducerBiometricPage=new IntroducerBiometricPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - introducerBiometricPage=new IntroducerBiometricPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - introducerBiometricPage=new IntroducerBiometricPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - introducerBiometricPage=new IntroducerBiometricPageArabic(driver); + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + introducerBiometricPage = new IntroducerBiometricPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + introducerBiometricPage = new IntroducerBiometricPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + introducerBiometricPage = new IntroducerBiometricPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + introducerBiometricPage = new IntroducerBiometricPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + introducerBiometricPage = new IntroducerBiometricPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + introducerBiometricPage = new IntroducerBiometricPageArabic(driver); } FetchUiSpec.getBiometricDetails("introducerBiometrics"); - if(FetchUiSpec.eye.equals("yes")) { + if (FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIntroducerIrisScan(); - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(),"Verify if introducer biometric page is displayed"); + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + "Verify if introducer biometric page is displayed"); + introducerBiometricPage.clickOnScanButton(); - assertTrue(introducerBiometricPage.isIrisScan(),"Verify if iris scan 1st attempt"); + if (!introducerBiometricPage.isIrisScan()) { + introducerBiometricPage.clickOnScanButton(); + } + + assertTrue(introducerBiometricPage.isIrisScan(), "Verify if iris scan 1st attempt"); introducerBiometricPage.closeScanCapturePopUp(); introducerBiometricPage.clickOnNextButton(); } - //righthand - if(FetchUiSpec.rightHand.equals("yes")) { - if(!FetchUiSpec.eye.equals("yes")) { - biometricDetailsPage.clickOnIntroducerRightHandScan(); + // righthand + if (FetchUiSpec.rightHand.equals("yes")) { + + introducerBiometricPage.clickOnScanButton(); + + if (!introducerBiometricPage.isRightHandScan()) { + introducerBiometricPage.clickOnScanButton(); } - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(),"Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isRightHandScanTitleDisplyed(),"Verify if right hand scan is displayed"); - introducerBiometricPage.clickOnScanButton(); + assertTrue(introducerBiometricPage.isRightHandScan(), + "Verify if right hand scan 1st attempt"); - assertTrue(introducerBiometricPage.isRightHandScan(),"Verify if right hand scan 1st attempt"); introducerBiometricPage.closeScanCapturePopUp(); introducerBiometricPage.clickOnNextButton(); } - //lefthand - if(FetchUiSpec.leftHand.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(),"Verify if introducer biometric page is displayed"); - - assertTrue(introducerBiometricPage.isLeftHandScanTitleDisplyed(),"Verify if applicant left hand scan title is displayed"); + // lefthand + if (FetchUiSpec.leftHand.equals("yes")) { introducerBiometricPage.clickOnScanButton(); - - assertTrue(introducerBiometricPage.isLeftHandScan(),"Verify if Left hand scan 1st attempt"); + assertTrue(introducerBiometricPage.isLeftHandScan(), + "Verify if left hand scan 1st attempt"); introducerBiometricPage.closeScanCapturePopUp(); + assertTrue(introducerBiometricPage.isNextButtonDisplyed(), + "Verify if next button displayed"); introducerBiometricPage.clickOnNextButton(); } - //thumb - if(FetchUiSpec.thumb.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(),"Verify if introducer biometric page is displayed"); - - assertTrue(introducerBiometricPage.isThumbsScanTitleDisplyed(),"Verify if thumbs scan page is displayed"); + // thumb + if (FetchUiSpec.thumb.equals("yes")) { introducerBiometricPage.clickOnScanButton(); + + if (!introducerBiometricPage.isThumbsScan()) { + introducerBiometricPage.clickOnScanButton(); + } - assertTrue(introducerBiometricPage.isThumbsScan(),"Verify if thumbs scan 1st attempt"); + assertTrue(introducerBiometricPage.isThumbsScan(), + "Verify if thumb scan 1st attempt"); + introducerBiometricPage.closeScanCapturePopUp(); + + assertTrue(introducerBiometricPage.isNextButtonDisplyed(), + "Verify if next button displayed"); introducerBiometricPage.clickOnNextButton(); } - //face - if(FetchUiSpec.face.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(),"Verify if introducer biometric page is displayed"); - - assertTrue(introducerBiometricPage.isFaceScanTitleDisplyed(),"Verify if face scan page is displayed"); + // face + if (FetchUiSpec.face.equals("yes")) { introducerBiometricPage.clickOnScanButton(); - assertTrue(introducerBiometricPage.isFaceScan(),"Verify if face scan 1st attempt"); introducerBiometricPage.closeScanCapturePopUp(); - biometricDetailsPage=introducerBiometricPage.clickOnNextButton(); + assertTrue(introducerBiometricPage.isNextButtonDisplyed(), + "Verify if next button displayed"); + introducerBiometricPage.clickOnNextButton(); } biometricDetailsPage.clickOnContinueButton(); } - } - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - previewPage=new PreviewPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - previewPage=new PreviewPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - previewPage=new PreviewPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - previewPage=new PreviewPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - previewPage=new PreviewPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - previewPage=new PreviewPageArabic(driver); - } - assertTrue(previewPage.isNewRegistrationTitleDisplayed(),"Verify if new Registration title is displayed"); - assertTrue(previewPage.isApplicationIDPreviewPagePageDisplayed(),"Verify if application ID In PreviewPage is displayed"); - assertTrue(previewPage.isDemographicInformationInPreviewPageDisplayed(),"Verify if Demographic Information In PreviewPage is displayed"); - assertTrue(previewPage.isDocumentsInformationInPreviewPageDisplayed(),"Verify if Documents Information In PreviewPage is displayed"); - assertTrue(previewPage.isBiometricsInformationInPreviewPagePageDisplayed(),"Verify if Biometrics Information In PreviewPage is displayed"); - String Aid=previewPage.getAID(); + + } + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + previewPage = new PreviewPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + previewPage = new PreviewPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + previewPage = new PreviewPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + previewPage = new PreviewPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + previewPage = new PreviewPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + previewPage = new PreviewPageArabic(driver); + } + + String Aid = previewPage.getAID(); previewPage.clickOnContinueButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - authenticationPage=new AuthenticationPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - authenticationPage=new AuthenticationPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - authenticationPage=new AuthenticationPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - authenticationPage=new AuthenticationPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - authenticationPage=new AuthenticationPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - authenticationPage=new AuthenticationPageArabic(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + authenticationPage = new AuthenticationPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + authenticationPage = new AuthenticationPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + authenticationPage = new AuthenticationPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + authenticationPage = new AuthenticationPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + authenticationPage = new AuthenticationPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + authenticationPage = new AuthenticationPageArabic(driver); } - assertTrue(authenticationPage.isAuthenticationPageDisplayed(),"Verify if authentication details page is displayed"); + authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); authenticationPage.clickOnAuthenticatenButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - acknowledgementPage=new AcknowledgementPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - acknowledgementPage=new AcknowledgementPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - acknowledgementPage=new AcknowledgementPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - acknowledgementPage=new AcknowledgementPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - acknowledgementPage=new AcknowledgementPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - acknowledgementPage=new AcknowledgementPageArabic(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + acknowledgementPage = new AcknowledgementPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + acknowledgementPage = new AcknowledgementPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + acknowledgementPage = new AcknowledgementPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + acknowledgementPage = new AcknowledgementPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + acknowledgementPage = new AcknowledgementPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + acknowledgementPage = new AcknowledgementPageArabic(driver); } - assertTrue(previewPage.isNewRegistrationTitleDisplayed(),"Verify if new Registration title is displayed"); - assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(),"Verify if acknowledgement details page is displayed"); acknowledgementPage.clickOnGoToHomeButton(); - assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(),"Verify if registration tasks page is loaded"); - registrationTasksPage.clickOnOperationalTasksTitle(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - operationalTaskPage=new OperationalTaskPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - operationalTaskPage=new OperationalTaskPageHindi(driver); + registrationTasksPage.clickOnOperationalTasksTitle(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + operationalTaskPage = new OperationalTaskPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + operationalTaskPage = new OperationalTaskPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + operationalTaskPage = new OperationalTaskPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + operationalTaskPage = new OperationalTaskPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + operationalTaskPage = new OperationalTaskPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + operationalTaskPage = new OperationalTaskPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - operationalTaskPage=new OperationalTaskPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - operationalTaskPage=new OperationalTaskPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - operationalTaskPage=new OperationalTaskPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - operationalTaskPage=new OperationalTaskPageArabic(driver); - } - assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); - assertTrue(operationalTaskPage.isPendingApprovalTitleDisplayed(), "Verify if pending approval tite displayed"); operationalTaskPage.clickPendingApprovalTitle(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - pendingApproval=new PendingApprovalEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - pendingApproval=new PendingApprovalHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - pendingApproval=new PendingApprovalFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - pendingApproval=new PendingApprovalKannada(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + pendingApproval = new PendingApprovalEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + pendingApproval = new PendingApprovalHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + pendingApproval = new PendingApprovalFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + pendingApproval = new PendingApprovalKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + pendingApproval = new PendingApprovalTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + pendingApproval = new PendingApprovalArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - pendingApproval=new PendingApprovalTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - pendingApproval=new PendingApprovalArabic(driver); - } - assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed"); - // assertTrue(pendingApproval.isPageAttributesDisplayed(), "Verify if all attributes should be available in pending approval screen"); pendingApproval.clickOnAID(Aid); - assertTrue(pendingApproval.isApprovalButtonDisplayed(), "Verify if approval button displayed"); - pendingApproval.clickOnApproveButton(); + pendingApproval.clickOnApproveButton(); pendingApproval.clickOnClosePopUpButton(); - assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed after approving packet"); pendingApproval.clickOnCheckBox(); - assertTrue(pendingApproval.isSubmitButtonEnabled(), "Verify if submit button is enable after selecting packet"); - pendingApproval.clickOnSubmitButton(); + assertTrue(pendingApproval.isAuthenticateButtonEnabled(), + "Verify if authenticate button is enable after selecting packet"); + + boolean isPageDisplayed = false; + for (int i = 0; i < 3; i++) { + pendingApproval.clickOnAuthenticateButton(); + Thread.sleep(2000); + if (pendingApproval.isSupervisorAuthenticationTitleDisplayed()) { + isPageDisplayed = true; + break; + } + } - assertTrue(pendingApproval.isSupervisorAuthenticationTitleDisplayed(), "Verify if Supervisor Authentication page displayed"); pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser); pendingApproval.enterPassword(ArcConfigManager.getIAMUsersPassword()); pendingApproval.clickOnSubmitButton(); pendingApproval.clickOnBackButton(); - assertTrue(operationalTaskPage.isApplicationUploadTitleDisplayed(), "Verify if application upload tite displayed"); - - operationalTaskPage.clickApplicationUploadTitle(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - manageApplicationsPage=new ManageApplicationsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - manageApplicationsPage=new ManageApplicationsPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - manageApplicationsPage=new ManageApplicationsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - manageApplicationsPage=new ManageApplicationsPageKannada(driver); + operationalTaskPage.clickApplicationUploadTitle(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + manageApplicationsPage = new ManageApplicationsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + manageApplicationsPage = new ManageApplicationsPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + manageApplicationsPage = new ManageApplicationsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + manageApplicationsPage = new ManageApplicationsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + manageApplicationsPage = new ManageApplicationsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + manageApplicationsPage = new ManageApplicationsPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - manageApplicationsPage=new ManageApplicationsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - manageApplicationsPage=new ManageApplicationsPageArabic(driver); - } - assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), "Verify if manage Applications Page displayed"); manageApplicationsPage.clickServerStatusDropdown(); - assertTrue(manageApplicationsPage.isReceivedDropdownOptionDisplayed(), "Verify if Received Dropdown Option Displayed displayed"); - assertTrue(manageApplicationsPage.isProcessingDropdownOptionDisplayed(), "Verify if Processing Dropdown Option Displayed displayed"); - assertTrue(manageApplicationsPage.isAcceptedDropdownOptionDisplayed(), "Verify if Accepted Dropdown Option Displayed"); - assertTrue(manageApplicationsPage.isDeletionDropdownOptionDisplayed(), "Verify if Deletion Dropdown Option Displayed"); manageApplicationsPage.clickDismissButton(); manageApplicationsPage.enterAID(Aid); - assertTrue(manageApplicationsPage.isSearchAIDDisplayed(Aid), "Verify if Search Aid should displayed"); - assertTrue(manageApplicationsPage.isPacketApproved(Aid), "Verify if packet is approved after approve in pending approval"); - manageApplicationsPage.clickOnSearchCheckBox(); manageApplicationsPage.clickOnUploadButton(); manageApplicationsPage.clickOnBackButton(); - assertTrue(registrationTasksPage.isProfileTitleDisplayed(),"Verify if profile title display on homepage"); registrationTasksPage.clickProfileButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - profilePage=new ProfilePageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - profilePage=new ProfilePageHindi(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + profilePage = new ProfilePageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + profilePage = new ProfilePageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + profilePage = new ProfilePageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + profilePage = new ProfilePageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + profilePage = new ProfilePageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + profilePage = new ProfilePageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - profilePage=new ProfilePageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - profilePage=new ProfilePageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - profilePage=new ProfilePageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - profilePage=new ProfilePageArabic(driver); - } - // assertTrue(profilePage.isProfileTitleDisplayed(),"Verify if profile title display on Profilepage"); profilePage.clickOnLogoutButton(); profilePage.clickOnLogoutButton(); - assertTrue(loginPage.isLoginPageLoaded(),"verify if login page is displayeded in Selected language"); + assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayeded in Selected language"); } - } diff --git a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinor.java b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinor.java index b010180f5..fb8a53b0d 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinor.java +++ b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinor.java @@ -128,44 +128,39 @@ public class NewRegistrationMinor extends AndroidBaseTest { @Test - public void newRegistrationMinor(){ + public void newRegistrationMinor() throws InterruptedException { FetchUiSpec.getUiSpec("newProcess"); FetchUiSpec.getBiometricDetails("individualBiometrics"); - List screenOrder=FetchUiSpec.getAllScreenOrder(); + List screenOrder = FetchUiSpec.getAllScreenOrder(); BasePage.disableAutoRotation(); LoginPage loginPage = null; - RegistrationTasksPage registrationTasksPage=null; - SelectLanguagePage selectLanguagePage=null; - ConsentPage consentPage=null; - DemographicDetailsPage demographicPage=null; - DocumentUploadPage documentuploadPage=null; - BiometricDetailsPage biometricDetailsPage=null; - ApplicantBiometricsPage applicantBiometricsPage=null; - PreviewPage previewPage=null; - AuthenticationPage authenticationPage=null; - AcknowledgementPage acknowledgementPage=null; - IntroducerBiometricPage introducerBiometricPage=null; - OperationalTaskPage operationalTaskPage=null; - ManageApplicationsPage manageApplicationsPage=null; - PendingApproval pendingApproval=null; - ProfilePage profilePage=null; - - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { + RegistrationTasksPage registrationTasksPage = null; + SelectLanguagePage selectLanguagePage = null; + ConsentPage consentPage = null; + DemographicDetailsPage demographicPage = null; + DocumentUploadPage documentuploadPage = null; + BiometricDetailsPage biometricDetailsPage = null; + ApplicantBiometricsPage applicantBiometricsPage = null; + PreviewPage previewPage = null; + AuthenticationPage authenticationPage = null; + AcknowledgementPage acknowledgementPage = null; + IntroducerBiometricPage introducerBiometricPage = null; + OperationalTaskPage operationalTaskPage = null; + ManageApplicationsPage manageApplicationsPage = null; + PendingApproval pendingApproval = null; + ProfilePage profilePage = null; + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { loginPage = new LoginPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { loginPage = new LoginPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { loginPage = new LoginPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { loginPage = new LoginPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { loginPage = new LoginPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { loginPage = new LoginPageArabic(driver); } loginPage.selectLanguage(); @@ -174,500 +169,421 @@ else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); loginPage.clickOnloginButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - registrationTasksPage=new RegistrationTasksPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - registrationTasksPage=new RegistrationTasksPageHindi(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + registrationTasksPage = new RegistrationTasksPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + registrationTasksPage = new RegistrationTasksPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + registrationTasksPage = new RegistrationTasksPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + registrationTasksPage = new RegistrationTasksPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + registrationTasksPage = new RegistrationTasksPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + registrationTasksPage = new RegistrationTasksPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - registrationTasksPage=new RegistrationTasksPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - registrationTasksPage=new RegistrationTasksPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - registrationTasksPage=new RegistrationTasksPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - registrationTasksPage=new RegistrationTasksPageArabic(driver); - } - assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(),"Verify if registration tasks page is loaded"); + registrationTasksPage.clickOnNewRegistrationButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - selectLanguagePage=new SelectLanguagePageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - selectLanguagePage=new SelectLanguagePageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - selectLanguagePage=new SelectLanguagePageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - selectLanguagePage=new SelectLanguagePageKannada(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + selectLanguagePage = new SelectLanguagePageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + selectLanguagePage = new SelectLanguagePageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + selectLanguagePage = new SelectLanguagePageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + selectLanguagePage = new SelectLanguagePageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + selectLanguagePage = new SelectLanguagePageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + selectLanguagePage = new SelectLanguagePageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - selectLanguagePage=new SelectLanguagePageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - selectLanguagePage=new SelectLanguagePageArabic(driver); - } - assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(),"Verify if select language page is loaded"); selectLanguagePage.clickOnSubmitButtonWithoutSelectingLanguage(); - assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(),"Verify if user should not be allow to navigate to next screen."); selectLanguagePage.selectSecondLanguage(); - assertTrue(selectLanguagePage.isNotificationLanguageEnglishDisplayed(),"verify if the notification language display in english"); selectLanguagePage.selectNotificationlanguage(TestDataReader.readData("notificationLanguage")); - assertTrue(selectLanguagePage.isSubmitButtonEnabled(),"verify if the submit button enabled"); selectLanguagePage.clickOnSubmitButton(); - for(String screen :screenOrder) { - if(screen.equals("consentdet") || screen.equals("consent")) { - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - consentPage =new ConsentPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - consentPage =new ConsentPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - consentPage =new ConsentPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - consentPage =new ConsentPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - consentPage =new ConsentPageTamil(driver); + for (String screen : screenOrder) { + if (screen.equals("consentdet") || screen.equals("consent")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + consentPage = new ConsentPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + consentPage = new ConsentPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + consentPage = new ConsentPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + consentPage = new ConsentPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + consentPage = new ConsentPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + consentPage = new ConsentPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - consentPage =new ConsentPageArabic(driver); - } - assertTrue(consentPage.isConsentPageDisplayed(),"Verify if Consent page is loaded"); - - assertTrue(consentPage.isInformedButtonEnabled(),"Verify if informed button enabled"); consentPage.clickOnInformedButton(); - }else if(screen.equals("DemographicDetails")) { - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - demographicPage=new DemographicDetailsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - demographicPage=new DemographicDetailsPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - demographicPage=new DemographicDetailsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - demographicPage=new DemographicDetailsPageKannada(driver); + } else if (screen.equals("DemographicDetails")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + demographicPage = new DemographicDetailsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + demographicPage = new DemographicDetailsPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + demographicPage = new DemographicDetailsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + demographicPage = new DemographicDetailsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + demographicPage = new DemographicDetailsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + demographicPage = new DemographicDetailsPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - demographicPage=new DemographicDetailsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - demographicPage=new DemographicDetailsPageArabic(driver); - } - assertTrue(demographicPage.isDemographicDetailsPageDisplayed(),"Verify if demographic details page is displayed"); demographicPage.fillDemographicDetailsPage("minor"); demographicPage.clickOnContinueButton(); - }else if(screen.equals("Documents")) { - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - documentuploadPage=new DocumentuploadPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - documentuploadPage=new DocumentUploadPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - documentuploadPage=new DocumentUploadPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - documentuploadPage=new DocumentuploadPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - documentuploadPage=new DocumentuploadPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - documentuploadPage=new DocumentuploadPageArabic(driver); - } - assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(),"Verify if doccumentupload page is displayed"); - documentuploadPage.uploadDoccuments("minor","withoutReferenceNumber"); + } else if (screen.equals("Documents")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + documentuploadPage = new DocumentuploadPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + documentuploadPage = new DocumentUploadPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + documentuploadPage = new DocumentUploadPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + documentuploadPage = new DocumentuploadPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + documentuploadPage = new DocumentuploadPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + documentuploadPage = new DocumentuploadPageArabic(driver); + } + documentuploadPage.uploadDoccuments("minor", "withoutReferenceNumber"); documentuploadPage.clickOnContinueButton(); - }else if(screen.equals("BiometricDetails")) { - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - biometricDetailsPage=new BiometricDetailsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - biometricDetailsPage=new BiometricDetailsPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - biometricDetailsPage=new BiometricDetailsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - biometricDetailsPage=new BiometricDetailsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - biometricDetailsPage=new BiometricDetailsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - biometricDetailsPage=new BiometricDetailsPageArabic(driver); - } - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - applicantBiometricsPage=new ApplicantBiometricsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - applicantBiometricsPage=new ApplicantBiometricsPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - applicantBiometricsPage=new ApplicantBiometricsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - applicantBiometricsPage=new ApplicantBiometricsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - applicantBiometricsPage=new ApplicantBiometricsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - applicantBiometricsPage=new ApplicantBiometricsPageArabic(driver); - } - if(FetchUiSpec.eye.equals("yes")) { + } else if (screen.equals("BiometricDetails")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + biometricDetailsPage = new BiometricDetailsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + biometricDetailsPage = new BiometricDetailsPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + biometricDetailsPage = new BiometricDetailsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + biometricDetailsPage = new BiometricDetailsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + biometricDetailsPage = new BiometricDetailsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + biometricDetailsPage = new BiometricDetailsPageArabic(driver); + } + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); + } + if (FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIrisScan(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(),"Verify if applicant biometric page is displayed"); + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isIrisScan(),"Verify if iris scan 1st attempt"); + assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage=applicantBiometricsPage.clickOnBackButton(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); } - //righthand - if(FetchUiSpec.rightHand.equals("yes")) { - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - applicantBiometricsPage=biometricDetailsPage.clickOnRightHandScanIcon(); + // righthand + if (FetchUiSpec.rightHand.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnRightHandScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(),"Verify if applicant biometric page is displayed"); + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isRightHandScan(),"Verify if right hand scan 1st attempt"); + assertTrue(applicantBiometricsPage.isRightHandScan(), "Verify if right hand scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage=applicantBiometricsPage.clickOnBackButton(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); } - //lefthand - if(FetchUiSpec.leftHand.equals("yes")) { - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - applicantBiometricsPage=biometricDetailsPage.clickOnLeftHandScanIcon(); + // lefthand + if (FetchUiSpec.leftHand.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnLeftHandScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(),"Verify if applicant biometric page is displayed"); + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isLeftHandScan(),"Verify if Left hand scan 1st attempt"); + assertTrue(applicantBiometricsPage.isLeftHandScan(), "Verify if Left hand scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage=applicantBiometricsPage.clickOnBackButton(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); } - //thumb - if(FetchUiSpec.thumb.equals("yes")) { - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - applicantBiometricsPage=biometricDetailsPage.clickOnThumbsScanIcon(); + // thumb + if (FetchUiSpec.thumb.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnThumbsScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(),"Verify if applicant biometric page is displayed"); + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isThumbsScan(),"Verify if thumbs scan 1st attempt"); + assertTrue(applicantBiometricsPage.isThumbsScan(), "Verify if thumbs scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage=applicantBiometricsPage.clickOnBackButton(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); } - //face - if(FetchUiSpec.face.equals("yes")) { - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); + // face + if (FetchUiSpec.face.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); biometricDetailsPage.clickOnFaceScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(),"Verify if applicant biometric page is displayed"); + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isFaceScan(),"Verify if face scan 1st attempt"); + assertTrue(applicantBiometricsPage.isFaceScan(), "Verify if face scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); applicantBiometricsPage.clickOnBackButton(); } - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - introducerBiometricPage=new IntroducerBiometricPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - introducerBiometricPage=new IntroducerBiometricPageHindi(driver); + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + introducerBiometricPage = new IntroducerBiometricPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + introducerBiometricPage = new IntroducerBiometricPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - introducerBiometricPage=new IntroducerBiometricPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - introducerBiometricPage=new IntroducerBiometricPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - introducerBiometricPage=new IntroducerBiometricPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - introducerBiometricPage=new IntroducerBiometricPageArabic(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + introducerBiometricPage = new IntroducerBiometricPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + introducerBiometricPage = new IntroducerBiometricPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + introducerBiometricPage = new IntroducerBiometricPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + introducerBiometricPage = new IntroducerBiometricPageArabic(driver); } FetchUiSpec.getBiometricDetails("introducerBiometrics"); - if(FetchUiSpec.eye.equals("yes")) { + if (FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIntroducerIrisScan(); - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(),"Verify if introducer biometric page is displayed"); + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + "Verify if introducer biometric page is displayed"); introducerBiometricPage.clickOnScanButton(); - assertTrue(introducerBiometricPage.isIrisScan(),"Verify if iris scan 1st attempt"); + assertTrue(introducerBiometricPage.isIrisScan(), "Verify if iris scan 1st attempt"); introducerBiometricPage.closeScanCapturePopUp(); introducerBiometricPage.clickOnNextButton(); } - //righthand - if(FetchUiSpec.rightHand.equals("yes")) { - if(!FetchUiSpec.eye.equals("yes")) { + // righthand + if (FetchUiSpec.rightHand.equals("yes")) { + if (!FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIntroducerRightHandScan(); } - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(),"Verify if introducer biometric page is displayed"); + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isRightHandScanTitleDisplyed(),"Verify if right hand scan is displayed"); + assertTrue(introducerBiometricPage.isRightHandScanTitleDisplyed(), + "Verify if right hand scan is displayed"); introducerBiometricPage.clickOnScanButton(); - assertTrue(introducerBiometricPage.isRightHandScan(),"Verify if right hand scan 1st attempt"); + assertTrue(introducerBiometricPage.isRightHandScan(), "Verify if right hand scan 1st attempt"); introducerBiometricPage.closeScanCapturePopUp(); introducerBiometricPage.clickOnNextButton(); } - //lefthand - if(FetchUiSpec.leftHand.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(),"Verify if introducer biometric page is displayed"); + // lefthand + if (FetchUiSpec.leftHand.equals("yes")) { + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isLeftHandScanTitleDisplyed(),"Verify if applicant left hand scan title is displayed"); + assertTrue(introducerBiometricPage.isLeftHandScanTitleDisplyed(), + "Verify if applicant left hand scan title is displayed"); introducerBiometricPage.clickOnScanButton(); - assertTrue(introducerBiometricPage.isLeftHandScan(),"Verify if Left hand scan 1st attempt"); + assertTrue(introducerBiometricPage.isLeftHandScan(), "Verify if Left hand scan 1st attempt"); introducerBiometricPage.closeScanCapturePopUp(); introducerBiometricPage.clickOnNextButton(); } - //thumb - if(FetchUiSpec.thumb.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(),"Verify if introducer biometric page is displayed"); + // thumb + if (FetchUiSpec.thumb.equals("yes")) { + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isThumbsScanTitleDisplyed(),"Verify if thumbs scan page is displayed"); + assertTrue(introducerBiometricPage.isThumbsScanTitleDisplyed(), + "Verify if thumbs scan page is displayed"); introducerBiometricPage.clickOnScanButton(); - assertTrue(introducerBiometricPage.isThumbsScan(),"Verify if thumbs scan 1st attempt"); + assertTrue(introducerBiometricPage.isThumbsScan(), "Verify if thumbs scan 1st attempt"); introducerBiometricPage.closeScanCapturePopUp(); introducerBiometricPage.clickOnNextButton(); } - //face - if(FetchUiSpec.face.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(),"Verify if introducer biometric page is displayed"); + // face + if (FetchUiSpec.face.equals("yes")) { + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isFaceScanTitleDisplyed(),"Verify if face scan page is displayed"); + assertTrue(introducerBiometricPage.isFaceScanTitleDisplyed(), + "Verify if face scan page is displayed"); introducerBiometricPage.clickOnScanButton(); - assertTrue(introducerBiometricPage.isFaceScan(),"Verify if face scan 1st attempt"); + assertTrue(introducerBiometricPage.isFaceScan(), "Verify if face scan 1st attempt"); introducerBiometricPage.closeScanCapturePopUp(); - biometricDetailsPage=introducerBiometricPage.clickOnNextButton(); + biometricDetailsPage = introducerBiometricPage.clickOnNextButton(); } biometricDetailsPage.clickOnContinueButton(); } } - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - previewPage=new PreviewPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - previewPage=new PreviewPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - previewPage=new PreviewPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - previewPage=new PreviewPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - previewPage=new PreviewPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - previewPage=new PreviewPageArabic(driver); - } - assertTrue(previewPage.isNewRegistrationTitleDisplayed(),"Verify if new Registration title is displayed"); - assertTrue(previewPage.isApplicationIDPreviewPagePageDisplayed(),"Verify if application ID In PreviewPage is displayed"); - assertTrue(previewPage.isDemographicInformationInPreviewPageDisplayed(),"Verify if Demographic Information In PreviewPage is displayed"); - assertTrue(previewPage.isDocumentsInformationInPreviewPageDisplayed(),"Verify if Documents Information In PreviewPage is displayed"); - assertTrue(previewPage.isBiometricsInformationInPreviewPagePageDisplayed(),"Verify if Biometrics Information In PreviewPage is displayed"); - String Aid=previewPage.getAID(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + previewPage = new PreviewPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + previewPage = new PreviewPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + previewPage = new PreviewPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + previewPage = new PreviewPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + previewPage = new PreviewPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + previewPage = new PreviewPageArabic(driver); + } + String Aid = previewPage.getAID(); previewPage.clickOnContinueButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - authenticationPage=new AuthenticationPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - authenticationPage=new AuthenticationPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - authenticationPage=new AuthenticationPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - authenticationPage=new AuthenticationPageKannada(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + authenticationPage = new AuthenticationPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + authenticationPage = new AuthenticationPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + authenticationPage = new AuthenticationPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + authenticationPage = new AuthenticationPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + authenticationPage = new AuthenticationPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + authenticationPage = new AuthenticationPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - authenticationPage=new AuthenticationPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - authenticationPage=new AuthenticationPageArabic(driver); - } - assertTrue(authenticationPage.isAuthenticationPageDisplayed(),"Verify if authentication details page is displayed"); authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); authenticationPage.clickOnAuthenticatenButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - acknowledgementPage=new AcknowledgementPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - acknowledgementPage=new AcknowledgementPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - acknowledgementPage=new AcknowledgementPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - acknowledgementPage=new AcknowledgementPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - acknowledgementPage=new AcknowledgementPageTamil(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + acknowledgementPage = new AcknowledgementPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + acknowledgementPage = new AcknowledgementPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + acknowledgementPage = new AcknowledgementPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + acknowledgementPage = new AcknowledgementPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + acknowledgementPage = new AcknowledgementPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + acknowledgementPage = new AcknowledgementPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - acknowledgementPage=new AcknowledgementPageArabic(driver); - } - assertTrue(previewPage.isNewRegistrationTitleDisplayed(),"Verify if new Registration title is displayed"); - assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(),"Verify if acknowledgement details page is displayed"); acknowledgementPage.clickOnGoToHomeButton(); - assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(),"Verify if registration tasks page is loaded"); - registrationTasksPage.clickOnOperationalTasksTitle(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - operationalTaskPage=new OperationalTaskPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - operationalTaskPage=new OperationalTaskPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - operationalTaskPage=new OperationalTaskPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - operationalTaskPage=new OperationalTaskPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - operationalTaskPage=new OperationalTaskPageTamil(driver); + registrationTasksPage.clickOnOperationalTasksTitle(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + operationalTaskPage = new OperationalTaskPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + operationalTaskPage = new OperationalTaskPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + operationalTaskPage = new OperationalTaskPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + operationalTaskPage = new OperationalTaskPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + operationalTaskPage = new OperationalTaskPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + operationalTaskPage = new OperationalTaskPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - operationalTaskPage=new OperationalTaskPageArabic(driver); - } - assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); - assertTrue(operationalTaskPage.isPendingApprovalTitleDisplayed(), "Verify if pending approval tite displayed"); operationalTaskPage.clickPendingApprovalTitle(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - pendingApproval=new PendingApprovalEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - pendingApproval=new PendingApprovalHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - pendingApproval=new PendingApprovalFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - pendingApproval=new PendingApprovalKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - pendingApproval=new PendingApprovalTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - pendingApproval=new PendingApprovalArabic(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + pendingApproval = new PendingApprovalEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + pendingApproval = new PendingApprovalHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + pendingApproval = new PendingApprovalFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + pendingApproval = new PendingApprovalKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + pendingApproval = new PendingApprovalTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + pendingApproval = new PendingApprovalArabic(driver); } - assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed"); pendingApproval.clickOnAID(Aid); - assertTrue(pendingApproval.isApprovalButtonDisplayed(), "Verify if approval button displayed"); pendingApproval.clickOnRejectButton(); - assertTrue(pendingApproval.isRejectPacketTitleDisplayed(), "Verify if reject page is display after click on reject button displayed"); pendingApproval.selectRejectionReasonDropdown(); - pendingApproval.clickOnRejectButton(); + pendingApproval.clickOnRejectButton(); pendingApproval.clickOnClosePopUpButton(); - assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed after approving packet"); pendingApproval.clickOnCheckBox(); - assertTrue(pendingApproval.isSubmitButtonEnabled(), "Verify if submit button is enable after selecting packet"); - pendingApproval.clickOnSubmitButton(); + assertTrue(pendingApproval.isAuthenticateButtonEnabled(), + "Verify if authenticate button is enable after selecting packet"); + + boolean isPageDisplayed = false; + for (int i = 0; i < 3; i++) { + pendingApproval.clickOnAuthenticateButton(); + Thread.sleep(2000); + if (pendingApproval.isSupervisorAuthenticationTitleDisplayed()) { + isPageDisplayed = true; + break; + } + } - assertTrue(pendingApproval.isSupervisorAuthenticationTitleDisplayed(), "Verify if Supervisor Authentication page displayed"); pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser); pendingApproval.enterPassword(ArcConfigManager.getIAMUsersPassword()); pendingApproval.clickOnSubmitButton(); pendingApproval.clickOnBackButton(); - assertTrue(operationalTaskPage.isApplicationUploadTitleDisplayed(), "Verify if application upload tite displayed"); - - operationalTaskPage.clickApplicationUploadTitle(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - manageApplicationsPage=new ManageApplicationsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - manageApplicationsPage=new ManageApplicationsPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - manageApplicationsPage=new ManageApplicationsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - manageApplicationsPage=new ManageApplicationsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - manageApplicationsPage=new ManageApplicationsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - manageApplicationsPage=new ManageApplicationsPageArabic(driver); + + operationalTaskPage.clickApplicationUploadTitle(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + manageApplicationsPage = new ManageApplicationsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + manageApplicationsPage = new ManageApplicationsPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + manageApplicationsPage = new ManageApplicationsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + manageApplicationsPage = new ManageApplicationsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + manageApplicationsPage = new ManageApplicationsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + manageApplicationsPage = new ManageApplicationsPageArabic(driver); } - assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), "Verify if manage Applications Page displayed"); manageApplicationsPage.enterAID(Aid); - assertTrue(manageApplicationsPage.isSearchAIDDisplayed(Aid), "Verify if Search Aid should displayed"); - assertTrue(manageApplicationsPage.isPacketRejected(Aid), "Verify if packet is rejected or not in manage application page"); manageApplicationsPage.clickOnSearchCheckBox(); manageApplicationsPage.clickOnUploadButton(); manageApplicationsPage.clickOnBackButton(); - - assertTrue(registrationTasksPage.isProfileTitleDisplayed(),"Verify if profile title display on homepage"); registrationTasksPage.clickProfileButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - profilePage=new ProfilePageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - profilePage=new ProfilePageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - profilePage=new ProfilePageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - profilePage=new ProfilePageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - profilePage=new ProfilePageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - profilePage=new ProfilePageArabic(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + profilePage = new ProfilePageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + profilePage = new ProfilePageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + profilePage = new ProfilePageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + profilePage = new ProfilePageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + profilePage = new ProfilePageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + profilePage = new ProfilePageArabic(driver); } - //assertTrue(profilePage.isProfileTitleDisplayed(),"Verify if profile title display on Profilepage"); profilePage.clickOnLogoutButton(); profilePage.clickOnLogoutButton(); - assertTrue(loginPage.isLoginPageLoaded(),"verify if login page is displayeded in Selected language"); + assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayeded in Selected language"); } diff --git a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinorException.java b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinorException.java index ed44ca8e1..907d7d510 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinorException.java +++ b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinorException.java @@ -1,6 +1,5 @@ package regclient.androidTestCases; - import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertTrue; @@ -131,44 +130,39 @@ public class NewRegistrationMinorException extends AndroidBaseTest { @Test - public void newRegistrationMinorException(){ + public void newRegistrationMinorException() throws InterruptedException { FetchUiSpec.getUiSpec("newProcess"); FetchUiSpec.getBiometricDetails("individualBiometrics"); - List screenOrder=FetchUiSpec.getAllScreenOrder(); + List screenOrder = FetchUiSpec.getAllScreenOrder(); BasePage.disableAutoRotation(); LoginPage loginPage = null; - RegistrationTasksPage registrationTasksPage=null; - SelectLanguagePage selectLanguagePage=null; - ConsentPage consentPage=null; - DemographicDetailsPage demographicPage=null; - DocumentUploadPage documentuploadPage=null; - BiometricDetailsPage biometricDetailsPage=null; - ApplicantBiometricsPage applicantBiometricsPage=null; - PreviewPage previewPage=null; - AuthenticationPage authenticationPage=null; - AcknowledgementPage acknowledgementPage=null; - IntroducerBiometricPage introducerBiometricPage=null; - OperationalTaskPage operationalTaskPage=null; - ManageApplicationsPage manageApplicationsPage=null; - ProfilePage profilePage=null; - PendingApproval pendingApproval=null; - - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { + RegistrationTasksPage registrationTasksPage = null; + SelectLanguagePage selectLanguagePage = null; + ConsentPage consentPage = null; + DemographicDetailsPage demographicPage = null; + DocumentUploadPage documentuploadPage = null; + BiometricDetailsPage biometricDetailsPage = null; + ApplicantBiometricsPage applicantBiometricsPage = null; + PreviewPage previewPage = null; + AuthenticationPage authenticationPage = null; + AcknowledgementPage acknowledgementPage = null; + IntroducerBiometricPage introducerBiometricPage = null; + OperationalTaskPage operationalTaskPage = null; + ManageApplicationsPage manageApplicationsPage = null; + ProfilePage profilePage = null; + PendingApproval pendingApproval = null; + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { loginPage = new LoginPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { loginPage = new LoginPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { loginPage = new LoginPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { loginPage = new LoginPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { loginPage = new LoginPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { loginPage = new LoginPageArabic(driver); } loginPage.selectLanguage(); @@ -177,478 +171,445 @@ else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); loginPage.clickOnloginButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - registrationTasksPage=new RegistrationTasksPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - registrationTasksPage=new RegistrationTasksPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - registrationTasksPage=new RegistrationTasksPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - registrationTasksPage=new RegistrationTasksPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - registrationTasksPage=new RegistrationTasksPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - registrationTasksPage=new RegistrationTasksPageArabic(driver); - } - assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(),"Verify if registration tasks page is loaded"); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + registrationTasksPage = new RegistrationTasksPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + registrationTasksPage = new RegistrationTasksPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + registrationTasksPage = new RegistrationTasksPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + registrationTasksPage = new RegistrationTasksPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + registrationTasksPage = new RegistrationTasksPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + registrationTasksPage = new RegistrationTasksPageArabic(driver); + } + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnNewRegistrationButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - selectLanguagePage=new SelectLanguagePageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - selectLanguagePage=new SelectLanguagePageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - selectLanguagePage=new SelectLanguagePageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - selectLanguagePage=new SelectLanguagePageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - selectLanguagePage=new SelectLanguagePageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - selectLanguagePage=new SelectLanguagePageArabic(driver); - } - assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(),"Verify if select language page is loaded"); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + selectLanguagePage = new SelectLanguagePageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + selectLanguagePage = new SelectLanguagePageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + selectLanguagePage = new SelectLanguagePageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + selectLanguagePage = new SelectLanguagePageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + selectLanguagePage = new SelectLanguagePageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + selectLanguagePage = new SelectLanguagePageArabic(driver); + } + assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), "Verify if select language page is loaded"); selectLanguagePage.clickOnSubmitButtonWithoutSelectingLanguage(); - assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(),"Verify if user should not be allow to navigate to next screen."); + assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), + "Verify if user should not be allow to navigate to next screen."); selectLanguagePage.selectSecondLanguage(); - assertTrue(selectLanguagePage.isNotificationLanguageEnglishDisplayed(),"verify if the notification language display in english"); + assertTrue(selectLanguagePage.isNotificationLanguageEnglishDisplayed(), + "verify if the notification language display in english"); selectLanguagePage.selectNotificationlanguage(TestDataReader.readData("notificationLanguage")); - assertTrue(selectLanguagePage.isSubmitButtonEnabled(),"verify if the submit button enabled"); + assertTrue(selectLanguagePage.isSubmitButtonEnabled(), "verify if the submit button enabled"); selectLanguagePage.clickOnSubmitButton(); - for(String screen :screenOrder) { - if(screen.equals("consentdet") || screen.equals("consent")) { - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - consentPage =new ConsentPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - consentPage =new ConsentPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - consentPage =new ConsentPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - consentPage =new ConsentPageKannada(driver); + for (String screen : screenOrder) { + if (screen.equals("consentdet") || screen.equals("consent")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + consentPage = new ConsentPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + consentPage = new ConsentPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + consentPage = new ConsentPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + consentPage = new ConsentPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + consentPage = new ConsentPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + consentPage = new ConsentPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - consentPage =new ConsentPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - consentPage =new ConsentPageArabic(driver); - } - assertTrue(consentPage.isConsentPageDisplayed(),"Verify if Consent page is loaded"); - - assertTrue(consentPage.isInformedButtonEnabled(),"Verify if informed button enabled"); consentPage.clickOnInformedButton(); - }else if(screen.equals("DemographicDetails")) { - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - demographicPage=new DemographicDetailsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - demographicPage=new DemographicDetailsPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - demographicPage=new DemographicDetailsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - demographicPage=new DemographicDetailsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - demographicPage=new DemographicDetailsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - demographicPage=new DemographicDetailsPageArabic(driver); - } - assertTrue(demographicPage.isDemographicDetailsPageDisplayed(),"Verify if demographic details page is displayed"); + } else if (screen.equals("DemographicDetails")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + demographicPage = new DemographicDetailsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + demographicPage = new DemographicDetailsPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + demographicPage = new DemographicDetailsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + demographicPage = new DemographicDetailsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + demographicPage = new DemographicDetailsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + demographicPage = new DemographicDetailsPageArabic(driver); + } + assertTrue(demographicPage.isPageDisplayed("DemographicDetails"), + "Verify if demographic details page is displayed"); demographicPage.fillDemographicDetailsPage("minor"); demographicPage.clickOnContinueButton(); - }else if(screen.equals("Documents")) { - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - documentuploadPage=new DocumentuploadPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - documentuploadPage=new DocumentUploadPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - documentuploadPage=new DocumentUploadPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - documentuploadPage=new DocumentuploadPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - documentuploadPage=new DocumentuploadPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - documentuploadPage=new DocumentuploadPageArabic(driver); - } - assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(),"Verify if doccumentupload page is displayed"); - documentuploadPage.uploadDoccuments("minor","withoutReferenceNumber"); + } else if (screen.equals("Documents")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + documentuploadPage = new DocumentuploadPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + documentuploadPage = new DocumentUploadPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + documentuploadPage = new DocumentUploadPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + documentuploadPage = new DocumentuploadPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + documentuploadPage = new DocumentuploadPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + documentuploadPage = new DocumentuploadPageArabic(driver); + } + assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(), + "Verify if doccumentupload page is displayed"); + documentuploadPage.uploadDoccuments("minor", "withoutReferenceNumber"); documentuploadPage.clickOnContinueButton(); - }else if(screen.equals("BiometricDetails")) { - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - biometricDetailsPage=new BiometricDetailsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - biometricDetailsPage=new BiometricDetailsPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - biometricDetailsPage=new BiometricDetailsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - biometricDetailsPage=new BiometricDetailsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - biometricDetailsPage=new BiometricDetailsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - biometricDetailsPage=new BiometricDetailsPageArabic(driver); - } - //Iris - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - applicantBiometricsPage=new ApplicantBiometricsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - applicantBiometricsPage=new ApplicantBiometricsPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - applicantBiometricsPage=new ApplicantBiometricsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - applicantBiometricsPage=new ApplicantBiometricsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - applicantBiometricsPage=new ApplicantBiometricsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - applicantBiometricsPage=new ApplicantBiometricsPageArabic(driver); - } - if(FetchUiSpec.eye.equals("yes")) { + } else if (screen.equals("BiometricDetails")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + biometricDetailsPage = new BiometricDetailsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + biometricDetailsPage = new BiometricDetailsPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + biometricDetailsPage = new BiometricDetailsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + biometricDetailsPage = new BiometricDetailsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + biometricDetailsPage = new BiometricDetailsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + biometricDetailsPage = new BiometricDetailsPageArabic(driver); + } + // Iris + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); + } + if (FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIrisScan(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(),"Verify if applicant biometric page is displayed"); + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnMarkExceptionButton(); - assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(),"Verify if applicant biometric mark exception is displayed"); + assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(), + "Verify if applicant biometric mark exception is displayed"); applicantBiometricsPage.markOneEyeException(); applicantBiometricsPage.clickOnIrisScanButton(); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isIrisScan(),"Verify if iris scan 1st attempt"); + assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); applicantBiometricsPage.clickOnBackButton(); } - //righthand - if(FetchUiSpec.rightHand.equals("yes")) { + // righthand + if (FetchUiSpec.rightHand.equals("yes")) { biometricDetailsPage.clickOnRightHandScanIcon(); - assertTrue(applicantBiometricsPage.isRightHandScanTitleDisplyed(),"Verify if right hand scan is displayed"); + assertTrue(applicantBiometricsPage.isRightHandScanTitleDisplyed(), + "Verify if right hand scan is displayed"); applicantBiometricsPage.clickOnMarkExceptionButton(); - assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(),"Verify if applicant biometric mark exception is displayed"); - applicantBiometricsPage.clickOnZoomButton(); + assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(), + "Verify if applicant biometric mark exception is displayed"); + applicantBiometricsPage.clickOnZoomButton(); - assertTrue(applicantBiometricsPage.isRightHandScanTitleDisplyed(),"Verify if applicant right hand scan is displayed"); + assertTrue(applicantBiometricsPage.isRightHandScanTitleDisplyed(), + "Verify if applicant right hand scan is displayed"); applicantBiometricsPage.markFourFingureExceptionThenRemoveOne(); applicantBiometricsPage.clickOnClosePopUp(); - assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(),"Verify if applicant biometric mark exception is displayed"); + assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(), + "Verify if applicant biometric mark exception is displayed"); applicantBiometricsPage.clickOnRightHandScanTitle(); - assertTrue(applicantBiometricsPage.isRightHandScanTitleDisplyed(),"Verify if right hand scan is displayed"); + assertTrue(applicantBiometricsPage.isRightHandScanTitleDisplyed(), + "Verify if right hand scan is displayed"); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isRightHandScan(),"Verify if right hand scan 1st attempt"); + assertTrue(applicantBiometricsPage.isRightHandScan(), "Verify if right hand scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); applicantBiometricsPage.clickOnBackButton(); } - //lefthand - if(FetchUiSpec.leftHand.equals("yes")) { + // lefthand + if (FetchUiSpec.leftHand.equals("yes")) { biometricDetailsPage.clickOnLeftHandScanIcon(); - assertTrue(applicantBiometricsPage.isLeftHandScanTitleDisplyed(),"Verify if applicant left hand scan title is displayed"); + assertTrue(applicantBiometricsPage.isLeftHandScanTitleDisplyed(), + "Verify if applicant left hand scan title is displayed"); applicantBiometricsPage.clickOnMarkExceptionButton(); - assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(),"Verify if applicant biometric mark exception is displayed"); - applicantBiometricsPage.clickOnZoomButton(); + assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(), + "Verify if applicant biometric mark exception is displayed"); + applicantBiometricsPage.clickOnZoomButton(); - assertTrue(applicantBiometricsPage.isLeftHandScanTitleDisplyed(),"Verify if applicant right hand scan is displayed"); + assertTrue(applicantBiometricsPage.isLeftHandScanTitleDisplyed(), + "Verify if applicant right hand scan is displayed"); applicantBiometricsPage.markOneFingureException(); applicantBiometricsPage.clickOnClosePopUp(); - assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(),"Verify if applicant biometric mark exception is displayed"); + assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(), + "Verify if applicant biometric mark exception is displayed"); applicantBiometricsPage.clickOnleftHandScanTitle(); - assertTrue(applicantBiometricsPage.isLeftHandScanTitleDisplyed(),"Verify if applicant left hand scan title is displayed"); + assertTrue(applicantBiometricsPage.isLeftHandScanTitleDisplyed(), + "Verify if applicant left hand scan title is displayed"); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isLeftHandScan(),"Verify if Left hand scan 1st attempt"); + assertTrue(applicantBiometricsPage.isLeftHandScan(), "Verify if Left hand scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); applicantBiometricsPage.clickOnBackButton(); } - //thumb - if(FetchUiSpec.thumb.equals("yes")) { + // thumb + if (FetchUiSpec.thumb.equals("yes")) { biometricDetailsPage.clickOnThumbsScanIcon(); - assertTrue(applicantBiometricsPage.isThumbsScanTitleDisplyed(),"Verify if thumbs scan page is displayed"); + assertTrue(applicantBiometricsPage.isThumbsScanTitleDisplyed(), + "Verify if thumbs scan page is displayed"); applicantBiometricsPage.clickOnMarkExceptionButton(); - assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(),"Verify if applicant biometric mark exception is displayed"); + assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(), + "Verify if applicant biometric mark exception is displayed"); applicantBiometricsPage.markOneFingureException(); applicantBiometricsPage.clickOnThumbsScanTitle(); - assertTrue(applicantBiometricsPage.isThumbsScanTitleDisplyed(),"Verify if thumbs scan page is displayed"); + assertTrue(applicantBiometricsPage.isThumbsScanTitleDisplyed(), + "Verify if thumbs scan page is displayed"); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isThumbsScan(),"Verify if thumbs scan 1st attempt"); + assertTrue(applicantBiometricsPage.isThumbsScan(), "Verify if thumbs scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); applicantBiometricsPage.clickOnBackButton(); } - //face - if(FetchUiSpec.face.equals("yes")) { - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); + // face + if (FetchUiSpec.face.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); biometricDetailsPage.clickOnFaceScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(),"Verify if applicant biometric page is displayed"); + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isFaceScan(),"Verify if face scan 1st attempt"); + assertTrue(applicantBiometricsPage.isFaceScan(), "Verify if face scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); applicantBiometricsPage.clickOnNextButton(); } - //Exception - assertTrue(applicantBiometricsPage.isExceptionScanTitleDisplyed(),"Verify if exception scan page is displayed"); + // Exception + assertTrue(applicantBiometricsPage.isExceptionScanTitleDisplyed(), + "Verify if exception scan page is displayed"); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isExceptionScan(),"Verify if exception scan 1st attempt"); + assertTrue(applicantBiometricsPage.isExceptionScan(), "Verify if exception scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage=applicantBiometricsPage.clickOnNextButton(); + biometricDetailsPage = applicantBiometricsPage.clickOnNextButton(); - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - introducerBiometricPage=new IntroducerBiometricPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - introducerBiometricPage=new IntroducerBiometricPageHindi(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + introducerBiometricPage = new IntroducerBiometricPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + introducerBiometricPage = new IntroducerBiometricPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - introducerBiometricPage=new IntroducerBiometricPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - introducerBiometricPage=new IntroducerBiometricPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - introducerBiometricPage=new IntroducerBiometricPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - introducerBiometricPage=new IntroducerBiometricPageArabic(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + introducerBiometricPage = new IntroducerBiometricPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + introducerBiometricPage = new IntroducerBiometricPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + introducerBiometricPage = new IntroducerBiometricPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + introducerBiometricPage = new IntroducerBiometricPageArabic(driver); } FetchUiSpec.getBiometricDetails("introducerBiometrics"); - if(FetchUiSpec.eye.equals("yes")) { + if (FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIntroducerIrisScan(); - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(),"Verify if introducer biometric page is displayed"); + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + "Verify if introducer biometric page is displayed"); introducerBiometricPage.clickOnMarkExceptionButton(); - assertTrue(introducerBiometricPage.isExceptionTypeTitleDisplyed(),"Verify if applicant biometric mark exception is displayed"); + assertTrue(introducerBiometricPage.isExceptionTypeTitleDisplyed(), + "Verify if applicant biometric mark exception is displayed"); introducerBiometricPage.markOneEyeException(); introducerBiometricPage.clickOnIrisScanButton(); introducerBiometricPage.clickOnScanButton(); - assertTrue(introducerBiometricPage.isIrisScan(),"Verify if iris scan 1st attempt"); + assertTrue(introducerBiometricPage.isIrisScan(), "Verify if iris scan 1st attempt"); introducerBiometricPage.closeScanCapturePopUp(); introducerBiometricPage.clickOnNextButton(); } - //righthand - if(FetchUiSpec.rightHand.equals("yes")) { - if(!FetchUiSpec.eye.equals("yes")) { + // righthand + if (FetchUiSpec.rightHand.equals("yes")) { + if (!FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIntroducerRightHandScan(); } - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(),"Verify if introducer biometric page is displayed"); + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isRightHandScanTitleDisplyed(),"Verify if right hand scan is displayed"); + assertTrue(introducerBiometricPage.isRightHandScanTitleDisplyed(), + "Verify if right hand scan is displayed"); introducerBiometricPage.clickOnScanButton(); - assertTrue(introducerBiometricPage.isRightHandScan(),"Verify if right hand scan 1st attempt"); + assertTrue(introducerBiometricPage.isRightHandScan(), "Verify if right hand scan 1st attempt"); introducerBiometricPage.closeScanCapturePopUp(); introducerBiometricPage.clickOnNextButton(); } - //lefthand - if(FetchUiSpec.leftHand.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(),"Verify if introducer biometric page is displayed"); + // lefthand + if (FetchUiSpec.leftHand.equals("yes")) { + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isLeftHandScanTitleDisplyed(),"Verify if applicant left hand scan title is displayed"); + assertTrue(introducerBiometricPage.isLeftHandScanTitleDisplyed(), + "Verify if applicant left hand scan title is displayed"); introducerBiometricPage.clickOnScanButton(); - assertTrue(introducerBiometricPage.isLeftHandScan(),"Verify if Left hand scan 1st attempt"); + assertTrue(introducerBiometricPage.isLeftHandScan(), "Verify if Left hand scan 1st attempt"); introducerBiometricPage.closeScanCapturePopUp(); introducerBiometricPage.clickOnNextButton(); } - //thumb - if(FetchUiSpec.thumb.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(),"Verify if introducer biometric page is displayed"); + // thumb + if (FetchUiSpec.thumb.equals("yes")) { + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isThumbsScanTitleDisplyed(),"Verify if thumbs scan page is displayed"); + assertTrue(introducerBiometricPage.isThumbsScanTitleDisplyed(), + "Verify if thumbs scan page is displayed"); introducerBiometricPage.clickOnScanButton(); - assertTrue(introducerBiometricPage.isThumbsScan(),"Verify if thumbs scan 1st attempt"); + assertTrue(introducerBiometricPage.isThumbsScan(), "Verify if thumbs scan 1st attempt"); introducerBiometricPage.closeScanCapturePopUp(); introducerBiometricPage.clickOnNextButton(); } - //face - if(FetchUiSpec.face.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(),"Verify if introducer biometric page is displayed"); + // face + if (FetchUiSpec.face.equals("yes")) { + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isFaceScanTitleDisplyed(),"Verify if face scan page is displayed"); + assertTrue(introducerBiometricPage.isFaceScanTitleDisplyed(), + "Verify if face scan page is displayed"); introducerBiometricPage.clickOnScanButton(); - assertTrue(introducerBiometricPage.isFaceScan(),"Verify if face scan 1st attempt"); + assertTrue(introducerBiometricPage.isFaceScan(), "Verify if face scan 1st attempt"); introducerBiometricPage.closeScanCapturePopUp(); - biometricDetailsPage=introducerBiometricPage.clickOnBackButton(); + introducerBiometricPage.clickOnNextButton(); } + // Exception + assertTrue(introducerBiometricPage.isExceptionScanTitleDisplyed(), + "Verify if exception scan page is displayed"); + introducerBiometricPage.clickOnScanButton(); + + assertTrue(introducerBiometricPage.isExceptionScan(), "Verify if exception scan 1st attempt"); + introducerBiometricPage.closeScanCapturePopUp(); + introducerBiometricPage.clickOnNextButton(); - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); biometricDetailsPage.clickOnContinueButton(); } } - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - previewPage=new PreviewPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - previewPage=new PreviewPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - previewPage=new PreviewPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - previewPage=new PreviewPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - previewPage=new PreviewPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - previewPage=new PreviewPageArabic(driver); - } - assertFalse(previewPage.isApplicationIDPreviewPagePageDisplayed(),"Verify if User Should not allow to navigate to preview screen, without capture introducer exception face."); - biometricDetailsPage.clickOnExceptionScanIcon(); - - assertTrue(introducerBiometricPage.isExceptionScanTitleDisplyed(),"Verify if exception scan page is displayed"); - introducerBiometricPage.clickOnScanButton(); - - assertTrue(introducerBiometricPage.isExceptionScan(),"Verify if exception scan 1st attempt"); - introducerBiometricPage.closeScanCapturePopUp(); - introducerBiometricPage.clickOnNextButton(); - - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - biometricDetailsPage.clickOnContinueButton(); - - assertTrue(previewPage.isNewRegistrationTitleDisplayed(),"Verify if new Registration title is displayed"); - assertTrue(previewPage.isApplicationIDPreviewPagePageDisplayed(),"Verify if application ID In PreviewPage is displayed"); - assertTrue(previewPage.isDemographicInformationInPreviewPageDisplayed(),"Verify if Demographic Information In PreviewPage is displayed"); - assertTrue(previewPage.isDocumentsInformationInPreviewPageDisplayed(),"Verify if Documents Information In PreviewPage is displayed"); - assertTrue(previewPage.isBiometricsInformationInPreviewPagePageDisplayed(),"Verify if Biometrics Information In PreviewPage is displayed"); - String Aid=previewPage.getAID(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + previewPage = new PreviewPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + previewPage = new PreviewPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + previewPage = new PreviewPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + previewPage = new PreviewPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + previewPage = new PreviewPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + previewPage = new PreviewPageArabic(driver); + } + + assertTrue(previewPage.isNewRegistrationTitleDisplayed(), "Verify if new Registration title is displayed"); + assertTrue(previewPage.isApplicationIDPreviewPagePageDisplayed(), + "Verify if application ID In PreviewPage is displayed"); + assertTrue(previewPage.isDemographicInformationInPreviewPageDisplayed(), + "Verify if Demographic Information In PreviewPage is displayed"); + assertTrue(previewPage.isDocumentsInformationInPreviewPageDisplayed(), + "Verify if Documents Information In PreviewPage is displayed"); +// assertTrue(previewPage.isBiometricsInformationInPreviewPagePageDisplayed(),"Verify if Biometrics Information In PreviewPage is displayed"); + String Aid = previewPage.getAID(); previewPage.clickOnContinueButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - authenticationPage=new AuthenticationPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - authenticationPage=new AuthenticationPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - authenticationPage=new AuthenticationPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - authenticationPage=new AuthenticationPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - authenticationPage=new AuthenticationPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - authenticationPage=new AuthenticationPageArabic(driver); - } - assertTrue(authenticationPage.isAuthenticationPageDisplayed(),"Verify if authentication details page is displayed"); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + authenticationPage = new AuthenticationPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + authenticationPage = new AuthenticationPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + authenticationPage = new AuthenticationPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + authenticationPage = new AuthenticationPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + authenticationPage = new AuthenticationPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + authenticationPage = new AuthenticationPageArabic(driver); + } + assertTrue(authenticationPage.isAuthenticationPageDisplayed(), + "Verify if authentication details page is displayed"); authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); authenticationPage.clickOnAuthenticatenButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - acknowledgementPage=new AcknowledgementPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - acknowledgementPage=new AcknowledgementPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - acknowledgementPage=new AcknowledgementPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - acknowledgementPage=new AcknowledgementPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - acknowledgementPage=new AcknowledgementPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - acknowledgementPage=new AcknowledgementPageArabic(driver); - } - assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(),"Verify if acknowledgement details page is displayed"); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + acknowledgementPage = new AcknowledgementPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + acknowledgementPage = new AcknowledgementPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + acknowledgementPage = new AcknowledgementPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + acknowledgementPage = new AcknowledgementPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + acknowledgementPage = new AcknowledgementPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + acknowledgementPage = new AcknowledgementPageArabic(driver); + } + assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(), + "Verify if acknowledgement details page is displayed"); acknowledgementPage.clickOnGoToHomeButton(); - - assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(),"Verify if registration tasks page is loaded"); - registrationTasksPage.clickOnOperationalTasksTitle(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - operationalTaskPage=new OperationalTaskPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - operationalTaskPage=new OperationalTaskPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - operationalTaskPage=new OperationalTaskPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - operationalTaskPage=new OperationalTaskPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - operationalTaskPage=new OperationalTaskPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - operationalTaskPage=new OperationalTaskPageArabic(driver); + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + registrationTasksPage.clickOnOperationalTasksTitle(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + operationalTaskPage = new OperationalTaskPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + operationalTaskPage = new OperationalTaskPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + operationalTaskPage = new OperationalTaskPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + operationalTaskPage = new OperationalTaskPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + operationalTaskPage = new OperationalTaskPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + operationalTaskPage = new OperationalTaskPageArabic(driver); } assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); - assertTrue(operationalTaskPage.isPendingApprovalTitleDisplayed(), "Verify if pending approval tite displayed"); operationalTaskPage.clickPendingApprovalTitle(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - pendingApproval=new PendingApprovalEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - pendingApproval=new PendingApprovalHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - pendingApproval=new PendingApprovalFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - pendingApproval=new PendingApprovalKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - pendingApproval=new PendingApprovalTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - pendingApproval=new PendingApprovalArabic(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + pendingApproval = new PendingApprovalEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + pendingApproval = new PendingApprovalHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + pendingApproval = new PendingApprovalFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + pendingApproval = new PendingApprovalKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + pendingApproval = new PendingApprovalTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + pendingApproval = new PendingApprovalArabic(driver); } assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed"); pendingApproval.clickOnAID(Aid); @@ -657,85 +618,86 @@ else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ pendingApproval.clickOnApproveButton(); pendingApproval.clickOnClosePopUpButton(); - assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed after approving packet"); pendingApproval.clickOnCheckBox(); - assertTrue(pendingApproval.isSubmitButtonEnabled(), "Verify if submit button is enable after selecting packet"); - pendingApproval.clickOnSubmitButton(); + assertTrue(pendingApproval.isAuthenticateButtonEnabled(), + "Verify if authenticate button is enable after selecting packet"); - assertTrue(pendingApproval.isSupervisorAuthenticationTitleDisplayed(), "Verify if Supervisor Authentication page displayed"); + boolean isPageDisplayed = false; + for (int i = 0; i < 3; i++) { + pendingApproval.clickOnAuthenticateButton(); + Thread.sleep(2000); + if (pendingApproval.isSupervisorAuthenticationTitleDisplayed()) { + isPageDisplayed = true; + break; + } + } + + assertTrue(pendingApproval.isSupervisorAuthenticationTitleDisplayed(), + "Verify if Supervisor Authentication page displayed"); pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser); pendingApproval.enterPassword(ArcConfigManager.getIAMUsersPassword()); pendingApproval.clickOnSubmitButton(); pendingApproval.clickOnBackButton(); - assertTrue(operationalTaskPage.isApplicationUploadTitleDisplayed(), "Verify if application upload tite displayed"); - - operationalTaskPage.clickApplicationUploadTitle(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - manageApplicationsPage=new ManageApplicationsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - manageApplicationsPage=new ManageApplicationsPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - manageApplicationsPage=new ManageApplicationsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - manageApplicationsPage=new ManageApplicationsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - manageApplicationsPage=new ManageApplicationsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - manageApplicationsPage=new ManageApplicationsPageArabic(driver); - } - assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), "Verify if manage Applications Page displayed"); + assertTrue(operationalTaskPage.isApplicationUploadTitleDisplayed(), + "Verify if application upload tite displayed"); + + operationalTaskPage.clickApplicationUploadTitle(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + manageApplicationsPage = new ManageApplicationsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + manageApplicationsPage = new ManageApplicationsPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + manageApplicationsPage = new ManageApplicationsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + manageApplicationsPage = new ManageApplicationsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + manageApplicationsPage = new ManageApplicationsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + manageApplicationsPage = new ManageApplicationsPageArabic(driver); + } + assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), + "Verify if manage Applications Page displayed"); manageApplicationsPage.enterAID(Aid); assertTrue(manageApplicationsPage.isSearchAIDDisplayed(Aid), "Verify if Search Aid should displayed"); - assertTrue(manageApplicationsPage.isPacketApproved(Aid), "Verify if packet is approved after approve in pending approval"); + assertTrue(manageApplicationsPage.isPacketApproved(Aid), + "Verify if packet is approved after approve in pending approval"); manageApplicationsPage.clickOnSearchCheckBox(); manageApplicationsPage.clickOnUploadButton(); manageApplicationsPage.clickClientStatusDropdown(); - assertTrue(manageApplicationsPage.isCreatedDropdownOptionDisplayed(), "Verify if Created Dropdown Option Displayed displayed"); - assertTrue(manageApplicationsPage.isApprovedDropdownOptionDisplayed(), "Verify if Approved Dropdown Option Displayed displayed"); - assertTrue(manageApplicationsPage.isRejectedDropdownOptionDisplayed(), "Verify if Rejected Dropdown Option Displayed"); - assertTrue(manageApplicationsPage.isSyncedDropdownOptionDisplayed(), "Verify if Synced Dropdown Option Displayed"); - assertTrue(manageApplicationsPage.isExportedsDropdownOptionDisplayed(), "Verify if Exported Dropdown Option Displayed"); + assertTrue(manageApplicationsPage.isApprovedDropdownOptionDisplayed(), + "Verify if Approved Dropdown Option Displayed displayed"); + assertTrue(manageApplicationsPage.isRejectedDropdownOptionDisplayed(), + "Verify if Rejected Dropdown Option Displayed"); + assertTrue(manageApplicationsPage.isExportedsDropdownOptionDisplayed(), + "Verify if Exported Dropdown Option Displayed"); manageApplicationsPage.clickDismissButton(); manageApplicationsPage.clickOnBackButton(); - - assertTrue(registrationTasksPage.isProfileTitleDisplayed(),"Verify if profile title display on homepage"); registrationTasksPage.clickProfileButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - profilePage=new ProfilePageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - profilePage=new ProfilePageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - profilePage=new ProfilePageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - profilePage=new ProfilePageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - profilePage=new ProfilePageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - profilePage=new ProfilePageArabic(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + profilePage = new ProfilePageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + profilePage = new ProfilePageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + profilePage = new ProfilePageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + profilePage = new ProfilePageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + profilePage = new ProfilePageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + profilePage = new ProfilePageArabic(driver); } - //assertTrue(profilePage.isProfileTitleDisplayed(),"Verify if profile title display on Profilepage"); profilePage.clickOnLogoutButton(); profilePage.clickOnLogoutButton(); - assertTrue(loginPage.isLoginPageLoaded(),"verify if login page is displayeded in Selected language"); + assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayeded in Selected language"); } } diff --git a/ui-test/src/main/java/regclient/androidTestCases/PreRegFetchingPacket.java b/ui-test/src/main/java/regclient/androidTestCases/PreRegFetchingPacket.java new file mode 100644 index 000000000..f8ab17b87 --- /dev/null +++ b/ui-test/src/main/java/regclient/androidTestCases/PreRegFetchingPacket.java @@ -0,0 +1,1565 @@ +package regclient.androidTestCases; + +import static org.testng.Assert.assertTrue; + +import java.util.List; + +import org.testng.annotations.Test; + +import regclient.BaseTest.AndroidBaseTest; +import regclient.api.AdminTestUtil; +import regclient.api.ArcConfigManager; +import regclient.api.FetchUiSpec; +import regclient.api.KeycloakUserManager; +import regclient.page.AcknowledgementPage; +import regclient.page.ApplicantBiometricsPage; +import regclient.page.AuthenticationPage; +import regclient.page.BasePage; +import regclient.page.BiometricDetailsPage; +import regclient.page.CameraPage; +import regclient.page.ConsentPage; +import regclient.page.DemographicDetailsPage; +import regclient.page.DocumentUploadPage; +import regclient.page.IntroducerBiometricPage; +import regclient.page.LoginPage; +import regclient.page.ManageApplicationsPage; +import regclient.page.OperationalTaskPage; +import regclient.page.PendingApproval; +import regclient.page.PreviewPage; +import regclient.page.ProfilePage; +import regclient.page.RegistrationTasksPage; +import regclient.page.SelectLanguagePage; +import regclient.pages.arabic.AcknowledgementPageArabic; +import regclient.pages.arabic.ApplicantBiometricsPageArabic; +import regclient.pages.arabic.AuthenticationPageArabic; +import regclient.pages.arabic.BiometricDetailsPageArabic; +import regclient.pages.arabic.ConsentPageArabic; +import regclient.pages.arabic.DemographicDetailsPageArabic; +import regclient.pages.arabic.DocumentuploadPageArabic; +import regclient.pages.arabic.IntroducerBiometricPageArabic; +import regclient.pages.arabic.LoginPageArabic; +import regclient.pages.arabic.ManageApplicationsPageArabic; +import regclient.pages.arabic.OperationalTaskPageArabic; +import regclient.pages.arabic.PendingApprovalArabic; +import regclient.pages.arabic.PreviewPageArabic; +import regclient.pages.arabic.ProfilePageArabic; +import regclient.pages.arabic.RegistrationTasksPageArabic; +import regclient.pages.arabic.SelectLanguagePageArabic; +import regclient.pages.english.AcknowledgementPageEnglish; +import regclient.pages.english.ApplicantBiometricsPageEnglish; +import regclient.pages.english.AuthenticationPageEnglish; +import regclient.pages.english.BiometricDetailsPageEnglish; +import regclient.pages.english.ConsentPageEnglish; +import regclient.pages.english.DemographicDetailsPageEnglish; +import regclient.pages.english.DocumentuploadPageEnglish; +import regclient.pages.english.IntroducerBiometricPageEnglish; +import regclient.pages.english.LoginPageEnglish; +import regclient.pages.english.ManageApplicationsPageEnglish; +import regclient.pages.english.OperationalTaskPageEnglish; +import regclient.pages.english.PendingApprovalEnglish; +import regclient.pages.english.PreviewPageEnglish; +import regclient.pages.english.ProfilePageEnglish; +import regclient.pages.english.RegistrationTasksPageEnglish; +import regclient.pages.english.SelectLanguagePageEnglish; +import regclient.pages.french.AcknowledgementPageFrench; +import regclient.pages.french.ApplicantBiometricsPageFrench; +import regclient.pages.french.AuthenticationPageFrench; +import regclient.pages.french.BiometricDetailsPageFrench; +import regclient.pages.french.ConsentPageFrench; +import regclient.pages.french.DemographicDetailsPageFrench; +import regclient.pages.french.DocumentUploadPageFrench; +import regclient.pages.french.IntroducerBiometricPageFrench; +import regclient.pages.french.LoginPageFrench; +import regclient.pages.french.ManageApplicationsPageFrench; +import regclient.pages.french.OperationalTaskPageFrench; +import regclient.pages.french.PendingApprovalFrench; +import regclient.pages.french.PreviewPageFrench; +import regclient.pages.french.ProfilePageFrench; +import regclient.pages.french.RegistrationTasksPageFrench; +import regclient.pages.french.SelectLanguagePageFrench; +import regclient.pages.hindi.AcknowledgementPageHindi; +import regclient.pages.hindi.ApplicantBiometricsPageHindi; +import regclient.pages.hindi.AuthenticationPageHindi; +import regclient.pages.hindi.BiometricDetailsPageHindi; +import regclient.pages.hindi.ConsentPageHindi; +import regclient.pages.hindi.DemographicDetailsPageHindi; +import regclient.pages.hindi.DocumentUploadPageHindi; +import regclient.pages.hindi.IntroducerBiometricPageHindi; +import regclient.pages.hindi.LoginPageHindi; +import regclient.pages.hindi.ManageApplicationsPageHindi; +import regclient.pages.hindi.OperationalTaskPageHindi; +import regclient.pages.hindi.PendingApprovalHindi; +import regclient.pages.hindi.PreviewPageHindi; +import regclient.pages.hindi.ProfilePageHindi; +import regclient.pages.hindi.RegistrationTasksPageHindi; +import regclient.pages.hindi.SelectLanguagePageHindi; +import regclient.pages.kannada.AcknowledgementPageKannada; +import regclient.pages.kannada.ApplicantBiometricsPageKannada; +import regclient.pages.kannada.AuthenticationPageKannada; +import regclient.pages.kannada.BiometricDetailsPageKannada; +import regclient.pages.kannada.ConsentPageKannada; +import regclient.pages.kannada.DemographicDetailsPageKannada; +import regclient.pages.kannada.DocumentuploadPageKannada; +import regclient.pages.kannada.IntroducerBiometricPageKannada; +import regclient.pages.kannada.LoginPageKannada; +import regclient.pages.kannada.ManageApplicationsPageKannada; +import regclient.pages.kannada.OperationalTaskPageKannada; +import regclient.pages.kannada.PendingApprovalKannada; +import regclient.pages.kannada.PreviewPageKannada; +import regclient.pages.kannada.ProfilePageKannada; +import regclient.pages.kannada.RegistrationTasksPageKannada; +import regclient.pages.kannada.SelectLanguagePageKannada; +import regclient.pages.tamil.AcknowledgementPageTamil; +import regclient.pages.tamil.ApplicantBiometricsPageTamil; +import regclient.pages.tamil.AuthenticationPageTamil; +import regclient.pages.tamil.BiometricDetailsPageTamil; +import regclient.pages.tamil.ConsentPageTamil; +import regclient.pages.tamil.DemographicDetailsPageTamil; +import regclient.pages.tamil.DocumentuploadPageTamil; +import regclient.pages.tamil.IntroducerBiometricPageTamil; +import regclient.pages.tamil.LoginPageTamil; +import regclient.pages.tamil.ManageApplicationsPageTamil; +import regclient.pages.tamil.OperationalTaskPageTamil; +import regclient.pages.tamil.PendingApprovalTamil; +import regclient.pages.tamil.PreviewPageTamil; +import regclient.pages.tamil.ProfilePageTamil; +import regclient.pages.tamil.RegistrationTasksPageTamil; +import regclient.pages.tamil.SelectLanguagePageTamil; +import regclient.utils.TestDataReader; + +public class PreRegFetchingPacket extends AndroidBaseTest { + + @Test + public void adultPreRegFetching() throws InterruptedException { + BasePage.disableAutoRotation(); + FetchUiSpec.getUiSpec("newProcess"); + FetchUiSpec.getBiometricDetails("individualBiometrics"); + List screenOrder = FetchUiSpec.getAllScreenOrder(); + LoginPage loginPage = null; + RegistrationTasksPage registrationTasksPage = null; + SelectLanguagePage selectLanguagePage = null; + ConsentPage consentPage = null; + DemographicDetailsPage demographicPage = null; + DocumentUploadPage documentuploadPage = null; + BiometricDetailsPage biometricDetailsPage = null; + ApplicantBiometricsPage applicantBiometricsPage = null; + PreviewPage previewPage = null; + AuthenticationPage authenticationPage = null; + AcknowledgementPage acknowledgementPage = null; + OperationalTaskPage operationalTaskPage = null; + PendingApproval pendingApproval = null; + ManageApplicationsPage manageApplicationsPage = null; + ProfilePage profilePage = null; + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + loginPage = new LoginPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + loginPage = new LoginPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + loginPage = new LoginPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + loginPage = new LoginPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + loginPage = new LoginPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + loginPage = new LoginPageArabic(driver); + } + loginPage.selectLanguage(); + + loginPage.enterUserName(KeycloakUserManager.moduleSpecificUser); + loginPage.clickOnNextButton(); + + loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); + loginPage.clickOnloginButton(); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + registrationTasksPage = new RegistrationTasksPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + registrationTasksPage = new RegistrationTasksPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + registrationTasksPage = new RegistrationTasksPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + registrationTasksPage = new RegistrationTasksPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + registrationTasksPage = new RegistrationTasksPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + registrationTasksPage = new RegistrationTasksPageArabic(driver); + } + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + registrationTasksPage.clickOnNewRegistrationButton(); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + selectLanguagePage = new SelectLanguagePageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + selectLanguagePage = new SelectLanguagePageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + selectLanguagePage = new SelectLanguagePageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + selectLanguagePage = new SelectLanguagePageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + selectLanguagePage = new SelectLanguagePageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + selectLanguagePage = new SelectLanguagePageArabic(driver); + } + assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), "Verify if select language page is loaded"); + selectLanguagePage.selectSecondLanguage(); + + selectLanguagePage.selectNotificationlanguage(TestDataReader.readData("notificationLanguage")); + + selectLanguagePage.clickOnSubmitButton(); + for (String screen : screenOrder) { + if (screen.equals("consentdet") || screen.equals("consent")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + consentPage = new ConsentPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + consentPage = new ConsentPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + consentPage = new ConsentPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + consentPage = new ConsentPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + consentPage = new ConsentPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + consentPage = new ConsentPageArabic(driver); + } + consentPage.clickOnInformedButton(); + } else if (screen.equals("DemographicDetails")) { + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + demographicPage = new DemographicDetailsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + demographicPage = new DemographicDetailsPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + demographicPage = new DemographicDetailsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + demographicPage = new DemographicDetailsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + demographicPage = new DemographicDetailsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + demographicPage = new DemographicDetailsPageArabic(driver); + } + assertTrue(demographicPage.isPageDisplayed("DemographicDetails"), + "Verify if demographic details page is displayed"); + + assertTrue(demographicPage.isApplicationIdTextBoxDisplay(), + "Verify if application Id textbox is displayed"); + + assertTrue(demographicPage.isPreRegFetchDataTextBoxDisplay(), + "Verify if fetchdata button is displayed"); + + demographicPage.fetchPreregApplicationId("adult"); + + demographicPage.validateFetchedDemographicData(); + + demographicPage.fillRemainDemographicDetailsPage("adult"); + demographicPage.clickOnContinueButton(); + + } else if (screen.equals("Documents")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + documentuploadPage = new DocumentuploadPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + documentuploadPage = new DocumentUploadPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + documentuploadPage = new DocumentUploadPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + documentuploadPage = new DocumentuploadPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + documentuploadPage = new DocumentuploadPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + documentuploadPage = new DocumentuploadPageArabic(driver); + } + assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(), + "Verify if doccumentupload page is displayed"); + documentuploadPage.uploadDoccuments("adult", "ReferenceNumber"); + documentuploadPage.clickOnContinueButton(); + + } else if (screen.equals("BiometricDetails")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + biometricDetailsPage = new BiometricDetailsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + biometricDetailsPage = new BiometricDetailsPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + biometricDetailsPage = new BiometricDetailsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + biometricDetailsPage = new BiometricDetailsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + biometricDetailsPage = new BiometricDetailsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + biometricDetailsPage = new BiometricDetailsPageArabic(driver); + } + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); + } + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + if (FetchUiSpec.eye.equals("yes")) { + biometricDetailsPage.clickOnIrisScan(); + + applicantBiometricsPage.clickOnScanButton(); + + applicantBiometricsPage.closeScanCapturePopUp(); + + applicantBiometricsPage.clickOnScanButton(); + applicantBiometricsPage.closeScanCapturePopUp(); + + applicantBiometricsPage.clickOnScanButton(); + applicantBiometricsPage.closeScanCapturePopUp(); + + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + } + // righthand + if (FetchUiSpec.rightHand.equals("yes")) { + applicantBiometricsPage = biometricDetailsPage.clickOnRightHandScanIcon(); + + applicantBiometricsPage.clickOnScanButton(); + + applicantBiometricsPage.closeScanCapturePopUp(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + } + // lefthand + if (FetchUiSpec.leftHand.equals("yes")) { + applicantBiometricsPage = biometricDetailsPage.clickOnLeftHandScanIcon(); + + applicantBiometricsPage.clickOnScanButton(); + + applicantBiometricsPage.closeScanCapturePopUp(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + } + // thumb + if (FetchUiSpec.thumb.equals("yes")) { + applicantBiometricsPage = biometricDetailsPage.clickOnThumbsScanIcon(); + + applicantBiometricsPage.clickOnScanButton(); + + applicantBiometricsPage.closeScanCapturePopUp(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + } + // face + if (FetchUiSpec.face.equals("yes")) { + biometricDetailsPage.clickOnFaceScanIcon(); + + applicantBiometricsPage.clickOnScanButton(); + + applicantBiometricsPage.closeScanCapturePopUp(); + applicantBiometricsPage.clickOnBackButton(); + } + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + biometricDetailsPage.clickOnContinueButton(); + } + + } + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + previewPage = new PreviewPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + previewPage = new PreviewPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + previewPage = new PreviewPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + previewPage = new PreviewPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + previewPage = new PreviewPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + previewPage = new PreviewPageArabic(driver); + } + + assertTrue(previewPage.isNewRegistrationTitleDisplayed(), "Verify if new Registration title is displayed"); + assertTrue(previewPage.isDocumentsInformationInPreviewPageDisplayed(), + "Verify if Documents Information In PreviewPage is displayed"); + assertTrue(previewPage.isApplicationIDPreviewPagePageDisplayed(), + "Verify if application ID In PreviewPage is displayed"); + + assertTrue(previewPage.isDemographicInformationInPreviewPageDisplayed(), + "Verify if Demographic Information In PreviewPage is displayed"); + + assertTrue(previewPage.isBiometricsInformationInPreviewPagePageDisplayed(), + "Verify if Biometrics Information In PreviewPage is displayed"); + String Aid = previewPage.getAID(); + +// previewPage.validatePreRegAndApplicationIdMatch("adult"); + + previewPage.clickOnContinueButton(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + authenticationPage = new AuthenticationPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + authenticationPage = new AuthenticationPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + authenticationPage = new AuthenticationPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + authenticationPage = new AuthenticationPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + authenticationPage = new AuthenticationPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + authenticationPage = new AuthenticationPageArabic(driver); + } + assertTrue(authenticationPage.isAuthenticationPageDisplayed(), + "Verify if authentication details page is displayed"); + authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); + authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); + authenticationPage.clickOnAuthenticatenButton(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + acknowledgementPage = new AcknowledgementPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + acknowledgementPage = new AcknowledgementPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + acknowledgementPage = new AcknowledgementPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + acknowledgementPage = new AcknowledgementPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + acknowledgementPage = new AcknowledgementPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + acknowledgementPage = new AcknowledgementPageArabic(driver); + } + assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(), + "Verify if acknowledgement details page is displayed"); + + acknowledgementPage.clickOnGoToHomeButton(); + + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + registrationTasksPage.clickOnOperationalTasksTitle(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + operationalTaskPage = new OperationalTaskPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + operationalTaskPage = new OperationalTaskPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + operationalTaskPage = new OperationalTaskPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + operationalTaskPage = new OperationalTaskPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + operationalTaskPage = new OperationalTaskPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + operationalTaskPage = new OperationalTaskPageArabic(driver); + } + assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); + assertTrue(operationalTaskPage.isPendingApprovalTitleDisplayed(), "Verify if pending approval tite displayed"); + operationalTaskPage.clickPendingApprovalTitle(); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + pendingApproval = new PendingApprovalEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + pendingApproval = new PendingApprovalHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + pendingApproval = new PendingApprovalFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + pendingApproval = new PendingApprovalKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + pendingApproval = new PendingApprovalTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + pendingApproval = new PendingApprovalArabic(driver); + } + assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed"); + + pendingApproval.clickOnLatestAid(); + + assertTrue(pendingApproval.isApprovalButtonDisplayed(), "Verify if approval button displayed"); + pendingApproval.clickOnApproveButton(); + pendingApproval.clickOnClosePopUpButton(); + + assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), + "Verify if pending approval page displayed after approving packet"); + + pendingApproval.selectLatestAIdCheckBox(); + + assertTrue(pendingApproval.isSubmitButtonEnabled(), "Verify if submit button is enable after selecting packet"); + + boolean isPageDisplayed = false; + for (int i = 0; i < 3; i++) { + pendingApproval.clickOnSubmitButton(); + Thread.sleep(2000); + if (pendingApproval.isSupervisorAuthenticationTitleDisplayed()) { + isPageDisplayed = true; + break; + } + } + assertTrue(isPageDisplayed, "Supervisor Authentication page not displayed after retries"); + + pendingApproval.clickOnSubmitButton(); + assertTrue(pendingApproval.isInvalidemptyUsernameSumbitButtonEnbled(), + "Verify if error empty username submit button enabled"); + + pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser + "123"); + + assertTrue(pendingApproval.isInvalidUsernameMessageDisplayed(), + "Verify if invalid username messgae is displayed"); + pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser); + + pendingApproval.enterPassword(ArcConfigManager.getIAMUsersPassword()); + pendingApproval.clickOnSubmitButton(); + pendingApproval.clickOnBackButton(); + assertTrue(operationalTaskPage.isApplicationUploadTitleDisplayed(), + "Verify if application upload tite displayed"); + + operationalTaskPage.clickApplicationUploadTitle(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + manageApplicationsPage = new ManageApplicationsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + manageApplicationsPage = new ManageApplicationsPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + manageApplicationsPage = new ManageApplicationsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + manageApplicationsPage = new ManageApplicationsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + manageApplicationsPage = new ManageApplicationsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + manageApplicationsPage = new ManageApplicationsPageArabic(driver); + } + assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), + "Verify if manage Applications Page displayed"); + manageApplicationsPage.enterWrongAID(Aid + 123); + + assertTrue(manageApplicationsPage.isZeroApplicationDisplayed(), "Verify if wrong Aid should not display"); + + manageApplicationsPage.selectLatestAidCheckBox(); + for (int i = 0; i < 3; i++) { + manageApplicationsPage.clickOnUploadButton(); + Thread.sleep(2000); + if (!manageApplicationsPage.isNoNetworkFoundDisplayed()) + break; + } + manageApplicationsPage.clickOnBackButton(); + + assertTrue(registrationTasksPage.isProfileTitleDisplayed(), "Verify if profile title display on homepage"); + registrationTasksPage.clickProfileButton(); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + profilePage = new ProfilePageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + profilePage = new ProfilePageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + profilePage = new ProfilePageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + profilePage = new ProfilePageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + profilePage = new ProfilePageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + profilePage = new ProfilePageArabic(driver); + } + + profilePage.clickOnLogoutButton(); + + profilePage.clickOnLogoutButton(); + + assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayeded in Selected language"); + } + + @Test + public void minorPreRegFetching() throws InterruptedException { + + BasePage.disableAutoRotation(); + FetchUiSpec.getUiSpec("newProcess"); + FetchUiSpec.getBiometricDetails("individualBiometrics"); + List screenOrder = FetchUiSpec.getAllScreenOrder(); + LoginPage loginPage = null; + RegistrationTasksPage registrationTasksPage = null; + SelectLanguagePage selectLanguagePage = null; + ConsentPage consentPage = null; + DemographicDetailsPage demographicPage = null; + DocumentUploadPage documentuploadPage = null; + BiometricDetailsPage biometricDetailsPage = null; + ApplicantBiometricsPage applicantBiometricsPage = null; + PreviewPage previewPage = null; + AuthenticationPage authenticationPage = null; + AcknowledgementPage acknowledgementPage = null; + OperationalTaskPage operationalTaskPage = null; + PendingApproval pendingApproval = null; + ManageApplicationsPage manageApplicationsPage = null; + ProfilePage profilePage = null; + IntroducerBiometricPage introducerBiometricPage = null; + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + loginPage = new LoginPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + loginPage = new LoginPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + loginPage = new LoginPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + loginPage = new LoginPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + loginPage = new LoginPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + loginPage = new LoginPageArabic(driver); + } + loginPage.selectLanguage(); + + assertTrue(loginPage.isWelcomeMessageInSelectedLanguageDisplayed(), + "verify if the welcome msg in selected language displayed"); + loginPage.enterUserName(KeycloakUserManager.moduleSpecificUser); + loginPage.clickOnNextButton(); + + loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); + loginPage.clickOnloginButton(); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + registrationTasksPage = new RegistrationTasksPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + registrationTasksPage = new RegistrationTasksPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + registrationTasksPage = new RegistrationTasksPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + registrationTasksPage = new RegistrationTasksPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + registrationTasksPage = new RegistrationTasksPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + registrationTasksPage = new RegistrationTasksPageArabic(driver); + } + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + registrationTasksPage.clickOnNewRegistrationButton(); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + selectLanguagePage = new SelectLanguagePageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + selectLanguagePage = new SelectLanguagePageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + selectLanguagePage = new SelectLanguagePageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + selectLanguagePage = new SelectLanguagePageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + selectLanguagePage = new SelectLanguagePageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + selectLanguagePage = new SelectLanguagePageArabic(driver); + } + assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), "Verify if select language page is loaded"); + selectLanguagePage.clickOnSubmitButtonWithoutSelectingLanguage(); + + assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), + "Verify if user should not be allow to navigate to next screen."); + selectLanguagePage.selectSecondLanguage(); + + assertTrue(selectLanguagePage.isNotificationLanguageEnglishDisplayed(), + "verify if the notification language display in english"); + selectLanguagePage.selectNotificationlanguage(TestDataReader.readData("notificationLanguage")); + + assertTrue(selectLanguagePage.isSubmitButtonEnabled(), "verify if the submit button enabled"); + selectLanguagePage.clickOnSubmitButton(); + for (String screen : screenOrder) { + if (screen.equals("consentdet") || screen.equals("consent")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + consentPage = new ConsentPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + consentPage = new ConsentPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + consentPage = new ConsentPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + consentPage = new ConsentPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + consentPage = new ConsentPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + consentPage = new ConsentPageArabic(driver); + } + consentPage.clickOnInformedButton(); + } else if (screen.equals("DemographicDetails")) { + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + demographicPage = new DemographicDetailsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + demographicPage = new DemographicDetailsPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + demographicPage = new DemographicDetailsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + demographicPage = new DemographicDetailsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + demographicPage = new DemographicDetailsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + demographicPage = new DemographicDetailsPageArabic(driver); + } + assertTrue(demographicPage.isPageDisplayed("DemographicDetails"), + "Verify if demographic details page is displayed"); + + assertTrue(demographicPage.isApplicationIdTextBoxDisplay(), + "Verify if application Id textbox is displayed"); + + assertTrue(demographicPage.isPreRegFetchDataTextBoxDisplay(), + "Verify if fetchdata button is displayed"); + + demographicPage.fetchPreregApplicationId("minor"); + + demographicPage.fillRemainDemographicDetailsPage("minor"); + demographicPage.clickOnContinueButton(); + + } else if (screen.equals("Documents")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + documentuploadPage = new DocumentuploadPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + documentuploadPage = new DocumentUploadPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + documentuploadPage = new DocumentUploadPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + documentuploadPage = new DocumentuploadPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + documentuploadPage = new DocumentuploadPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + documentuploadPage = new DocumentuploadPageArabic(driver); + } + assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(), + "Verify if doccumentupload page is displayed"); + documentuploadPage.uploadDoccuments("minor", "withoutReferenceNumber"); + documentuploadPage.clickOnContinueButton(); + + } else if (screen.equals("BiometricDetails")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + biometricDetailsPage = new BiometricDetailsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + biometricDetailsPage = new BiometricDetailsPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + biometricDetailsPage = new BiometricDetailsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + biometricDetailsPage = new BiometricDetailsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + biometricDetailsPage = new BiometricDetailsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + biometricDetailsPage = new BiometricDetailsPageArabic(driver); + } + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); + } + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + if (FetchUiSpec.eye.equals("yes")) { + biometricDetailsPage.clickOnIrisScan(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + + applicantBiometricsPage.clickOnScanButton(); + assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 2nd attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + + applicantBiometricsPage.clickOnScanButton(); + assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 3rd attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + } + // righthand + if (FetchUiSpec.rightHand.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnRightHandScanIcon(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isRightHandScan(), "Verify if right hand scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + } + // lefthand + if (FetchUiSpec.leftHand.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnLeftHandScanIcon(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isLeftHandScan(), "Verify if Left hand scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + } + // thumb + if (FetchUiSpec.thumb.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnThumbsScanIcon(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isThumbsScan(), "Verify if thumbs scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + } + // face + if (FetchUiSpec.face.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + biometricDetailsPage.clickOnFaceScanIcon(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isFaceScan(), "Verify if face scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + applicantBiometricsPage.clickOnBackButton(); + } + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + introducerBiometricPage = new IntroducerBiometricPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + introducerBiometricPage = new IntroducerBiometricPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + introducerBiometricPage = new IntroducerBiometricPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + introducerBiometricPage = new IntroducerBiometricPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + introducerBiometricPage = new IntroducerBiometricPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + introducerBiometricPage = new IntroducerBiometricPageArabic(driver); + } + FetchUiSpec.getBiometricDetails("introducerBiometrics"); + if (FetchUiSpec.eye.equals("yes")) { + biometricDetailsPage.clickOnIntroducerIrisScan(); + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + "Verify if introducer biometric page is displayed"); + introducerBiometricPage.clickOnScanButton(); + + assertTrue(introducerBiometricPage.isIrisScan(), "Verify if iris scan 1st attempt"); + introducerBiometricPage.closeScanCapturePopUp(); + introducerBiometricPage.clickOnNextButton(); + } + // righthand + if (FetchUiSpec.rightHand.equals("yes")) { + if (!FetchUiSpec.eye.equals("yes")) { + biometricDetailsPage.clickOnIntroducerRightHandScan(); + } + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + "Verify if introducer biometric page is displayed"); + + assertTrue(introducerBiometricPage.isRightHandScanTitleDisplyed(), + "Verify if right hand scan is displayed"); + introducerBiometricPage.clickOnScanButton(); + + assertTrue(introducerBiometricPage.isRightHandScan(), "Verify if right hand scan 1st attempt"); + introducerBiometricPage.closeScanCapturePopUp(); + introducerBiometricPage.clickOnNextButton(); + } + // lefthand + if (FetchUiSpec.leftHand.equals("yes")) { + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + "Verify if introducer biometric page is displayed"); + + assertTrue(introducerBiometricPage.isLeftHandScanTitleDisplyed(), + "Verify if applicant left hand scan title is displayed"); + introducerBiometricPage.clickOnScanButton(); + + assertTrue(introducerBiometricPage.isLeftHandScan(), "Verify if Left hand scan 1st attempt"); + introducerBiometricPage.closeScanCapturePopUp(); + introducerBiometricPage.clickOnNextButton(); + } + // thumb + if (FetchUiSpec.thumb.equals("yes")) { + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + "Verify if introducer biometric page is displayed"); + + assertTrue(introducerBiometricPage.isThumbsScanTitleDisplyed(), + "Verify if thumbs scan page is displayed"); + introducerBiometricPage.clickOnScanButton(); + + assertTrue(introducerBiometricPage.isThumbsScan(), "Verify if thumbs scan 1st attempt"); + introducerBiometricPage.closeScanCapturePopUp(); + introducerBiometricPage.clickOnNextButton(); + } + // face + if (FetchUiSpec.face.equals("yes")) { + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + "Verify if introducer biometric page is displayed"); + + assertTrue(introducerBiometricPage.isFaceScanTitleDisplyed(), + "Verify if face scan page is displayed"); + introducerBiometricPage.clickOnScanButton(); + + assertTrue(introducerBiometricPage.isFaceScan(), "Verify if face scan 1st attempt"); + introducerBiometricPage.closeScanCapturePopUp(); + biometricDetailsPage = introducerBiometricPage.clickOnNextButton(); + } + + biometricDetailsPage.clickOnContinueButton(); + } + + } + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + previewPage = new PreviewPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + previewPage = new PreviewPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + previewPage = new PreviewPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + previewPage = new PreviewPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + previewPage = new PreviewPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + previewPage = new PreviewPageArabic(driver); + } + + assertTrue(previewPage.isNewRegistrationTitleDisplayed(), "Verify if new Registration title is displayed"); + assertTrue(previewPage.isDocumentsInformationInPreviewPageDisplayed(), + "Verify if Documents Information In PreviewPage is displayed"); + assertTrue(previewPage.isApplicationIDPreviewPagePageDisplayed(), + "Verify if application ID In PreviewPage is displayed"); + + assertTrue(previewPage.isDemographicInformationInPreviewPageDisplayed(), + "Verify if Demographic Information In PreviewPage is displayed"); + +// assertTrue(previewPage.isBiometricsInformationInPreviewPagePageDisplayed(),"Verify if Biometrics Information In PreviewPage is displayed"); + String Aid = previewPage.getAID(); + previewPage.clickOnContinueButton(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + authenticationPage = new AuthenticationPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + authenticationPage = new AuthenticationPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + authenticationPage = new AuthenticationPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + authenticationPage = new AuthenticationPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + authenticationPage = new AuthenticationPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + authenticationPage = new AuthenticationPageArabic(driver); + } + assertTrue(authenticationPage.isAuthenticationPageDisplayed(), + "Verify if authentication details page is displayed"); + authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); + authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); + authenticationPage.clickOnAuthenticatenButton(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + acknowledgementPage = new AcknowledgementPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + acknowledgementPage = new AcknowledgementPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + acknowledgementPage = new AcknowledgementPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + acknowledgementPage = new AcknowledgementPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + acknowledgementPage = new AcknowledgementPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + acknowledgementPage = new AcknowledgementPageArabic(driver); + } + assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(), + "Verify if acknowledgement details page is displayed"); + + acknowledgementPage.clickOnGoToHomeButton(); + + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + registrationTasksPage.clickOnOperationalTasksTitle(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + operationalTaskPage = new OperationalTaskPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + operationalTaskPage = new OperationalTaskPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + operationalTaskPage = new OperationalTaskPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + operationalTaskPage = new OperationalTaskPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + operationalTaskPage = new OperationalTaskPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + operationalTaskPage = new OperationalTaskPageArabic(driver); + } + assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); + assertTrue(operationalTaskPage.isPendingApprovalTitleDisplayed(), "Verify if pending approval tite displayed"); + operationalTaskPage.clickPendingApprovalTitle(); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + pendingApproval = new PendingApprovalEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + pendingApproval = new PendingApprovalHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + pendingApproval = new PendingApprovalFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + pendingApproval = new PendingApprovalKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + pendingApproval = new PendingApprovalTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + pendingApproval = new PendingApprovalArabic(driver); + } + assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed"); + + pendingApproval.clickOnLatestAid(); + + assertTrue(pendingApproval.isApprovalButtonDisplayed(), "Verify if approval button displayed"); + pendingApproval.clickOnApproveButton(); + pendingApproval.clickOnClosePopUpButton(); + + assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), + "Verify if pending approval page displayed after approving packet"); + + pendingApproval.selectLatestAIdCheckBox(); + + assertTrue(pendingApproval.isSubmitButtonEnabled(), "Verify if submit button is enable after selecting packet"); + + boolean isPageDisplayed = false; + for (int i = 0; i < 3; i++) { + pendingApproval.clickOnSubmitButton(); + Thread.sleep(2000); + if (pendingApproval.isSupervisorAuthenticationTitleDisplayed()) { + isPageDisplayed = true; + break; + } + } + assertTrue(isPageDisplayed, "Supervisor Authentication page not displayed after retries"); + + pendingApproval.clickOnSubmitButton(); + assertTrue(pendingApproval.isInvalidemptyUsernameSumbitButtonEnbled(), + "Verify if error empty username submit button enabled"); + + pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser + "123"); + + assertTrue(pendingApproval.isInvalidUsernameMessageDisplayed(), + "Verify if invalid username messgae is displayed"); + pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser); + + pendingApproval.enterPassword(ArcConfigManager.getIAMUsersPassword()); + pendingApproval.clickOnSubmitButton(); + pendingApproval.clickOnBackButton(); + assertTrue(operationalTaskPage.isApplicationUploadTitleDisplayed(), + "Verify if application upload tite displayed"); + + operationalTaskPage.clickApplicationUploadTitle(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + manageApplicationsPage = new ManageApplicationsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + manageApplicationsPage = new ManageApplicationsPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + manageApplicationsPage = new ManageApplicationsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + manageApplicationsPage = new ManageApplicationsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + manageApplicationsPage = new ManageApplicationsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + manageApplicationsPage = new ManageApplicationsPageArabic(driver); + } + assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), + "Verify if manage Applications Page displayed"); + manageApplicationsPage.enterWrongAID(Aid + 123); + + assertTrue(manageApplicationsPage.isZeroApplicationDisplayed(), "Verify if wrong Aid should not display"); + + manageApplicationsPage.selectLatestAidCheckBox(); + for (int i = 0; i < 3; i++) { + manageApplicationsPage.clickOnUploadButton(); + Thread.sleep(2000); + if (!manageApplicationsPage.isNoNetworkFoundDisplayed()) + break; + } + manageApplicationsPage.clickOnBackButton(); + + assertTrue(registrationTasksPage.isProfileTitleDisplayed(), "Verify if profile title display on homepage"); + registrationTasksPage.clickProfileButton(); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + profilePage = new ProfilePageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + profilePage = new ProfilePageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + profilePage = new ProfilePageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + profilePage = new ProfilePageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + profilePage = new ProfilePageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + profilePage = new ProfilePageArabic(driver); + } + // assertTrue(profilePage.isProfileTitleDisplayed(),"Verify if profile title + // display on Profilepage"); + profilePage.clickOnLogoutButton(); + + profilePage.clickOnLogoutButton(); + + assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayeded in Selected language"); + + } + + @Test + public void infantPreRegFetching() throws InterruptedException { + + BasePage.disableAutoRotation(); + FetchUiSpec.getUiSpec("newProcess"); + FetchUiSpec.getBiometricDetails("individualBiometrics"); + List screenOrder = FetchUiSpec.getAllScreenOrder(); + LoginPage loginPage = null; + RegistrationTasksPage registrationTasksPage = null; + SelectLanguagePage selectLanguagePage = null; + ConsentPage consentPage = null; + DemographicDetailsPage demographicPage = null; + DocumentUploadPage documentuploadPage = null; + BiometricDetailsPage biometricDetailsPage = null; + ApplicantBiometricsPage applicantBiometricsPage = null; + AuthenticationPage authenticationPage = null; + AcknowledgementPage acknowledgementPage = null; + OperationalTaskPage operationalTaskPage = null; + PendingApproval pendingApproval = null; + ManageApplicationsPage manageApplicationsPage = null; + ProfilePage profilePage = null; + IntroducerBiometricPage introducerBiometricPage = null; + PreviewPage previewPage = null; + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + loginPage = new LoginPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + loginPage = new LoginPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + loginPage = new LoginPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + loginPage = new LoginPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + loginPage = new LoginPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + loginPage = new LoginPageArabic(driver); + } + loginPage.selectLanguage(); + + assertTrue(loginPage.isWelcomeMessageInSelectedLanguageDisplayed(), + "verify if the welcome msg in selected language displayed"); + loginPage.enterUserName(KeycloakUserManager.moduleSpecificUser); + loginPage.clickOnNextButton(); + + loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); + loginPage.clickOnloginButton(); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + registrationTasksPage = new RegistrationTasksPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + registrationTasksPage = new RegistrationTasksPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + registrationTasksPage = new RegistrationTasksPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + registrationTasksPage = new RegistrationTasksPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + registrationTasksPage = new RegistrationTasksPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + registrationTasksPage = new RegistrationTasksPageArabic(driver); + } + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + registrationTasksPage.clickOnNewRegistrationButton(); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + selectLanguagePage = new SelectLanguagePageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + selectLanguagePage = new SelectLanguagePageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + selectLanguagePage = new SelectLanguagePageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + selectLanguagePage = new SelectLanguagePageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + selectLanguagePage = new SelectLanguagePageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + selectLanguagePage = new SelectLanguagePageArabic(driver); + } + assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), "Verify if select language page is loaded"); + selectLanguagePage.clickOnSubmitButtonWithoutSelectingLanguage(); + + assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), + "Verify if user should not be allow to navigate to next screen."); + selectLanguagePage.selectSecondLanguage(); + + assertTrue(selectLanguagePage.isNotificationLanguageEnglishDisplayed(), + "verify if the notification language display in english"); + selectLanguagePage.selectNotificationlanguage(TestDataReader.readData("notificationLanguage")); + + assertTrue(selectLanguagePage.isSubmitButtonEnabled(), "verify if the submit button enabled"); + selectLanguagePage.clickOnSubmitButton(); + for (String screen : screenOrder) { + if (screen.equals("consentdet") || screen.equals("consent")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + consentPage = new ConsentPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + consentPage = new ConsentPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + consentPage = new ConsentPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + consentPage = new ConsentPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + consentPage = new ConsentPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + consentPage = new ConsentPageArabic(driver); + } + consentPage.clickOnInformedButton(); + } else if (screen.equals("DemographicDetails")) { + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + demographicPage = new DemographicDetailsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + demographicPage = new DemographicDetailsPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + demographicPage = new DemographicDetailsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + demographicPage = new DemographicDetailsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + demographicPage = new DemographicDetailsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + demographicPage = new DemographicDetailsPageArabic(driver); + } + assertTrue(demographicPage.isPageDisplayed("DemographicDetails"), + "Verify if demographic details page is displayed"); + + assertTrue(demographicPage.isApplicationIdTextBoxDisplay(), + "Verify if application Id textbox is displayed"); + + assertTrue(demographicPage.isPreRegFetchDataTextBoxDisplay(), + "Verify if fetchdata button is displayed"); + + demographicPage.fetchPreregApplicationId("infant"); + + demographicPage.fillRemainDemographicDetailsPage("infant"); + demographicPage.clickOnContinueButton(); + + } else if (screen.equals("Documents")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + documentuploadPage = new DocumentuploadPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + documentuploadPage = new DocumentUploadPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + documentuploadPage = new DocumentUploadPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + documentuploadPage = new DocumentuploadPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + documentuploadPage = new DocumentuploadPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + documentuploadPage = new DocumentuploadPageArabic(driver); + } + assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(), + "Verify if doccumentupload page is displayed"); + documentuploadPage.uploadDoccuments("infant", "withoutReferenceNumber"); + documentuploadPage.clickOnContinueButton(); + + } else if (screen.equals("BiometricDetails")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + biometricDetailsPage = new BiometricDetailsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + biometricDetailsPage = new BiometricDetailsPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + biometricDetailsPage = new BiometricDetailsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + biometricDetailsPage = new BiometricDetailsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + biometricDetailsPage = new BiometricDetailsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + biometricDetailsPage = new BiometricDetailsPageArabic(driver); + } + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + biometricDetailsPage.clickOnFaceScanIcon(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); + } + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isFaceScan(), + "Verify if face captured and 2 attempts left text is displayed"); + applicantBiometricsPage.closeScanCapturePopUp(); + ; + biometricDetailsPage = applicantBiometricsPage.clickOnNextButton(); + + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + introducerBiometricPage = new IntroducerBiometricPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + introducerBiometricPage = new IntroducerBiometricPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + introducerBiometricPage = new IntroducerBiometricPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + introducerBiometricPage = new IntroducerBiometricPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + introducerBiometricPage = new IntroducerBiometricPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + introducerBiometricPage = new IntroducerBiometricPageArabic(driver); + } + FetchUiSpec.getBiometricDetails("introducerBiometrics"); + if (FetchUiSpec.eye.equals("yes")) { + biometricDetailsPage.clickOnIntroducerIrisScan(); + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + "Verify if introducer biometric page is displayed"); + introducerBiometricPage.clickOnScanButton(); + + assertTrue(introducerBiometricPage.isIrisScan(), "Verify if iris scan 1st attempt"); + introducerBiometricPage.closeScanCapturePopUp(); + introducerBiometricPage.clickOnNextButton(); + } + // righthand + if (FetchUiSpec.rightHand.equals("yes")) { + if (!FetchUiSpec.eye.equals("yes")) { + biometricDetailsPage.clickOnIntroducerRightHandScan(); + } + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + "Verify if introducer biometric page is displayed"); + + assertTrue(introducerBiometricPage.isRightHandScanTitleDisplyed(), + "Verify if right hand scan is displayed"); + introducerBiometricPage.clickOnScanButton(); + + assertTrue(introducerBiometricPage.isRightHandScan(), "Verify if right hand scan 1st attempt"); + introducerBiometricPage.closeScanCapturePopUp(); + introducerBiometricPage.clickOnNextButton(); + } + // lefthand + if (FetchUiSpec.leftHand.equals("yes")) { + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + "Verify if introducer biometric page is displayed"); + + assertTrue(introducerBiometricPage.isLeftHandScanTitleDisplyed(), + "Verify if applicant left hand scan title is displayed"); + introducerBiometricPage.clickOnScanButton(); + + assertTrue(introducerBiometricPage.isLeftHandScan(), "Verify if Left hand scan 1st attempt"); + introducerBiometricPage.closeScanCapturePopUp(); + introducerBiometricPage.clickOnNextButton(); + } + // thumb + if (FetchUiSpec.thumb.equals("yes")) { + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + "Verify if introducer biometric page is displayed"); + + assertTrue(introducerBiometricPage.isThumbsScanTitleDisplyed(), + "Verify if thumbs scan page is displayed"); + introducerBiometricPage.clickOnScanButton(); + + assertTrue(introducerBiometricPage.isThumbsScan(), "Verify if thumbs scan 1st attempt"); + introducerBiometricPage.closeScanCapturePopUp(); + introducerBiometricPage.clickOnNextButton(); + } + // face + if (FetchUiSpec.face.equals("yes")) { + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + "Verify if introducer biometric page is displayed"); + + assertTrue(introducerBiometricPage.isFaceScanTitleDisplyed(), + "Verify if face scan page is displayed"); + introducerBiometricPage.clickOnScanButton(); + + assertTrue(introducerBiometricPage.isFaceScan(), "Verify if face scan 1st attempt"); + introducerBiometricPage.closeScanCapturePopUp(); + biometricDetailsPage = introducerBiometricPage.clickOnNextButton(); + } + + biometricDetailsPage.clickOnContinueButton(); + } + } + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + previewPage = new PreviewPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + previewPage = new PreviewPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + previewPage = new PreviewPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + previewPage = new PreviewPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + previewPage = new PreviewPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + previewPage = new PreviewPageArabic(driver); + } + + assertTrue(previewPage.isNewRegistrationTitleDisplayed(), "Verify if new Registration title is displayed"); + assertTrue(previewPage.isDocumentsInformationInPreviewPageDisplayed(), + "Verify if Documents Information In PreviewPage is displayed"); + assertTrue(previewPage.isApplicationIDPreviewPagePageDisplayed(), + "Verify if application ID In PreviewPage is displayed"); + + assertTrue(previewPage.isDemographicInformationInPreviewPageDisplayed(), + "Verify if Demographic Information In PreviewPage is displayed"); + +// assertTrue(previewPage.isBiometricsInformationInPreviewPagePageDisplayed(),"Verify if Biometrics Information In PreviewPage is displayed"); + String Aid = previewPage.getAID(); + previewPage.clickOnContinueButton(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + authenticationPage = new AuthenticationPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + authenticationPage = new AuthenticationPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + authenticationPage = new AuthenticationPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + authenticationPage = new AuthenticationPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + authenticationPage = new AuthenticationPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + authenticationPage = new AuthenticationPageArabic(driver); + } + assertTrue(authenticationPage.isAuthenticationPageDisplayed(), + "Verify if authentication details page is displayed"); + authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); + authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); + authenticationPage.clickOnAuthenticatenButton(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + acknowledgementPage = new AcknowledgementPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + acknowledgementPage = new AcknowledgementPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + acknowledgementPage = new AcknowledgementPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + acknowledgementPage = new AcknowledgementPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + acknowledgementPage = new AcknowledgementPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + acknowledgementPage = new AcknowledgementPageArabic(driver); + } + assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(), + "Verify if acknowledgement details page is displayed"); + + acknowledgementPage.clickOnGoToHomeButton(); + + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + registrationTasksPage.clickOnOperationalTasksTitle(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + operationalTaskPage = new OperationalTaskPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + operationalTaskPage = new OperationalTaskPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + operationalTaskPage = new OperationalTaskPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + operationalTaskPage = new OperationalTaskPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + operationalTaskPage = new OperationalTaskPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + operationalTaskPage = new OperationalTaskPageArabic(driver); + } + assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); + assertTrue(operationalTaskPage.isPendingApprovalTitleDisplayed(), "Verify if pending approval tite displayed"); + operationalTaskPage.clickPendingApprovalTitle(); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + pendingApproval = new PendingApprovalEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + pendingApproval = new PendingApprovalHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + pendingApproval = new PendingApprovalFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + pendingApproval = new PendingApprovalKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + pendingApproval = new PendingApprovalTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + pendingApproval = new PendingApprovalArabic(driver); + } + assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed"); + + pendingApproval.clickOnLatestAid(); + + assertTrue(pendingApproval.isApprovalButtonDisplayed(), "Verify if approval button displayed"); + pendingApproval.clickOnApproveButton(); + pendingApproval.clickOnClosePopUpButton(); + + assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), + "Verify if pending approval page displayed after approving packet"); + + pendingApproval.selectLatestAIdCheckBox(); + + assertTrue(pendingApproval.isSubmitButtonEnabled(), "Verify if submit button is enable after selecting packet"); + + boolean isPageDisplayed = false; + for (int i = 0; i < 3; i++) { + pendingApproval.clickOnSubmitButton(); + Thread.sleep(2000); + if (pendingApproval.isSupervisorAuthenticationTitleDisplayed()) { + isPageDisplayed = true; + break; + } + } + assertTrue(isPageDisplayed, "Supervisor Authentication page not displayed after retries"); + + pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser); + + pendingApproval.enterPassword(ArcConfigManager.getIAMUsersPassword()); + pendingApproval.clickOnSubmitButton(); + pendingApproval.clickOnBackButton(); + assertTrue(operationalTaskPage.isApplicationUploadTitleDisplayed(), + "Verify if application upload tite displayed"); + + operationalTaskPage.clickApplicationUploadTitle(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + manageApplicationsPage = new ManageApplicationsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + manageApplicationsPage = new ManageApplicationsPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + manageApplicationsPage = new ManageApplicationsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + manageApplicationsPage = new ManageApplicationsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + manageApplicationsPage = new ManageApplicationsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + manageApplicationsPage = new ManageApplicationsPageArabic(driver); + } + assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), + "Verify if manage Applications Page displayed"); + + manageApplicationsPage.selectLatestAidCheckBox(); + for (int i = 0; i < 3; i++) { + manageApplicationsPage.clickOnUploadButton(); + Thread.sleep(2000); + if (!manageApplicationsPage.isNoNetworkFoundDisplayed()) + break; + } + manageApplicationsPage.clickOnBackButton(); + + assertTrue(registrationTasksPage.isProfileTitleDisplayed(), "Verify if profile title display on homepage"); + registrationTasksPage.clickProfileButton(); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + profilePage = new ProfilePageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + profilePage = new ProfilePageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + profilePage = new ProfilePageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + profilePage = new ProfilePageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + profilePage = new ProfilePageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + profilePage = new ProfilePageArabic(driver); + } + profilePage.clickOnLogoutButton(); + + profilePage.clickOnLogoutButton(); + + assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayeded in Selected language"); + } + +} diff --git a/ui-test/src/main/java/regclient/androidTestCases/ResetPassword.java b/ui-test/src/main/java/regclient/androidTestCases/ResetPassword.java new file mode 100644 index 000000000..2b570d5aa --- /dev/null +++ b/ui-test/src/main/java/regclient/androidTestCases/ResetPassword.java @@ -0,0 +1,222 @@ +package regclient.androidTestCases; + +import static org.testng.Assert.assertTrue; + +import java.io.IOException; +import org.testng.annotations.Test; +import regclient.BaseTest.AndroidBaseTest; +import regclient.api.ArcConfigManager; +import regclient.api.KeycloakUserManager; +import regclient.page.BasePage; +import regclient.page.KeycloakPage; +import regclient.page.LoginPage; +import regclient.page.ProfilePage; +import regclient.page.RegistrationTasksPage; +import regclient.pages.arabic.LoginPageArabic; +import regclient.pages.arabic.ProfilePageArabic; +import regclient.pages.arabic.RegistrationTasksPageArabic; +import regclient.pages.english.KeycloakPageEnglish; +import regclient.pages.english.LoginPageEnglish; +import regclient.pages.english.ProfilePageEnglish; +import regclient.pages.english.RegistrationTasksPageEnglish; +import regclient.pages.french.LoginPageFrench; +import regclient.pages.french.ProfilePageFrench; +import regclient.pages.french.RegistrationTasksPageFrench; +import regclient.pages.hindi.LoginPageHindi; +import regclient.pages.hindi.ProfilePageHindi; +import regclient.pages.hindi.RegistrationTasksPageHindi; +import regclient.pages.kannada.LoginPageKannada; +import regclient.pages.kannada.ProfilePageKannada; +import regclient.pages.kannada.RegistrationTasksPageKannada; +import regclient.pages.tamil.LoginPageTamil; +import regclient.pages.tamil.ProfilePageTamil; +import regclient.pages.tamil.RegistrationTasksPageTamil; +import regclient.utils.TestDataReader; + +public class ResetPassword extends AndroidBaseTest { + + @Test(priority = 1) + public void resetPassword() throws IOException { + BasePage.disableAutoRotation(); + LoginPage loginPage = null; + RegistrationTasksPage registrationTasksPage = null; + ProfilePage profilePage = null; + KeycloakPage keycloakPage = null; + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + loginPage = new LoginPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + loginPage = new LoginPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + loginPage = new LoginPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + loginPage = new LoginPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + loginPage = new LoginPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + loginPage = new LoginPageArabic(driver); + } + loginPage.selectLanguage(); + + loginPage.enterUserName(KeycloakUserManager.moduleSpecificUser); + + loginPage.clickOnNextButton(); + loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); + loginPage.clickOnloginButton(); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + registrationTasksPage = new RegistrationTasksPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + registrationTasksPage = new RegistrationTasksPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + registrationTasksPage = new RegistrationTasksPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + registrationTasksPage = new RegistrationTasksPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + registrationTasksPage = new RegistrationTasksPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + registrationTasksPage = new RegistrationTasksPageArabic(driver); + } + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + registrationTasksPage.clickSynchronizeDataButton(); + assertTrue(registrationTasksPage.checkLastSyncDate(), "Verify last sync date and time"); + + assertTrue(registrationTasksPage.isProfileTitleDisplayed(), "Verify if profile title display on homepage"); + registrationTasksPage.clickProfileButton(); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + profilePage = new ProfilePageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + profilePage = new ProfilePageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + profilePage = new ProfilePageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + profilePage = new ProfilePageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + profilePage = new ProfilePageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + profilePage = new ProfilePageArabic(driver); + } + profilePage.clickOnLogoutButton(); + profilePage.clickOnLogoutButton(); + assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayeded in Selected language"); + loginPage.enterUserName(KeycloakUserManager.onboardUser); + loginPage.clickOnNextButton(); + + loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); + loginPage.clickOnloginButton(); + + loginPage.clickOnSkipToHomeButton(); + + assertTrue(registrationTasksPage.isProfileTitleDisplayed(), "Verify if profile title display on homepage"); + registrationTasksPage.clickProfileButton(); + + assertTrue(profilePage.isResetPasswordButtonDisplayed(), + "Verify if reset password button displayed in profile page"); + profilePage.clickOnResetPasswordButton(); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + keycloakPage = new KeycloakPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + profilePage = new ProfilePageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + profilePage = new ProfilePageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + profilePage = new ProfilePageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + profilePage = new ProfilePageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + profilePage = new ProfilePageArabic(driver); + } + + assertTrue(keycloakPage.openKeycloakWebView(), "Verify if keycloak login page displayed"); + + keycloakPage.enterUserName(KeycloakUserManager.onboardUser); + + keycloakPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); + + keycloakPage.clickOnloginButton(); + + assertTrue(keycloakPage.openKeycloakPassword(), "Verify if keycloak login page displayed"); + + keycloakPage.clickOnPasswordOption(); + + keycloakPage.enterExistPassword(ArcConfigManager.getIAMUsersPassword()); + + keycloakPage.enterNewPassword(ArcConfigManager.getIAMUsersPassword() + "121"); + + keycloakPage.enterConfirmPassword(ArcConfigManager.getIAMUsersPassword() + "121"); + + keycloakPage.clickOnSaveButton(); + + assertTrue(keycloakPage.isPasswordUpdatedMessageDisplayed(), + "Verify if password updated message displayed in keycloak page"); + + keycloakPage.clickOnSignoutButton(); + + assertTrue(keycloakPage.resumeArcApplication(), "Verify if logout displayed in profile page"); + + profilePage.clickOnLogoutButton(); + + BasePage.disableWifiAndData(); + + // Try to login using new password in offline mode. + loginPage.enterUserName(KeycloakUserManager.onboardUser); + loginPage.clickOnNextButton(); + + loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword() + "121"); + loginPage.clickOnloginButton(); + + assertTrue(loginPage.isPasswordIncorrectErrorMessageDisplayed(), + "verify if error message should be displayeded as password incorrect!"); + + loginPage.clickOnBackButton(); + + // Try to login using old password in offline mode. + loginPage.enterUserName(KeycloakUserManager.onboardUser); + loginPage.clickOnNextButton(); + + loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); + loginPage.clickOnloginButton(); + loginPage.clickOnSkipToHomeButton(); + registrationTasksPage.clickProfileButton(); + profilePage.clickOnLogoutButton(); + + BasePage.enableWifiAndData(); + + // Try to login using new password in online mode. + loginPage.enterUserName(KeycloakUserManager.onboardUser); + loginPage.clickOnNextButton(); + + loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword() + "121"); + loginPage.clickOnloginButton(); + loginPage.clickOnSkipToHomeButton(); + registrationTasksPage.clickProfileButton(); + profilePage.clickOnLogoutButton(); + + BasePage.disableWifiAndData(); + + // Try to login using new password in offline mode. + loginPage.enterUserName(KeycloakUserManager.onboardUser); + loginPage.clickOnNextButton(); + + loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword() + "121"); + loginPage.clickOnloginButton(); + + loginPage.clickOnSkipToHomeButton(); + registrationTasksPage.clickProfileButton(); + profilePage.clickOnLogoutButton(); + + // Try to login using old password in offline mode. + loginPage.enterUserName(KeycloakUserManager.onboardUser); + loginPage.clickOnNextButton(); + + loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); + loginPage.clickOnloginButton(); + assertTrue(loginPage.isPasswordIncorrectErrorMessageDisplayed(), + "verify if error message should be displayeded as password incorrect!"); + BasePage.enableWifiAndData(); + + } +} diff --git a/ui-test/src/main/java/regclient/androidTestCases/Settings.java b/ui-test/src/main/java/regclient/androidTestCases/Settings.java new file mode 100644 index 000000000..2facec508 --- /dev/null +++ b/ui-test/src/main/java/regclient/androidTestCases/Settings.java @@ -0,0 +1,164 @@ +package regclient.androidTestCases; + +import static org.junit.Assert.assertFalse; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.testng.Assert.assertTrue; + +import java.util.List; + +import org.testng.annotations.Test; + +import regclient.BaseTest.AndroidBaseTest; +import regclient.api.ArcConfigManager; +import regclient.api.FetchUiSpec; +import regclient.api.KeycloakUserManager; +import regclient.page.BasePage; +import regclient.page.LoginPage; +import regclient.page.MockSBIPage; +import regclient.page.ProfilePage; +import regclient.page.RegistrationTasksPage; +import regclient.page.SettingsPage; +import regclient.pages.arabic.LoginPageArabic; +import regclient.pages.arabic.RegistrationTasksPageArabic; +import regclient.pages.english.LoginPageEnglish; +import regclient.pages.english.RegistrationTasksPageEnglish; +import regclient.pages.french.LoginPageFrench; +import regclient.pages.french.RegistrationTasksPageFrench; +import regclient.pages.hindi.LoginPageHindi; +import regclient.pages.hindi.RegistrationTasksPageHindi; +import regclient.pages.kannada.LoginPageKannada; +import regclient.pages.kannada.RegistrationTasksPageKannada; +import regclient.pages.tamil.LoginPageTamil; +import regclient.pages.tamil.RegistrationTasksPageTamil; +import regclient.utils.TestDataReader; + +public class Settings extends AndroidBaseTest { + + @Test + public void settings() throws InterruptedException { + + BasePage.disableAutoRotation(); + FetchUiSpec.getUiSpec("newProcess"); + FetchUiSpec.getBiometricDetails("individualBiometrics"); + LoginPage loginPage = null; + RegistrationTasksPage registrationTasksPage = null; + ProfilePage profilePage = null; + SettingsPage settingsPage = null; + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + loginPage = new LoginPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + loginPage = new LoginPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + loginPage = new LoginPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + loginPage = new LoginPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + loginPage = new LoginPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + loginPage = new LoginPageArabic(driver); + } + loginPage.selectLanguage(); + + assertTrue(loginPage.isWelcomeMessageInSelectedLanguageDisplayed(), + "verify if the welcome msg in selected language displayed"); + loginPage.enterUserName(KeycloakUserManager.moduleSpecificUser); + loginPage.clickOnNextButton(); + + loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); + loginPage.clickOnloginButton(); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + registrationTasksPage = new RegistrationTasksPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + registrationTasksPage = new RegistrationTasksPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + registrationTasksPage = new RegistrationTasksPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + registrationTasksPage = new RegistrationTasksPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + registrationTasksPage = new RegistrationTasksPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + registrationTasksPage = new RegistrationTasksPageArabic(driver); + } + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + registrationTasksPage.clickOnSettingsButton(); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + settingsPage = new regclient.pages.english.SettingsPageEnglish(driver); + } + + assertTrue(settingsPage.isScheduledJobsSettingsTabDisplayed(), "Verify if sceduled job settings tab displayed"); + assertTrue(settingsPage.isGlobalConfigSettingsTabDisplayed(), "Verify if global config settings tab displayed"); + assertTrue(settingsPage.isDeviceSettingsTabDisplayed(), "Verify if device settings tab displayed"); + +// Verify Device Settings Tab + settingsPage.clickOnDeviceSettingsTab(); + + assertTrue(settingsPage.isDeviceSettingsPageDisplayed(), "Verify if device settings page displayed"); + + assertTrue(settingsPage.isScanNowButtonDisplayed(), "Verify if scan now button displayed"); + + settingsPage.clickOnScanNowButton(); + + assertTrue(settingsPage.isFaceDeviceCardDisplayed(), "Verify if face device card displayed"); + + assertTrue(settingsPage.isIrisDeviceCardDisplayed(), "Verify if iris device card displayed"); + + assertTrue(settingsPage.isFingerDeviceCardDisplayed(), "Verify if finger device card displayed"); + + settingsPage.validateDeviceCard("io.mosip.mock.sbi.face"); + settingsPage.validateDeviceCard("io.mosip.mock.sbi.iris"); + settingsPage.validateDeviceCard("io.mosip.mock.sbi.finger"); + + settingsPage.clickOnGlobalConfigSettingsTab(); + + MockSBIPage mockSBIPage = new MockSBIPage(driver); + mockSBIPage.switchToMockSBI(); + + mockSBIPage.setAllToNotReadyAndSave(); + + mockSBIPage.switchBackToArcApp(); + + settingsPage.clickOnDeviceSettingsTab(); + + assertFalse(settingsPage.isScanNowButtonDisplayed(), "Verify if scan now button displayed"); + + assertTrue(settingsPage.isNoDevicesFoundDisplayed(), "Verify if no devices found displayed"); + + settingsPage.clickOnGlobalConfigSettingsTab(); + + mockSBIPage.switchToMockSBI(); + + mockSBIPage.setAllToReadyAndSave(); + + mockSBIPage.switchBackToArcApp(); + + settingsPage.clickOnDeviceSettingsTab(); + + assertTrue(settingsPage.isScanNowButtonDisplayed(), "Verify if scan now button displayed"); + + // Verify Global config Settings Tab + +// settingsPage.clickOnGlobalConfigSettingsTab(); +// +// assertTrue(settingsPage.isGlobalConfigSettingsHeaderDisplayed(), +// "Verify if global config settings header Displayed"); +// +// settingsPage.clickOnSubmitButton(); +// +// assertTrue(settingsPage.isSubmitChangesPopupDisplayed(), "Verify if no changes to save Displayed"); +// +// settingsPage.clickOnChangesConfirmButton(); +// +// assertTrue(settingsPage.isNoChangesToSaveDisplayed(), "Verify if no changes to save Displayed"); +// +// settingsPage.clickOnSubmitButton(); +// + // Verify Scheduled Job Settings Tab +// settingsPage.clickOnScheduledJobsSettingsTab(); + + } + +} diff --git a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUINUpdateDemographicDetails.java b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUINUpdateDemographicDetails.java index 41c756254..705b33894 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUINUpdateDemographicDetails.java +++ b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUINUpdateDemographicDetails.java @@ -1,5 +1,6 @@ package regclient.androidTestCases; +import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertTrue; import java.util.List; @@ -128,44 +129,38 @@ public class UpdateMyUINUpdateDemographicDetails extends AndroidBaseTest { @Test - public void updateMyUINUpdateDemographicDetails(){ + public void updateMyUINUpdateDemographicDetails() throws InterruptedException { FetchUiSpec.getUiSpec("updateProcess"); - List screenOrder=FetchUiSpec.getAllScreenOrder(); + List screenOrder = FetchUiSpec.getAllScreenOrder(); BasePage.disableAutoRotation(); LoginPage loginPage = null; - RegistrationTasksPage registrationTasksPage=null; - SelectLanguagePage selectLanguagePage=null; - ConsentPage consentPage=null; - DemographicDetailsPage demographicPage=null; - DocumentUploadPage documentuploadPage=null; - BiometricDetailsPage biometricDetailsPage=null; - ApplicantBiometricsPage applicantBiometricsPage=null; - PreviewPage previewPage=null; - AuthenticationPage authenticationPage=null; - AcknowledgementPage acknowledgementPage=null; - OperationalTaskPage operationalTaskPage=null; - ManageApplicationsPage manageApplicationsPage=null; - ProfilePage profilePage=null; - UpdateUINPage updateUINPage=null; - PendingApproval pendingApproval=null; - - - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { + RegistrationTasksPage registrationTasksPage = null; + SelectLanguagePage selectLanguagePage = null; + ConsentPage consentPage = null; + DemographicDetailsPage demographicPage = null; + DocumentUploadPage documentuploadPage = null; + BiometricDetailsPage biometricDetailsPage = null; + ApplicantBiometricsPage applicantBiometricsPage = null; + PreviewPage previewPage = null; + AuthenticationPage authenticationPage = null; + AcknowledgementPage acknowledgementPage = null; + OperationalTaskPage operationalTaskPage = null; + ManageApplicationsPage manageApplicationsPage = null; + ProfilePage profilePage = null; + UpdateUINPage updateUINPage = null; + PendingApproval pendingApproval = null; + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { loginPage = new LoginPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { loginPage = new LoginPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { loginPage = new LoginPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { loginPage = new LoginPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { loginPage = new LoginPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { loginPage = new LoginPageArabic(driver); } loginPage.selectLanguage(); @@ -174,338 +169,278 @@ else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); loginPage.clickOnloginButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - registrationTasksPage=new RegistrationTasksPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - registrationTasksPage=new RegistrationTasksPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - registrationTasksPage=new RegistrationTasksPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - registrationTasksPage=new RegistrationTasksPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - registrationTasksPage=new RegistrationTasksPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - registrationTasksPage=new RegistrationTasksPageArabic(driver); - } - assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(),"Verify if registration tasks page is loaded"); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + registrationTasksPage = new RegistrationTasksPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + registrationTasksPage = new RegistrationTasksPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + registrationTasksPage = new RegistrationTasksPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + registrationTasksPage = new RegistrationTasksPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + registrationTasksPage = new RegistrationTasksPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + registrationTasksPage = new RegistrationTasksPageArabic(driver); + } + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); registrationTasksPage.clickUpdateMyUINButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - selectLanguagePage=new SelectLanguagePageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - selectLanguagePage=new SelectLanguagePageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - selectLanguagePage=new SelectLanguagePageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - selectLanguagePage=new SelectLanguagePageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - selectLanguagePage=new SelectLanguagePageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - selectLanguagePage=new SelectLanguagePageArabic(driver); - } - assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(),"Verify if select language page is loaded"); - selectLanguagePage.clickOnSubmitButtonWithoutSelectingLanguage(); - - assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(),"Verify if user should not be allow to navigate to next screen."); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + selectLanguagePage = new SelectLanguagePageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + selectLanguagePage = new SelectLanguagePageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + selectLanguagePage = new SelectLanguagePageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + selectLanguagePage = new SelectLanguagePageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + selectLanguagePage = new SelectLanguagePageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + selectLanguagePage = new SelectLanguagePageArabic(driver); + } + assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), "Verify if select language page is loaded"); selectLanguagePage.selectSecondLanguage(); - assertTrue(selectLanguagePage.isNotificationLanguageEnglishDisplayed(),"verify if the notification language display in english"); selectLanguagePage.selectNotificationlanguage(TestDataReader.readData("notificationLanguage")); - assertTrue(selectLanguagePage.isSubmitButtonEnabled(),"verify if the submit button enabled"); selectLanguagePage.clickOnSubmitButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - updateUINPage =new UpdateUINPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - updateUINPage =new UpdateUINPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - updateUINPage =new UpdateUINPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - updateUINPage =new UpdateUINPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - updateUINPage =new UpdateUINPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - updateUINPage =new UpdateUINPageArabic(driver); - } - - assertTrue(updateUINPage.isUpdateMyUINTitleDisplayed(),"verify if the update my uin page is displayed"); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + updateUINPage = new UpdateUINPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + updateUINPage = new UpdateUINPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + updateUINPage = new UpdateUINPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + updateUINPage = new UpdateUINPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + updateUINPage = new UpdateUINPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + updateUINPage = new UpdateUINPageArabic(driver); + } + + assertTrue(updateUINPage.isUpdateMyUINTitleDisplayed(), "verify if the update my uin page is displayed"); updateUINPage.clickOnContinueButton(); - assertTrue(updateUINPage.isUpdateMyUINTitleDisplayed(),"verify if the update my uin page is still displayed after clicking continue button "); + assertTrue(updateUINPage.isUpdateMyUINTitleDisplayed(), + "verify if the update my uin page is still displayed after clicking continue button "); updateUINPage.enterUIN(TestDataReader.readData("UIN")); updateUINPage.selectUpdateValue("consentdet"); updateUINPage.selectUpdateValue("DemographicDetails"); updateUINPage.clickOnContinueButton(); - for(String screen :screenOrder) { - if(screen.equals("consentdet") || screen.equals("consent")) { - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - consentPage =new ConsentPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - consentPage =new ConsentPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - consentPage =new ConsentPageFrench(driver); + for (String screen : screenOrder) { + if (screen.equals("consentdet") || screen.equals("consent")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + consentPage = new ConsentPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + consentPage = new ConsentPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + consentPage = new ConsentPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + consentPage = new ConsentPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + consentPage = new ConsentPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + consentPage = new ConsentPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - consentPage =new ConsentPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - consentPage =new ConsentPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - consentPage =new ConsentPageArabic(driver); - } - assertTrue(consentPage.isConsentPageDisplayed(),"Verify if Consent page is loaded"); - - assertTrue(consentPage.isInformedButtonEnabled(),"Verify if informed button enabled"); consentPage.clickOnInformedButton(); - } - else if(screen.equals("DemographicDetails")) { - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - demographicPage=new DemographicDetailsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - demographicPage=new DemographicDetailsPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - demographicPage=new DemographicDetailsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - demographicPage=new DemographicDetailsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - demographicPage=new DemographicDetailsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - demographicPage=new DemographicDetailsPageArabic(driver); + } else if (screen.equals("DemographicDetails")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + demographicPage = new DemographicDetailsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + demographicPage = new DemographicDetailsPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + demographicPage = new DemographicDetailsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + demographicPage = new DemographicDetailsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + demographicPage = new DemographicDetailsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + demographicPage = new DemographicDetailsPageArabic(driver); } - assertTrue(demographicPage.isDemographicDetailsPageDisplayed(),"Verify if demographic details page is displayed"); - // demographicPage.clickOnContinueButton(); + assertTrue(demographicPage.isPageDisplayed("DemographicDetails"), + "Verify if demographic details page is displayed"); + // demographicPage.clickOnContinueButton(); - assertTrue(demographicPage.isDemographicDetailsPageDisplayed(),"Verify if demographic details page is displayed after clicking disable continue button"); + assertTrue(demographicPage.isPageDisplayed("DemographicDetails"), + "Verify if demographic details page is displayed after clicking disable continue button"); demographicPage.fillDemographicDetailsPage("adult"); demographicPage.clickOnContinueButton(); - } - else if(screen.equals("BiometricDetails")) { - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - biometricDetailsPage=new BiometricDetailsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - biometricDetailsPage=new BiometricDetailsPageHindi(driver); + } else if (screen.equals("BiometricDetails")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + biometricDetailsPage = new BiometricDetailsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + biometricDetailsPage = new BiometricDetailsPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + biometricDetailsPage = new BiometricDetailsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + biometricDetailsPage = new BiometricDetailsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + biometricDetailsPage = new BiometricDetailsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + biometricDetailsPage = new BiometricDetailsPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - biometricDetailsPage=new BiometricDetailsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - biometricDetailsPage=new BiometricDetailsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - biometricDetailsPage=new BiometricDetailsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - biometricDetailsPage=new BiometricDetailsPageArabic(driver); - } - assertTrue(biometricDetailsPage.isAuthenticationBiometricTitleDisplayed(),"Verify if biometric details page is displayed without upload doccument"); - - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - applicantBiometricsPage=new ApplicantBiometricsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - applicantBiometricsPage=new ApplicantBiometricsPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - applicantBiometricsPage=new ApplicantBiometricsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - applicantBiometricsPage=new ApplicantBiometricsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - applicantBiometricsPage=new ApplicantBiometricsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - applicantBiometricsPage=new ApplicantBiometricsPageArabic(driver); + assertTrue(biometricDetailsPage.isAuthenticationBiometricTitleDisplayed(), + "Verify if biometric details page is displayed without upload doccument"); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); } biometricDetailsPage.clickOnRightHandScanIcon(); - assertTrue(applicantBiometricsPage.isAuthenticationBiometricsPageDisplyed(),"Verify if applicant biometric page is displayed"); + assertTrue(applicantBiometricsPage.isAuthenticationBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnMarkExceptionButton(); - assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(),"Verify if applicant biometric mark exception is displayed"); + assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(), + "Verify if applicant biometric mark exception is displayed"); applicantBiometricsPage.markOneFingureException(); - assertTrue(applicantBiometricsPage.isExceptionCountDisplyed(),"Verify if exception count is displayed"); + assertTrue(applicantBiometricsPage.isExceptionCountDisplyed(), + "Verify if exception count is displayed"); applicantBiometricsPage.clickOnRightHandScanTitle(); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isRightHandScan(),"Verify if right hand scan 1st attempt"); + assertTrue(applicantBiometricsPage.isRightHandScan(), "Verify if right hand scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); applicantBiometricsPage.clickOnBackButton(); - assertTrue(biometricDetailsPage.isAuthenticationBiometricTitleDisplayed(),"Verify if biometric details page is displayed without upload doccument"); + assertTrue(biometricDetailsPage.isAuthenticationBiometricTitleDisplayed(), + "Verify if biometric details page is displayed without upload doccument"); biometricDetailsPage.clickOnContinueButton(); - } - else if(screen.equals("Documents")) { - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - documentuploadPage=new DocumentuploadPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - documentuploadPage=new DocumentUploadPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - documentuploadPage=new DocumentUploadPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - documentuploadPage=new DocumentuploadPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - documentuploadPage=new DocumentuploadPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - documentuploadPage=new DocumentuploadPageArabic(driver); + } else if (screen.equals("Documents")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + documentuploadPage = new DocumentuploadPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + documentuploadPage = new DocumentUploadPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + documentuploadPage = new DocumentUploadPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + documentuploadPage = new DocumentuploadPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + documentuploadPage = new DocumentuploadPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + documentuploadPage = new DocumentuploadPageArabic(driver); } documentuploadPage.clickOnContinueButton(); - - assertTrue(consentPage.updateUINTitleDisplayed(),"Verify if new update uin title is displayed"); - documentuploadPage.uploadDoccumentsUpdate("adult","all"); + assertTrue(consentPage.updateUINTitleDisplayed(), "Verify if new update uin title is displayed"); + documentuploadPage.uploadDoccumentsUpdate("adult", "all"); documentuploadPage.clickOnContinueButton(); } } - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - previewPage=new PreviewPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - previewPage=new PreviewPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - previewPage=new PreviewPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - previewPage=new PreviewPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - previewPage=new PreviewPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - previewPage=new PreviewPageArabic(driver); - } - assertTrue(previewPage.updateUINTitleDisplayed(),"Verify if new update uin title is displayed"); - assertTrue(previewPage.isApplicationIDPreviewPagePageDisplayed(),"Verify if application ID In PreviewPage is displayed"); - assertTrue(previewPage.isDemographicInformationInPreviewPageDisplayed(),"Verify if Demographic Information In PreviewPage is displayed"); - assertTrue(previewPage.isDocumentsInformationInPreviewPageDisplayed(),"Verify if Documents Information In PreviewPage is displayed"); - assertTrue(previewPage.isBiometricsInformationInPreviewPagePageDisplayed(),"Verify if Biometrics Information In PreviewPage is displayed"); - String Aid=previewPage.getAID(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + previewPage = new PreviewPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + previewPage = new PreviewPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + previewPage = new PreviewPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + previewPage = new PreviewPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + previewPage = new PreviewPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + previewPage = new PreviewPageArabic(driver); + } + assertTrue(previewPage.updateUINTitleDisplayed(), "Verify if new update uin title is displayed"); + assertTrue(previewPage.isApplicationIDPreviewPagePageDisplayed(), + "Verify if application ID In PreviewPage is displayed"); + assertTrue(previewPage.isDemographicInformationInPreviewPageDisplayed(), + "Verify if Demographic Information In PreviewPage is displayed"); + assertTrue(previewPage.isDocumentsInformationInPreviewPageDisplayed(), + "Verify if Documents Information In PreviewPage is displayed"); +// assertTrue(previewPage.isBiometricsInformationInPreviewPagePageDisplayed(),"Verify if Biometrics Information In PreviewPage is displayed"); + String Aid = previewPage.getAID(); previewPage.clickOnContinueButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - authenticationPage=new AuthenticationPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - authenticationPage=new AuthenticationPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - authenticationPage=new AuthenticationPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - authenticationPage=new AuthenticationPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - authenticationPage=new AuthenticationPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - authenticationPage=new AuthenticationPageArabic(driver); - } - assertTrue(authenticationPage.isAuthenticationPageDisplayed(),"Verify if authentication details page is displayed"); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + authenticationPage = new AuthenticationPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + authenticationPage = new AuthenticationPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + authenticationPage = new AuthenticationPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + authenticationPage = new AuthenticationPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + authenticationPage = new AuthenticationPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + authenticationPage = new AuthenticationPageArabic(driver); + } + assertTrue(authenticationPage.isAuthenticationPageDisplayed(), + "Verify if authentication details page is displayed"); authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); authenticationPage.clickOnAuthenticatenButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - acknowledgementPage=new AcknowledgementPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - acknowledgementPage=new AcknowledgementPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - acknowledgementPage=new AcknowledgementPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - acknowledgementPage=new AcknowledgementPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - acknowledgementPage=new AcknowledgementPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - acknowledgementPage=new AcknowledgementPageArabic(driver); - } - assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(),"Verify if acknowledgement details page is displayed"); - // assertTrue(acknowledgementPage.isQrCodeImageDisplayed(),"Verify if qr code image is displayed"); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + acknowledgementPage = new AcknowledgementPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + acknowledgementPage = new AcknowledgementPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + acknowledgementPage = new AcknowledgementPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + acknowledgementPage = new AcknowledgementPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + acknowledgementPage = new AcknowledgementPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + acknowledgementPage = new AcknowledgementPageArabic(driver); + } + assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(), + "Verify if acknowledgement details page is displayed"); + // assertTrue(acknowledgementPage.isQrCodeImageDisplayed(),"Verify if qr code + // image is displayed"); acknowledgementPage.clickOnGoToHomeButton(); - assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(),"Verify if registration tasks page is loaded"); - registrationTasksPage.clickOnOperationalTasksTitle(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - operationalTaskPage=new OperationalTaskPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - operationalTaskPage=new OperationalTaskPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - operationalTaskPage=new OperationalTaskPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - operationalTaskPage=new OperationalTaskPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - operationalTaskPage=new OperationalTaskPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - operationalTaskPage=new OperationalTaskPageArabic(driver); + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + registrationTasksPage.clickOnOperationalTasksTitle(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + operationalTaskPage = new OperationalTaskPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + operationalTaskPage = new OperationalTaskPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + operationalTaskPage = new OperationalTaskPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + operationalTaskPage = new OperationalTaskPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + operationalTaskPage = new OperationalTaskPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + operationalTaskPage = new OperationalTaskPageArabic(driver); } assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); assertTrue(operationalTaskPage.isPendingApprovalTitleDisplayed(), "Verify if pending approval tite displayed"); operationalTaskPage.clickPendingApprovalTitle(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - pendingApproval=new PendingApprovalEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - pendingApproval=new PendingApprovalHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - pendingApproval=new PendingApprovalFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - pendingApproval=new PendingApprovalKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - pendingApproval=new PendingApprovalTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - pendingApproval=new PendingApprovalArabic(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + pendingApproval = new PendingApprovalEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + pendingApproval = new PendingApprovalHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + pendingApproval = new PendingApprovalFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + pendingApproval = new PendingApprovalKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + pendingApproval = new PendingApprovalTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + pendingApproval = new PendingApprovalArabic(driver); } assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed"); pendingApproval.clickOnAID(Aid); @@ -514,77 +449,84 @@ else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ pendingApproval.clickOnApproveButton(); pendingApproval.clickOnClosePopUpButton(); - assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed after approving packet"); + assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), + "Verify if pending approval page displayed after approving packet"); pendingApproval.clickOnCheckBox(); - assertTrue(pendingApproval.isSubmitButtonEnabled(), "Verify if submit button is enable after selecting packet"); - pendingApproval.clickOnSubmitButton(); + assertTrue(pendingApproval.isAuthenticateButtonEnabled(), + "Verify if authenticate button is enable after selecting packet"); + + boolean isPageDisplayed = false; + for (int i = 0; i < 3; i++) { + pendingApproval.clickOnAuthenticateButton(); + Thread.sleep(2000); + if (pendingApproval.isSupervisorAuthenticationTitleDisplayed()) { + isPageDisplayed = true; + break; + } + } - assertTrue(pendingApproval.isSupervisorAuthenticationTitleDisplayed(), "Verify if Supervisor Authentication page displayed"); + assertTrue(pendingApproval.isSupervisorAuthenticationTitleDisplayed(), + "Verify if Supervisor Authentication page displayed"); pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser); pendingApproval.enterPassword(ArcConfigManager.getIAMUsersPassword()); pendingApproval.clickOnSubmitButton(); pendingApproval.clickOnBackButton(); - assertTrue(operationalTaskPage.isApplicationUploadTitleDisplayed(), "Verify if application upload tite displayed"); - - operationalTaskPage.clickApplicationUploadTitle(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - manageApplicationsPage=new ManageApplicationsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - manageApplicationsPage=new ManageApplicationsPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - manageApplicationsPage=new ManageApplicationsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - manageApplicationsPage=new ManageApplicationsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - manageApplicationsPage=new ManageApplicationsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - manageApplicationsPage=new ManageApplicationsPageArabic(driver); - } - assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), "Verify if manage Applications Page displayed"); + assertTrue(operationalTaskPage.isApplicationUploadTitleDisplayed(), + "Verify if application upload tite displayed"); + + operationalTaskPage.clickApplicationUploadTitle(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + manageApplicationsPage = new ManageApplicationsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + manageApplicationsPage = new ManageApplicationsPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + manageApplicationsPage = new ManageApplicationsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + manageApplicationsPage = new ManageApplicationsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + manageApplicationsPage = new ManageApplicationsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + manageApplicationsPage = new ManageApplicationsPageArabic(driver); + } + assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), + "Verify if manage Applications Page displayed"); manageApplicationsPage.enterAID(Aid); assertTrue(manageApplicationsPage.isSearchAIDDisplayed(Aid), "Verify if Search Aid should displayed"); - assertTrue(manageApplicationsPage.isPacketApproved(Aid), "Verify if packet is approved after approve in pending approval"); + assertTrue(manageApplicationsPage.isPacketApproved(Aid), + "Verify if packet is approved after approve in pending approval"); manageApplicationsPage.clickOnSearchCheckBox(); manageApplicationsPage.clickOnUploadButton(); - // assertTrue(manageApplicationsPage.isPacketUploadDone(Aid), "Verify if packet upload is done"); + // assertTrue(manageApplicationsPage.isPacketUploadDone(Aid), "Verify if packet + // upload is done"); manageApplicationsPage.clickOnBackButton(); - assertTrue(registrationTasksPage.isProfileTitleDisplayed(),"Verify if profile title display on homepage"); + assertTrue(registrationTasksPage.isProfileTitleDisplayed(), "Verify if profile title display on homepage"); registrationTasksPage.clickProfileButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - profilePage=new ProfilePageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - profilePage=new ProfilePageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - profilePage=new ProfilePageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - profilePage=new ProfilePageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - profilePage=new ProfilePageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - profilePage=new ProfilePageArabic(driver); - } - // assertTrue(profilePage.isProfileTitleDisplayed(),"Verify if profile title display on Profilepage"); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + profilePage = new ProfilePageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + profilePage = new ProfilePageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + profilePage = new ProfilePageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + profilePage = new ProfilePageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + profilePage = new ProfilePageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + profilePage = new ProfilePageArabic(driver); + } + // assertTrue(profilePage.isProfileTitleDisplayed(),"Verify if profile title + // display on Profilepage"); profilePage.clickOnLogoutButton(); profilePage.clickOnLogoutButton(); - assertTrue(loginPage.isLoginPageLoaded(),"verify if login page is displayeded in Selected language"); + assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayeded in Selected language"); } diff --git a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinInfant.java b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinInfant.java index a5b1414af..a1f6f6b27 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinInfant.java +++ b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinInfant.java @@ -135,45 +135,39 @@ public class UpdateMyUinInfant extends AndroidBaseTest { @Test - public void updateMyUinInfant(){ + public void updateMyUinInfant() throws InterruptedException { FetchUiSpec.getUiSpec("updateProcess"); BasePage.disableAutoRotation(); - List screenOrder=FetchUiSpec.getAllScreenOrder(); + List screenOrder = FetchUiSpec.getAllScreenOrder(); LoginPage loginPage = null; - RegistrationTasksPage registrationTasksPage=null; - SelectLanguagePage selectLanguagePage=null; - ConsentPage consentPage=null; - DemographicDetailsPage demographicPage=null; - DocumentUploadPage documentuploadPage=null; - BiometricDetailsPage biometricDetailsPage=null; - ApplicantBiometricsPage applicantBiometricsPage=null; - PreviewPage previewPage=null; - AuthenticationPage authenticationPage=null; - AcknowledgementPage acknowledgementPage=null; - OperationalTaskPage operationalTaskPage=null; - ManageApplicationsPage manageApplicationsPage=null; - ProfilePage profilePage=null; - UpdateUINPage updateUINPage=null; - IntroducerBiometricPage introducerBiometricPage=null; - PendingApproval pendingApproval=null; - - - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { + RegistrationTasksPage registrationTasksPage = null; + SelectLanguagePage selectLanguagePage = null; + ConsentPage consentPage = null; + DemographicDetailsPage demographicPage = null; + DocumentUploadPage documentuploadPage = null; + BiometricDetailsPage biometricDetailsPage = null; + ApplicantBiometricsPage applicantBiometricsPage = null; + PreviewPage previewPage = null; + AuthenticationPage authenticationPage = null; + AcknowledgementPage acknowledgementPage = null; + OperationalTaskPage operationalTaskPage = null; + ManageApplicationsPage manageApplicationsPage = null; + ProfilePage profilePage = null; + UpdateUINPage updateUINPage = null; + IntroducerBiometricPage introducerBiometricPage = null; + PendingApproval pendingApproval = null; + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { loginPage = new LoginPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { loginPage = new LoginPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { loginPage = new LoginPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { loginPage = new LoginPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { loginPage = new LoginPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { loginPage = new LoginPageArabic(driver); } loginPage.selectLanguage(); @@ -182,80 +176,57 @@ else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); loginPage.clickOnloginButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - registrationTasksPage=new RegistrationTasksPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - registrationTasksPage=new RegistrationTasksPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - registrationTasksPage=new RegistrationTasksPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - registrationTasksPage=new RegistrationTasksPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - registrationTasksPage=new RegistrationTasksPageTamil(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + registrationTasksPage = new RegistrationTasksPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + registrationTasksPage = new RegistrationTasksPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + registrationTasksPage = new RegistrationTasksPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + registrationTasksPage = new RegistrationTasksPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + registrationTasksPage = new RegistrationTasksPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + registrationTasksPage = new RegistrationTasksPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - registrationTasksPage=new RegistrationTasksPageArabic(driver); - } - assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(),"Verify if registration tasks page is loaded"); registrationTasksPage.clickUpdateMyUINButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - selectLanguagePage=new SelectLanguagePageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - selectLanguagePage=new SelectLanguagePageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - selectLanguagePage=new SelectLanguagePageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - selectLanguagePage=new SelectLanguagePageKannada(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + selectLanguagePage = new SelectLanguagePageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + selectLanguagePage = new SelectLanguagePageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + selectLanguagePage = new SelectLanguagePageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + selectLanguagePage = new SelectLanguagePageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + selectLanguagePage = new SelectLanguagePageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + selectLanguagePage = new SelectLanguagePageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - selectLanguagePage=new SelectLanguagePageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - selectLanguagePage=new SelectLanguagePageArabic(driver); - } - assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(),"Verify if select language page is loaded"); selectLanguagePage.clickOnSubmitButtonWithoutSelectingLanguage(); - - assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(),"Verify if user should not be allow to navigate to next screen."); selectLanguagePage.selectSecondLanguage(); - assertTrue(selectLanguagePage.isNotificationLanguageEnglishDisplayed(),"verify if the notification language display in english"); selectLanguagePage.selectNotificationlanguage(TestDataReader.readData("notificationLanguage")); - assertTrue(selectLanguagePage.isSubmitButtonEnabled(),"verify if the submit button enabled"); selectLanguagePage.clickOnSubmitButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - updateUINPage =new UpdateUINPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - updateUINPage =new UpdateUINPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - updateUINPage =new UpdateUINPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - updateUINPage =new UpdateUINPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - updateUINPage =new UpdateUINPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - updateUINPage =new UpdateUINPageArabic(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + updateUINPage = new UpdateUINPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + updateUINPage = new UpdateUINPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + updateUINPage = new UpdateUINPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + updateUINPage = new UpdateUINPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + updateUINPage = new UpdateUINPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + updateUINPage = new UpdateUINPageArabic(driver); } - assertTrue(updateUINPage.isUpdateMyUINTitleDisplayed(),"verify if the update my uin page is displayed"); updateUINPage.clickOnContinueButton(); - assertTrue(updateUINPage.isUpdateMyUINTitleDisplayed(),"verify if the update my uin page is still displayed after clicking continue button "); updateUINPage.enterUIN(TestDataReader.readData("UINinfant")); updateUINPage.selectUpdateValue("consentdet"); @@ -265,363 +236,300 @@ else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ updateUINPage.selectUpdateValue("Documents"); updateUINPage.clickOnContinueButton(); - for(String screen :screenOrder) { - if(screen.equals("consentdet") || screen.equals("consent")) { - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - consentPage =new ConsentPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - consentPage =new ConsentPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - consentPage =new ConsentPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - consentPage =new ConsentPageKannada(driver); + for (String screen : screenOrder) { + if (screen.equals("consentdet") || screen.equals("consent")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + consentPage = new ConsentPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + consentPage = new ConsentPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + consentPage = new ConsentPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + consentPage = new ConsentPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + consentPage = new ConsentPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + consentPage = new ConsentPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - consentPage =new ConsentPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - consentPage =new ConsentPageArabic(driver); - } - assertTrue(consentPage.isConsentPageDisplayed(),"Verify if Consent page is loaded"); - - assertTrue(consentPage.isInformedButtonEnabled(),"Verify if informed button enabled"); consentPage.clickOnInformedButton(); - } - else if(screen.equals("DemographicDetails")) { - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - demographicPage=new DemographicDetailsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - demographicPage=new DemographicDetailsPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - demographicPage=new DemographicDetailsPageFrench(driver); + } else if (screen.equals("DemographicDetails")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + demographicPage = new DemographicDetailsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + demographicPage = new DemographicDetailsPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + demographicPage = new DemographicDetailsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + demographicPage = new DemographicDetailsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + demographicPage = new DemographicDetailsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + demographicPage = new DemographicDetailsPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - demographicPage=new DemographicDetailsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - demographicPage=new DemographicDetailsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - demographicPage=new DemographicDetailsPageArabic(driver); - } - - assertTrue(demographicPage.isDemographicDetailsPageDisplayed(),"Verify if demographic details page is displayed"); - demographicPage.clickOnContinueButton(); - - assertTrue(demographicPage.isDemographicDetailsPageDisplayed(),"Verify if demographic details page is displayed after clicking disable continue button"); + assertTrue(demographicPage.isPageDisplayed("DemographicDetails"), + "Verify if demographic details page is displayed"); demographicPage.fillDemographicDetailsPage("infant"); demographicPage.fillIntroducerDetailsInDemographicDetailsPage("minor"); demographicPage.clickOnContinueButton(); - } - else if(screen.equals("BiometricDetails")) { - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - biometricDetailsPage=new BiometricDetailsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - biometricDetailsPage=new BiometricDetailsPageHindi(driver); + } else if (screen.equals("BiometricDetails")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + biometricDetailsPage = new BiometricDetailsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + biometricDetailsPage = new BiometricDetailsPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + biometricDetailsPage = new BiometricDetailsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + biometricDetailsPage = new BiometricDetailsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + biometricDetailsPage = new BiometricDetailsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + biometricDetailsPage = new BiometricDetailsPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - biometricDetailsPage=new BiometricDetailsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - biometricDetailsPage=new BiometricDetailsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - biometricDetailsPage=new BiometricDetailsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - biometricDetailsPage=new BiometricDetailsPageArabic(driver); - } - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); biometricDetailsPage.clickOnFaceScanIcon(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - applicantBiometricsPage=new ApplicantBiometricsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - applicantBiometricsPage=new ApplicantBiometricsPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - applicantBiometricsPage=new ApplicantBiometricsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - applicantBiometricsPage=new ApplicantBiometricsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - applicantBiometricsPage=new ApplicantBiometricsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - applicantBiometricsPage=new ApplicantBiometricsPageArabic(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); } + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); + assertTrue(applicantBiometricsPage.isFaceScanTitleDisplyed(), + "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isFaceScan(),"Verify if face captured and 2 attempts left text is displayed"); - applicantBiometricsPage.closeScanCapturePopUp();; - biometricDetailsPage=applicantBiometricsPage.clickOnNextButton(); + if (!applicantBiometricsPage.isFaceScan()) { + try { + Thread.sleep(2000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + applicantBiometricsPage.clickOnScanButton(); + } - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - biometricDetailsPage.clickOnIntroducerIrisScan(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - introducerBiometricPage=new IntroducerBiometricPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - introducerBiometricPage=new IntroducerBiometricPageHindi(driver); + assertTrue(applicantBiometricsPage.isFaceScan(), "Verify if iris scan capture popup displayed"); + applicantBiometricsPage.closeScanCapturePopUp(); + + biometricDetailsPage = applicantBiometricsPage.clickOnNextButton(); + + biometricDetailsPage.clickOnIntroducerIrisScan(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + introducerBiometricPage = new IntroducerBiometricPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + introducerBiometricPage = new IntroducerBiometricPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + introducerBiometricPage = new IntroducerBiometricPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + introducerBiometricPage = new IntroducerBiometricPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + introducerBiometricPage = new IntroducerBiometricPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + introducerBiometricPage = new IntroducerBiometricPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - introducerBiometricPage=new IntroducerBiometricPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - introducerBiometricPage=new IntroducerBiometricPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - introducerBiometricPage=new IntroducerBiometricPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - introducerBiometricPage=new IntroducerBiometricPageArabic(driver); - } - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(),"Verify if introducer biometric page is displayed"); introducerBiometricPage.clickOnScanButton(); - assertTrue(introducerBiometricPage.isIrisScan(),"Verify if iris scan 1st attempt"); + if (!introducerBiometricPage.isIrisScan()) { + try { + Thread.sleep(2000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + introducerBiometricPage.clickOnScanButton(); + } + + assertTrue(introducerBiometricPage.isIrisScan(), "Verify if iris scan capture popup displayed"); + introducerBiometricPage.closeScanCapturePopUp(); introducerBiometricPage.clickOnBackButton(); - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); biometricDetailsPage.clickOnContinueButton(); - } - else if(screen.equals("Documents")) { - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - documentuploadPage=new DocumentuploadPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - documentuploadPage=new DocumentUploadPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - documentuploadPage=new DocumentUploadPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - documentuploadPage=new DocumentuploadPageKannada(driver); + } else if (screen.equals("Documents")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + documentuploadPage = new DocumentuploadPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + documentuploadPage = new DocumentUploadPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + documentuploadPage = new DocumentUploadPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + documentuploadPage = new DocumentuploadPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + documentuploadPage = new DocumentuploadPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + documentuploadPage = new DocumentuploadPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - documentuploadPage=new DocumentuploadPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - documentuploadPage=new DocumentuploadPageArabic(driver); - } - documentuploadPage.clickOnContinueButton(); - - assertTrue(consentPage.updateUINTitleDisplayed(),"Verify if new update uin title is displayed"); - documentuploadPage.uploadDoccumentsUpdate("infant","all"); - + assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(), + "Verify if doccumentupload page is displayed"); + documentuploadPage.uploadDoccumentsUpdate("infant", "all"); documentuploadPage.clickOnContinueButton(); } } - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - previewPage=new PreviewPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - previewPage=new PreviewPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - previewPage=new PreviewPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - previewPage=new PreviewPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - previewPage=new PreviewPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - previewPage=new PreviewPageArabic(driver); - } - assertTrue(previewPage.updateUINTitleDisplayed(),"Verify if new update uin title is displayed"); - assertTrue(previewPage.isApplicationIDPreviewPagePageDisplayed(),"Verify if application ID In PreviewPage is displayed"); - assertTrue(previewPage.isDemographicInformationInPreviewPageDisplayed(),"Verify if Demographic Information In PreviewPage is displayed"); - assertTrue(previewPage.isDocumentsInformationInPreviewPageDisplayed(),"Verify if Documents Information In PreviewPage is displayed"); - assertTrue(previewPage.isBiometricsInformationInPreviewPagePageDisplayed(),"Verify if Biometrics Information In PreviewPage is displayed"); - String Aid=previewPage.getAID(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + previewPage = new PreviewPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + previewPage = new PreviewPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + previewPage = new PreviewPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + previewPage = new PreviewPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + previewPage = new PreviewPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + previewPage = new PreviewPageArabic(driver); + } + String Aid = previewPage.getAID(); previewPage.clickOnContinueButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - authenticationPage=new AuthenticationPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - authenticationPage=new AuthenticationPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - authenticationPage=new AuthenticationPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - authenticationPage=new AuthenticationPageKannada(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + authenticationPage = new AuthenticationPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + authenticationPage = new AuthenticationPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + authenticationPage = new AuthenticationPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + authenticationPage = new AuthenticationPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + authenticationPage = new AuthenticationPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + authenticationPage = new AuthenticationPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - authenticationPage=new AuthenticationPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - authenticationPage=new AuthenticationPageArabic(driver); - } - assertTrue(authenticationPage.isAuthenticationPageDisplayed(),"Verify if authentication details page is displayed"); authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); authenticationPage.clickOnAuthenticatenButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - acknowledgementPage=new AcknowledgementPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - acknowledgementPage=new AcknowledgementPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - acknowledgementPage=new AcknowledgementPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - acknowledgementPage=new AcknowledgementPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - acknowledgementPage=new AcknowledgementPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - acknowledgementPage=new AcknowledgementPageArabic(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + acknowledgementPage = new AcknowledgementPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + acknowledgementPage = new AcknowledgementPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + acknowledgementPage = new AcknowledgementPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + acknowledgementPage = new AcknowledgementPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + acknowledgementPage = new AcknowledgementPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + acknowledgementPage = new AcknowledgementPageArabic(driver); } - assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(),"Verify if acknowledgement details page is displayed"); - // assertTrue(acknowledgementPage.isQrCodeImageDisplayed(),"Verify if qr code image is displayed"); acknowledgementPage.clickOnGoToHomeButton(); - assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(),"Verify if registration tasks page is loaded"); - registrationTasksPage.clickOnOperationalTasksTitle(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - operationalTaskPage=new OperationalTaskPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - operationalTaskPage=new OperationalTaskPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - operationalTaskPage=new OperationalTaskPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - operationalTaskPage=new OperationalTaskPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - operationalTaskPage=new OperationalTaskPageTamil(driver); + registrationTasksPage.clickOnOperationalTasksTitle(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + operationalTaskPage = new OperationalTaskPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + operationalTaskPage = new OperationalTaskPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + operationalTaskPage = new OperationalTaskPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + operationalTaskPage = new OperationalTaskPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + operationalTaskPage = new OperationalTaskPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + operationalTaskPage = new OperationalTaskPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - operationalTaskPage=new OperationalTaskPageArabic(driver); - } - assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); - assertTrue(operationalTaskPage.isPendingApprovalTitleDisplayed(), "Verify if pending approval tite displayed"); operationalTaskPage.clickPendingApprovalTitle(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - pendingApproval=new PendingApprovalEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - pendingApproval=new PendingApprovalHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - pendingApproval=new PendingApprovalFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - pendingApproval=new PendingApprovalKannada(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + pendingApproval = new PendingApprovalEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + pendingApproval = new PendingApprovalHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + pendingApproval = new PendingApprovalFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + pendingApproval = new PendingApprovalKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + pendingApproval = new PendingApprovalTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + pendingApproval = new PendingApprovalArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - pendingApproval=new PendingApprovalTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - pendingApproval=new PendingApprovalArabic(driver); - } - assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed"); pendingApproval.enterAID(Aid); - assertTrue(pendingApproval.isClientStatusDisplayed(), "Verify if pending approval page show client status"); - assertTrue(pendingApproval.isReviewStatusDisplayed(), "Verify if pending approval page show review status"); pendingApproval.clickOnAID(Aid); - assertTrue(pendingApproval.isApprovalButtonDisplayed(), "Verify if approval button displayed"); pendingApproval.clickOnApproveButton(); pendingApproval.clickOnClosePopUpButton(); - assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed after approving packet"); pendingApproval.clickOnCheckBox(); - assertTrue(pendingApproval.isSubmitButtonEnabled(), "Verify if submit button is enable after selecting packet"); - pendingApproval.clickOnSubmitButton(); + assertTrue(pendingApproval.isAuthenticateButtonEnabled(), + "Verify if authenticate button is enable after selecting packet"); + + boolean isPageDisplayed = false; + for (int i = 0; i < 3; i++) { + pendingApproval.clickOnAuthenticateButton(); + Thread.sleep(2000); + if (pendingApproval.isSupervisorAuthenticationTitleDisplayed()) { + isPageDisplayed = true; + break; + } + } + + assertTrue(pendingApproval.isSupervisorAuthenticationTitleDisplayed(), + "Verify if error empty username submit button enabled"); - assertTrue(pendingApproval.isSupervisorAuthenticationTitleDisplayed(), "Verify if Supervisor Authentication page displayed"); pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser); pendingApproval.enterPassword(ArcConfigManager.getIAMUsersPassword()); pendingApproval.clickOnSubmitButton(); pendingApproval.clickOnBackButton(); - assertTrue(operationalTaskPage.isApplicationUploadTitleDisplayed(), "Verify if application upload tite displayed"); - - operationalTaskPage.clickApplicationUploadTitle(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - manageApplicationsPage=new ManageApplicationsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - manageApplicationsPage=new ManageApplicationsPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - manageApplicationsPage=new ManageApplicationsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - manageApplicationsPage=new ManageApplicationsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - manageApplicationsPage=new ManageApplicationsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - manageApplicationsPage=new ManageApplicationsPageArabic(driver); + + operationalTaskPage.clickApplicationUploadTitle(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + manageApplicationsPage = new ManageApplicationsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + manageApplicationsPage = new ManageApplicationsPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + manageApplicationsPage = new ManageApplicationsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + manageApplicationsPage = new ManageApplicationsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + manageApplicationsPage = new ManageApplicationsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + manageApplicationsPage = new ManageApplicationsPageArabic(driver); } - assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), "Verify if manage Applications Page displayed"); manageApplicationsPage.enterAID(Aid); - assertTrue(manageApplicationsPage.isSearchAIDDisplayed(Aid), "Verify if Search Aid should displayed"); - assertTrue(manageApplicationsPage.isPacketApproved(Aid), "Verify if packet is approved after approve in pending approval"); - manageApplicationsPage.clickOnSearchCheckBox(); manageApplicationsPage.clickOnUploadButton(); - //assertTrue(manageApplicationsPage.isPacketUploadDone(Aid), "Verify if packet upload is done"); manageApplicationsPage.clickOnBackButton(); - assertTrue(registrationTasksPage.isProfileTitleDisplayed(),"Verify if profile title display on homepage"); registrationTasksPage.clickProfileButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - profilePage=new ProfilePageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - profilePage=new ProfilePageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - profilePage=new ProfilePageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - profilePage=new ProfilePageKannada(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + profilePage = new ProfilePageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + profilePage = new ProfilePageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + profilePage = new ProfilePageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + profilePage = new ProfilePageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + profilePage = new ProfilePageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + profilePage = new ProfilePageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - profilePage=new ProfilePageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - profilePage=new ProfilePageArabic(driver); - } - // assertTrue(profilePage.isProfileTitleDisplayed(),"Verify if profile title display on Profilepage"); + profilePage.clickOnLogoutButton(); profilePage.clickOnLogoutButton(); - assertTrue(loginPage.isLoginPageLoaded(),"verify if login page is displayeded in Selected language"); + assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayeded in Selected language"); } diff --git a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinMinor.java b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinMinor.java index 9ba1728b9..c9ce6ef72 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinMinor.java +++ b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinMinor.java @@ -135,46 +135,40 @@ public class UpdateMyUinMinor extends AndroidBaseTest { @Test - public void updateMyUinMinor(){ + public void updateMyUinMinor() throws InterruptedException { FetchUiSpec.getUiSpec("updateProcess"); FetchUiSpec.getBiometricDetails("individualBiometrics"); - List screenOrder=FetchUiSpec.getAllScreenOrder(); + List screenOrder = FetchUiSpec.getAllScreenOrder(); BasePage.disableAutoRotation(); LoginPage loginPage = null; - RegistrationTasksPage registrationTasksPage=null; - SelectLanguagePage selectLanguagePage=null; - ConsentPage consentPage=null; - DemographicDetailsPage demographicPage=null; - DocumentUploadPage documentuploadPage=null; - BiometricDetailsPage biometricDetailsPage=null; - ApplicantBiometricsPage applicantBiometricsPage=null; - PreviewPage previewPage=null; - AuthenticationPage authenticationPage=null; - AcknowledgementPage acknowledgementPage=null; - OperationalTaskPage operationalTaskPage=null; - ManageApplicationsPage manageApplicationsPage=null; - ProfilePage profilePage=null; - UpdateUINPage updateUINPage=null; - IntroducerBiometricPage introducerBiometricPage=null; - PendingApproval pendingApproval=null; - - - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { + RegistrationTasksPage registrationTasksPage = null; + SelectLanguagePage selectLanguagePage = null; + ConsentPage consentPage = null; + DemographicDetailsPage demographicPage = null; + DocumentUploadPage documentuploadPage = null; + BiometricDetailsPage biometricDetailsPage = null; + ApplicantBiometricsPage applicantBiometricsPage = null; + PreviewPage previewPage = null; + AuthenticationPage authenticationPage = null; + AcknowledgementPage acknowledgementPage = null; + OperationalTaskPage operationalTaskPage = null; + ManageApplicationsPage manageApplicationsPage = null; + ProfilePage profilePage = null; + UpdateUINPage updateUINPage = null; + IntroducerBiometricPage introducerBiometricPage = null; + PendingApproval pendingApproval = null; + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { loginPage = new LoginPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { loginPage = new LoginPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { loginPage = new LoginPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { loginPage = new LoginPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { loginPage = new LoginPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { loginPage = new LoginPageArabic(driver); } loginPage.selectLanguage(); @@ -183,84 +177,74 @@ else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); loginPage.clickOnloginButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - registrationTasksPage=new RegistrationTasksPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - registrationTasksPage=new RegistrationTasksPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - registrationTasksPage=new RegistrationTasksPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - registrationTasksPage=new RegistrationTasksPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - registrationTasksPage=new RegistrationTasksPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - registrationTasksPage=new RegistrationTasksPageArabic(driver); - } - assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(),"Verify if registration tasks page is loaded"); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + registrationTasksPage = new RegistrationTasksPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + registrationTasksPage = new RegistrationTasksPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + registrationTasksPage = new RegistrationTasksPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + registrationTasksPage = new RegistrationTasksPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + registrationTasksPage = new RegistrationTasksPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + registrationTasksPage = new RegistrationTasksPageArabic(driver); + } + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); registrationTasksPage.clickUpdateMyUINButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - selectLanguagePage=new SelectLanguagePageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - selectLanguagePage=new SelectLanguagePageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - selectLanguagePage=new SelectLanguagePageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - selectLanguagePage=new SelectLanguagePageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - selectLanguagePage=new SelectLanguagePageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - selectLanguagePage=new SelectLanguagePageArabic(driver); - } - assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(),"Verify if select language page is loaded"); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + selectLanguagePage = new SelectLanguagePageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + selectLanguagePage = new SelectLanguagePageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + selectLanguagePage = new SelectLanguagePageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + selectLanguagePage = new SelectLanguagePageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + selectLanguagePage = new SelectLanguagePageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + selectLanguagePage = new SelectLanguagePageArabic(driver); + } + assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), "Verify if select language page is loaded"); selectLanguagePage.clickOnSubmitButtonWithoutSelectingLanguage(); - assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(),"Verify if user should not be allow to navigate to next screen."); + assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), + "Verify if user should not be allow to navigate to next screen."); selectLanguagePage.selectSecondLanguage(); - assertTrue(selectLanguagePage.isNotificationLanguageEnglishDisplayed(),"verify if the notification language display in english"); + assertTrue(selectLanguagePage.isNotificationLanguageEnglishDisplayed(), + "verify if the notification language display in english"); selectLanguagePage.selectNotificationlanguage(TestDataReader.readData("notificationLanguage")); - assertTrue(selectLanguagePage.isSubmitButtonEnabled(),"verify if the submit button enabled"); + assertTrue(selectLanguagePage.isSubmitButtonEnabled(), "verify if the submit button enabled"); selectLanguagePage.clickOnSubmitButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - updateUINPage =new UpdateUINPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - updateUINPage =new UpdateUINPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - updateUINPage =new UpdateUINPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - updateUINPage =new UpdateUINPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - updateUINPage =new UpdateUINPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - updateUINPage =new UpdateUINPageArabic(driver); - } - - assertTrue(updateUINPage.isUpdateMyUINTitleDisplayed(),"verify if the update my uin page is displayed"); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + updateUINPage = new UpdateUINPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + updateUINPage = new UpdateUINPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + updateUINPage = new UpdateUINPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + updateUINPage = new UpdateUINPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + updateUINPage = new UpdateUINPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + updateUINPage = new UpdateUINPageArabic(driver); + } + + assertTrue(updateUINPage.isUpdateMyUINTitleDisplayed(), "verify if the update my uin page is displayed"); updateUINPage.clickOnContinueButton(); - assertTrue(updateUINPage.isUpdateMyUINTitleDisplayed(),"verify if the update my uin page is still displayed after clicking continue button "); - updateUINPage.enterUIN(TestDataReader.readData("UINminor")+"123"); + assertTrue(updateUINPage.isUpdateMyUINTitleDisplayed(), + "verify if the update my uin page is still displayed after clicking continue button "); + updateUINPage.enterUIN(TestDataReader.readData("UINminor") + "123"); - assertTrue(updateUINPage.isInvalidUINErrorMessageDisplayed(),"verify if after enter invalid uin it should give error message "); + assertTrue(updateUINPage.isInvalidUINErrorMessageDisplayed(), + "verify if after enter invalid uin it should give error message "); updateUINPage.enterUIN(TestDataReader.readData("UINminor")); updateUINPage.selectUpdateValue("consentdet"); @@ -269,377 +253,345 @@ else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ updateUINPage.selectUpdateValue("Documents"); updateUINPage.clickOnContinueButton(); - for(String screen :screenOrder) { - if(screen.equals("consentdet") || screen.equals("consent")) { - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - consentPage =new ConsentPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - consentPage =new ConsentPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - consentPage =new ConsentPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - consentPage =new ConsentPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - consentPage =new ConsentPageTamil(driver); + for (String screen : screenOrder) { + if (screen.equals("consentdet") || screen.equals("consent")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + consentPage = new ConsentPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + consentPage = new ConsentPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + consentPage = new ConsentPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + consentPage = new ConsentPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + consentPage = new ConsentPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + consentPage = new ConsentPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - consentPage =new ConsentPageArabic(driver); - } - assertTrue(consentPage.isConsentPageDisplayed(),"Verify if Consent page is loaded"); - - assertTrue(consentPage.isInformedButtonEnabled(),"Verify if informed button enabled"); consentPage.clickOnInformedButton(); - } - else if(screen.equals("DemographicDetails")) { - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - demographicPage=new DemographicDetailsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - demographicPage=new DemographicDetailsPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - demographicPage=new DemographicDetailsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - demographicPage=new DemographicDetailsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - demographicPage=new DemographicDetailsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - demographicPage=new DemographicDetailsPageArabic(driver); - } - - assertTrue(demographicPage.isDemographicDetailsPageDisplayed(),"Verify if demographic details page is displayed"); + } else if (screen.equals("DemographicDetails")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + demographicPage = new DemographicDetailsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + demographicPage = new DemographicDetailsPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + demographicPage = new DemographicDetailsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + demographicPage = new DemographicDetailsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + demographicPage = new DemographicDetailsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + demographicPage = new DemographicDetailsPageArabic(driver); + } + + assertTrue(demographicPage.isPageDisplayed("DemographicDetails"), + "Verify if demographic details page is displayed"); demographicPage.clickOnContinueButton(); - assertTrue(demographicPage.isDemographicDetailsPageDisplayed(),"Verify if demographic details page is displayed after clicking disable continue button"); + assertTrue(demographicPage.isPageDisplayed("DemographicDetails"), + "Verify if demographic details page is displayed after clicking disable continue button"); demographicPage.fillDemographicDetailsPage("minor"); demographicPage.clickOnContinueButton(); - } - else if(screen.equals("BiometricDetails")) { - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - biometricDetailsPage=new BiometricDetailsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - biometricDetailsPage=new BiometricDetailsPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - biometricDetailsPage=new BiometricDetailsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - biometricDetailsPage=new BiometricDetailsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - biometricDetailsPage=new BiometricDetailsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - biometricDetailsPage=new BiometricDetailsPageArabic(driver); - } - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - applicantBiometricsPage=new ApplicantBiometricsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - applicantBiometricsPage=new ApplicantBiometricsPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - applicantBiometricsPage=new ApplicantBiometricsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - applicantBiometricsPage=new ApplicantBiometricsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - applicantBiometricsPage=new ApplicantBiometricsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - applicantBiometricsPage=new ApplicantBiometricsPageArabic(driver); - } - if(FetchUiSpec.eye.equals("yes")) { + } else if (screen.equals("BiometricDetails")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + biometricDetailsPage = new BiometricDetailsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + biometricDetailsPage = new BiometricDetailsPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + biometricDetailsPage = new BiometricDetailsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + biometricDetailsPage = new BiometricDetailsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + biometricDetailsPage = new BiometricDetailsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + biometricDetailsPage = new BiometricDetailsPageArabic(driver); + } + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); + } + if (FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIrisScan(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(),"Verify if applicant biometric page is displayed"); + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isIrisScan(),"Verify if iris scan 1st attempt"); + assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage=applicantBiometricsPage.clickOnBackButton(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); } - //righthand - if(FetchUiSpec.rightHand.equals("yes")) { - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - applicantBiometricsPage=biometricDetailsPage.clickOnRightHandScanIcon(); + // righthand + if (FetchUiSpec.rightHand.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnRightHandScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(),"Verify if applicant biometric page is displayed"); + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isRightHandScan(),"Verify if right hand scan 1st attempt"); + assertTrue(applicantBiometricsPage.isRightHandScan(), "Verify if right hand scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage=applicantBiometricsPage.clickOnBackButton(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); } - //lefthand - if(FetchUiSpec.leftHand.equals("yes")) { - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - applicantBiometricsPage=biometricDetailsPage.clickOnLeftHandScanIcon(); + // lefthand + if (FetchUiSpec.leftHand.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnLeftHandScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(),"Verify if applicant biometric page is displayed"); + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isLeftHandScan(),"Verify if Left hand scan 1st attempt"); + assertTrue(applicantBiometricsPage.isLeftHandScan(), "Verify if Left hand scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage=applicantBiometricsPage.clickOnBackButton(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); } - //thumb - if(FetchUiSpec.thumb.equals("yes")) { - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - applicantBiometricsPage=biometricDetailsPage.clickOnThumbsScanIcon(); + // thumb + if (FetchUiSpec.thumb.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnThumbsScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(),"Verify if applicant biometric page is displayed"); + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isThumbsScan(),"Verify if thumbs scan 1st attempt"); + assertTrue(applicantBiometricsPage.isThumbsScan(), "Verify if thumbs scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage=applicantBiometricsPage.clickOnBackButton(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); } - //face - if(FetchUiSpec.face.equals("yes")) { - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); + // face + if (FetchUiSpec.face.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); biometricDetailsPage.clickOnFaceScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(),"Verify if applicant biometric page is displayed"); + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isFaceScan(),"Verify if face scan 1st attempt"); + assertTrue(applicantBiometricsPage.isFaceScan(), "Verify if face scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); applicantBiometricsPage.clickOnBackButton(); } - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - introducerBiometricPage=new IntroducerBiometricPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - introducerBiometricPage=new IntroducerBiometricPageHindi(driver); + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + introducerBiometricPage = new IntroducerBiometricPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + introducerBiometricPage = new IntroducerBiometricPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - introducerBiometricPage=new IntroducerBiometricPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - introducerBiometricPage=new IntroducerBiometricPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - introducerBiometricPage=new IntroducerBiometricPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - introducerBiometricPage=new IntroducerBiometricPageArabic(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + introducerBiometricPage = new IntroducerBiometricPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + introducerBiometricPage = new IntroducerBiometricPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + introducerBiometricPage = new IntroducerBiometricPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + introducerBiometricPage = new IntroducerBiometricPageArabic(driver); } FetchUiSpec.getBiometricDetails("introducerBiometrics"); - if(FetchUiSpec.eye.equals("yes")) { + if (FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIntroducerIrisScan(); - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(),"Verify if introducer biometric page is displayed"); + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + "Verify if introducer biometric page is displayed"); introducerBiometricPage.clickOnScanButton(); - assertTrue(introducerBiometricPage.isIrisScan(),"Verify if iris scan 1st attempt"); + assertTrue(introducerBiometricPage.isIrisScan(), "Verify if iris scan 1st attempt"); introducerBiometricPage.closeScanCapturePopUp(); introducerBiometricPage.clickOnNextButton(); } - //righthand - if(FetchUiSpec.rightHand.equals("yes")) { - if(!FetchUiSpec.eye.equals("yes")) { + // righthand + if (FetchUiSpec.rightHand.equals("yes")) { + if (!FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIntroducerRightHandScan(); } - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(),"Verify if introducer biometric page is displayed"); + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isRightHandScanTitleDisplyed(),"Verify if right hand scan is displayed"); + assertTrue(introducerBiometricPage.isRightHandScanTitleDisplyed(), + "Verify if right hand scan is displayed"); introducerBiometricPage.clickOnScanButton(); - assertTrue(introducerBiometricPage.isRightHandScan(),"Verify if right hand scan 1st attempt"); + assertTrue(introducerBiometricPage.isRightHandScan(), "Verify if right hand scan 1st attempt"); introducerBiometricPage.closeScanCapturePopUp(); introducerBiometricPage.clickOnNextButton(); } - //lefthand - if(FetchUiSpec.leftHand.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(),"Verify if introducer biometric page is displayed"); + // lefthand + if (FetchUiSpec.leftHand.equals("yes")) { + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isLeftHandScanTitleDisplyed(),"Verify if applicant left hand scan title is displayed"); + assertTrue(introducerBiometricPage.isLeftHandScanTitleDisplyed(), + "Verify if applicant left hand scan title is displayed"); introducerBiometricPage.clickOnScanButton(); - assertTrue(introducerBiometricPage.isLeftHandScan(),"Verify if Left hand scan 1st attempt"); + assertTrue(introducerBiometricPage.isLeftHandScan(), "Verify if Left hand scan 1st attempt"); introducerBiometricPage.closeScanCapturePopUp(); introducerBiometricPage.clickOnNextButton(); } - //thumb - if(FetchUiSpec.thumb.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(),"Verify if introducer biometric page is displayed"); + // thumb + if (FetchUiSpec.thumb.equals("yes")) { + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isThumbsScanTitleDisplyed(),"Verify if thumbs scan page is displayed"); + assertTrue(introducerBiometricPage.isThumbsScanTitleDisplyed(), + "Verify if thumbs scan page is displayed"); introducerBiometricPage.clickOnScanButton(); - assertTrue(introducerBiometricPage.isThumbsScan(),"Verify if thumbs scan 1st attempt"); + assertTrue(introducerBiometricPage.isThumbsScan(), "Verify if thumbs scan 1st attempt"); introducerBiometricPage.closeScanCapturePopUp(); introducerBiometricPage.clickOnNextButton(); } - //face - if(FetchUiSpec.face.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(),"Verify if introducer biometric page is displayed"); + // face + if (FetchUiSpec.face.equals("yes")) { + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isFaceScanTitleDisplyed(),"Verify if face scan page is displayed"); + assertTrue(introducerBiometricPage.isFaceScanTitleDisplyed(), + "Verify if face scan page is displayed"); introducerBiometricPage.clickOnScanButton(); - assertTrue(introducerBiometricPage.isFaceScan(),"Verify if face scan 1st attempt"); + assertTrue(introducerBiometricPage.isFaceScan(), "Verify if face scan 1st attempt"); introducerBiometricPage.closeScanCapturePopUp(); - biometricDetailsPage=introducerBiometricPage.clickOnNextButton(); + biometricDetailsPage = introducerBiometricPage.clickOnNextButton(); } biometricDetailsPage.clickOnContinueButton(); - } - else if(screen.equals("Documents")) { - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - documentuploadPage=new DocumentuploadPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - documentuploadPage=new DocumentUploadPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - documentuploadPage=new DocumentUploadPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - documentuploadPage=new DocumentuploadPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - documentuploadPage=new DocumentuploadPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - documentuploadPage=new DocumentuploadPageArabic(driver); + } else if (screen.equals("Documents")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + documentuploadPage = new DocumentuploadPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + documentuploadPage = new DocumentUploadPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + documentuploadPage = new DocumentUploadPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + documentuploadPage = new DocumentuploadPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + documentuploadPage = new DocumentuploadPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + documentuploadPage = new DocumentuploadPageArabic(driver); } documentuploadPage.clickOnContinueButton(); - assertTrue(consentPage.updateUINTitleDisplayed(),"Verify if new update uin title is displayed"); - documentuploadPage.uploadDoccumentsUpdate("minor","all"); + assertTrue(consentPage.updateUINTitleDisplayed(), "Verify if new update uin title is displayed"); + documentuploadPage.uploadDoccumentsUpdate("minor", "all"); documentuploadPage.clickOnContinueButton(); } } - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - previewPage=new PreviewPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - previewPage=new PreviewPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - previewPage=new PreviewPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - previewPage=new PreviewPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - previewPage=new PreviewPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - previewPage=new PreviewPageArabic(driver); - } - assertTrue(previewPage.updateUINTitleDisplayed(),"Verify if new update uin title is displayed"); - assertTrue(previewPage.isApplicationIDPreviewPagePageDisplayed(),"Verify if application ID In PreviewPage is displayed"); - assertTrue(previewPage.isDemographicInformationInPreviewPageDisplayed(),"Verify if Demographic Information In PreviewPage is displayed"); - assertTrue(previewPage.isDocumentsInformationInPreviewPageDisplayed(),"Verify if Documents Information In PreviewPage is displayed"); - assertTrue(previewPage.isBiometricsInformationInPreviewPagePageDisplayed(),"Verify if Biometrics Information In PreviewPage is displayed"); - String Aid=previewPage.getAID(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + previewPage = new PreviewPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + previewPage = new PreviewPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + previewPage = new PreviewPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + previewPage = new PreviewPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + previewPage = new PreviewPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + previewPage = new PreviewPageArabic(driver); + } + assertTrue(previewPage.updateUINTitleDisplayed(), "Verify if new update uin title is displayed"); + assertTrue(previewPage.isApplicationIDPreviewPagePageDisplayed(), + "Verify if application ID In PreviewPage is displayed"); + assertTrue(previewPage.isDemographicInformationInPreviewPageDisplayed(), + "Verify if Demographic Information In PreviewPage is displayed"); + assertTrue(previewPage.isDocumentsInformationInPreviewPageDisplayed(), + "Verify if Documents Information In PreviewPage is displayed"); +// assertTrue(previewPage.isBiometricsInformationInPreviewPagePageDisplayed(),"Verify if Biometrics Information In PreviewPage is displayed"); + String Aid = previewPage.getAID(); previewPage.clickOnContinueButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - authenticationPage=new AuthenticationPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - authenticationPage=new AuthenticationPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - authenticationPage=new AuthenticationPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - authenticationPage=new AuthenticationPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - authenticationPage=new AuthenticationPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - authenticationPage=new AuthenticationPageArabic(driver); - } - assertTrue(authenticationPage.isAuthenticationPageDisplayed(),"Verify if authentication details page is displayed"); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + authenticationPage = new AuthenticationPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + authenticationPage = new AuthenticationPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + authenticationPage = new AuthenticationPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + authenticationPage = new AuthenticationPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + authenticationPage = new AuthenticationPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + authenticationPage = new AuthenticationPageArabic(driver); + } + assertTrue(authenticationPage.isAuthenticationPageDisplayed(), + "Verify if authentication details page is displayed"); authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); authenticationPage.clickOnAuthenticatenButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - acknowledgementPage=new AcknowledgementPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - acknowledgementPage=new AcknowledgementPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - acknowledgementPage=new AcknowledgementPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - acknowledgementPage=new AcknowledgementPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - acknowledgementPage=new AcknowledgementPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - acknowledgementPage=new AcknowledgementPageArabic(driver); - } - assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(),"Verify if acknowledgement details page is displayed"); - // assertTrue(acknowledgementPage.isQrCodeImageDisplayed(),"Verify if qr code image is displayed"); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + acknowledgementPage = new AcknowledgementPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + acknowledgementPage = new AcknowledgementPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + acknowledgementPage = new AcknowledgementPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + acknowledgementPage = new AcknowledgementPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + acknowledgementPage = new AcknowledgementPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + acknowledgementPage = new AcknowledgementPageArabic(driver); + } + assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(), + "Verify if acknowledgement details page is displayed"); + // assertTrue(acknowledgementPage.isQrCodeImageDisplayed(),"Verify if qr code + // image is displayed"); acknowledgementPage.clickOnGoToHomeButton(); - assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(),"Verify if registration tasks page is loaded"); - registrationTasksPage.clickOnOperationalTasksTitle(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - operationalTaskPage=new OperationalTaskPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - operationalTaskPage=new OperationalTaskPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - operationalTaskPage=new OperationalTaskPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - operationalTaskPage=new OperationalTaskPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - operationalTaskPage=new OperationalTaskPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - operationalTaskPage=new OperationalTaskPageArabic(driver); + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + registrationTasksPage.clickOnOperationalTasksTitle(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + operationalTaskPage = new OperationalTaskPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + operationalTaskPage = new OperationalTaskPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + operationalTaskPage = new OperationalTaskPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + operationalTaskPage = new OperationalTaskPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + operationalTaskPage = new OperationalTaskPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + operationalTaskPage = new OperationalTaskPageArabic(driver); } assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); assertTrue(operationalTaskPage.isPendingApprovalTitleDisplayed(), "Verify if pending approval tite displayed"); operationalTaskPage.clickPendingApprovalTitle(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - pendingApproval=new PendingApprovalEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - pendingApproval=new PendingApprovalHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - pendingApproval=new PendingApprovalFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - pendingApproval=new PendingApprovalKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - pendingApproval=new PendingApprovalTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - pendingApproval=new PendingApprovalArabic(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + pendingApproval = new PendingApprovalEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + pendingApproval = new PendingApprovalHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + pendingApproval = new PendingApprovalFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + pendingApproval = new PendingApprovalKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + pendingApproval = new PendingApprovalTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + pendingApproval = new PendingApprovalArabic(driver); } assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed"); pendingApproval.clickOnAID(Aid); @@ -649,77 +601,84 @@ else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ pendingApproval.clickOnApproveButton(); pendingApproval.clickOnClosePopUpButton(); - assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed after approving packet"); + assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), + "Verify if pending approval page displayed after approving packet"); pendingApproval.clickOnCheckBox(); - assertTrue(pendingApproval.isSubmitButtonEnabled(), "Verify if submit button is enable after selecting packet"); - pendingApproval.clickOnSubmitButton(); + assertTrue(pendingApproval.isAuthenticateButtonEnabled(), + "Verify if authenticate button is enable after selecting packet"); - assertTrue(pendingApproval.isSupervisorAuthenticationTitleDisplayed(), "Verify if Supervisor Authentication page displayed"); + boolean isPageDisplayed = false; + for (int i = 0; i < 3; i++) { + pendingApproval.clickOnAuthenticateButton(); + Thread.sleep(2000); + if (pendingApproval.isSupervisorAuthenticationTitleDisplayed()) { + isPageDisplayed = true; + break; + } + } + + assertTrue(pendingApproval.isSupervisorAuthenticationTitleDisplayed(), + "Verify if Supervisor Authentication page displayed"); pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser); pendingApproval.enterPassword(ArcConfigManager.getIAMUsersPassword()); pendingApproval.clickOnSubmitButton(); pendingApproval.clickOnBackButton(); - assertTrue(operationalTaskPage.isApplicationUploadTitleDisplayed(), "Verify if application upload tite displayed"); - - operationalTaskPage.clickApplicationUploadTitle(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - manageApplicationsPage=new ManageApplicationsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - manageApplicationsPage=new ManageApplicationsPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - manageApplicationsPage=new ManageApplicationsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - manageApplicationsPage=new ManageApplicationsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - manageApplicationsPage=new ManageApplicationsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - manageApplicationsPage=new ManageApplicationsPageArabic(driver); - } - assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), "Verify if manage Applications Page displayed"); + assertTrue(operationalTaskPage.isApplicationUploadTitleDisplayed(), + "Verify if application upload tite displayed"); + + operationalTaskPage.clickApplicationUploadTitle(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + manageApplicationsPage = new ManageApplicationsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + manageApplicationsPage = new ManageApplicationsPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + manageApplicationsPage = new ManageApplicationsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + manageApplicationsPage = new ManageApplicationsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + manageApplicationsPage = new ManageApplicationsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + manageApplicationsPage = new ManageApplicationsPageArabic(driver); + } + assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), + "Verify if manage Applications Page displayed"); manageApplicationsPage.enterAID(Aid); assertTrue(manageApplicationsPage.isSearchAIDDisplayed(Aid), "Verify if Search Aid should displayed"); - assertTrue(manageApplicationsPage.isPacketApproved(Aid), "Verify if packet is approved after approve in pending approval"); + assertTrue(manageApplicationsPage.isPacketApproved(Aid), + "Verify if packet is approved after approve in pending approval"); manageApplicationsPage.clickOnSearchCheckBox(); manageApplicationsPage.clickOnUploadButton(); - // assertTrue(manageApplicationsPage.isPacketUploadDone(Aid), "Verify if packet upload is done"); + // assertTrue(manageApplicationsPage.isPacketUploadDone(Aid), "Verify if packet + // upload is done"); manageApplicationsPage.clickOnBackButton(); - assertTrue(registrationTasksPage.isProfileTitleDisplayed(),"Verify if profile title display on homepage"); + assertTrue(registrationTasksPage.isProfileTitleDisplayed(), "Verify if profile title display on homepage"); registrationTasksPage.clickProfileButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - profilePage=new ProfilePageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - profilePage=new ProfilePageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - profilePage=new ProfilePageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - profilePage=new ProfilePageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - profilePage=new ProfilePageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - profilePage=new ProfilePageArabic(driver); - } - //assertTrue(profilePage.isProfileTitleDisplayed(),"Verify if profile title display on Profilepage"); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + profilePage = new ProfilePageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + profilePage = new ProfilePageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + profilePage = new ProfilePageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + profilePage = new ProfilePageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + profilePage = new ProfilePageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + profilePage = new ProfilePageArabic(driver); + } + // assertTrue(profilePage.isProfileTitleDisplayed(),"Verify if profile title + // display on Profilepage"); profilePage.clickOnLogoutButton(); profilePage.clickOnLogoutButton(); - assertTrue(loginPage.isLoginPageLoaded(),"verify if login page is displayeded in Selected language"); + assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayeded in Selected language"); } diff --git a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinUpdateBiometrics.java b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinUpdateBiometrics.java index 9a93261e0..2f308d91e 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinUpdateBiometrics.java +++ b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinUpdateBiometrics.java @@ -128,44 +128,38 @@ public class UpdateMyUinUpdateBiometrics extends AndroidBaseTest { @Test - public void updateMyUINUpdatebiometrics(){ + public void updateMyUINUpdatebiometrics() throws InterruptedException { FetchUiSpec.getUiSpec("updateProcess"); - List screenOrder=FetchUiSpec.getAllScreenOrder(); + List screenOrder = FetchUiSpec.getAllScreenOrder(); BasePage.disableAutoRotation(); LoginPage loginPage = null; - RegistrationTasksPage registrationTasksPage=null; - SelectLanguagePage selectLanguagePage=null; - ConsentPage consentPage=null; - DemographicDetailsPage demographicPage=null; - DocumentUploadPage documentuploadPage=null; - BiometricDetailsPage biometricDetailsPage=null; - ApplicantBiometricsPage applicantBiometricsPage=null; - PreviewPage previewPage=null; - AuthenticationPage authenticationPage=null; - AcknowledgementPage acknowledgementPage=null; - OperationalTaskPage operationalTaskPage=null; - ManageApplicationsPage manageApplicationsPage=null; - ProfilePage profilePage=null; - UpdateUINPage updateUINPage=null; - PendingApproval pendingApproval=null; - - - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { + RegistrationTasksPage registrationTasksPage = null; + SelectLanguagePage selectLanguagePage = null; + ConsentPage consentPage = null; + DemographicDetailsPage demographicPage = null; + DocumentUploadPage documentuploadPage = null; + BiometricDetailsPage biometricDetailsPage = null; + ApplicantBiometricsPage applicantBiometricsPage = null; + PreviewPage previewPage = null; + AuthenticationPage authenticationPage = null; + AcknowledgementPage acknowledgementPage = null; + OperationalTaskPage operationalTaskPage = null; + ManageApplicationsPage manageApplicationsPage = null; + ProfilePage profilePage = null; + UpdateUINPage updateUINPage = null; + PendingApproval pendingApproval = null; + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { loginPage = new LoginPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { loginPage = new LoginPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { loginPage = new LoginPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { loginPage = new LoginPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { loginPage = new LoginPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { loginPage = new LoginPageArabic(driver); } loginPage.selectLanguage(); @@ -174,447 +168,373 @@ else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); loginPage.clickOnloginButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - registrationTasksPage=new RegistrationTasksPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - registrationTasksPage=new RegistrationTasksPageHindi(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + registrationTasksPage = new RegistrationTasksPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + registrationTasksPage = new RegistrationTasksPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + registrationTasksPage = new RegistrationTasksPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + registrationTasksPage = new RegistrationTasksPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + registrationTasksPage = new RegistrationTasksPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + registrationTasksPage = new RegistrationTasksPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - registrationTasksPage=new RegistrationTasksPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - registrationTasksPage=new RegistrationTasksPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - registrationTasksPage=new RegistrationTasksPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - registrationTasksPage=new RegistrationTasksPageArabic(driver); - } - assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(),"Verify if registration tasks page is loaded"); + registrationTasksPage.clickUpdateMyUINButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - selectLanguagePage=new SelectLanguagePageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - selectLanguagePage=new SelectLanguagePageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - selectLanguagePage=new SelectLanguagePageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - selectLanguagePage=new SelectLanguagePageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - selectLanguagePage=new SelectLanguagePageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - selectLanguagePage=new SelectLanguagePageArabic(driver); - } - assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(),"Verify if select language page is loaded"); - selectLanguagePage.clickOnSubmitButtonWithoutSelectingLanguage(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + selectLanguagePage = new SelectLanguagePageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + selectLanguagePage = new SelectLanguagePageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + selectLanguagePage = new SelectLanguagePageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + selectLanguagePage = new SelectLanguagePageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + selectLanguagePage = new SelectLanguagePageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + selectLanguagePage = new SelectLanguagePageArabic(driver); + } + assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), "Verify if select language page is loaded"); - assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(),"Verify if user should not be allow to navigate to next screen."); selectLanguagePage.selectSecondLanguage(); - - assertTrue(selectLanguagePage.isNotificationLanguageEnglishDisplayed(),"verify if the notification language display in english"); selectLanguagePage.selectNotificationlanguage(TestDataReader.readData("notificationLanguage")); - assertTrue(selectLanguagePage.isSubmitButtonEnabled(),"verify if the submit button enabled"); selectLanguagePage.clickOnSubmitButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - updateUINPage =new UpdateUINPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - updateUINPage =new UpdateUINPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - updateUINPage =new UpdateUINPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - updateUINPage =new UpdateUINPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - updateUINPage =new UpdateUINPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - updateUINPage =new UpdateUINPageArabic(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + updateUINPage = new UpdateUINPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + updateUINPage = new UpdateUINPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + updateUINPage = new UpdateUINPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + updateUINPage = new UpdateUINPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + updateUINPage = new UpdateUINPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + updateUINPage = new UpdateUINPageArabic(driver); } - assertTrue(updateUINPage.isUpdateMyUINTitleDisplayed(),"verify if the update my uin page is displayed"); updateUINPage.clickOnContinueButton(); - assertTrue(updateUINPage.isUpdateMyUINTitleDisplayed(),"verify if the update my uin page is still displayed after clicking continue button "); updateUINPage.enterUIN(TestDataReader.readData("UIN")); updateUINPage.selectUpdateValue("BiometricDetails"); updateUINPage.clickOnContinueButton(); - for(String screen :screenOrder) { - if(screen.equals("consentdet") || screen.equals("consent")) { - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - consentPage =new ConsentPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - consentPage =new ConsentPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - consentPage =new ConsentPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - consentPage =new ConsentPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - consentPage =new ConsentPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - consentPage =new ConsentPageArabic(driver); + for (String screen : screenOrder) { + if (screen.equals("consentdet") || screen.equals("consent")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + consentPage = new ConsentPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + consentPage = new ConsentPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + consentPage = new ConsentPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + consentPage = new ConsentPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + consentPage = new ConsentPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + consentPage = new ConsentPageArabic(driver); } - assertTrue(consentPage.isConsentPageDisplayed(),"Verify if Consent page is loaded"); consentPage.clickOnInformedButton(); - } - else if(screen.equals("DemographicDetails")) { - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - demographicPage=new DemographicDetailsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - demographicPage=new DemographicDetailsPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - demographicPage=new DemographicDetailsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - demographicPage=new DemographicDetailsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - demographicPage=new DemographicDetailsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - demographicPage=new DemographicDetailsPageArabic(driver); + } else if (screen.equals("DemographicDetails")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + demographicPage = new DemographicDetailsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + demographicPage = new DemographicDetailsPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + demographicPage = new DemographicDetailsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + demographicPage = new DemographicDetailsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + demographicPage = new DemographicDetailsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + demographicPage = new DemographicDetailsPageArabic(driver); } - demographicPage.clickOnContinueButton(); - } - else if(screen.equals("BiometricDetails")) { - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - biometricDetailsPage=new BiometricDetailsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - biometricDetailsPage=new BiometricDetailsPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - biometricDetailsPage=new BiometricDetailsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - biometricDetailsPage=new BiometricDetailsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - biometricDetailsPage=new BiometricDetailsPageTamil(driver); + } else if (screen.equals("BiometricDetails")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + biometricDetailsPage = new BiometricDetailsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + biometricDetailsPage = new BiometricDetailsPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + biometricDetailsPage = new BiometricDetailsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + biometricDetailsPage = new BiometricDetailsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + biometricDetailsPage = new BiometricDetailsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + biometricDetailsPage = new BiometricDetailsPageArabic(driver); } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - biometricDetailsPage=new BiometricDetailsPageArabic(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); } - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - applicantBiometricsPage=new ApplicantBiometricsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - applicantBiometricsPage=new ApplicantBiometricsPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - applicantBiometricsPage=new ApplicantBiometricsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - applicantBiometricsPage=new ApplicantBiometricsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - applicantBiometricsPage=new ApplicantBiometricsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - applicantBiometricsPage=new ApplicantBiometricsPageArabic(driver); - } - if(FetchUiSpec.eye.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + if (FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIrisScan(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(),"Verify if applicant biometric page is displayed"); + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isIrisScan(),"Verify if iris scan 1st attempt"); + assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage=applicantBiometricsPage.clickOnBackButton(); - } - //righthand - if(FetchUiSpec.rightHand.equals("yes")) { - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - applicantBiometricsPage=biometricDetailsPage.clickOnRightHandScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(),"Verify if applicant biometric page is displayed"); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + } + // righthand + if (FetchUiSpec.rightHand.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnRightHandScanIcon(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isRightHandScan(),"Verify if right hand scan 1st attempt"); + assertTrue(applicantBiometricsPage.isRightHandScan(), "Verify if right hand scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage=applicantBiometricsPage.clickOnBackButton(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); } - //lefthand - if(FetchUiSpec.leftHand.equals("yes")) { - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - applicantBiometricsPage=biometricDetailsPage.clickOnLeftHandScanIcon(); - - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(),"Verify if applicant biometric page is displayed"); + // lefthand + if (FetchUiSpec.leftHand.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnLeftHandScanIcon(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isLeftHandScan(),"Verify if Left hand scan 1st attempt"); + assertTrue(applicantBiometricsPage.isLeftHandScan(), "Verify if Left hand scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage=applicantBiometricsPage.clickOnBackButton(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); } - //thumb - if(FetchUiSpec.thumb.equals("yes")) { - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); - applicantBiometricsPage=biometricDetailsPage.clickOnThumbsScanIcon(); - - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(),"Verify if applicant biometric page is displayed"); + // thumb + if (FetchUiSpec.thumb.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnThumbsScanIcon(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isThumbsScan(),"Verify if thumbs scan 1st attempt"); + assertTrue(applicantBiometricsPage.isThumbsScan(), "Verify if thumbs scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage=applicantBiometricsPage.clickOnBackButton(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); } - //face - if(FetchUiSpec.face.equals("yes")) { - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); + // face + if (FetchUiSpec.face.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); biometricDetailsPage.clickOnFaceScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(),"Verify if applicant biometric page is displayed"); + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isFaceScan(),"Verify if face scan 1st attempt"); + assertTrue(applicantBiometricsPage.isFaceScan(), "Verify if face scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); applicantBiometricsPage.clickOnBackButton(); } - - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(),"Verify if biometric details page is displayed"); + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); biometricDetailsPage.clickOnContinueButton(); - } - else if(screen.equals("Documents")) { - - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - documentuploadPage=new DocumentuploadPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - documentuploadPage=new DocumentUploadPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - documentuploadPage=new DocumentUploadPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - documentuploadPage=new DocumentuploadPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - documentuploadPage=new DocumentuploadPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - documentuploadPage=new DocumentuploadPageArabic(driver); + } else if (screen.equals("Documents")) { + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + documentuploadPage = new DocumentuploadPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + documentuploadPage = new DocumentUploadPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + documentuploadPage = new DocumentUploadPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + documentuploadPage = new DocumentuploadPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + documentuploadPage = new DocumentuploadPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + documentuploadPage = new DocumentuploadPageArabic(driver); } documentuploadPage.clickOnContinueButton(); } } - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - previewPage=new PreviewPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - previewPage=new PreviewPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - previewPage=new PreviewPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - previewPage=new PreviewPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - previewPage=new PreviewPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - previewPage=new PreviewPageArabic(driver); - } - assertTrue(previewPage.updateUINTitleDisplayed(),"Verify if new update uin title is displayed"); - assertTrue(previewPage.isApplicationIDPreviewPagePageDisplayed(),"Verify if application ID In PreviewPage is displayed"); - assertTrue(previewPage.isDemographicInformationInPreviewPageDisplayed(),"Verify if Demographic Information In PreviewPage is displayed"); - assertTrue(previewPage.isDocumentsInformationInPreviewPageDisplayed(),"Verify if Documents Information In PreviewPage is displayed"); - assertTrue(previewPage.isBiometricsInformationInPreviewPagePageDisplayed(),"Verify if Biometrics Information In PreviewPage is displayed"); - String Aid=previewPage.getAID(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + previewPage = new PreviewPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + previewPage = new PreviewPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + previewPage = new PreviewPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + previewPage = new PreviewPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + previewPage = new PreviewPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + previewPage = new PreviewPageArabic(driver); + } + String Aid = previewPage.getAID(); previewPage.clickOnContinueButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - authenticationPage=new AuthenticationPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - authenticationPage=new AuthenticationPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - authenticationPage=new AuthenticationPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - authenticationPage=new AuthenticationPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - authenticationPage=new AuthenticationPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - authenticationPage=new AuthenticationPageArabic(driver); - } - assertTrue(authenticationPage.isAuthenticationPageDisplayed(),"Verify if authentication details page is displayed"); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + authenticationPage = new AuthenticationPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + authenticationPage = new AuthenticationPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + authenticationPage = new AuthenticationPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + authenticationPage = new AuthenticationPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + authenticationPage = new AuthenticationPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + authenticationPage = new AuthenticationPageArabic(driver); + } + assertTrue(authenticationPage.isAuthenticationPageDisplayed(), + "Verify if authentication details page is displayed"); authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); authenticationPage.clickOnAuthenticatenButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - acknowledgementPage=new AcknowledgementPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - acknowledgementPage=new AcknowledgementPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - acknowledgementPage=new AcknowledgementPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - acknowledgementPage=new AcknowledgementPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - acknowledgementPage=new AcknowledgementPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - acknowledgementPage=new AcknowledgementPageArabic(driver); - } - assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(),"Verify if acknowledgement details page is displayed"); - // assertTrue(acknowledgementPage.isQrCodeImageDisplayed(),"Verify if qr code image is displayed"); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + acknowledgementPage = new AcknowledgementPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + acknowledgementPage = new AcknowledgementPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + acknowledgementPage = new AcknowledgementPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + acknowledgementPage = new AcknowledgementPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + acknowledgementPage = new AcknowledgementPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + acknowledgementPage = new AcknowledgementPageArabic(driver); + } + assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(), + "Verify if acknowledgement details page is displayed"); acknowledgementPage.clickOnGoToHomeButton(); - assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(),"Verify if registration tasks page is loaded"); - registrationTasksPage.clickOnOperationalTasksTitle(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - operationalTaskPage=new OperationalTaskPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - operationalTaskPage=new OperationalTaskPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - operationalTaskPage=new OperationalTaskPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - operationalTaskPage=new OperationalTaskPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - operationalTaskPage=new OperationalTaskPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - operationalTaskPage=new OperationalTaskPageArabic(driver); + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + registrationTasksPage.clickOnOperationalTasksTitle(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + operationalTaskPage = new OperationalTaskPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + operationalTaskPage = new OperationalTaskPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + operationalTaskPage = new OperationalTaskPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + operationalTaskPage = new OperationalTaskPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + operationalTaskPage = new OperationalTaskPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + operationalTaskPage = new OperationalTaskPageArabic(driver); } assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); assertTrue(operationalTaskPage.isPendingApprovalTitleDisplayed(), "Verify if pending approval tite displayed"); operationalTaskPage.clickPendingApprovalTitle(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - pendingApproval=new PendingApprovalEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - pendingApproval=new PendingApprovalHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - pendingApproval=new PendingApprovalFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - pendingApproval=new PendingApprovalKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - pendingApproval=new PendingApprovalTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - pendingApproval=new PendingApprovalArabic(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + pendingApproval = new PendingApprovalEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + pendingApproval = new PendingApprovalHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + pendingApproval = new PendingApprovalFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + pendingApproval = new PendingApprovalKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + pendingApproval = new PendingApprovalTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + pendingApproval = new PendingApprovalArabic(driver); } assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed"); pendingApproval.clickOnAID(Aid); - assertTrue(pendingApproval.isApprovalButtonDisplayed(), "Verify if approval button displayed"); pendingApproval.clickOnApproveButton(); pendingApproval.clickOnClosePopUpButton(); - assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed after approving packet"); pendingApproval.clickOnCheckBox(); - assertTrue(pendingApproval.isSubmitButtonEnabled(), "Verify if submit button is enable after selecting packet"); - pendingApproval.clickOnSubmitButton(); + assertTrue(pendingApproval.isAuthenticateButtonEnabled(), + "Verify if authenticate button is enable after selecting packet"); + + boolean isPageDisplayed = false; + for (int i = 0; i < 3; i++) { + pendingApproval.clickOnAuthenticateButton(); + Thread.sleep(2000); + if (pendingApproval.isSupervisorAuthenticationTitleDisplayed()) { + isPageDisplayed = true; + break; + } + } - assertTrue(pendingApproval.isSupervisorAuthenticationTitleDisplayed(), "Verify if Supervisor Authentication page displayed"); + assertTrue(pendingApproval.isSupervisorAuthenticationTitleDisplayed(), + "Verify if Supervisor Authentication page displayed"); pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser); pendingApproval.enterPassword(ArcConfigManager.getIAMUsersPassword()); pendingApproval.clickOnSubmitButton(); pendingApproval.clickOnBackButton(); - assertTrue(operationalTaskPage.isApplicationUploadTitleDisplayed(), "Verify if application upload tite displayed"); - - operationalTaskPage.clickApplicationUploadTitle(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - manageApplicationsPage=new ManageApplicationsPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - manageApplicationsPage=new ManageApplicationsPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - manageApplicationsPage=new ManageApplicationsPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - manageApplicationsPage=new ManageApplicationsPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - manageApplicationsPage=new ManageApplicationsPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - manageApplicationsPage=new ManageApplicationsPageArabic(driver); - } - assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), "Verify if manage Applications Page displayed"); + assertTrue(operationalTaskPage.isApplicationUploadTitleDisplayed(), + "Verify if application upload tite displayed"); + + operationalTaskPage.clickApplicationUploadTitle(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + manageApplicationsPage = new ManageApplicationsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + manageApplicationsPage = new ManageApplicationsPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + manageApplicationsPage = new ManageApplicationsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + manageApplicationsPage = new ManageApplicationsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + manageApplicationsPage = new ManageApplicationsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + manageApplicationsPage = new ManageApplicationsPageArabic(driver); + } + assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), + "Verify if manage Applications Page displayed"); manageApplicationsPage.enterAID(Aid); - assertTrue(manageApplicationsPage.isSearchAIDDisplayed(Aid), "Verify if Search Aid should displayed"); - assertTrue(manageApplicationsPage.isPacketApproved(Aid), "Verify if packet is approved after approve in pending approval"); - manageApplicationsPage.clickOnSearchCheckBox(); manageApplicationsPage.clickOnUploadButton(); - //assertTrue(manageApplicationsPage.isPacketUploadDone(Aid), "Verify if packet upload is done"); manageApplicationsPage.clickOnBackButton(); - assertTrue(registrationTasksPage.isProfileTitleDisplayed(),"Verify if profile title display on homepage"); + assertTrue(registrationTasksPage.isProfileTitleDisplayed(), "Verify if profile title display on homepage"); registrationTasksPage.clickProfileButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - profilePage=new ProfilePageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - profilePage=new ProfilePageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - profilePage=new ProfilePageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - profilePage=new ProfilePageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - profilePage=new ProfilePageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - profilePage=new ProfilePageArabic(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + profilePage = new ProfilePageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + profilePage = new ProfilePageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + profilePage = new ProfilePageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + profilePage = new ProfilePageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + profilePage = new ProfilePageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + profilePage = new ProfilePageArabic(driver); } - //assertTrue(profilePage.isProfileTitleDisplayed(),"Verify if profile title display on Profilepage"); profilePage.clickOnLogoutButton(); profilePage.clickOnLogoutButton(); - assertTrue(loginPage.isLoginPageLoaded(),"verify if login page is displayeded in Selected language"); + assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayeded in Selected language"); } diff --git a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinUpdateDocuments.java b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinUpdateDocuments.java new file mode 100644 index 000000000..e08310a25 --- /dev/null +++ b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinUpdateDocuments.java @@ -0,0 +1,533 @@ +package regclient.androidTestCases; + +import static org.testng.Assert.assertFalse; +import static org.testng.Assert.assertTrue; + +import java.util.List; + +import org.testng.annotations.Test; + +import regclient.BaseTest.AndroidBaseTest; +import regclient.api.ArcConfigManager; +import regclient.api.FetchUiSpec; +import regclient.api.KeycloakUserManager; +import regclient.page.AcknowledgementPage; +import regclient.page.ApplicantBiometricsPage; +import regclient.page.AuthenticationPage; +import regclient.page.BasePage; +import regclient.page.BiometricDetailsPage; +import regclient.page.ConsentPage; +import regclient.page.DemographicDetailsPage; +import regclient.page.DocumentUploadPage; +import regclient.page.LoginPage; +import regclient.page.ManageApplicationsPage; +import regclient.page.OperationalTaskPage; +import regclient.page.PendingApproval; +import regclient.page.PreviewPage; +import regclient.page.ProfilePage; +import regclient.page.RegistrationTasksPage; +import regclient.page.SelectLanguagePage; +import regclient.page.UpdateUINPage; +import regclient.pages.arabic.AcknowledgementPageArabic; +import regclient.pages.arabic.ApplicantBiometricsPageArabic; +import regclient.pages.arabic.AuthenticationPageArabic; +import regclient.pages.arabic.BiometricDetailsPageArabic; +import regclient.pages.arabic.ConsentPageArabic; +import regclient.pages.arabic.DemographicDetailsPageArabic; +import regclient.pages.arabic.DocumentuploadPageArabic; +import regclient.pages.arabic.LoginPageArabic; +import regclient.pages.arabic.ManageApplicationsPageArabic; +import regclient.pages.arabic.OperationalTaskPageArabic; +import regclient.pages.arabic.PendingApprovalArabic; +import regclient.pages.arabic.PreviewPageArabic; +import regclient.pages.arabic.ProfilePageArabic; +import regclient.pages.arabic.RegistrationTasksPageArabic; +import regclient.pages.arabic.SelectLanguagePageArabic; +import regclient.pages.arabic.UpdateUINPageArabic; +import regclient.pages.english.AcknowledgementPageEnglish; +import regclient.pages.english.ApplicantBiometricsPageEnglish; +import regclient.pages.english.AuthenticationPageEnglish; +import regclient.pages.english.BiometricDetailsPageEnglish; +import regclient.pages.english.ConsentPageEnglish; +import regclient.pages.english.DemographicDetailsPageEnglish; +import regclient.pages.english.DocumentuploadPageEnglish; +import regclient.pages.english.LoginPageEnglish; +import regclient.pages.english.ManageApplicationsPageEnglish; +import regclient.pages.english.OperationalTaskPageEnglish; +import regclient.pages.english.PendingApprovalEnglish; +import regclient.pages.english.PreviewPageEnglish; +import regclient.pages.english.ProfilePageEnglish; +import regclient.pages.english.RegistrationTasksPageEnglish; +import regclient.pages.english.SelectLanguagePageEnglish; +import regclient.pages.english.UpdateUINPageEnglish; +import regclient.pages.french.AcknowledgementPageFrench; +import regclient.pages.french.ApplicantBiometricsPageFrench; +import regclient.pages.french.AuthenticationPageFrench; +import regclient.pages.french.BiometricDetailsPageFrench; +import regclient.pages.french.ConsentPageFrench; +import regclient.pages.french.DemographicDetailsPageFrench; +import regclient.pages.french.DocumentUploadPageFrench; +import regclient.pages.french.LoginPageFrench; +import regclient.pages.french.ManageApplicationsPageFrench; +import regclient.pages.french.OperationalTaskPageFrench; +import regclient.pages.french.PendingApprovalFrench; +import regclient.pages.french.PreviewPageFrench; +import regclient.pages.french.ProfilePageFrench; +import regclient.pages.french.RegistrationTasksPageFrench; +import regclient.pages.french.SelectLanguagePageFrench; +import regclient.pages.french.UpdateUINPageFrench; +import regclient.pages.hindi.AcknowledgementPageHindi; +import regclient.pages.hindi.ApplicantBiometricsPageHindi; +import regclient.pages.hindi.AuthenticationPageHindi; +import regclient.pages.hindi.BiometricDetailsPageHindi; +import regclient.pages.hindi.ConsentPageHindi; +import regclient.pages.hindi.DemographicDetailsPageHindi; +import regclient.pages.hindi.DocumentUploadPageHindi; +import regclient.pages.hindi.LoginPageHindi; +import regclient.pages.hindi.ManageApplicationsPageHindi; +import regclient.pages.hindi.OperationalTaskPageHindi; +import regclient.pages.hindi.PendingApprovalHindi; +import regclient.pages.hindi.PreviewPageHindi; +import regclient.pages.hindi.ProfilePageHindi; +import regclient.pages.hindi.RegistrationTasksPageHindi; +import regclient.pages.hindi.SelectLanguagePageHindi; +import regclient.pages.hindi.UpdateUINPageHindi; +import regclient.pages.kannada.AcknowledgementPageKannada; +import regclient.pages.kannada.ApplicantBiometricsPageKannada; +import regclient.pages.kannada.AuthenticationPageKannada; +import regclient.pages.kannada.BiometricDetailsPageKannada; +import regclient.pages.kannada.ConsentPageKannada; +import regclient.pages.kannada.DemographicDetailsPageKannada; +import regclient.pages.kannada.DocumentuploadPageKannada; +import regclient.pages.kannada.LoginPageKannada; +import regclient.pages.kannada.ManageApplicationsPageKannada; +import regclient.pages.kannada.OperationalTaskPageKannada; +import regclient.pages.kannada.PendingApprovalKannada; +import regclient.pages.kannada.PreviewPageKannada; +import regclient.pages.kannada.ProfilePageKannada; +import regclient.pages.kannada.RegistrationTasksPageKannada; +import regclient.pages.kannada.SelectLanguagePageKannada; +import regclient.pages.kannada.UpdateUINPageKannada; +import regclient.pages.tamil.AcknowledgementPageTamil; +import regclient.pages.tamil.ApplicantBiometricsPageTamil; +import regclient.pages.tamil.AuthenticationPageTamil; +import regclient.pages.tamil.BiometricDetailsPageTamil; +import regclient.pages.tamil.ConsentPageTamil; +import regclient.pages.tamil.DemographicDetailsPageTamil; +import regclient.pages.tamil.DocumentuploadPageTamil; +import regclient.pages.tamil.LoginPageTamil; +import regclient.pages.tamil.ManageApplicationsPageTamil; +import regclient.pages.tamil.OperationalTaskPageTamil; +import regclient.pages.tamil.PendingApprovalTamil; +import regclient.pages.tamil.PreviewPageTamil; +import regclient.pages.tamil.ProfilePageTamil; +import regclient.pages.tamil.RegistrationTasksPageTamil; +import regclient.pages.tamil.SelectLanguagePageTamil; +import regclient.pages.tamil.UpdateUINPageTamil; +import regclient.utils.TestDataReader; + +public class UpdateMyUinUpdateDocuments extends AndroidBaseTest { + + @SuppressWarnings("null") + @Test + public void updateMyUinUpdateDocuments() throws InterruptedException { + FetchUiSpec.getUiSpec("updateProcess"); + List screenOrder = FetchUiSpec.getAllScreenOrder(); + BasePage.disableAutoRotation(); + LoginPage loginPage = null; + RegistrationTasksPage registrationTasksPage = null; + SelectLanguagePage selectLanguagePage = null; + ConsentPage consentPage = null; + DemographicDetailsPage demographicPage = null; + DocumentUploadPage documentuploadPage = null; + BiometricDetailsPage biometricDetailsPage = null; + ApplicantBiometricsPage applicantBiometricsPage = null; + PreviewPage previewPage = null; + AuthenticationPage authenticationPage = null; + AcknowledgementPage acknowledgementPage = null; + OperationalTaskPage operationalTaskPage = null; + ManageApplicationsPage manageApplicationsPage = null; + ProfilePage profilePage = null; + UpdateUINPage updateUINPage = null; + PendingApproval pendingApproval = null; + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + loginPage = new LoginPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + loginPage = new LoginPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + loginPage = new LoginPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + loginPage = new LoginPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + loginPage = new LoginPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + loginPage = new LoginPageArabic(driver); + } + loginPage.selectLanguage(); + loginPage.enterUserName(KeycloakUserManager.moduleSpecificUser); + loginPage.clickOnNextButton(); + + loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); + loginPage.clickOnloginButton(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + registrationTasksPage = new RegistrationTasksPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + registrationTasksPage = new RegistrationTasksPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + registrationTasksPage = new RegistrationTasksPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + registrationTasksPage = new RegistrationTasksPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + registrationTasksPage = new RegistrationTasksPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + registrationTasksPage = new RegistrationTasksPageArabic(driver); + } + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + registrationTasksPage.clickUpdateMyUINButton(); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + selectLanguagePage = new SelectLanguagePageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + selectLanguagePage = new SelectLanguagePageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + selectLanguagePage = new SelectLanguagePageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + selectLanguagePage = new SelectLanguagePageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + selectLanguagePage = new SelectLanguagePageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + selectLanguagePage = new SelectLanguagePageArabic(driver); + } + assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), "Verify if select language page is loaded"); + selectLanguagePage.clickOnSubmitButtonWithoutSelectingLanguage(); + + assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), + "Verify if user should not be allow to navigate to next screen."); + selectLanguagePage.selectSecondLanguage(); + + assertTrue(selectLanguagePage.isNotificationLanguageEnglishDisplayed(), + "verify if the notification language display in english"); + selectLanguagePage.selectNotificationlanguage(TestDataReader.readData("notificationLanguage")); + + assertTrue(selectLanguagePage.isSubmitButtonEnabled(), "verify if the submit button enabled"); + selectLanguagePage.clickOnSubmitButton(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + updateUINPage = new UpdateUINPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + updateUINPage = new UpdateUINPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + updateUINPage = new UpdateUINPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + updateUINPage = new UpdateUINPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + updateUINPage = new UpdateUINPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + updateUINPage = new UpdateUINPageArabic(driver); + } + + assertTrue(updateUINPage.isUpdateMyUINTitleDisplayed(), "verify if the update my uin page is displayed"); + updateUINPage.clickOnContinueButton(); + + assertTrue(updateUINPage.isUpdateMyUINTitleDisplayed(), + "verify if the update my uin page is still displayed after clicking continue button "); + updateUINPage.enterUIN(TestDataReader.readData("UIN")); + + updateUINPage.selectUpdateValue("Documents"); + + updateUINPage.clickOnContinueButton(); + for (String screen : screenOrder) { + if (screen.equals("consentdet") || screen.equals("consent")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + consentPage = new ConsentPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + consentPage = new ConsentPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + consentPage = new ConsentPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + consentPage = new ConsentPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + consentPage = new ConsentPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + consentPage = new ConsentPageArabic(driver); + } + consentPage.clickOnInformedButton(); + } else if (screen.equals("DemographicDetails")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + demographicPage = new DemographicDetailsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + demographicPage = new DemographicDetailsPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + demographicPage = new DemographicDetailsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + demographicPage = new DemographicDetailsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + demographicPage = new DemographicDetailsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + demographicPage = new DemographicDetailsPageArabic(driver); + } + + demographicPage.clickOnContinueButton(); + } else if (screen.equals("Documents")) { + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + documentuploadPage = new DocumentuploadPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + documentuploadPage = new DocumentUploadPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + documentuploadPage = new DocumentUploadPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + documentuploadPage = new DocumentuploadPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + documentuploadPage = new DocumentuploadPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + documentuploadPage = new DocumentuploadPageArabic(driver); + } + documentuploadPage.uploadDoccumentsUpdate("adult", "all"); + documentuploadPage.clickOnContinueButton(); + } else if (screen.equals("BiometricDetails")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + biometricDetailsPage = new BiometricDetailsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + biometricDetailsPage = new BiometricDetailsPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + biometricDetailsPage = new BiometricDetailsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + biometricDetailsPage = new BiometricDetailsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + biometricDetailsPage = new BiometricDetailsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + biometricDetailsPage = new BiometricDetailsPageArabic(driver); + } + assertTrue(biometricDetailsPage.isAuthenticationBiometricTitleDisplayed(), + "Verify if biometric details page is displayed without upload doccument"); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); + } + biometricDetailsPage.clickOnRightHandScanIcon(); + + assertTrue(applicantBiometricsPage.isAuthenticationBiometricsPageDisplyed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnMarkExceptionButton(); + + assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(), + "Verify if applicant biometric mark exception is displayed"); + applicantBiometricsPage.markOneFingureException(); + + assertTrue(applicantBiometricsPage.isExceptionCountDisplyed(), + "Verify if exception count is displayed"); + applicantBiometricsPage.clickOnRightHandScanTitle(); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isRightHandScan(), "Verify if right hand scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + applicantBiometricsPage.clickOnBackButton(); + + assertTrue(biometricDetailsPage.isAuthenticationBiometricTitleDisplayed(), + "Verify if biometric details page is displayed without upload doccument"); + biometricDetailsPage.clickOnContinueButton(); + } + } + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + previewPage = new PreviewPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + previewPage = new PreviewPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + previewPage = new PreviewPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + previewPage = new PreviewPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + previewPage = new PreviewPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + previewPage = new PreviewPageArabic(driver); + } + assertTrue(previewPage.updateUINTitleDisplayed(), "Verify if new update uin title is displayed"); + assertTrue(previewPage.isApplicationIDPreviewPagePageDisplayed(), + "Verify if application ID In PreviewPage is displayed"); + assertTrue(previewPage.isDemographicInformationInPreviewPageDisplayed(), + "Verify if Demographic Information In PreviewPage is displayed"); + assertTrue(previewPage.isDocumentsInformationInPreviewPageDisplayed(), + "Verify if Documents Information In PreviewPage is displayed"); + assertTrue(previewPage.isBiometricsInformationInPreviewPagePageDisplayed(), + "Verify if Biometrics Information In PreviewPage is displayed"); + String Aid = previewPage.getAID(); + previewPage.clickOnContinueButton(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + authenticationPage = new AuthenticationPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + authenticationPage = new AuthenticationPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + authenticationPage = new AuthenticationPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + authenticationPage = new AuthenticationPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + authenticationPage = new AuthenticationPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + authenticationPage = new AuthenticationPageArabic(driver); + } + assertTrue(authenticationPage.isAuthenticationPageDisplayed(), + "Verify if authentication details page is displayed"); + authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); + authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); + authenticationPage.clickOnAuthenticatenButton(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + acknowledgementPage = new AcknowledgementPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + acknowledgementPage = new AcknowledgementPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + acknowledgementPage = new AcknowledgementPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + acknowledgementPage = new AcknowledgementPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + acknowledgementPage = new AcknowledgementPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + acknowledgementPage = new AcknowledgementPageArabic(driver); + } + assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(), + "Verify if acknowledgement details page is displayed"); + // assertTrue(acknowledgementPage.isQrCodeImageDisplayed(),"Verify if qr code + // image is displayed"); + + acknowledgementPage.clickOnGoToHomeButton(); + + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + registrationTasksPage.clickOnOperationalTasksTitle(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + operationalTaskPage = new OperationalTaskPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + operationalTaskPage = new OperationalTaskPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + operationalTaskPage = new OperationalTaskPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + operationalTaskPage = new OperationalTaskPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + operationalTaskPage = new OperationalTaskPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + operationalTaskPage = new OperationalTaskPageArabic(driver); + } + assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); + assertTrue(operationalTaskPage.isPendingApprovalTitleDisplayed(), "Verify if pending approval tite displayed"); + operationalTaskPage.clickPendingApprovalTitle(); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + pendingApproval = new PendingApprovalEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + pendingApproval = new PendingApprovalHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + pendingApproval = new PendingApprovalFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + pendingApproval = new PendingApprovalKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + pendingApproval = new PendingApprovalTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + pendingApproval = new PendingApprovalArabic(driver); + } + assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed"); + pendingApproval.clickOnAID(Aid); + + assertTrue(pendingApproval.isApprovalButtonDisplayed(), "Verify if approval button displayed"); + pendingApproval.clickOnApproveButton(); + pendingApproval.clickOnClosePopUpButton(); + + assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), + "Verify if pending approval page displayed after approving packet"); + pendingApproval.clickOnCheckBox(); + + assertTrue(pendingApproval.isAuthenticateButtonEnabled(), + "Verify if authenticate button is enable after selecting packet"); + + boolean isPageDisplayed = false; + for (int i = 0; i < 3; i++) { + pendingApproval.clickOnAuthenticateButton(); + Thread.sleep(2000); + if (pendingApproval.isSupervisorAuthenticationTitleDisplayed()) { + isPageDisplayed = true; + break; + } + } + + assertTrue(pendingApproval.isSupervisorAuthenticationTitleDisplayed(), + "Verify if Supervisor Authentication page displayed"); +// assertFalse(pendingApproval.isSubmitButtonEnabled(), +// "Verify if submit button is enable after selecting packet"); + + pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser); + pendingApproval.enterPassword(ArcConfigManager.getIAMUsersPassword()); + pendingApproval.clickOnSubmitButton(); + pendingApproval.clickOnBackButton(); + assertTrue(operationalTaskPage.isApplicationUploadTitleDisplayed(), + "Verify if application upload tite displayed"); + + operationalTaskPage.clickApplicationUploadTitle(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + manageApplicationsPage = new ManageApplicationsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + manageApplicationsPage = new ManageApplicationsPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + manageApplicationsPage = new ManageApplicationsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + manageApplicationsPage = new ManageApplicationsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + manageApplicationsPage = new ManageApplicationsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + manageApplicationsPage = new ManageApplicationsPageArabic(driver); + } + assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), + "Verify if manage Applications Page displayed"); + manageApplicationsPage.enterAID(Aid); + + assertTrue(manageApplicationsPage.isSearchAIDDisplayed(Aid), "Verify if Search Aid should displayed"); + assertTrue(manageApplicationsPage.isPacketApproved(Aid), + "Verify if packet is approved after approve in pending approval"); + + manageApplicationsPage.clickOnSearchCheckBox(); + manageApplicationsPage.clickOnUploadButton(); + + // assertTrue(manageApplicationsPage.isPacketUploadDone(Aid), "Verify if packet + // upload is done"); + manageApplicationsPage.clickOnBackButton(); + + assertTrue(registrationTasksPage.isProfileTitleDisplayed(), "Verify if profile title display on homepage"); + registrationTasksPage.clickProfileButton(); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + profilePage = new ProfilePageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + profilePage = new ProfilePageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + profilePage = new ProfilePageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + profilePage = new ProfilePageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + profilePage = new ProfilePageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + profilePage = new ProfilePageArabic(driver); + } + // assertTrue(profilePage.isProfileTitleDisplayed(),"Verify if profile title + // display on Profilepage"); + profilePage.clickOnLogoutButton(); + + profilePage.clickOnLogoutButton(); + + assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayeded in Selected language"); + + } + +} diff --git a/ui-test/src/main/java/regclient/androidTestCases/logintest.java b/ui-test/src/main/java/regclient/androidTestCases/logintest.java index ef6a3713d..7cf2833d8 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/logintest.java +++ b/ui-test/src/main/java/regclient/androidTestCases/logintest.java @@ -68,123 +68,118 @@ import regclient.pages.tamil.SupervisorBiometricVerificationpageTamil; import regclient.pages.tamil.UpdateOperatorBiometricspageTamil; import regclient.utils.TestDataReader; + @Test -public class logintest extends AndroidBaseTest { +public class logintest extends AndroidBaseTest { - @Test(priority=0) + @Test(priority = 0) public void ALoginTest() { BasePage.disableAutoRotation(); - LoginPage loginPage=null; - OperationalTaskPage operationalTaskPage=null; - RegistrationTasksPage registrationTasksPage=null; - DashboardPage dashboardPage=null; - ProfilePage profilePage=null; + LoginPage loginPage = null; + OperationalTaskPage operationalTaskPage = null; + RegistrationTasksPage registrationTasksPage = null; + DashboardPage dashboardPage = null; + ProfilePage profilePage = null; - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { loginPage = new LoginPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { loginPage = new LoginPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { loginPage = new LoginPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { loginPage = new LoginPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { loginPage = new LoginPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { loginPage = new LoginPageArabic(driver); } loginPage.selectLanguage(); - assertTrue(loginPage.isLoginPageLoaded(),"verify if login page is displayeded"); - assertTrue(loginPage.isMosipLogoDisplayed(),"verify if mosip logo is displayeded"); - assertTrue(loginPage.isWelcomeMessageInSelectedLanguageDisplayed(),"Verify if welcome note \"welcome to community registration client!\" message should be displayeded."); - //assertTrue(loginPage.isHelpButtonDisplayed(),"Verify if check help button on the top right of the page"); + assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayeded"); + assertTrue(loginPage.isMosipLogoDisplayed(), "verify if mosip logo is displayeded"); + assertTrue(loginPage.isWelcomeMessageInSelectedLanguageDisplayed(), + "Verify if welcome note \"welcome to community registration client!\" message should be displayeded."); + // assertTrue(loginPage.isHelpButtonDisplayed(),"Verify if check help button on + // the top right of the page"); loginPage.enterUserName(KeycloakUserManager.onboardUser); - assertTrue(loginPage.isNextButtonEnabled(),"verify if the next button enabled"); + assertTrue(loginPage.isNextButtonEnabled(), "verify if the next button enabled"); loginPage.clickOnNextButton(); - assertTrue(loginPage.isUserNotFoundErrorMessageDisplayed(),"verify if error message should be displayeded as “user not found”"); + assertTrue(loginPage.isUserNotFoundErrorMessageDisplayed(), + "verify if error message should be displayeded as “user not found”"); loginPage.enterUserName(KeycloakUserManager.moduleSpecificUser); - assertTrue(loginPage.isNextButtonEnabled(),"verify if the next button enabled"); + assertTrue(loginPage.isNextButtonEnabled(), "verify if the next button enabled"); loginPage.clickOnNextButton(); - //assertFalse(loginPage.isLoginButtonEnabled(),"verify if the login button is disable without entering password"); + // assertFalse(loginPage.isLoginButtonEnabled(),"verify if the login button is + // disable without entering password"); assertTrue(loginPage.isBackButtonDisplayed(), "Verify if back button is displayed"); - //assertTrue(loginPage.isForgetOptionDisplayed(), "Verify if forget password option is displayed"); + // assertTrue(loginPage.isForgetOptionDisplayed(), "Verify if forget password + // option is displayed"); assertTrue(loginPage.isPasswordHeaderDisplayed(), "Verify if the password input box header displayed"); - - loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()+"123"); - assertTrue(loginPage.isLoginButtonEnabled(),"Verify if the login button enabled"); + loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword() + "123"); + assertTrue(loginPage.isLoginButtonEnabled(), "Verify if the login button enabled"); loginPage.clickOnloginButton(); - assertTrue(loginPage.isPasswordIncorrectErrorMessageDisplayed(),"verify if error message should be displayeded as password incorrect!"); + assertTrue(loginPage.isPasswordIncorrectErrorMessageDisplayed(), + "verify if error message should be displayeded as password incorrect!"); loginPage.clickOnBackButton(); - assertTrue(loginPage.isUserNameHeaderDisplayed(),"Verify if the username input box header displayed"); + assertTrue(loginPage.isUserNameHeaderDisplayed(), "Verify if the username input box header displayed"); loginPage.enterUserName(KeycloakUserManager.moduleSpecificUser); - assertTrue(loginPage.isNextButtonEnabled(),"verify if the next button enabled"); + assertTrue(loginPage.isNextButtonEnabled(), "verify if the next button enabled"); loginPage.clickOnNextButton(); loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); - assertTrue(loginPage.isLoginButtonEnabled(),"Verify if the login button enabled"); + assertTrue(loginPage.isLoginButtonEnabled(), "Verify if the login button enabled"); loginPage.clickOnloginButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - registrationTasksPage=new RegistrationTasksPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - registrationTasksPage=new RegistrationTasksPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - registrationTasksPage=new RegistrationTasksPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - registrationTasksPage=new RegistrationTasksPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - registrationTasksPage=new RegistrationTasksPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - registrationTasksPage=new RegistrationTasksPageArabic(driver); - } - assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); - // assertTrue(registrationTasksPage.isUpdateUINTitleDisplayed(), "Verify if update uin title display"); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + registrationTasksPage = new RegistrationTasksPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + registrationTasksPage = new RegistrationTasksPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + registrationTasksPage = new RegistrationTasksPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + registrationTasksPage = new RegistrationTasksPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + registrationTasksPage = new RegistrationTasksPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + registrationTasksPage = new RegistrationTasksPageArabic(driver); + } + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + // assertTrue(registrationTasksPage.isUpdateUINTitleDisplayed(), "Verify if + // update uin title display"); // - // assertTrue(registrationTasksPage.isLostUINTitleDisplayed(), "Verify if lost uin title display"); - // assertTrue(registrationTasksPage.isBiometricCorrectionTitleDisplayed(), "Verify if biometric correction title display "); - - registrationTasksPage.clickOnOperationalTasksTitle(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - operationalTaskPage=new OperationalTaskPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - operationalTaskPage=new OperationalTaskPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - operationalTaskPage=new OperationalTaskPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - operationalTaskPage=new OperationalTaskPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - operationalTaskPage=new OperationalTaskPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - operationalTaskPage=new OperationalTaskPageArabic(driver); + // assertTrue(registrationTasksPage.isLostUINTitleDisplayed(), "Verify if lost + // uin title display"); + // assertTrue(registrationTasksPage.isBiometricCorrectionTitleDisplayed(), + // "Verify if biometric correction title display "); + + registrationTasksPage.clickOnOperationalTasksTitle(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + operationalTaskPage = new OperationalTaskPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + operationalTaskPage = new OperationalTaskPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + operationalTaskPage = new OperationalTaskPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + operationalTaskPage = new OperationalTaskPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + operationalTaskPage = new OperationalTaskPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + operationalTaskPage = new OperationalTaskPageArabic(driver); } assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); @@ -193,290 +188,298 @@ else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ registrationTasksPage.clickOnDashboardButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - dashboardPage=new DashboardPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - dashboardPage=new DashboardPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - dashboardPage=new DashboardPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - dashboardPage=new DashboardPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - dashboardPage=new DashboardPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - dashboardPage=new DashboardPageArabic(driver); - } - - assertTrue(dashboardPage.isDashboardTitleDisplayed(),"Verify if dashboard page is loaded"); - assertTrue(dashboardPage.isPacketsUploadedValueDisplayed(),"Verify if packet uploaded value displayed"); - assertTrue(dashboardPage.isPacketsSyncedValueDisplayed(),"Verify if packet synced value displayed"); - assertTrue(dashboardPage.isUserIDDisplayed(),"Verify if user ID displayed"); - assertTrue(dashboardPage.isUserNameDisplayed(),"Verify if user name displayed"); - assertTrue(dashboardPage.isStatusTitleDisplayed(),"Verify if status displayed"); - - assertTrue(registrationTasksPage.isProfileTitleDisplayed(),"Verify if profile title display on homepage"); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + dashboardPage = new DashboardPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + dashboardPage = new DashboardPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + dashboardPage = new DashboardPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + dashboardPage = new DashboardPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + dashboardPage = new DashboardPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + dashboardPage = new DashboardPageArabic(driver); + } + + assertTrue(dashboardPage.isDashboardTitleDisplayed(), "Verify if dashboard page is loaded"); + assertTrue(dashboardPage.isPacketsUploadedValueDisplayed(), "Verify if packet uploaded value displayed"); + assertTrue(dashboardPage.isPacketsSyncedValueDisplayed(), "Verify if packet synced value displayed"); + assertTrue(dashboardPage.isUserIDDisplayed(), "Verify if user ID displayed"); + assertTrue(dashboardPage.isUserNameDisplayed(), "Verify if user name displayed"); + assertTrue(dashboardPage.isStatusTitleDisplayed(), "Verify if status displayed"); + + assertTrue(registrationTasksPage.isProfileTitleDisplayed(), "Verify if profile title display on homepage"); registrationTasksPage.clickProfileButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - profilePage=new ProfilePageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - profilePage=new ProfilePageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - profilePage=new ProfilePageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - profilePage=new ProfilePageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - profilePage=new ProfilePageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - profilePage=new ProfilePageArabic(driver); - } - // assertTrue(profilePage.isProfileTitleDisplayed(),"Verify if profile title display on Profilepage"); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + profilePage = new ProfilePageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + profilePage = new ProfilePageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + profilePage = new ProfilePageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + profilePage = new ProfilePageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + profilePage = new ProfilePageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + profilePage = new ProfilePageArabic(driver); + } + // assertTrue(profilePage.isProfileTitleDisplayed(),"Verify if profile title + // display on Profilepage"); profilePage.clickOnLogoutButton(); profilePage.clickOnLogoutButton(); - assertTrue(loginPage.isLoginPageLoaded(),"verify if login page is displayeded in Selected language"); - - } - - @Test(priority=1) - public void OnBoardTest() { - BasePage.disableAutoRotation(); - LoginPage loginPage=null; - OnBoardPage onBoardPage=null; - SupervisorBiometricVerificationpage supervisorBiometricVerificationpage=null; - - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - loginPage = new LoginPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - loginPage = new LoginPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - loginPage = new LoginPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - loginPage = new LoginPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - loginPage = new LoginPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - loginPage = new LoginPageArabic(driver); - } - loginPage.selectLanguage(); - - assertTrue(loginPage.isWelcomeMessageInSelectedLanguageDisplayed(), "verify if the welcome msg in selected language displayed"); - loginPage.enterUserName(KeycloakUserManager.onboardUser); - - assertTrue(loginPage.isNextButtonEnabled(), "verify if the next button enabled"); - loginPage.clickOnNextButton(); - - assertTrue(loginPage.isBackButtonDisplayed(), "Verify if back button is displayed"); - assertTrue(loginPage.isForgetOptionDisplayed(), "Verify if forget password option is displayed"); - assertTrue(loginPage.isPasswordHeaderDisplayed(), "Verify if the password input box header displayed"); - loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); - - assertTrue(loginPage.isLoginButtonEnabled(), "Verify if the login button enabled"); - loginPage.clickOnloginButton(); - - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - onBoardPage=new OnBoardPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - onBoardPage=new OnBoardPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - onBoardPage=new OnBoardPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - onBoardPage=new OnBoardPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - onBoardPage=new OnBoardPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - onBoardPage=new OnBoardPageArabic(driver); - } - assertTrue(onBoardPage.isGetOnBoardTitleDisplayed(), "Verify if on board page is loaded"); - //assertTrue(onBoardPage.isHelpButtonDisplayed(), "Verify if help button is displayed"); - assertTrue(onBoardPage.isOnBoardWelcomeMessageDisplayed(), "Verify if on board page hello message is loaded"); - onBoardPage.clickOnGetOnBoardTitle(); - - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - supervisorBiometricVerificationpage=new SupervisorBiometricVerificationpageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - supervisorBiometricVerificationpage=new SupervisorBiometricVerificationpageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - supervisorBiometricVerificationpage=new SupervisorBiometricVerificationpageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - supervisorBiometricVerificationpage=new SupervisorBiometricVerificationpageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - supervisorBiometricVerificationpage=new SupervisorBiometricVerificationpageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - supervisorBiometricVerificationpage=new SupervisorBiometricVerificationpageArabic(driver); - } - assertTrue(supervisorBiometricVerificationpage.isSupervisorBiometricVerificationPageLoaded(), "Verify if operational tasks page is loaded"); - if(FetchUiSpec.eye.equals("yes")) { - supervisorBiometricVerificationpage.clickOnIrisScan();; - - supervisorBiometricVerificationpage.clickOnMarkExceptionButton(); - - assertTrue(supervisorBiometricVerificationpage.isExceptionTypeTitleDisplyed(),"Verify if mark exception is displayed"); - supervisorBiometricVerificationpage.markOneEyeException(); - - supervisorBiometricVerificationpage.clickOnExceptionTypeTemporaryButton(); - assertTrue(supervisorBiometricVerificationpage.isCommentHeaderDisplyed(),"Verify if Comments header is displayed"); - - supervisorBiometricVerificationpage.clickOnIrisScanTitle(); - supervisorBiometricVerificationpage.clickOnScanButton(); - - assertTrue(supervisorBiometricVerificationpage.isIrisScan(),"Verify if iris scan 1st attempt"); - supervisorBiometricVerificationpage.closeScanCapturePopUp(); - - assertTrue(supervisorBiometricVerificationpage.isIrisScanQualityDisplyed(),"Verify if iris scan threshold , Quality displayed"); - assertTrue(supervisorBiometricVerificationpage.checkThresholdValueIris(),"Verify if biometric score exceeds/meets the threshold for iris"); - - supervisorBiometricVerificationpage.clickOnBackButton(); - } - //righthand - if(FetchUiSpec.rightHand.equals("yes")) { - supervisorBiometricVerificationpage.clickOnRightHandScanIcon(); - - assertTrue(supervisorBiometricVerificationpage.isRightHandScanTitleDisplyed(),"Verify if applicant right hand scan is displayed"); - supervisorBiometricVerificationpage.clickOnMarkExceptionButton(); - - assertTrue(supervisorBiometricVerificationpage.isZoomButtonDisplyed(),"Verify if zoom button is displayed"); - supervisorBiometricVerificationpage.clickOnRightHandScanTitle(); - supervisorBiometricVerificationpage.clickOnScanButton(); - - assertTrue(supervisorBiometricVerificationpage.isRightHandScan(),"Verify if right hand scan 1st attempt"); - supervisorBiometricVerificationpage.closeScanCapturePopUp(); - - assertTrue(supervisorBiometricVerificationpage.isRightHandScanQualityDisplyed(),"Verify if right hand scan threshold , Quality displayed"); - assertTrue(supervisorBiometricVerificationpage.checkThresholdValueRightHand(),"Verify if biometric score exceeds/meets the threshold for right hand"); - - supervisorBiometricVerificationpage.clickOnBackButton(); - } - //lefthand - if(FetchUiSpec.leftHand.equals("yes")) { - supervisorBiometricVerificationpage.clickOnLeftHandScanIcon(); - assertTrue(supervisorBiometricVerificationpage.isLeftHandScanTitleDisplyed(),"Verify if applicant right hand scan is displayed"); - supervisorBiometricVerificationpage.clickOnMarkExceptionButton(); - - assertTrue(supervisorBiometricVerificationpage.isZoomButtonDisplyed(),"Verify if zoom button is displayed"); - supervisorBiometricVerificationpage.clickOnleftHandScanTitle(); - supervisorBiometricVerificationpage.clickOnScanButton(); - - assertTrue(supervisorBiometricVerificationpage.isLeftHandScan(),"Verify if Left hand scan 1st attempt"); - supervisorBiometricVerificationpage.closeScanCapturePopUp(); - - assertTrue(supervisorBiometricVerificationpage.isLeftHandScanQualityDisplyed(),"Verify if left hand scan threshold , Quality displayed"); - assertTrue(supervisorBiometricVerificationpage.checkThresholdValueLeftHand(),"Verify if biometric score exceeds/meets the threshold for left hand"); - - supervisorBiometricVerificationpage.clickOnBackButton(); - } - //thumbs - if(FetchUiSpec.thumb.equals("yes")) { - supervisorBiometricVerificationpage.clickOnThumbsScanIcon(); - assertTrue(supervisorBiometricVerificationpage.isThumbsScanTitleDisplyed(),"Verify if thumbs scan page is displayed"); - supervisorBiometricVerificationpage.clickOnMarkExceptionButton(); - - assertTrue(supervisorBiometricVerificationpage.isExceptionTypeTitleDisplyed(),"Verify if applicant biometric mark exception is displayed"); - supervisorBiometricVerificationpage.markOneFingureException(); - - // assertFalse(supervisorBiometricVerificationpage.isZoomButtonDisplyed(),"Verify if zoom button is not displayed for thumb"); -// supervisorBiometricVerificationpage.clickOnExceptionTypeTemporaryButton(); -// -// assertTrue(supervisorBiometricVerificationpage.isCommentHeaderDisplyed(),"Verify if Comments header is displayed"); - // supervisorBiometricVerificationpage.enterCommentsInTextBox(TestDataReader.readData("comments")); - - supervisorBiometricVerificationpage.clickOnThumbsScanTitle(); - supervisorBiometricVerificationpage.clickOnScanButton(); - - assertTrue(supervisorBiometricVerificationpage.isThumbsScan(),"Verify if thumbs scan 1st attempt"); - supervisorBiometricVerificationpage.closeScanCapturePopUp(); - - assertTrue(supervisorBiometricVerificationpage.isThumbsScanQualityDisplyed(),"Verify if thumbs scan threshold , Quality displayed"); - assertTrue(supervisorBiometricVerificationpage.checkThresholdValueThumbs(),"Verify if biometric score exceeds/meets the threshold for thumbs"); - //menu - - supervisorBiometricVerificationpage.clickOnBackButton(); - } - if(FetchUiSpec.face.equals("yes")) { - supervisorBiometricVerificationpage.clickOnFaceScanIcon(); - - //face - assertTrue(supervisorBiometricVerificationpage.isFaceScanTitleDisplyed(),"Verify if face scan page is displayed"); - supervisorBiometricVerificationpage.clickOnMarkExceptionButton(); - -// assertTrue(supervisorBiometricVerificationpage.isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed(),"Verify if is Marking Exceptions On Face Is Not Allowed Text Displyed"); - supervisorBiometricVerificationpage.clickOnFaceScanTitle(); - supervisorBiometricVerificationpage.clickOnScanButton(); - - assertTrue(supervisorBiometricVerificationpage.isFaceScan(),"Verify if face scan 1st attempt"); - supervisorBiometricVerificationpage.closeScanCapturePopUp(); - - assertTrue(supervisorBiometricVerificationpage.isFaceScanQualityDisplyed(),"Verify if face scan threshold , Quality displayed"); - assertTrue(supervisorBiometricVerificationpage.checkThresholdValueFace(),"Verify if biometric score exceeds/meets the threshold for face"); - supervisorBiometricVerificationpage.clickOnBackButton(); - } - - assertTrue(supervisorBiometricVerificationpage.isSupervisorBiometricVerificationPageLoaded(), "Verify if operational tasks page is loaded"); - assertTrue(supervisorBiometricVerificationpage.isVerifyAndSaveButtonEnabled(), "Verify if verify and save button is display and enable"); - assertFalse(supervisorBiometricVerificationpage.isExceptionScanTitleDisplyed(),"Verify if exception scan icon is displayed"); - supervisorBiometricVerificationpage.clickOnVerifyAndSaveButton(); - - assertTrue(supervisorBiometricVerificationpage.isDismissPageLoaded(),"Verify if dismiss page is displayed after click on verfiy and save button "); - assertTrue(supervisorBiometricVerificationpage.isOperatorOnboardedPopupLoaded(),"Verify if operator biometrics updated success message is displayed"); - supervisorBiometricVerificationpage.clickOnHomeButton(); + assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayeded in Selected language"); } - @Test(priority=2) + /* + * @Test(priority=1) public void OnBoardTest() { BasePage.disableAutoRotation(); + * LoginPage loginPage=null; OnBoardPage onBoardPage=null; + * SupervisorBiometricVerificationpage supervisorBiometricVerificationpage=null; + * + * if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { loginPage = + * new LoginPageEnglish(driver); } else + * if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ loginPage = + * new LoginPageHindi(driver); } else + * if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ loginPage = + * new LoginPageFrench(driver); } else + * if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ loginPage = + * new LoginPageKannada(driver); } else + * if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ loginPage = + * new LoginPageTamil(driver); } else + * if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ loginPage = + * new LoginPageArabic(driver); } loginPage.selectLanguage(); + * + * assertTrue(loginPage.isWelcomeMessageInSelectedLanguageDisplayed(), + * "verify if the welcome msg in selected language displayed"); + * loginPage.enterUserName(KeycloakUserManager.onboardUser); + * + * assertTrue(loginPage.isNextButtonEnabled(), + * "verify if the next button enabled"); loginPage.clickOnNextButton(); + * + * assertTrue(loginPage.isBackButtonDisplayed(), + * "Verify if back button is displayed"); + * assertTrue(loginPage.isForgetOptionDisplayed(), + * "Verify if forget password option is displayed"); + * assertTrue(loginPage.isPasswordHeaderDisplayed(), + * "Verify if the password input box header displayed"); + * loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); + * + * assertTrue(loginPage.isLoginButtonEnabled(), + * "Verify if the login button enabled"); loginPage.clickOnloginButton(); + * + * if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { + * onBoardPage=new OnBoardPageEnglish(driver); } else + * if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ + * onBoardPage=new OnBoardPageHindi(driver); } else + * if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ + * onBoardPage=new OnBoardPageFrench(driver); } else + * if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ + * onBoardPage=new OnBoardPageKannada(driver); } else + * if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ + * onBoardPage=new OnBoardPageTamil(driver); } else + * if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ + * onBoardPage=new OnBoardPageArabic(driver); } + * assertTrue(onBoardPage.isGetOnBoardTitleDisplayed(), + * "Verify if on board page is loaded"); + * //assertTrue(onBoardPage.isHelpButtonDisplayed(), + * "Verify if help button is displayed"); + * assertTrue(onBoardPage.isOnBoardWelcomeMessageDisplayed(), + * "Verify if on board page hello message is loaded"); + * onBoardPage.clickOnGetOnBoardTitle(); + * + * if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { + * supervisorBiometricVerificationpage=new + * SupervisorBiometricVerificationpageEnglish(driver); } else + * if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ + * supervisorBiometricVerificationpage=new + * SupervisorBiometricVerificationpageHindi(driver); } else + * if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ + * supervisorBiometricVerificationpage=new + * SupervisorBiometricVerificationpageFrench(driver); } else + * if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ + * supervisorBiometricVerificationpage=new + * SupervisorBiometricVerificationpageKannada(driver); } else + * if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ + * supervisorBiometricVerificationpage=new + * SupervisorBiometricVerificationpageTamil(driver); } else + * if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ + * supervisorBiometricVerificationpage=new + * SupervisorBiometricVerificationpageArabic(driver); } + * assertTrue(supervisorBiometricVerificationpage. + * isSupervisorBiometricVerificationPageLoaded(), + * "Verify if operational tasks page is loaded"); + * if(FetchUiSpec.eye.equals("yes")) { + * supervisorBiometricVerificationpage.clickOnIrisScan();; + * + * supervisorBiometricVerificationpage.clickOnMarkExceptionButton(); + * + * assertTrue(supervisorBiometricVerificationpage.isExceptionTypeTitleDisplyed() + * ,"Verify if mark exception is displayed"); + * supervisorBiometricVerificationpage.markOneEyeException(); + * + * // supervisorBiometricVerificationpage.clickOnExceptionTypeTemporaryButton(); + * // assertTrue(supervisorBiometricVerificationpage.isCommentHeaderDisplyed() + * ,"Verify if Comments header is displayed"); + * + * supervisorBiometricVerificationpage.clickOnIrisScanTitle(); + * supervisorBiometricVerificationpage.clickOnScanButton(); + * + * assertTrue(supervisorBiometricVerificationpage.isIrisScan() + * ,"Verify if iris scan 1st attempt"); + * supervisorBiometricVerificationpage.closeScanCapturePopUp(); + * + * assertTrue(supervisorBiometricVerificationpage.isIrisScanQualityDisplyed() + * ,"Verify if iris scan threshold , Quality displayed"); + * assertTrue(supervisorBiometricVerificationpage.checkThresholdValueIris() + * ,"Verify if biometric score exceeds/meets the threshold for iris"); + * + * supervisorBiometricVerificationpage.clickOnBackButton(); } //righthand + * if(FetchUiSpec.rightHand.equals("yes")) { + * supervisorBiometricVerificationpage.clickOnRightHandScanIcon(); + * + * assertTrue(supervisorBiometricVerificationpage.isRightHandScanTitleDisplyed() + * ,"Verify if applicant right hand scan is displayed"); + * supervisorBiometricVerificationpage.clickOnMarkExceptionButton(); + * + * assertTrue(supervisorBiometricVerificationpage.isZoomButtonDisplyed() + * ,"Verify if zoom button is displayed"); + * supervisorBiometricVerificationpage.clickOnRightHandScanTitle(); + * supervisorBiometricVerificationpage.clickOnScanButton(); + * + * assertTrue(supervisorBiometricVerificationpage.isRightHandScan() + * ,"Verify if right hand scan 1st attempt"); + * supervisorBiometricVerificationpage.closeScanCapturePopUp(); + * + * assertTrue(supervisorBiometricVerificationpage.isRightHandScanQualityDisplyed + * (),"Verify if right hand scan threshold , Quality displayed"); + * assertTrue(supervisorBiometricVerificationpage.checkThresholdValueRightHand() + * ,"Verify if biometric score exceeds/meets the threshold for right hand"); + * + * supervisorBiometricVerificationpage.clickOnBackButton(); } //lefthand + * if(FetchUiSpec.leftHand.equals("yes")) { + * supervisorBiometricVerificationpage.clickOnLeftHandScanIcon(); + * assertTrue(supervisorBiometricVerificationpage.isLeftHandScanTitleDisplyed() + * ,"Verify if applicant right hand scan is displayed"); + * supervisorBiometricVerificationpage.clickOnMarkExceptionButton(); + * + * assertTrue(supervisorBiometricVerificationpage.isZoomButtonDisplyed() + * ,"Verify if zoom button is displayed"); + * supervisorBiometricVerificationpage.clickOnleftHandScanTitle(); + * supervisorBiometricVerificationpage.clickOnScanButton(); + * + * assertTrue(supervisorBiometricVerificationpage.isLeftHandScan() + * ,"Verify if Left hand scan 1st attempt"); + * supervisorBiometricVerificationpage.closeScanCapturePopUp(); + * + * assertTrue(supervisorBiometricVerificationpage.isLeftHandScanQualityDisplyed( + * ),"Verify if left hand scan threshold , Quality displayed"); + * assertTrue(supervisorBiometricVerificationpage.checkThresholdValueLeftHand() + * ,"Verify if biometric score exceeds/meets the threshold for left hand"); + * + * supervisorBiometricVerificationpage.clickOnBackButton(); } //thumbs + * if(FetchUiSpec.thumb.equals("yes")) { + * supervisorBiometricVerificationpage.clickOnThumbsScanIcon(); + * assertTrue(supervisorBiometricVerificationpage.isThumbsScanTitleDisplyed() + * ,"Verify if thumbs scan page is displayed"); + * supervisorBiometricVerificationpage.clickOnMarkExceptionButton(); + * + * assertTrue(supervisorBiometricVerificationpage.isExceptionTypeTitleDisplyed() + * ,"Verify if applicant biometric mark exception is displayed"); + * supervisorBiometricVerificationpage.markOneFingureException(); + * + * // assertFalse(supervisorBiometricVerificationpage.isZoomButtonDisplyed() + * ,"Verify if zoom button is not displayed for thumb"); // + * supervisorBiometricVerificationpage.clickOnExceptionTypeTemporaryButton(); // + * // assertTrue(supervisorBiometricVerificationpage.isCommentHeaderDisplyed() + * ,"Verify if Comments header is displayed"); // + * supervisorBiometricVerificationpage.enterCommentsInTextBox(TestDataReader. + * readData("comments")); + * + * supervisorBiometricVerificationpage.clickOnThumbsScanTitle(); + * supervisorBiometricVerificationpage.clickOnScanButton(); + * + * assertTrue(supervisorBiometricVerificationpage.isThumbsScan() + * ,"Verify if thumbs scan 1st attempt"); + * supervisorBiometricVerificationpage.closeScanCapturePopUp(); + * + * assertTrue(supervisorBiometricVerificationpage.isThumbsScanQualityDisplyed() + * ,"Verify if thumbs scan threshold , Quality displayed"); + * assertTrue(supervisorBiometricVerificationpage.checkThresholdValueThumbs() + * ,"Verify if biometric score exceeds/meets the threshold for thumbs"); //menu + * + * supervisorBiometricVerificationpage.clickOnBackButton(); } + * if(FetchUiSpec.face.equals("yes")) { + * supervisorBiometricVerificationpage.clickOnFaceScanIcon(); + * + * //face + * assertTrue(supervisorBiometricVerificationpage.isFaceScanTitleDisplyed() + * ,"Verify if face scan page is displayed"); + * supervisorBiometricVerificationpage.clickOnMarkExceptionButton(); + * + * // assertTrue(supervisorBiometricVerificationpage. + * isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed() + * ,"Verify if is Marking Exceptions On Face Is Not Allowed Text Displyed"); + * supervisorBiometricVerificationpage.clickOnFaceScanTitle(); + * supervisorBiometricVerificationpage.clickOnScanButton(); + * + * assertTrue(supervisorBiometricVerificationpage.isFaceScan() + * ,"Verify if face scan 1st attempt"); + * supervisorBiometricVerificationpage.closeScanCapturePopUp(); + * + * assertTrue(supervisorBiometricVerificationpage.isFaceScanQualityDisplyed() + * ,"Verify if face scan threshold , Quality displayed"); + * assertTrue(supervisorBiometricVerificationpage.checkThresholdValueFace() + * ,"Verify if biometric score exceeds/meets the threshold for face"); + * supervisorBiometricVerificationpage.clickOnBackButton(); } + * + * assertTrue(supervisorBiometricVerificationpage. + * isSupervisorBiometricVerificationPageLoaded(), + * "Verify if operational tasks page is loaded"); + * assertTrue(supervisorBiometricVerificationpage.isVerifyAndSaveButtonEnabled() + * , "Verify if verify and save button is display and enable"); + * assertFalse(supervisorBiometricVerificationpage.isExceptionScanTitleDisplyed( + * ),"Verify if exception scan icon is displayed"); + * supervisorBiometricVerificationpage.clickOnVerifyAndSaveButton(); + * + * assertTrue(supervisorBiometricVerificationpage.isDismissPageLoaded() + * ,"Verify if dismiss page is displayed after click on verfiy and save button " + * ); + * assertTrue(supervisorBiometricVerificationpage.isOperatorOnboardedPopupLoaded + * (),"Verify if operator biometrics updated success message is displayed"); + * supervisorBiometricVerificationpage.clickOnHomeButton(); + * + * + * } + */ + @Test(priority = 2) public void updateOperatorBiometrics() { BasePage.disableAutoRotation(); - LoginPage loginPage=null; - OperationalTaskPage operationalTaskPage=null; - RegistrationTasksPage registrationTasksPage=null; - UpdateOperatorBiometricspage UpdateOperatorBiometricspage=null; + LoginPage loginPage = null; + OperationalTaskPage operationalTaskPage = null; + RegistrationTasksPage registrationTasksPage = null; + UpdateOperatorBiometricspage UpdateOperatorBiometricspage = null; - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { loginPage = new LoginPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { loginPage = new LoginPageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { loginPage = new LoginPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { loginPage = new LoginPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { loginPage = new LoginPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { loginPage = new LoginPageArabic(driver); } loginPage.selectLanguage(); - assertTrue(loginPage.isWelcomeMessageInSelectedLanguageDisplayed(), "verify if the welcome msg in selected language displayed"); + assertTrue(loginPage.isWelcomeMessageInSelectedLanguageDisplayed(), + "verify if the welcome msg in selected language displayed"); loginPage.enterUserName(KeycloakUserManager.moduleSpecificUser); assertTrue(loginPage.isNextButtonEnabled(), "verify if the next button enabled"); @@ -490,203 +493,193 @@ else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ assertTrue(loginPage.isLoginButtonEnabled(), "Verify if the login button enabled"); loginPage.clickOnloginButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - registrationTasksPage=new RegistrationTasksPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - registrationTasksPage=new RegistrationTasksPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - registrationTasksPage=new RegistrationTasksPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - registrationTasksPage=new RegistrationTasksPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - registrationTasksPage=new RegistrationTasksPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - registrationTasksPage=new RegistrationTasksPageArabic(driver); - } - assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); - - registrationTasksPage.clickOnOperationalTasksTitle(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - operationalTaskPage=new OperationalTaskPageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - operationalTaskPage=new OperationalTaskPageHindi(driver); - - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - operationalTaskPage=new OperationalTaskPageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - operationalTaskPage=new OperationalTaskPageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - operationalTaskPage=new OperationalTaskPageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - operationalTaskPage=new OperationalTaskPageArabic(driver); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + registrationTasksPage = new RegistrationTasksPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + registrationTasksPage = new RegistrationTasksPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + registrationTasksPage = new RegistrationTasksPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + registrationTasksPage = new RegistrationTasksPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + registrationTasksPage = new RegistrationTasksPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + registrationTasksPage = new RegistrationTasksPageArabic(driver); + } + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + + registrationTasksPage.clickOnOperationalTasksTitle(); + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + operationalTaskPage = new OperationalTaskPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + operationalTaskPage = new OperationalTaskPageHindi(driver); + + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + operationalTaskPage = new OperationalTaskPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + operationalTaskPage = new OperationalTaskPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + operationalTaskPage = new OperationalTaskPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + operationalTaskPage = new OperationalTaskPageArabic(driver); } assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); operationalTaskPage.clickOnUpdateOperatorBiometricsButton(); - if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - UpdateOperatorBiometricspage=new UpdateOperatorBiometricspageEnglish(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - UpdateOperatorBiometricspage=new UpdateOperatorBiometricspageHindi(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - UpdateOperatorBiometricspage=new UpdateOperatorBiometricspageFrench(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - UpdateOperatorBiometricspage=new UpdateOperatorBiometricspageKannada(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - UpdateOperatorBiometricspage=new UpdateOperatorBiometricspageTamil(driver); - } - else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - UpdateOperatorBiometricspage=new UpdateOperatorBiometricspageArabic(driver); - } - assertTrue(UpdateOperatorBiometricspage.isSupervisorBiometricUpdatePageLoaded(), "Verify if supervisor biometric update page is loaded"); - if(FetchUiSpec.eye.equals("yes")) { + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + UpdateOperatorBiometricspage = new UpdateOperatorBiometricspageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + UpdateOperatorBiometricspage = new UpdateOperatorBiometricspageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + UpdateOperatorBiometricspage = new UpdateOperatorBiometricspageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + UpdateOperatorBiometricspage = new UpdateOperatorBiometricspageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + UpdateOperatorBiometricspage = new UpdateOperatorBiometricspageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + UpdateOperatorBiometricspage = new UpdateOperatorBiometricspageArabic(driver); + } + assertTrue(UpdateOperatorBiometricspage.isUpdateOperatorBiometricsPageLoaded(), + "Verify if update operator biometric page is loaded"); + if (FetchUiSpec.eye.equals("yes")) { UpdateOperatorBiometricspage.clickOnIrisScan(); UpdateOperatorBiometricspage.clickOnMarkExceptionButton(); - assertTrue(UpdateOperatorBiometricspage.isExceptionTypeTitleDisplyed(),"Verify if mark exception is displayed"); + assertTrue(UpdateOperatorBiometricspage.isExceptionTypeTitleDisplyed(), + "Verify if mark exception is displayed"); UpdateOperatorBiometricspage.markOneEyeException(); - UpdateOperatorBiometricspage.clickOnExceptionTypeTemporaryButton(); - - assertTrue(UpdateOperatorBiometricspage.isCommentHeaderDisplyed(),"Verify if Comments header is displayed"); +// UpdateOperatorBiometricspage.clickOnExceptionTypeTemporaryButton(); +// assertTrue(UpdateOperatorBiometricspage.isCommentHeaderDisplyed(),"Verify if Comments header is displayed"); UpdateOperatorBiometricspage.clickOnIrisScanTitle(); UpdateOperatorBiometricspage.clickOnScanButton(); - assertTrue(UpdateOperatorBiometricspage.isIrisScan(),"Verify if iris scan 1st attempt"); + assertTrue(UpdateOperatorBiometricspage.isIrisScan(), "Verify if iris scan 1st attempt"); UpdateOperatorBiometricspage.closeScanCapturePopUp(); - assertTrue(UpdateOperatorBiometricspage.isIrisScanQualityDisplyed(),"Verify if iris scan threshold , Quality displayed"); - assertTrue(UpdateOperatorBiometricspage.checkThresholdValueIris(),"Verify if biometric score exceeds/meets the threshold for iris"); + assertTrue(UpdateOperatorBiometricspage.isIrisScanQualityDisplyed(), + "Verify if iris scan threshold , Quality displayed"); + assertTrue(UpdateOperatorBiometricspage.checkThresholdValueIris(), + "Verify if biometric score exceeds/meets the threshold for iris"); UpdateOperatorBiometricspage.clickOnBackButton(); } - if(FetchUiSpec.rightHand.equals("yes")) { + if (FetchUiSpec.rightHand.equals("yes")) { UpdateOperatorBiometricspage.clickOnRightHandScanIcon(); - //righthand - assertTrue(UpdateOperatorBiometricspage.isRightHandScanTitleDisplyed(),"Verify if applicant right hand scan is displayed"); + // righthand + assertTrue(UpdateOperatorBiometricspage.isRightHandScanTitleDisplyed(), + "Verify if applicant right hand scan is displayed"); UpdateOperatorBiometricspage.clickOnMarkExceptionButton(); // assertTrue(UpdateOperatorBiometricspage.isZoomButtonDisplyed(),"Verify if zoom button is displayed"); UpdateOperatorBiometricspage.clickOnRightHandScanTitle(); UpdateOperatorBiometricspage.clickOnScanButton(); - assertTrue(UpdateOperatorBiometricspage.isRightHandScan(),"Verify if right hand scan 1st attempt"); + assertTrue(UpdateOperatorBiometricspage.isRightHandScan(), "Verify if right hand scan 1st attempt"); UpdateOperatorBiometricspage.closeScanCapturePopUp(); - assertTrue(UpdateOperatorBiometricspage.isRightHandScanQualityDisplyed(),"Verify if right hand scan threshold , Quality displayed"); - assertTrue(UpdateOperatorBiometricspage.checkThresholdValueRightHand(),"Verify if biometric score exceeds/meets the threshold for right hand"); + assertTrue(UpdateOperatorBiometricspage.isRightHandScanQualityDisplyed(), + "Verify if right hand scan threshold , Quality displayed"); + assertTrue(UpdateOperatorBiometricspage.checkThresholdValueRightHand(), + "Verify if biometric score exceeds/meets the threshold for right hand"); UpdateOperatorBiometricspage.clickOnBackButton(); } - //lefthand - if(FetchUiSpec.leftHand.equals("yes")) { + // lefthand + if (FetchUiSpec.leftHand.equals("yes")) { UpdateOperatorBiometricspage.clickOnLeftHandScanIcon(); - assertTrue(UpdateOperatorBiometricspage.isLeftHandScanTitleDisplyed(),"Verify if applicant right hand scan is displayed"); + assertTrue(UpdateOperatorBiometricspage.isLeftHandScanTitleDisplyed(), + "Verify if applicant right hand scan is displayed"); UpdateOperatorBiometricspage.clickOnMarkExceptionButton(); - assertTrue(UpdateOperatorBiometricspage.isZoomButtonDisplyed(),"Verify if zoom button is displayed"); + assertTrue(UpdateOperatorBiometricspage.isZoomButtonDisplyed(), "Verify if zoom button is displayed"); UpdateOperatorBiometricspage.clickOnLeftHandScanTitle(); UpdateOperatorBiometricspage.clickOnScanButton(); - assertTrue(UpdateOperatorBiometricspage.isLeftHandScan(),"Verify if Left hand scan 1st attempt"); + assertTrue(UpdateOperatorBiometricspage.isLeftHandScan(), "Verify if Left hand scan 1st attempt"); UpdateOperatorBiometricspage.closeScanCapturePopUp(); - assertTrue(UpdateOperatorBiometricspage.isLeftHandScanQualityDisplyed(),"Verify if left hand scan threshold , Quality displayed"); - assertTrue(UpdateOperatorBiometricspage.checkThresholdValueLeftHand(),"Verify if biometric score exceeds/meets the threshold for left hand"); + assertTrue(UpdateOperatorBiometricspage.isLeftHandScanQualityDisplyed(), + "Verify if left hand scan threshold , Quality displayed"); + assertTrue(UpdateOperatorBiometricspage.checkThresholdValueLeftHand(), + "Verify if biometric score exceeds/meets the threshold for left hand"); UpdateOperatorBiometricspage.clickOnBackButton(); } - //thumbs - if(FetchUiSpec.thumb.equals("yes")) { + // thumbs + if (FetchUiSpec.thumb.equals("yes")) { UpdateOperatorBiometricspage.clickOnThumbsScanIcon(); - assertTrue(UpdateOperatorBiometricspage.isThumbsScanTitleDisplyed(),"Verify if thumbs scan page is displayed"); + assertTrue(UpdateOperatorBiometricspage.isThumbsScanTitleDisplyed(), + "Verify if thumbs scan page is displayed"); UpdateOperatorBiometricspage.clickOnMarkExceptionButton(); - assertTrue(UpdateOperatorBiometricspage.isExceptionTypeTitleDisplyed(),"Verify if applicant biometric mark exception is displayed"); + assertTrue(UpdateOperatorBiometricspage.isExceptionTypeTitleDisplyed(), + "Verify if applicant biometric mark exception is displayed"); UpdateOperatorBiometricspage.markOneFingureException(); - // assertFalse(UpdateOperatorBiometricspage.isZoomButtonDisplyed(),"Verify if zoom button is not displayed for thumb"); + // assertFalse(UpdateOperatorBiometricspage.isZoomButtonDisplyed(),"Verify if + // zoom button is not displayed for thumb"); // UpdateOperatorBiometricspage.clickOnExceptionTypeTemporaryButton(); // assertTrue(UpdateOperatorBiometricspage.isCommentHeaderDisplyed(),"Verify if Comments header is displayed"); - // UpdateOperatorBiometricspage.enterCommentsInTextBox(TestDataReader.readData("comments")); + // UpdateOperatorBiometricspage.enterCommentsInTextBox(TestDataReader.readData("comments")); UpdateOperatorBiometricspage.clickOnThumbsScanTitle(); UpdateOperatorBiometricspage.clickOnScanButton(); - assertTrue(UpdateOperatorBiometricspage.isThumbsScan(),"Verify if thumbs scan 1st attempt"); - UpdateOperatorBiometricspage.closeScanCapturePopUp(); - - UpdateOperatorBiometricspage.clickOnScanButton(); - - assertTrue(UpdateOperatorBiometricspage.isThumbsScan(),"Verify if thumbs scan 2nd attempt"); - UpdateOperatorBiometricspage.closeScanCapturePopUp(); - - UpdateOperatorBiometricspage.clickOnScanButton(); - - assertTrue(UpdateOperatorBiometricspage.isThumbsScan(),"Verify if thumbs scan 3rd attempt"); + assertTrue(UpdateOperatorBiometricspage.isThumbsScan(), "Verify if thumbs scan 1st attempt"); UpdateOperatorBiometricspage.closeScanCapturePopUp(); UpdateOperatorBiometricspage.clickOnScanButton(); - - assertTrue(UpdateOperatorBiometricspage.isThumbsScan(),"Verify if thumbs scan 4th attempt"); + assertTrue(UpdateOperatorBiometricspage.isThumbsScan(), "Verify if thumbs scan 2nd attempt"); UpdateOperatorBiometricspage.closeScanCapturePopUp(); - - UpdateOperatorBiometricspage.clickOnScanButton(); - - assertTrue(UpdateOperatorBiometricspage.isThumbsScan(),"Verify if thumbs scan 5th attempt"); - UpdateOperatorBiometricspage.closeScanCapturePopUp(); - - assertTrue(UpdateOperatorBiometricspage.isThumbsScanQualityDisplyed(),"Verify if thumbs scan threshold , Quality displayed"); - assertTrue(UpdateOperatorBiometricspage.checkThresholdValueThumbs(),"Verify if biometric score exceeds/meets the threshold for thumbs"); + assertTrue(UpdateOperatorBiometricspage.isThumbsScanQualityDisplyed(), + "Verify if thumbs scan threshold , Quality displayed"); + assertTrue(UpdateOperatorBiometricspage.checkThresholdValueThumbs(), + "Verify if biometric score exceeds/meets the threshold for thumbs"); UpdateOperatorBiometricspage.clickOnBackButton(); } - //face - if(FetchUiSpec.face.equals("yes")) { + // face + if (FetchUiSpec.face.equals("yes")) { UpdateOperatorBiometricspage.clickOnFaceScanIcon(); - assertTrue(UpdateOperatorBiometricspage.isFaceScanTitleDisplyed(),"Verify if face scan page is displayed"); + assertTrue(UpdateOperatorBiometricspage.isFaceScanTitleDisplyed(), "Verify if face scan page is displayed"); UpdateOperatorBiometricspage.clickOnMarkExceptionButton(); // assertTrue(UpdateOperatorBiometricspage.isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed(),"Verify if is Marking Exceptions On Face Is Not Allowed Text Displyed"); UpdateOperatorBiometricspage.clickOnFaceScanTitle(); UpdateOperatorBiometricspage.clickOnScanButton(); - assertTrue(UpdateOperatorBiometricspage.isFaceScan(),"Verify if face scan 1st attempt"); + assertTrue(UpdateOperatorBiometricspage.isFaceScan(), "Verify if face scan 1st attempt"); UpdateOperatorBiometricspage.closeScanCapturePopUp(); - assertTrue(UpdateOperatorBiometricspage.isFaceScanQualityDisplyed(),"Verify if face scan threshold , Quality displayed"); - assertTrue(UpdateOperatorBiometricspage.checkThresholdValueFace(),"Verify if biometric score exceeds/meets the threshold for face"); + assertTrue(UpdateOperatorBiometricspage.isFaceScanQualityDisplyed(), + "Verify if face scan threshold , Quality displayed"); + assertTrue(UpdateOperatorBiometricspage.checkThresholdValueFace(), + "Verify if biometric score exceeds/meets the threshold for face"); UpdateOperatorBiometricspage.clickOnNextButton(); } - assertTrue(UpdateOperatorBiometricspage.isSupervisorBiometricUpdatePageLoaded(), "Verify if supervisor biometric update page is loaded"); - assertTrue(UpdateOperatorBiometricspage.isVerifyAndSaveButtonEnabled(), "Verify if verify and save button is display and enable"); + assertTrue(UpdateOperatorBiometricspage.isUpdateOperatorBiometricsPageLoaded(), + "Verify if supervisor biometric update page is loaded"); + assertTrue(UpdateOperatorBiometricspage.isVerifyAndSaveButtonEnabled(), + "Verify if verify and save button is display and enable"); UpdateOperatorBiometricspage.clickOnVerifyAndSaveButton(); - assertTrue(UpdateOperatorBiometricspage.isDismissPageLoaded(),"Verify if dismiss page is displayed after click on verfiy and save button "); - assertTrue(UpdateOperatorBiometricspage.isOperatorBiometricsUpdatedPopupLoaded(),"Verify if operator biometrics updated success message is displayed"); + assertTrue(UpdateOperatorBiometricspage.isDismissPageLoaded(), + "Verify if dismiss page is displayed after click on verfiy and save button "); + assertTrue(UpdateOperatorBiometricspage.isOperatorBiometricsUpdatedPopupLoaded(), + "Verify if operator biometrics updated success message is displayed"); UpdateOperatorBiometricspage.clickOnHomeButton(); assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); } + } diff --git a/ui-test/src/main/java/regclient/api/AdminTestUtil.java b/ui-test/src/main/java/regclient/api/AdminTestUtil.java index 3dacfd6b7..7a185f477 100644 --- a/ui-test/src/main/java/regclient/api/AdminTestUtil.java +++ b/ui-test/src/main/java/regclient/api/AdminTestUtil.java @@ -12,6 +12,8 @@ import javax.ws.rs.core.MediaType; import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.Arrays; import java.util.Date; import java.util.HashMap; @@ -28,10 +30,11 @@ public class AdminTestUtil extends BaseTestCase { public static boolean initialized = false; private static String zoneMappingRequest = "/config/Authorization/zoneMappingRequest.json"; - public static String getmachinespecificationsID(String role){ - String machineDetails= RestClient.getRequestWithCookie(ApplnURI + "/v1/masterdata/machinespecifications/all", MediaType.APPLICATION_JSON, - MediaType.APPLICATION_JSON, COOKIENAME, - new KernelAuthentication().getTokenByRole(role)).asString(); + public static String getmachinespecificationsID(String role) { + String machineDetails = RestClient + .getRequestWithCookie(ApplnURI + "/v1/masterdata/machinespecifications/all", MediaType.APPLICATION_JSON, + MediaType.APPLICATION_JSON, COOKIENAME, new KernelAuthentication().getTokenByRole(role)) + .asString(); JSONObject jsonObject = new JSONObject(machineDetails); @@ -44,8 +47,6 @@ public static String getmachinespecificationsID(String role){ return idValue; } - - public static String generateCurrentUTCTimeStamp() { Date date = new Date(); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); @@ -53,25 +54,23 @@ public static String generateCurrentUTCTimeStamp() { return dateFormat.format(date); } - - public static String machinespecificationsID() { - return AdminTestUtil.getmachinespecificationsID(tokenRoleAdmin); + public static String machinespecificationsID() { + return AdminTestUtil.getmachinespecificationsID(tokenRoleAdmin); } - - public static String creteaMachine(String signPublicKey, String publicKey ,String name) { + public static String creteaMachine(String signPublicKey, String publicKey, String name) { String token = kernelAuthLib.getTokenByRole("globalAdmin"); - JSONObject requestJson = new JSONObject(); + JSONObject requestJson = new JSONObject(); Response response = null; requestJson.put("id", "string"); - requestJson.put("metadata", new JSONObject()); + requestJson.put("metadata", new JSONObject()); requestJson.put("requesttime", AdminTestUtil.generateCurrentUTCTimeStamp()); requestJson.put("version", "string"); - requestJson.put("request", new HashMap<>()); + requestJson.put("request", new HashMap<>()); requestJson.getJSONObject("request").put("id", "123"); requestJson.getJSONObject("request").put("ipAddress", "192.168.0.424"); requestJson.getJSONObject("request").put("isActive", true); - requestJson.getJSONObject("request").put("langCode", getLanguageList().get(0)); + requestJson.getJSONObject("request").put("langCode", getLanguageList().get(0)); requestJson.getJSONObject("request").put("macAddress", "11111111"); requestJson.getJSONObject("request").put("machineSpecId", machinespecificationsID()); requestJson.getJSONObject("request").put("name", name); @@ -82,11 +81,12 @@ public static String creteaMachine(String signPublicKey, String publicKey ,Strin requestJson.getJSONObject("request").put("zoneCode", propsKernel.getProperty("zone")); requestJson.getJSONObject("request").put("signPublicKey", signPublicKey); - response = RestClient.postRequestWithCookie(BaseTestCase.ApplnURI + "/v1/masterdata/machines", requestJson.toString(), MediaType.APPLICATION_JSON, - MediaType.APPLICATION_JSON, BaseTestCase.COOKIENAME, token); + response = RestClient.postRequestWithCookie(BaseTestCase.ApplnURI + "/v1/masterdata/machines", + requestJson.toString(), MediaType.APPLICATION_JSON, MediaType.APPLICATION_JSON, BaseTestCase.COOKIENAME, + token); JSONObject responseJson = new JSONObject(response.asString()); - JSONObject responseobj = responseJson.getJSONObject("response"); - return responseobj.getString("id"); + JSONObject responseobj = responseJson.getJSONObject("response"); + return responseobj.getString("id"); } public static void initialize() { @@ -94,14 +94,16 @@ public static void initialize() { ArcConfigManager.init(); BaseTestCase.initialize(); KeycloakUserManager.createUsers(); - mapUserToZone(BaseTestCase.currentModule +"-"+propsKernel.getProperty("iam-users-to-create"),propsKernel.getProperty("zone")); - mapZone( BaseTestCase.currentModule +"-"+propsKernel.getProperty("iam-users-to-create")); - mapUserToCenter(BaseTestCase.currentModule +"-"+propsKernel.getProperty("iam-users-to-create"),propsKernel.getProperty("regCenterId")); - mapCenter( BaseTestCase.currentModule +"-"+propsKernel.getProperty("iam-users-to-create")); + mapUserToZone(BaseTestCase.currentModule + "-" + propsKernel.getProperty("iam-users-to-create"), + propsKernel.getProperty("zone")); + mapZone(BaseTestCase.currentModule + "-" + propsKernel.getProperty("iam-users-to-create")); + mapUserToCenter(BaseTestCase.currentModule + "-" + propsKernel.getProperty("iam-users-to-create"), + propsKernel.getProperty("regCenterId")); + mapCenter(BaseTestCase.currentModule + "-" + propsKernel.getProperty("iam-users-to-create")); KeycloakUserManager.createUsersWithOutDefaultRole(); - mapUserToZone(KeycloakUserManager.onboardUser,propsKernel.getProperty("zone")); + mapUserToZone(KeycloakUserManager.onboardUser, propsKernel.getProperty("zone")); mapZone(KeycloakUserManager.onboardUser); - mapUserToCenter(KeycloakUserManager.onboardUser,propsKernel.getProperty("regCenterId")); + mapUserToCenter(KeycloakUserManager.onboardUser, propsKernel.getProperty("regCenterId")); mapCenter(KeycloakUserManager.onboardUser); initialized = true; } @@ -116,14 +118,15 @@ public static void mapUserToZone(String user, String zone) { request.put("zoneCode", zone); request.put("userId", user); request.put("langCode", getLanguageList().get(0)); - request.put("isActive","true"); + request.put("isActive", "true"); actualrequest.put("request", request); logger.info(actualrequest); - Response response = RestClient.postReqestWithCookiesAndBody(url, actualrequest.toString(), token,"postrequest"); + Response response = RestClient.postReqestWithCookiesAndBody(url, actualrequest.toString(), token, + "postrequest"); logger.info(user + "Mapped to" + zone + "Zone"); logger.info(response.getBody().asString()); } - + public static List getLanguageList() { logger.info("We have created a Config Manager. Beginning to read properties!"); @@ -152,239 +155,251 @@ public static void mapZone(String user) { String token = kernelAuthLib.getTokenByRole("globalAdmin"); String url = ApplnURI + propsKernel.getProperty("zoneMappingActivateUrl"); HashMap map = new HashMap(); - map.put("isActive","true"); + map.put("isActive", "true"); map.put("userId", user); Response response = RestClient.patchRequestWithCookieAndQueryParm(url, map, MediaType.APPLICATION_JSON, MediaType.APPLICATION_JSON, "Authorization", token); logger.info(response); } - + public static void mapUserToCenter(String user, String center) { String token = kernelAuthLib.getTokenByRole("globalAdmin"); - JSONObject requestJson = new JSONObject(); + JSONObject requestJson = new JSONObject(); Response response = null; requestJson.put("id", "string"); - requestJson.put("metadata", new JSONObject()); + requestJson.put("metadata", new JSONObject()); requestJson.put("requesttime", AdminTestUtil.generateCurrentUTCTimeStamp()); requestJson.put("version", "string"); - requestJson.put("request", new HashMap<>()); + requestJson.put("request", new HashMap<>()); requestJson.getJSONObject("request").put("id", user); - requestJson.getJSONObject("request").put("name","automation"); + requestJson.getJSONObject("request").put("name", "automation"); requestJson.getJSONObject("request").put("isActive", true); - requestJson.getJSONObject("request").put("langCode", getLanguageList().get(0)); + requestJson.getJSONObject("request").put("langCode", getLanguageList().get(0)); requestJson.getJSONObject("request").put("statusCode", "active"); - requestJson.getJSONObject("request").put("regCenterId",center); + requestJson.getJSONObject("request").put("regCenterId", center); - response = RestClient.postRequestWithCookie(BaseTestCase.ApplnURI + "/v1/masterdata/usercentermapping", requestJson.toString(), MediaType.APPLICATION_JSON, - MediaType.APPLICATION_JSON, BaseTestCase.COOKIENAME, token); + response = RestClient.postRequestWithCookie(BaseTestCase.ApplnURI + "/v1/masterdata/usercentermapping", + requestJson.toString(), MediaType.APPLICATION_JSON, MediaType.APPLICATION_JSON, BaseTestCase.COOKIENAME, + token); JSONObject responseJson = new JSONObject(response.asString()); System.out.println("responseJson = " + responseJson); } - + public static void sendOtp(String userId, String langCode) { String token = kernelAuthLib.getTokenByRole("globalAdmin"); - JSONObject requestJson = new JSONObject(); - requestJson.put("id", "mosip.pre-registration.login.sendotp"); - requestJson.put("version", "1.0"); - requestJson.put("requesttime", AdminTestUtil.generateCurrentUTCTimeStamp()); - JSONObject innerRequest = new JSONObject(); - innerRequest.put("userId", userId); - innerRequest.put("langCode", langCode); - requestJson.put("request", innerRequest); - Response response = RestClient.postRequestWithCookie( - BaseTestCase.ApplnURI +"/preregistration/v1/login/sendOtp/langcode", - requestJson.toString(), - MediaType.APPLICATION_JSON, - MediaType.APPLICATION_JSON, - BaseTestCase.COOKIENAME, token - ); - JSONObject responseJson = new JSONObject(response.asString()); - System.out.println("Response JSON = " + responseJson); - if (responseJson.has("response") - && responseJson.getJSONObject("response").has("status") - && "success".equalsIgnoreCase(responseJson.getJSONObject("response").getString("status"))) { - System.out.println("✅ OTP request sent successfully."); - } else { - throw new RuntimeException("❌ OTP request failed. Response: " + responseJson.toString()); - } + JSONObject requestJson = new JSONObject(); + requestJson.put("id", "mosip.pre-registration.login.sendotp"); + requestJson.put("version", "1.0"); + requestJson.put("requesttime", AdminTestUtil.generateCurrentUTCTimeStamp()); + JSONObject innerRequest = new JSONObject(); + innerRequest.put("userId", userId); + innerRequest.put("langCode", langCode); + requestJson.put("request", innerRequest); + Response response = RestClient.postRequestWithCookie( + BaseTestCase.ApplnURI + "/preregistration/v1/login/sendOtp/langcode", requestJson.toString(), + MediaType.APPLICATION_JSON, MediaType.APPLICATION_JSON, BaseTestCase.COOKIENAME, token); + JSONObject responseJson = new JSONObject(response.asString()); + System.out.println("Response JSON = " + responseJson); + if (responseJson.has("response") && responseJson.getJSONObject("response").has("status") + && "success".equalsIgnoreCase(responseJson.getJSONObject("response").getString("status"))) { + System.out.println("✅ OTP request sent successfully."); + } else { + throw new RuntimeException("❌ OTP request failed. Response: " + responseJson.toString()); + } } - + public static Response validateOtp(String userId, String otp) { - String token = kernelAuthLib.getTokenByRole("globalAdmin"); - JSONObject requestJson = new JSONObject(); - requestJson.put("id", "mosip.pre-registration.login.useridotp"); - requestJson.put("version", "1.0"); - requestJson.put("requesttime", AdminTestUtil.generateCurrentUTCTimeStamp()); - - JSONObject innerRequest = new JSONObject(); - innerRequest.put("userId", userId); - innerRequest.put("otp", otp); - requestJson.put("request", innerRequest); - Response response = RestClient.postRequestWithCookie( - BaseTestCase.ApplnURI + "/preregistration/v1/login/validateOtp", - requestJson.toString(), - MediaType.APPLICATION_JSON, - MediaType.APPLICATION_JSON, - BaseTestCase.COOKIENAME, token - ); - - if (response == null) { - throw new RuntimeException("No response from validateOtp API"); - } - - int statusCode = response.getStatusCode(); - if (statusCode < 200 || statusCode >= 300) { - throw new RuntimeException("HTTP error from validateOtp API. Status: " + statusCode + " Body: " + response.asString()); - } - - JSONObject responseJson; - try { - responseJson = new JSONObject(response.asString()); - } catch (Exception e) { - throw new RuntimeException("Invalid JSON returned from validateOtp API: " + response.asString(), e); - } - if (responseJson.has("response") - && responseJson.getJSONObject("response").has("status") - && "success".equalsIgnoreCase(responseJson.getJSONObject("response").getString("status"))) { - System.out.println("✅ OTP validation successful."); - return response; - } else { - throw new RuntimeException("❌ OTP validation failed. Response: " + responseJson.toString()); - } - } + String token = kernelAuthLib.getTokenByRole("globalAdmin"); + JSONObject requestJson = new JSONObject(); + requestJson.put("id", "mosip.pre-registration.login.useridotp"); + requestJson.put("version", "1.0"); + requestJson.put("requesttime", AdminTestUtil.generateCurrentUTCTimeStamp()); - public static String createPreRegistration(String userId) { - String token = kernelAuthLib.getTokenByRole("globalAdmin"); - - // Generate base prereg JSON (as String) - String baseJson = io.mosip.testrig.apirig.utils.AdminTestUtil.generateHbsForPrereg(false); - - // Parse into JSONObject - JSONObject requestJson = new JSONObject(baseJson); - - // Faker for dynamic values - Faker faker = new Faker(); - String randomName = faker.name().fullName(); - String address1 = faker.address().streetAddress(); - String address2 = faker.address().secondaryAddress(); - String address3 = faker.address().buildingNumber(); - String phone = faker.number().digits(10); - String email = faker.internet().emailAddress(); - String dob = "1990/01/01"; // Or faker.date().birthday() - - // Navigate to identity node - JSONObject request = requestJson.getJSONObject("request"); - JSONObject identity = request.getJSONObject("demographicDetails").getJSONObject("identity"); - - // Fill only if empty or placeholder - if (identity.optJSONArray("fullName") != null) { - for (int i = 0; i < identity.getJSONArray("fullName").length(); i++) { - identity.getJSONArray("fullName").getJSONObject(i).put("value", randomName); - } - } - - if (!identity.has("dateOfBirth") || identity.get("dateOfBirth").toString().contains("{{")) { - identity.put("dateOfBirth", dob); - } - - if (!identity.has("phone") || identity.get("phone").toString().contains("{{")) { - identity.put("phone", phone); - } - - if (!identity.has("email") || identity.get("email").toString().contains("{{")) { - identity.put("email", email); - } - - if (identity.optJSONArray("addressLine1") != null) { - for (int i = 0; i < identity.getJSONArray("addressLine1").length(); i++) { - identity.getJSONArray("addressLine1").getJSONObject(i).put("value", address1); - } - } - - if (identity.optJSONArray("addressLine2") != null) { - for (int i = 0; i < identity.getJSONArray("addressLine2").length(); i++) { - identity.getJSONArray("addressLine2").getJSONObject(i).put("value", address2); - } - } - - if (identity.optJSONArray("addressLine3") != null) { - for (int i = 0; i < identity.getJSONArray("addressLine3").length(); i++) { - identity.getJSONArray("addressLine3").getJSONObject(i).put("value", address3); - } - } - - if (!identity.has("postalCode") || identity.get("postalCode").toString().contains("{{")) { - identity.put("postalCode", propsKernel.getProperty("regCenterId")); - } - - // Replace placeholders for langCode, id, and version - if (request.has("langCode") && request.getString("langCode").contains("{{")) { - request.put("langCode", "eng"); - } - if (requestJson.has("id") && requestJson.getString("id").contains("{{")) { - requestJson.put("id", "mosip.pre-registration.demographic.create"); - } - if (requestJson.has("version") && requestJson.getString("version").contains("{{")) { - requestJson.put("version", "1.0"); - } - - // update requesttime - requestJson.put("requesttime", AdminTestUtil.generateCurrentUTCTimeStamp()); - - // Hit API - Response response = RestClient.postRequestWithCookie( - BaseTestCase.ApplnURI + "/preregistration/v1/applications/prereg", - requestJson.toString(), - MediaType.APPLICATION_JSON, - MediaType.APPLICATION_JSON, - BaseTestCase.COOKIENAME, token - ); - - String preRegId = null; - JSONObject responseJson = new JSONObject(response.asString()); - if (responseJson.has("response") && responseJson.getJSONObject("response").has("preRegistrationId")) { - preRegId = responseJson.getJSONObject("response").getString("preRegistrationId"); - System.out.println("✅ preRegistrationId = " + preRegId); - } else { - throw new RuntimeException("❌ preRegistrationId not found in response: " + responseJson.toString()); - } - return preRegId; + JSONObject innerRequest = new JSONObject(); + innerRequest.put("userId", userId); + innerRequest.put("otp", otp); + requestJson.put("request", innerRequest); + Response response = RestClient.postRequestWithCookie( + BaseTestCase.ApplnURI + "/preregistration/v1/login/validateOtp", requestJson.toString(), + MediaType.APPLICATION_JSON, MediaType.APPLICATION_JSON, BaseTestCase.COOKIENAME, token); + + if (response == null) { + throw new RuntimeException("No response from validateOtp API"); + } + + int statusCode = response.getStatusCode(); + if (statusCode < 200 || statusCode >= 300) { + throw new RuntimeException( + "HTTP error from validateOtp API. Status: " + statusCode + " Body: " + response.asString()); + } + + JSONObject responseJson; + try { + responseJson = new JSONObject(response.asString()); + } catch (Exception e) { + throw new RuntimeException("Invalid JSON returned from validateOtp API: " + response.asString(), e); + } + if (responseJson.has("response") && responseJson.getJSONObject("response").has("status") + && "success".equalsIgnoreCase(responseJson.getJSONObject("response").getString("status"))) { + System.out.println("✅ OTP validation successful."); + return response; + } else { + throw new RuntimeException("❌ OTP validation failed. Response: " + responseJson.toString()); + } } + public static String createPreRegistration(String userId, String age) { + String token = kernelAuthLib.getTokenByRole("globalAdmin"); + + // Generate base prereg JSON (as String) + String baseJson = io.mosip.testrig.apirig.utils.AdminTestUtil.generateHbsForPrereg(false); + + // Parse into JSONObject + JSONObject requestJson = new JSONObject(baseJson); + + // Faker for dynamic values + Faker faker = new Faker(); + String randomName = faker.name().fullName(); + String address1 = faker.address().streetAddress(); + String address2 = faker.address().secondaryAddress(); + String address3 = faker.address().buildingNumber(); + String phone = faker.number().digits(10); + String email = faker.internet().emailAddress(); + int ageInt; + String category; + try { + ageInt = Integer.parseInt(age); + category = (ageInt < 6) ? "infant" : (ageInt < 18) ? "minor" : "adult"; + } catch (NumberFormatException e) { + category = age.toLowerCase(); + switch (category) { + case "infant": + ageInt = 2; + break; + case "minor": + ageInt = 10; + break; + default: + ageInt = 25; + category = "adult"; + break; + } + } + String dob = LocalDate.now().minusYears(ageInt).format(DateTimeFormatter.ofPattern("yyyy/MM/dd")); + +// if (category.equals("minor") || category.equals("infant")) { +// String introducerName = faker.name().fullName(); +// String introducerRID = TestDataReader.readData("RID"); // <-- Fetch valid RID +// +// } + // Navigate to identity node + JSONObject request = requestJson.getJSONObject("request"); + JSONObject identity = request.getJSONObject("demographicDetails").getJSONObject("identity"); + + // Fill only if empty or placeholder + if (identity.optJSONArray("fullName") != null) { + for (int i = 0; i < identity.getJSONArray("fullName").length(); i++) { + identity.getJSONArray("fullName").getJSONObject(i).put("value", randomName); + } + } + + if (!identity.has("dateOfBirth") || identity.get("dateOfBirth").toString().contains("{{")) { + identity.put("dateOfBirth", dob); + } - public static String getPreRegistrationFlow() { - Faker faker = new Faker(); + if (!identity.has("phone") || identity.get("phone").toString().contains("{{")) { + identity.put("phone", phone); + } + + if (!identity.has("email") || identity.get("email").toString().contains("{{")) { + identity.put("email", email); + } + + if (identity.optJSONArray("addressLine1") != null) { + for (int i = 0; i < identity.getJSONArray("addressLine1").length(); i++) { + identity.getJSONArray("addressLine1").getJSONObject(i).put("value", address1); + } + } + + if (identity.optJSONArray("addressLine2") != null) { + for (int i = 0; i < identity.getJSONArray("addressLine2").length(); i++) { + identity.getJSONArray("addressLine2").getJSONObject(i).put("value", address2); + } + } + + if (identity.optJSONArray("addressLine3") != null) { + for (int i = 0; i < identity.getJSONArray("addressLine3").length(); i++) { + identity.getJSONArray("addressLine3").getJSONObject(i).put("value", address3); + } + } + + if (!identity.has("postalCode") || identity.get("postalCode").toString().contains("{{")) { + identity.put("postalCode", propsKernel.getProperty("regCenterId")); + } + + // Replace placeholders for langCode, id, and version + if (request.has("langCode") && request.getString("langCode").contains("{{")) { + request.put("langCode", "eng"); + } + if (requestJson.has("id") && requestJson.getString("id").contains("{{")) { + requestJson.put("id", "mosip.pre-registration.demographic.create"); + } + if (requestJson.has("version") && requestJson.getString("version").contains("{{")) { + requestJson.put("version", "1.0"); + } + + // update requesttime + requestJson.put("requesttime", AdminTestUtil.generateCurrentUTCTimeStamp()); + + // Hit API + Response response = RestClient.postRequestWithCookie( + BaseTestCase.ApplnURI + "/preregistration/v1/applications/prereg", requestJson.toString(), + MediaType.APPLICATION_JSON, MediaType.APPLICATION_JSON, BaseTestCase.COOKIENAME, token); + + String preRegId = null; + JSONObject responseJson = new JSONObject(response.asString()); + if (responseJson.has("response") && responseJson.getJSONObject("response").has("preRegistrationId")) { + preRegId = responseJson.getJSONObject("response").getString("preRegistrationId"); + System.out.println("✅ preRegistrationId = " + preRegId); + } else { + throw new RuntimeException("❌ preRegistrationId not found in response: " + responseJson.toString()); + } + return preRegId; + } + + public static String getPreRegistrationFlow(String age) { + Faker faker = new Faker(); String userId = faker.internet().emailAddress(); - sendOtp(userId, TestDataReader.readData("language")); - validateOtp(userId, OTPListener.getOtp(userId)); - String preRegId = createPreRegistration(userId); - return preRegId; + sendOtp(userId, TestDataReader.readData("language")); + validateOtp(userId, OTPListener.getOtp(userId)); + String preRegId = createPreRegistration(userId, age); + return preRegId; } - + public static void mapCenter(String user) { String token = kernelAuthLib.getTokenByRole("globalAdmin"); String url = ApplnURI + "/v1/masterdata/usercentermapping"; HashMap map = new HashMap(); - map.put("isActive","true"); + map.put("isActive", "true"); map.put("id", user); Response response = RestClient.patchRequestWithCookieAndQueryParm(url, map, MediaType.APPLICATION_JSON, MediaType.APPLICATION_JSON, "Authorization", token); logger.info(response); } - + public static String activateMachine(String id) { String token = kernelAuthLib.getTokenByRole("globalAdmin"); String url = ApplnURI + "/v1/masterdata/machines"; HashMap map = new HashMap(); - map.put("isActive","true"); + map.put("isActive", "true"); map.put("id", id); Response response = RestClient.patchRequestWithCookieAndQueryParm(url, map, MediaType.APPLICATION_JSON, MediaType.APPLICATION_JSON, "Authorization", token); logger.info(response); JSONObject responseJson = new JSONObject(response.asString()); - JSONObject responseobj = responseJson.getJSONObject("response"); - return responseobj.getString("status"); + JSONObject responseobj = responseJson.getJSONObject("response"); + return responseobj.getString("status"); } } \ No newline at end of file diff --git a/ui-test/src/main/java/regclient/api/ApplicationLibrary.java b/ui-test/src/main/java/regclient/api/ApplicationLibrary.java index 1912eead5..dec67f571 100644 --- a/ui-test/src/main/java/regclient/api/ApplicationLibrary.java +++ b/ui-test/src/main/java/regclient/api/ApplicationLibrary.java @@ -8,7 +8,6 @@ public class ApplicationLibrary extends BaseTestCase { private static final CommonLibrary commonLibrary = new CommonLibrary(); - // get requests public Response getWithoutParams(String endpoint, String cookie) { return commonLibrary.getWithoutParams(ApplnURI + endpoint, cookie); diff --git a/ui-test/src/main/java/regclient/api/ArcConfigManager.java b/ui-test/src/main/java/regclient/api/ArcConfigManager.java index 270bae8d3..bc5eb941b 100644 --- a/ui-test/src/main/java/regclient/api/ArcConfigManager.java +++ b/ui-test/src/main/java/regclient/api/ArcConfigManager.java @@ -63,11 +63,11 @@ public static String getDbPassword() { public static String getDbSchema() { return getProperty("es_db_schema", ""); } - + public static String getiam_apienvuser() { return getProperty("apiEnvUser", ""); } - + public static String getiam_apiinternalendpoint() { return getProperty("apiInternalEndPoint", ""); } @@ -85,7 +85,7 @@ public static int getTimeout() { return 10; } } - + public static String getIAMUrl() { return getProperty("keycloak-external-url", "") + "/auth"; } @@ -93,11 +93,11 @@ public static String getIAMUrl() { public static String getSignupPortalUrl() { return getProperty("signup.portal.url", ""); } - + public static String getIAMUsersPassword() { return getProperty("iam-users-password", ""); } - + public static String getEnv() { return getProperty("db-server", ""); } @@ -109,7 +109,7 @@ public static String getSmtpUrl() { public static String getHealthPortalUrl() { return getProperty("baseurl", ""); } - + public static String gettestcases() { return getProperty("regclientScenariosToExecute", ""); } diff --git a/ui-test/src/main/java/regclient/api/BaseTestCase.java b/ui-test/src/main/java/regclient/api/BaseTestCase.java index c4b1bc71f..993e4bb8f 100644 --- a/ui-test/src/main/java/regclient/api/BaseTestCase.java +++ b/ui-test/src/main/java/regclient/api/BaseTestCase.java @@ -1,6 +1,5 @@ package regclient.api; - import regclient.utils.TestDataReader; import regclient.utils.TestRunner; @@ -19,24 +18,18 @@ import javax.ws.rs.core.MediaType; - public class BaseTestCase { - private static final org.slf4j.Logger logger= org.slf4j.LoggerFactory.getLogger(BaseTestCase.class); + private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(BaseTestCase.class); public static String environment; public static List languageList = new ArrayList<>(); public static String ApplnURI; public static String ApplnURIForKeyCloak; public static String testLevel; - public static Properties props = getproperty( - TestRunner.getResourcePath() + "/config/application.properties"); - public static Properties propsKernel = getproperty( - TestRunner.getResourcePath() + "/config/Kernel.properties"); + public static Properties props = getproperty(TestRunner.getResourcePath() + "/config/application.properties"); + public static Properties propsKernel = getproperty(TestRunner.getResourcePath() + "/config/Kernel.properties"); - - public static Properties propsMap = getproperty( - TestRunner.getResourcePath() + "/config/valueMapping.properties"); - public static Properties propsBio = getproperty( - TestRunner.getResourcePath() + "/config/bioValue.properties"); + public static Properties propsMap = getproperty(TestRunner.getResourcePath() + "/config/valueMapping.properties"); + public static Properties propsBio = getproperty(TestRunner.getResourcePath() + "/config/bioValue.properties"); public static String SEPRATOR = ""; public static String currentModule = "androidregclient"; public final static String COOKIENAME = "Authorization"; @@ -47,11 +40,10 @@ public class BaseTestCase { public static String uinEmail; public static String uinPhone; - public static String uin=""; - public static String perpetualVid=""; - public static String onetimeuseVid=""; - public static String temporaryVid=""; - + public static String uin = ""; + public static String perpetualVid = ""; + public static String onetimeuseVid = ""; + public static String temporaryVid = ""; public static String getOSType() { String type = System.getProperty("os.name"); @@ -63,7 +55,7 @@ public static String getOSType() { return "OTHERS"; } return null; - } + } public static Properties getproperty(String path) { Properties prop = new Properties(); @@ -115,17 +107,17 @@ private static Properties getLoggerPropertyConfig() { return logProp; } - public static JSONObject getRequestJson(String filepath) { return kernelCmnLib.readJsonData(filepath, true); } - + public static String GethierarchyName(int locationHierarchyLevels) { kernelAuthLib = new KernelAuthentication(); String token = kernelAuthLib.getTokenByRole("admin"); String url = ApplnURI + props.getProperty("locationhierarchy"); - Response response = RestClient.getRequestWithCookie(url+GethierarchyLevelName(locationHierarchyLevels), MediaType.APPLICATION_JSON, MediaType.APPLICATION_JSON,"Authorization", token); + Response response = RestClient.getRequestWithCookie(url + GethierarchyLevelName(locationHierarchyLevels), + MediaType.APPLICATION_JSON, MediaType.APPLICATION_JSON, "Authorization", token); org.json.JSONObject responseJson = new org.json.JSONObject(response.asString()); org.json.JSONObject responseObj = responseJson.getJSONObject("response"); JSONArray responseArray = responseObj.getJSONArray("locations"); @@ -142,12 +134,14 @@ public static String GethierarchyName(int locationHierarchyLevels) { return null; } - + public static String GethierarchyLevelName(int locationHierarchyLevels) { kernelAuthLib = new KernelAuthentication(); String token = kernelAuthLib.getTokenByRole("admin"); String url = ApplnURI + props.getProperty("locationHierarchyLevels"); - Response response = RestClient.getRequestWithCookie(url+locationHierarchyLevels+"/"+TestDataReader.readData("language"), MediaType.APPLICATION_JSON, MediaType.APPLICATION_JSON,"Authorization", token); + Response response = RestClient.getRequestWithCookie( + url + locationHierarchyLevels + "/" + TestDataReader.readData("language"), MediaType.APPLICATION_JSON, + MediaType.APPLICATION_JSON, "Authorization", token); org.json.JSONObject responseJson = new org.json.JSONObject(response.asString()); org.json.JSONObject responseObj = responseJson.getJSONObject("response"); JSONArray responseArray = responseObj.getJSONArray("locationHierarchyLevels"); @@ -156,4 +150,5 @@ public static String GethierarchyLevelName(int locationHierarchyLevels) { return hierarchyLevelName; } + } \ No newline at end of file diff --git a/ui-test/src/main/java/regclient/api/CommonLibrary.java b/ui-test/src/main/java/regclient/api/CommonLibrary.java index 84d27912e..58d9cb914 100644 --- a/ui-test/src/main/java/regclient/api/CommonLibrary.java +++ b/ui-test/src/main/java/regclient/api/CommonLibrary.java @@ -17,28 +17,25 @@ import static io.restassured.RestAssured.given; public class CommonLibrary extends BaseTestCase { - private static final org.slf4j.Logger logger= org.slf4j.LoggerFactory.getLogger(CommonLibrary.class); + private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(CommonLibrary.class); private final ApplicationLibrary applicationLibrary = new ApplicationLibrary(); public boolean isValidToken(String cookie) { logger.info("========= Revalidating the token ========="); - Response response = applicationLibrary.getWithoutParams("/v1/authmanager/authorize/admin/validateToken", cookie); - JSONObject responseJson =null; + Response response = applicationLibrary.getWithoutParams("/v1/authmanager/authorize/admin/validateToken", + cookie); + JSONObject responseJson = null; try { - responseJson = (JSONObject) ((JSONObject) new JSONParser().parse(response.asString())) - .get("response"); + responseJson = (JSONObject) ((JSONObject) new JSONParser().parse(response.asString())).get("response"); } catch (ParseException | NullPointerException e) { logger.info(e.getMessage()); } - if (responseJson!=null && responseJson.get("errors")==null) - { + if (responseJson != null && responseJson.get("errors") == null) { logger.info("========= Valid Token ========="); return true; - } - else - { + } else { logger.info("========= InValid Token ========="); return false; @@ -49,7 +46,7 @@ public boolean isValidToken(String cookie) { public Map readProperty(String propertyFileName) { Properties prop = new Properties(); try { - File propertyFile = new File( TestRunner.getResourcePath() +"/config/Kernel.properties"); + File propertyFile = new File(TestRunner.getResourcePath() + "/config/Kernel.properties"); prop.load(new FileInputStream(propertyFile)); } catch (IOException e) { @@ -80,11 +77,9 @@ public Response getWithoutParams(String url, String cookie) { return getResponse; } - /** - * @param response - * this method is for logging the response in case of error only. - * this is used in get request response logging + * @param response this method is for logging the response in case of error + * only. this is used in get request response logging */ public void responseLogger(Response response) { int statusCode = response.statusCode(); @@ -97,7 +92,7 @@ public void responseLogger(Response response) { public JSONObject readJsonData(String path, boolean isRelative) { logger.info("path : " + path); - if(isRelative) + if (isRelative) path = TestRunner.getResourcePath() + path; logger.info("Relativepath : " + path); File fileToRead = new File(path); @@ -106,7 +101,7 @@ public JSONObject readJsonData(String path, boolean isRelative) { logger.info("fileToRead : " + fileToRead); isOfFile = new FileInputStream(fileToRead); } catch (FileNotFoundException e1) { - logger.info("error while reading the file : " + e1.getLocalizedMessage() ); + logger.info("error while reading the file : " + e1.getLocalizedMessage()); e1.printStackTrace(); logger.info("File Not Found at the given path"); } diff --git a/ui-test/src/main/java/regclient/api/FetchUiSpec.java b/ui-test/src/main/java/regclient/api/FetchUiSpec.java index 808ba8bb8..d4b2c70c3 100644 --- a/ui-test/src/main/java/regclient/api/FetchUiSpec.java +++ b/ui-test/src/main/java/regclient/api/FetchUiSpec.java @@ -2,6 +2,8 @@ import java.io.IOException; import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.LinkedHashSet; @@ -12,16 +14,19 @@ import org.json.JSONArray; import org.json.JSONObject; +import org.openqa.selenium.By; +import org.openqa.selenium.WebElement; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; +import io.appium.java_client.AppiumDriver; import io.restassured.response.Response; import regclient.utils.TestDataReader; -public class FetchUiSpec extends BaseTestCase{ +public class FetchUiSpec extends BaseTestCase { public static String UiSpec; public static String eye = "no"; @@ -31,22 +36,22 @@ public class FetchUiSpec extends BaseTestCase{ public static String face = "no"; public static void getUiSpec(String type) { - if(type.equals("newProcess")) { + if (type.equals("newProcess")) { String token = kernelAuthLib.getTokenByRole("globalAdmin"); String url = ApplnURI + "/v1/masterdata/uispec/registration-client/latest"; HashMap map = new HashMap(); map.put("type", type); Response response = RestClient.getRequestWithCookieAndQueryParm(url, map, MediaType.APPLICATION_JSON, MediaType.APPLICATION_JSON, "Authorization", token); - UiSpec= response.asString(); - }else if (type.equals("updateProcess")) { + UiSpec = response.asString(); + } else if (type.equals("updateProcess")) { String token = kernelAuthLib.getTokenByRole("globalAdmin"); String url = ApplnURI + "/v1/masterdata/uispec/registration-client/latest"; HashMap map = new HashMap(); map.put("type", type); Response response = RestClient.getRequestWithCookieAndQueryParm(url, map, MediaType.APPLICATION_JSON, MediaType.APPLICATION_JSON, "Authorization", token); - UiSpec= response.asString(); + UiSpec = response.asString(); } } @@ -61,21 +66,16 @@ public static List getAllScreenOrder() { } catch (JsonProcessingException e) { e.printStackTrace(); } - JsonNode screensNode = rootNode.path("response").get(0) - .path("jsonSpec").get(0) - .path("spec").path("screens"); + JsonNode screensNode = rootNode.path("response").get(0).path("jsonSpec").get(0).path("spec").path("screens"); List screens = new ArrayList<>(); screensNode.forEach(screens::add); - screens.stream() - .sorted(Comparator.comparingInt(screen -> screen.path("order").asInt())) - .forEach(screen -> screenNames.add(screen.path("name").asText())); + screens.stream().sorted(Comparator.comparingInt(screen -> screen.path("order").asInt())) + .forEach(screen -> screenNames.add(screen.path("name").asText())); return screenNames; } - - public static String getScreenTitle(String ScreenName) { - String screenTitle=null; + String screenTitle = null; ObjectMapper mapper = new ObjectMapper(); try { JsonNode rootNode = mapper.readTree(UiSpec); @@ -96,8 +96,8 @@ public static String getScreenTitle(String ScreenName) { } - public static String getValueUsingId(String Id ) { - String value=null; + public static String getValueUsingId(String Id) { + String value = null; ObjectMapper mapper = new ObjectMapper(); try { JsonNode rootNode = mapper.readTree(UiSpec); @@ -123,8 +123,8 @@ public static String getValueUsingId(String Id ) { } - public static String getControlTypeUsingId(String Id) { - String controlType=null; + public static String getControlTypeUsingId(String Id) { + String controlType = null; ObjectMapper mapper = new ObjectMapper(); try { JsonNode rootNode = mapper.readTree(UiSpec); @@ -149,7 +149,7 @@ public static String getControlTypeUsingId(String Id) { } - public static boolean getRequiredTypeUsingId(String Id) { + public static boolean getRequiredTypeUsingId(String Id) { boolean controlType = false; ObjectMapper mapper = new ObjectMapper(); try { @@ -174,8 +174,8 @@ public static boolean getRequiredTypeUsingId(String Id) { return controlType; } - - public static String getRequiredGroupName(String Id) { + + public static String getRequiredGroupName(String Id) { String group = null; ObjectMapper mapper = new ObjectMapper(); try { @@ -201,7 +201,7 @@ public static String getRequiredGroupName(String Id) { } - public static boolean getTransliterateTypeUsingId(String Id) { + public static boolean getTransliterateTypeUsingId(String Id) { boolean controlType = false; ObjectMapper mapper = new ObjectMapper(); try { @@ -227,8 +227,8 @@ public static boolean getTransliterateTypeUsingId(String Id) { } - public static String getFormatUsingId(String Id) { - String controlType=null; + public static String getFormatUsingId(String Id) { + String controlType = null; ObjectMapper mapper = new ObjectMapper(); try { JsonNode rootNode = mapper.readTree(UiSpec); @@ -253,8 +253,8 @@ public static String getFormatUsingId(String Id) { } - public static String getTextBoxUsingId(String Id ) { - String validator=null; + public static String getTextBoxUsingId(String Id) { + String validator = null; ObjectMapper mapper = new ObjectMapper(); try { JsonNode rootNode = mapper.readTree(UiSpec); @@ -283,8 +283,8 @@ public static String getTextBoxUsingId(String Id ) { } - public static String getGroupValueUsingId(String Id ) { - String value=null; + public static String getGroupValueUsingId(String Id) { + String value = null; ObjectMapper mapper = new ObjectMapper(); try { JsonNode rootNode = mapper.readTree(UiSpec); @@ -310,10 +310,10 @@ public static String getGroupValueUsingId(String Id ) { } - public static String getTitleUsingId(String Id ) { + public static String getTitleUsingId(String Id) { JSONObject jsonObject = new JSONObject(UiSpec); JSONArray responseArray = jsonObject.getJSONArray("response"); - String value=null; + String value = null; for (int i = 0; i < responseArray.length(); i++) { JSONObject responseObject = responseArray.getJSONObject(i); JSONArray jsonSpecArray = responseObject.getJSONArray("jsonSpec"); @@ -321,7 +321,7 @@ public static String getTitleUsingId(String Id ) { for (int j = 0; j < jsonSpecArray.length(); j++) { JSONObject specObject = jsonSpecArray.getJSONObject(j).getJSONObject("spec"); String id = specObject.getString("id"); - value = specObject.getJSONObject("label").getString(TestDataReader.readData("language")); + value = specObject.getJSONObject("label").getString(TestDataReader.readData("language")); if (id.equals(Id)) { return value; @@ -330,27 +330,28 @@ public static String getTitleUsingId(String Id ) { } return value; } - - public static String getFlowType() { - String typeValue=null; - ObjectMapper mapper = new ObjectMapper(); - try { - JsonNode rootNode = mapper.readTree(UiSpec); - JsonNode responseNode = rootNode.path("response"); - if (responseNode.isArray()) { - for (JsonNode node : responseNode) { - JsonNode jsonSpecNode = node.path("jsonSpec"); - if (jsonSpecNode.isArray()) { - for (JsonNode specNode : jsonSpecNode) { - typeValue = specNode.path("type").asText(); - } - } - } - } - } catch (IOException e) { - e.printStackTrace(); - }; - return typeValue; + + public static String getFlowType() { + String typeValue = null; + ObjectMapper mapper = new ObjectMapper(); + try { + JsonNode rootNode = mapper.readTree(UiSpec); + JsonNode responseNode = rootNode.path("response"); + if (responseNode.isArray()) { + for (JsonNode node : responseNode) { + JsonNode jsonSpecNode = node.path("jsonSpec"); + if (jsonSpecNode.isArray()) { + for (JsonNode specNode : jsonSpecNode) { + typeValue = specNode.path("type").asText(); + } + } + } + } + } catch (IOException e) { + e.printStackTrace(); + } + ; + return typeValue; } public static List getAllIds(String page) { @@ -391,19 +392,19 @@ public static List getAllIds(String page) { return idList; } - public static List getAllGroupLabelUsingId(String page){ + public static List getAllGroupLabelUsingId(String page) { List idList = new ArrayList<>(); List groupLabelList = new ArrayList<>(); - idList=getAllIds(page); - for(String id:idList ) { - if(FetchUiSpec.getRequiredTypeUsingId(id)) { - String groupLabel =getGroupValueUsingId(id ); - if (groupLabel.equals(null)||groupLabel.equals("")) { - groupLabel =getRequiredGroupName(id); + idList = getAllIds(page); + for (String id : idList) { + if (FetchUiSpec.getRequiredTypeUsingId(id)) { + String groupLabel = getGroupValueUsingId(id); + if (groupLabel.equals(null) || groupLabel.equals("")) { + groupLabel = getRequiredGroupName(id); } groupLabelList.add(groupLabel); - }else if(id.equals("residenceStatus")) { - String groupLabel =getGroupValueUsingId(id ); + } else if (id.equals("residenceStatus")) { + String groupLabel = getGroupValueUsingId(id); groupLabelList.add(groupLabel); } } @@ -414,69 +415,98 @@ public static List getAllGroupLabelUsingId(String page){ return groupLabelList; } + public static List getDropdownOptions(String id) { + switch (id.toLowerCase()) { + case "gender": + return Arrays.asList("Male", "Female", "Other"); + + case "residenceStatus": + return Arrays.asList("Foreigner", "Non-Foreigner"); + + default: + return Collections.emptyList(); + } + } + + public static String getAgeValue(String ageCategory, String id) { + + switch (ageCategory.toLowerCase()) { + case "infant": + return "3"; + case "minor": + return "11"; + case "adult": + return "20"; + + default: + return id; + } + } + public static void getBiometricDetails(String biometricId) { - List bioAttributes = new ArrayList<>(); - - JSONObject rootObject = new JSONObject(UiSpec); - JSONArray responseArray = rootObject.getJSONArray("response"); - - for (int i = 0; i < responseArray.length(); i++) { - JSONObject responseObject = responseArray.getJSONObject(i); - JSONArray jsonSpecArray = responseObject.getJSONArray("jsonSpec"); - - for (int j = 0; j < jsonSpecArray.length(); j++) { - JSONObject specObject = jsonSpecArray.getJSONObject(j); - if (specObject.getString("type").equals("newProcess")) { - JSONObject specDetails = specObject.getJSONObject("spec"); - JSONArray screensArray = specDetails.getJSONArray("screens"); - - for (int k = 0; k < screensArray.length(); k++) { - JSONObject screenObject = screensArray.getJSONObject(k); - JSONArray fieldsArray = screenObject.getJSONArray("fields"); - - for (int l = 0; l < fieldsArray.length(); l++) { - JSONObject fieldObject = fieldsArray.getJSONObject(l); - - if (fieldObject.getString("id").equals(biometricId)) { - JSONArray bioArray = fieldObject.getJSONArray("bioAttributes"); - - for (int m = 0; m < bioArray.length(); m++) { - bioAttributes.add(bioArray.getString(m)); - } - } - } - } - } - } - } - for (String attribute : bioAttributes) { - switch (attribute) { - case "leftEye": - case "rightEye": - eye = "yes"; - break; - case "rightIndex": - case "rightLittle": - case "rightRing": - case "rightMiddle": - rightHand = "yes"; - break; - case "leftIndex": - case "leftLittle": - case "leftRing": - case "leftMiddle": - leftHand = "yes"; - break; - case "leftThumb": - case "rightThumb": - thumb = "yes"; - break; - case "face": - face = "yes"; - break; - default: - break; - } - } - } + List bioAttributes = new ArrayList<>(); + + JSONObject rootObject = new JSONObject(UiSpec); + JSONArray responseArray = rootObject.getJSONArray("response"); + + for (int i = 0; i < responseArray.length(); i++) { + JSONObject responseObject = responseArray.getJSONObject(i); + JSONArray jsonSpecArray = responseObject.getJSONArray("jsonSpec"); + + for (int j = 0; j < jsonSpecArray.length(); j++) { + JSONObject specObject = jsonSpecArray.getJSONObject(j); + if (specObject.getString("type").equals("newProcess")) { + JSONObject specDetails = specObject.getJSONObject("spec"); + JSONArray screensArray = specDetails.getJSONArray("screens"); + + for (int k = 0; k < screensArray.length(); k++) { + JSONObject screenObject = screensArray.getJSONObject(k); + JSONArray fieldsArray = screenObject.getJSONArray("fields"); + + for (int l = 0; l < fieldsArray.length(); l++) { + JSONObject fieldObject = fieldsArray.getJSONObject(l); + + if (fieldObject.getString("id").equals(biometricId)) { + JSONArray bioArray = fieldObject.getJSONArray("bioAttributes"); + + for (int m = 0; m < bioArray.length(); m++) { + bioAttributes.add(bioArray.getString(m)); + } + } + } + } + } + } + } + for (String attribute : bioAttributes) { + switch (attribute) { + case "leftEye": + case "rightEye": + eye = "yes"; + break; + case "rightIndex": + case "rightLittle": + case "rightRing": + case "rightMiddle": + rightHand = "yes"; + break; + case "leftIndex": + case "leftLittle": + case "leftRing": + case "leftMiddle": + leftHand = "yes"; + break; + case "leftThumb": + case "rightThumb": + thumb = "yes"; + break; + case "face": + face = "yes"; + break; + default: + break; + } + } + } + } diff --git a/ui-test/src/main/java/regclient/api/GlobalConstants.java b/ui-test/src/main/java/regclient/api/GlobalConstants.java index cde906119..b7089d9f3 100644 --- a/ui-test/src/main/java/regclient/api/GlobalConstants.java +++ b/ui-test/src/main/java/regclient/api/GlobalConstants.java @@ -10,6 +10,4 @@ public class GlobalConstants { public static final String PROPERTIES = "properties"; public static final String VALUE = "value"; - - } diff --git a/ui-test/src/main/java/regclient/api/KernelAuthentication.java b/ui-test/src/main/java/regclient/api/KernelAuthentication.java index 30f4744f8..94aa5199d 100644 --- a/ui-test/src/main/java/regclient/api/KernelAuthentication.java +++ b/ui-test/src/main/java/regclient/api/KernelAuthentication.java @@ -5,70 +5,64 @@ import java.util.Map; - public class KernelAuthentication extends BaseTestCase { - private final String authRequest="/config/Authorization/request.json"; - private final String authInternalRequest="/config/Authorization/internalAuthRequest.json"; + private final String authRequest = "/config/Authorization/request.json"; + private final String authInternalRequest = "/config/Authorization/internalAuthRequest.json"; String cookie; public String zonemapCookie = null; static String dataKey = "response"; - CommonLibrary clib= new CommonLibrary(); + CommonLibrary clib = new CommonLibrary(); public final Map props = clib.readProperty("Kernel"); private final String admin_password = props.get("admin_password"); - private final String admin_userName=props.get("admin_userName"); + private final String admin_userName = props.get("admin_userName"); private final String authenticationInternalEndpoint = props.get("authenticationInternal"); - private final ApplicationLibrary appl=new ApplicationLibrary(); - - - + private final ApplicationLibrary appl = new ApplicationLibrary(); public String getTokenByRole(String role) { return getTokenByRole(role, null); } - public String getTokenByRole(String role, String tokenType) - { + public String getTokenByRole(String role, String tokenType) { String insensitiveRole = null; - if(role!=null) + if (role != null) insensitiveRole = role.toLowerCase(); - else return ""; - - switch(insensitiveRole) { - + else + return ""; + + switch (insensitiveRole) { + case "idrepo": - if(!kernelCmnLib.isValidToken(idrepoCookie)) + if (!kernelCmnLib.isValidToken(idrepoCookie)) idrepoCookie = kernelAuthLib.getAuthForIDREPO(); return idrepoCookie; case "admin": - if(!kernelCmnLib.isValidToken(adminCookie)) + if (!kernelCmnLib.isValidToken(adminCookie)) adminCookie = kernelAuthLib.getAuthForAdmin(); return adminCookie; case "globaladmin": - if(!kernelCmnLib.isValidToken(zonemapCookie)) + if (!kernelCmnLib.isValidToken(zonemapCookie)) zonemapCookie = kernelAuthLib.getAuthForzoneMap(); return zonemapCookie; default: - if(!kernelCmnLib.isValidToken(adminCookie)) + if (!kernelCmnLib.isValidToken(adminCookie)) adminCookie = kernelAuthLib.getAuthForAdmin(); - return adminCookie; + return adminCookie; } - - } - + } @SuppressWarnings("unchecked") public String getAuthForIDREPO() { JSONObject actualrequest = getRequestJson(authRequest); - JSONObject request=new JSONObject(); + JSONObject request = new JSONObject(); request.put("appId", ArcConfigManager.getidRepoAppId()); request.put("clientId", ArcConfigManager.getidRepoClientId()); request.put("secretKey", ArcConfigManager.getIdRepoClientSecret()); actualrequest.put("request", request); - Response reponse=appl.postWithJson(props.get("authclientidsecretkeyURL"), actualrequest); - cookie=reponse.getCookie("Authorization"); + Response reponse = appl.postWithJson(props.get("authclientidsecretkeyURL"), actualrequest); + cookie = reponse.getCookie("Authorization"); return cookie; } @@ -81,8 +75,8 @@ public String getAuthForAdmin() { request.put("appId", ArcConfigManager.getAdminAppId()); request.put("password", admin_password); - //if(BaseTestCase.currentModule==null) admin_userName= - request.put("userName", BaseTestCase.currentModule +"-"+ admin_userName); + // if(BaseTestCase.currentModule==null) admin_userName= + request.put("userName", BaseTestCase.currentModule + "-" + admin_userName); request.put("clientId", ArcConfigManager.getAdminClientId()); request.put("clientSecret", ArcConfigManager.getAdminClientSecret()); @@ -93,7 +87,7 @@ public String getAuthForAdmin() { String token = new org.json.JSONObject(responseBody).getJSONObject(dataKey).getString("token"); return token; } - + @SuppressWarnings("unchecked") public String getAuthForzoneMap() { diff --git a/ui-test/src/main/java/regclient/api/KeycloakUserManager.java b/ui-test/src/main/java/regclient/api/KeycloakUserManager.java index 28ce05a19..39ea41e51 100644 --- a/ui-test/src/main/java/regclient/api/KeycloakUserManager.java +++ b/ui-test/src/main/java/regclient/api/KeycloakUserManager.java @@ -22,28 +22,29 @@ import java.util.ArrayList; import java.util.List; import java.util.Properties; - +import java.util.Random; public class KeycloakUserManager { public static String moduleSpecificUser = null; public static String onboardUser = getDateTime(); + public static String onlyOperatorRoleUser = null; - private static final org.slf4j.Logger logger= org.slf4j.LoggerFactory.getLogger(KeycloakUserManager.class); + private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(KeycloakUserManager.class); public static Properties propsKernel = getproperty(TestRunner.getResourcePath() + "/config/Kernel.properties"); private static Keycloak getKeycloakInstance() { - Keycloak key=null; + Keycloak key = null; try { - key=KeycloakBuilder.builder().serverUrl(ArcConfigManager.getIAMUrl()).realm(ArcConfigManager.getIAMRealmId()) - .grantType(OAuth2Constants.CLIENT_CREDENTIALS).clientId(ArcConfigManager.getAutomationClientId()).clientSecret(ArcConfigManager.getAutomationClientSecret()) - .build(); + key = KeycloakBuilder.builder().serverUrl(ArcConfigManager.getIAMUrl()) + .realm(ArcConfigManager.getIAMRealmId()).grantType(OAuth2Constants.CLIENT_CREDENTIALS) + .clientId(ArcConfigManager.getAutomationClientId()) + .clientSecret(ArcConfigManager.getAutomationClientSecret()).build(); System.out.println(ArcConfigManager.getIAMUrl()); System.out.println(key.toString() + key.realms()); - }catch(Exception e) - { + } catch (Exception e) { throw e; } @@ -51,7 +52,7 @@ private static Keycloak getKeycloakInstance() { } public static Properties getproperty(String path) { - Properties prop = new Properties(); + Properties prop = new Properties(); try { File file = new File(path); prop.load(new FileInputStream(file)); @@ -69,14 +70,13 @@ public static void createUsers() { if (needsToBeCreatedUser.equals("globaladmin")) { moduleSpecificUser = needsToBeCreatedUser; - } - else if(needsToBeCreatedUser.equals("masterdata-220005")){ + } else if (needsToBeCreatedUser.equals("masterdata-220005")) { moduleSpecificUser = needsToBeCreatedUser; } else { - moduleSpecificUser = BaseTestCase.currentModule+"-"+ needsToBeCreatedUser; + moduleSpecificUser = BaseTestCase.currentModule + "-" + needsToBeCreatedUser; } logger.info(moduleSpecificUser); @@ -91,14 +91,13 @@ else if(needsToBeCreatedUser.equals("masterdata-220005")){ // Create user (requires manage-users role) Response response = null; response = usersRessource.create(user); - logger.info("Repsonse: %s %s%n"+ response.getStatus()+ response.getStatusInfo()); - if (response.getStatus()==409) { + logger.info("Repsonse: %s %s%n" + response.getStatus() + response.getStatusInfo()); + if (response.getStatus() == 409) { break; } - String userId = CreatedResponseUtil.getCreatedId(response); - logger.info("User created with userId: %s%n"+ userId); + logger.info("User created with userId: %s%n" + userId); // Define password credential CredentialRepresentation passwordCred = new CredentialRepresentation(); @@ -106,7 +105,7 @@ else if(needsToBeCreatedUser.equals("masterdata-220005")){ passwordCred.setTemporary(false); passwordCred.setType(CredentialRepresentation.PASSWORD); - //passwordCred.setValue(userPassword.get(passwordIndex)); + // passwordCred.setValue(userPassword.get(passwordIndex)); passwordCred.setValue(ArcConfigManager.getIAMUsersPassword()); UserResource userResource = usersRessource.get(userId); @@ -118,18 +117,18 @@ else if(needsToBeCreatedUser.equals("masterdata-220005")){ List allRoles = realmResource.roles().list(); List availableRoles = new ArrayList<>(); List toBeAssignedRoles = List.of(ArcConfigManager.getRolesForUser().split(",")); - for(String role : toBeAssignedRoles) { - if(allRoles.stream().anyMatch((r->r.getName().equalsIgnoreCase(role)))){ - availableRoles.add(allRoles.stream().filter(r->r.getName().equals(role)).findFirst().get()); - }else { - logger.info("Role not found in keycloak: %s%n"+ role); + for (String role : toBeAssignedRoles) { + if (allRoles.stream().anyMatch((r -> r.getName().equalsIgnoreCase(role)))) { + availableRoles.add(allRoles.stream().filter(r -> r.getName().equals(role)).findFirst().get()); + } else { + logger.info("Role not found in keycloak: %s%n" + role); } } // Assign realm role tester to user userResource.roles().realmLevel() // - .add((availableRoles.isEmpty() ? allRoles : availableRoles)); + .add((availableRoles.isEmpty() ? allRoles : availableRoles)); - //passwordIndex ++; + // passwordIndex ++; } } @@ -146,10 +145,10 @@ public static void createUsersWithOutDefaultRole() { UsersResource usersRessource = realmResource.users(); Response response = null; response = usersRessource.create(user); - logger.info("Repsonse: %s %s%n"+ response.getStatus()+ response.getStatusInfo()); + logger.info("Repsonse: %s %s%n" + response.getStatus() + response.getStatusInfo()); String userId = CreatedResponseUtil.getCreatedId(response); - logger.info("User created with userId: %s%n"+ userId); + logger.info("User created with userId: %s%n" + userId); CredentialRepresentation passwordCred = new CredentialRepresentation(); @@ -165,20 +164,89 @@ public static void createUsersWithOutDefaultRole() { List allRoles = realmResource.roles().list(); List availableRoles = new ArrayList<>(); List toBeAssignedRoles = List.of(ArcConfigManager.getRolesForUser().split(",")); - for(String role : toBeAssignedRoles) { - if(!role.equalsIgnoreCase("Default")) { - if(allRoles.stream().anyMatch((r->r.getName().equalsIgnoreCase(role)))){ - availableRoles.add(allRoles.stream().filter(r->r.getName().equals(role)).findFirst().get()); - }else { - logger.info("Role not found in keycloak: %s%n"+ role); + for (String role : toBeAssignedRoles) { + if (!role.equalsIgnoreCase("Default")) { + if (allRoles.stream().anyMatch((r -> r.getName().equalsIgnoreCase(role)))) { + availableRoles.add(allRoles.stream().filter(r -> r.getName().equals(role)).findFirst().get()); + } else { + logger.info("Role not found in keycloak: %s%n" + role); + } } - } - userResource.roles().realmLevel() // - .add((availableRoles.isEmpty() ? allRoles : availableRoles)); + userResource.roles().realmLevel() // + .add((availableRoles.isEmpty() ? allRoles : availableRoles)); } } + public static void createUsersOnlyOperatorRole() { + List needsToBeCreatedUsers = List.of(ArcConfigManager.getIAMUsersToCreate().split(",")); + Keycloak keycloakInstance = getKeycloakInstance(); + for (String needsToBeCreatedUser : needsToBeCreatedUsers) { + UserRepresentation user = new UserRepresentation(); + + if (needsToBeCreatedUser.equals("globaladmin")) { + onlyOperatorRoleUser = needsToBeCreatedUser; + } else if (needsToBeCreatedUser.equals("masterdata-220005")) { + onlyOperatorRoleUser = needsToBeCreatedUser; + + } + + else { + onlyOperatorRoleUser = BaseTestCase.currentModule + "-" + needsToBeCreatedUser; + } + + logger.info(onlyOperatorRoleUser); + user.setEnabled(true); + user.setUsername(onlyOperatorRoleUser); + user.setFirstName(onlyOperatorRoleUser); + user.setLastName(onlyOperatorRoleUser); + user.setEmail("automation" + onlyOperatorRoleUser + "@automationlabs.com"); + // Get realm + RealmResource realmResource = keycloakInstance.realm(ArcConfigManager.getIAMRealmId()); + UsersResource usersRessource = realmResource.users(); + // Create user (requires manage-users role) + Response response = null; + response = usersRessource.create(user); + logger.info("Repsonse: %s %s%n" + response.getStatus() + response.getStatusInfo()); + if (response.getStatus() == 409) { + break; + } + + String userId = CreatedResponseUtil.getCreatedId(response); + logger.info("User created with userId: %s%n" + userId); + + // Define password credential + CredentialRepresentation passwordCred = new CredentialRepresentation(); + + passwordCred.setTemporary(false); + passwordCred.setType(CredentialRepresentation.PASSWORD); + + // passwordCred.setValue(userPassword.get(passwordIndex)); + passwordCred.setValue(ArcConfigManager.getIAMUsersPassword()); + + UserResource userResource = usersRessource.get(userId); + + // Set password credential + userResource.resetPassword(passwordCred); + + // Getting all the roles + List allRoles = realmResource.roles().list(); + List availableRoles = new ArrayList<>(); + List toBeAssignedRoles = List.of(ArcConfigManager.getRolesForUser().split(",")); + for (String role : toBeAssignedRoles) { + if (!role.equalsIgnoreCase("Registration_Supervisor")) { + if (allRoles.stream().anyMatch((r -> r.getName().equalsIgnoreCase(role)))) { + availableRoles.add(allRoles.stream().filter(r -> r.getName().equals(role)).findFirst().get()); + } else { + logger.info("Role not found in keycloak: %s%n" + role); + } + } + userResource.roles().realmLevel() // + .add((availableRoles.isEmpty() ? allRoles : availableRoles)); + + } + } + } public static String getDateTime() { LocalDateTime currentDateTime = LocalDateTime.now(); @@ -187,4 +255,9 @@ public static String getDateTime() { return formattedDateTime; } + public static String invalidUsername() { + int randomNum = new Random().nextInt(900) + 100; // 100–999 + return KeycloakUserManager.moduleSpecificUser + randomNum; + } + } diff --git a/ui-test/src/main/java/regclient/driver/DriverManager.java b/ui-test/src/main/java/regclient/driver/DriverManager.java index f8e355e04..b0d0f5b82 100644 --- a/ui-test/src/main/java/regclient/driver/DriverManager.java +++ b/ui-test/src/main/java/regclient/driver/DriverManager.java @@ -18,19 +18,25 @@ public class DriverManager { private static AppiumDriverLocalService service = null; private static AppiumDriver getAndroidDriver() { - DesiredCapabilities desiredCapabilities = CapabilitiesReader.getDesiredCapabilities("androidDevice", "/DesiredCapabilities.json"); + DesiredCapabilities desiredCapabilities = CapabilitiesReader.getDesiredCapabilities("androidDevice", + "/DesiredCapabilities.json"); appiumDriver.set(new AndroidDriver(service.getUrl(), desiredCapabilities)); return appiumDriver.get(); } - public static AppiumDriver getDriver() throws MalformedURLException,InterruptedException { + public static AppiumDriver getDriver() throws MalformedURLException, InterruptedException { return getAndroidDriver(); } public static void startAppiumServer() { PropertiesReader propertiesReader = new PropertiesReader(); - String ipAddress = System.getProperty("ipAddress") != null ? System.getProperty("ipAddress") : propertiesReader.getIpAddress(); - AppiumServiceBuilder builder = new AppiumServiceBuilder().withAppiumJS(new File(propertiesReader.getAppiumServerExecutable())).usingDriverExecutable(new File(propertiesReader.getNodePath())).withIPAddress(ipAddress).usingAnyFreePort().withArgument(GeneralServerFlag.LOCAL_TIMEZONE).withArgument(() -> "--allow-insecure","chromedriver_autodownload"); + String ipAddress = System.getProperty("ipAddress") != null ? System.getProperty("ipAddress") + : propertiesReader.getIpAddress(); + AppiumServiceBuilder builder = new AppiumServiceBuilder() + .withAppiumJS(new File(propertiesReader.getAppiumServerExecutable())) + .usingDriverExecutable(new File(propertiesReader.getNodePath())).withIPAddress(ipAddress) + .usingAnyFreePort().withArgument(GeneralServerFlag.LOCAL_TIMEZONE) + .withArgument(() -> "--allow-insecure", "chromedriver_autodownload"); service = AppiumDriverLocalService.buildService(builder); service.start(); } @@ -38,5 +44,5 @@ public static void startAppiumServer() { public static void stopAppiumServer() { if (service != null) service.stop(); - } + } } diff --git a/ui-test/src/main/java/regclient/page/AcknowledgementPage.java b/ui-test/src/main/java/regclient/page/AcknowledgementPage.java index bf7c873a2..86a827daf 100644 --- a/ui-test/src/main/java/regclient/page/AcknowledgementPage.java +++ b/ui-test/src/main/java/regclient/page/AcknowledgementPage.java @@ -2,7 +2,7 @@ import io.appium.java_client.AppiumDriver; -public abstract class AcknowledgementPage extends BasePage{ +public abstract class AcknowledgementPage extends BasePage { public AcknowledgementPage(AppiumDriver driver) { super(driver); @@ -24,6 +24,6 @@ public AcknowledgementPage(AppiumDriver driver) { public abstract DemographicDetailsPage clickOnDemographicDetailsTitle(); - public abstract String getAID(); - + public abstract String getAID(); + } diff --git a/ui-test/src/main/java/regclient/page/ApplicantBiometricsPage.java b/ui-test/src/main/java/regclient/page/ApplicantBiometricsPage.java index c7ed67072..1ec5dd1ae 100644 --- a/ui-test/src/main/java/regclient/page/ApplicantBiometricsPage.java +++ b/ui-test/src/main/java/regclient/page/ApplicantBiometricsPage.java @@ -2,13 +2,12 @@ import io.appium.java_client.AppiumDriver; - -public abstract class ApplicantBiometricsPage extends BasePage{ +public abstract class ApplicantBiometricsPage extends BasePage { public ApplicantBiometricsPage(AppiumDriver driver) { super(driver); } - + public abstract void enterCommentsInTextBox(String comments); public abstract void clickOnScanButton(); @@ -72,8 +71,8 @@ public ApplicantBiometricsPage(AppiumDriver driver) { public abstract boolean isExceptionScan(); public abstract boolean isCommentHeaderDisplyed(); - - public abstract boolean isExceptionCountDisplyed(); - - public abstract boolean isAuthenticationBiometricsPageDisplyed(); + + public abstract boolean isExceptionCountDisplyed(); + + public abstract boolean isAuthenticationBiometricsPageDisplyed(); } diff --git a/ui-test/src/main/java/regclient/page/AuthenticationPage.java b/ui-test/src/main/java/regclient/page/AuthenticationPage.java index 217c767ff..ca1282a7b 100644 --- a/ui-test/src/main/java/regclient/page/AuthenticationPage.java +++ b/ui-test/src/main/java/regclient/page/AuthenticationPage.java @@ -2,19 +2,20 @@ import io.appium.java_client.AppiumDriver; -public abstract class AuthenticationPage extends BasePage{ +public abstract class AuthenticationPage extends BasePage { public AuthenticationPage(AppiumDriver driver) { super(driver); } - + public abstract void enterUserName(String username); public abstract void enterPassword(String password); public abstract boolean isAuthenticationPageDisplayed(); - public abstract AcknowledgementPage clickOnAuthenticatenButton(); + public abstract boolean isAuthenticationImageDisplayed(); + public abstract AcknowledgementPage clickOnAuthenticatenButton(); } diff --git a/ui-test/src/main/java/regclient/page/BasePage.java b/ui-test/src/main/java/regclient/page/BasePage.java index f36da2d48..21a332f51 100644 --- a/ui-test/src/main/java/regclient/page/BasePage.java +++ b/ui-test/src/main/java/regclient/page/BasePage.java @@ -1,12 +1,22 @@ package regclient.page; +import io.appium.java_client.AppiumBy; import io.appium.java_client.AppiumDriver; import io.appium.java_client.HidesKeyboard; +import io.appium.java_client.MobileBy; +import io.appium.java_client.PerformsTouchActions; +import io.appium.java_client.TouchAction; +import io.appium.java_client.android.AndroidDriver; import io.appium.java_client.pagefactory.AppiumFieldDecorator; +import io.appium.java_client.remote.SupportsContextSwitching; +import io.appium.java_client.touch.WaitOptions; +import io.appium.java_client.touch.offset.PointOption; import io.netty.handler.timeout.TimeoutException; +import regclient.api.FetchUiSpec; import org.openqa.selenium.By; import org.openqa.selenium.Dimension; +import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.NoSuchElementException; import org.openqa.selenium.StaleElementReferenceException; import org.openqa.selenium.WebElement; @@ -33,8 +43,12 @@ import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.Collections; +import java.util.HashMap; +import java.util.List; import java.util.Locale; +import java.util.Map; import java.util.Random; +import java.util.Set; public class BasePage { protected AppiumDriver driver; @@ -95,7 +109,7 @@ protected void clickAndsendKeysToTextBox(WebElement element, String text) { waitTime(1); ((HidesKeyboard) driver).hideKeyboard(); } - + protected void clickAndsendKeysToTextBox2(WebElement element, String text) { this.waitForElementToBeVisible(element); element.click(); @@ -104,9 +118,9 @@ protected void clickAndsendKeysToTextBox2(WebElement element, String text) { waitTime(1); element.sendKeys(text); waitTime(1); - driver.navigate().back(); + driver.navigate().back(); } - + protected void sendKeysToTextBox(WebElement element, String text) { this.waitForElementToBeVisible(element); waitTime(1); @@ -114,7 +128,7 @@ protected void sendKeysToTextBox(WebElement element, String text) { waitTime(1); element.sendKeys(text); waitTime(1); - driver.navigate().back(); + driver.navigate().back(); } protected String getTextFromLocator(WebElement element) { @@ -125,27 +139,27 @@ protected String getTextFromLocator(WebElement element) { protected void cropCaptureImage(WebElement element) { PointerInput finger1 = new PointerInput(PointerInput.Kind.TOUCH, "finger1"); Sequence sequence = new Sequence(finger1, 1) - .addAction(finger1.createPointerMove(Duration.ZERO, PointerInput.Origin.viewport(),getCenterOfElement(element.getLocation(),element.getSize()))) //,43,1166 + .addAction(finger1.createPointerMove(Duration.ZERO, PointerInput.Origin.viewport(), + getCenterOfElement(element.getLocation(), element.getSize()))) // ,43,1166 .addAction(finger1.createPointerDown(PointerInput.MouseButton.LEFT.asArg())) .addAction(new Pause(finger1, Duration.ofMillis(200))) - .addAction(finger1.createPointerMove(Duration.ofMillis(500), PointerInput.Origin.viewport(),414,598)) + .addAction(finger1.createPointerMove(Duration.ofMillis(500), PointerInput.Origin.viewport(), 414, 598)) .addAction(finger1.createPointerUp(PointerInput.MouseButton.LEFT.asArg())); driver.perform(Collections.singletonList(sequence)); } private org.openqa.selenium.Point getCenterOfElement(org.openqa.selenium.Point point, Dimension size) { int x = (int) (point.getX() + size.getWidth() / 2); - int y = (int) (point.getY() + size.getHeight()/ 2); + int y = (int) (point.getY() + size.getHeight() / 2); return new org.openqa.selenium.Point(x, y); } - protected void waitForElementToBeVisible(WebElement element, int waitTime) { WebDriverWait wait = new WebDriverWait(driver, ofSeconds(waitTime)); wait.until(ExpectedConditions.visibilityOf(element)); } - protected void swipeOrScroll() { + protected void swipeOrScroll() { Dimension size = driver.manage().window().getSize(); int startX = size.getWidth() / 2; @@ -157,7 +171,8 @@ protected void swipeOrScroll() { .addAction(finger1.createPointerMove(Duration.ZERO, PointerInput.Origin.viewport(), startX, startY)) .addAction(finger1.createPointerDown(PointerInput.MouseButton.LEFT.asArg())) .addAction(new Pause(finger1, Duration.ofMillis(200))) - .addAction(finger1.createPointerMove(Duration.ofMillis(100), PointerInput.Origin.viewport(), endX, endY)) + .addAction( + finger1.createPointerMove(Duration.ofMillis(100), PointerInput.Origin.viewport(), endX, endY)) .addAction(finger1.createPointerUp(PointerInput.MouseButton.LEFT.asArg())); driver.perform(Collections.singletonList(sequence)); @@ -177,10 +192,12 @@ public static void disableAutoRotation() { ProcessBuilder processBuilder; String osName = System.getProperty("os.name"); if (osName.contains("Windows")) { - processBuilder = new ProcessBuilder("cmd.exe", "/c", "adb shell settings put system accelerometer_rotation 0"); + processBuilder = new ProcessBuilder("cmd.exe", "/c", + "adb shell settings put system accelerometer_rotation 0"); } else { - processBuilder = new ProcessBuilder("/bin/bash", "-c", "adb shell settings put system accelerometer_rotation 0"); + processBuilder = new ProcessBuilder("/bin/bash", "-c", + "adb shell settings put system accelerometer_rotation 0"); } processBuilder.redirectErrorStream(true); processBuilder.start(); @@ -189,13 +206,13 @@ public static void disableAutoRotation() { } } - protected String getCurrentDate() { + protected String getCurrentDate() { LocalDateTime currentDateTime = LocalDateTime.now(); - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd"); - return currentDateTime.format(formatter); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd"); + return currentDateTime.format(formatter); } - protected String getCurrentDateWord() { + protected String getCurrentDateWord() { LocalDate today = LocalDate.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEEE d MMMM", Locale.ENGLISH); String formattedDate = today.format(formatter); @@ -204,7 +221,7 @@ protected String getCurrentDateWord() { public static void waitTime(int sec) { try { - Thread.sleep(sec*1000); + Thread.sleep(sec * 1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); @@ -232,14 +249,14 @@ public WebElement retryFindElement(WebElement element, Duration timeout) { throw new RuntimeException("Element not found after " + maxAttempts + " attempts"); } - - protected void clickAndHold() { PointerInput finger1 = new PointerInput(PointerInput.Kind.TOUCH, "finger1"); Sequence sequence = new Sequence(finger1, 1) - .addAction(finger1.createPointerMove(Duration.ZERO, PointerInput.Origin.viewport(),547,2198)) //,43,1166 + .addAction(finger1.createPointerMove(Duration.ZERO, PointerInput.Origin.viewport(), 541, 1846)) .addAction(finger1.createPointerDown(PointerInput.MouseButton.LEFT.asArg())) - .addAction(new Pause(finger1, Duration.ofMillis(20000))); + .addAction(new Pause(finger1, Duration.ofSeconds(2))) + .addAction(finger1.createPointerUp(PointerInput.MouseButton.LEFT.asArg())); + driver.perform(Collections.singletonList(sequence)); } @@ -272,172 +289,358 @@ public static String getPublicKey() { public static String getName() { return name; } - + public WebElement findElementWithRetry(By by) { - int MAX_RETRIES = 10; - int RETRY_DELAY_MS = 2000; - WebElement element = null; - - for (int i = 0; i < MAX_RETRIES; i++) { - try { - try { - Thread.sleep(RETRY_DELAY_MS); // Wait before retrying - } catch (InterruptedException ie) { - Thread.currentThread().interrupt(); // Restore interrupted status - } - element = driver.findElement(by); - break; // Exit loop if the element is found - } catch (NoSuchElementException e) { - if (i < MAX_RETRIES - 1) { - swipeOrScroll(); // Call swipeOrScroll() after retry attempt fails - } else { - System.out.println("Element not found after " + MAX_RETRIES + " attempts."); - // throw e; // Optionally re-throw the exception if all retries fail - } - } - } - - return element; - } - - - public WebElement findElement(By by) { - int MAX_RETRIES = 10; - int RETRY_DELAY_MS = 1000; - WebElement element = null; - - for (int i = 0; i < MAX_RETRIES; i++) { - try { - element = driver.findElement(by); - break; // Exit loop if the element is found - } catch (NoSuchElementException e) { - if (i < MAX_RETRIES - 1) { - try { - Thread.sleep(RETRY_DELAY_MS); // Wait before retrying - } catch (InterruptedException ie) { - Thread.currentThread().interrupt(); // Restore interrupted status - } - } else { - throw new NoSuchElementException("Element not found after " + MAX_RETRIES + " attempts."); - } - } - } - - return element; + int MAX_RETRIES = 10; + int RETRY_DELAY_MS = 2000; + WebElement element = null; + + for (int i = 0; i < MAX_RETRIES; i++) { + try { + try { + Thread.sleep(RETRY_DELAY_MS); // Wait before retrying + } catch (InterruptedException ie) { + Thread.currentThread().interrupt(); // Restore interrupted status + } + element = driver.findElement(by); + break; // Exit loop if the element is found + } catch (NoSuchElementException e) { + if (i < MAX_RETRIES - 1) { + swipeOrScroll(); // Call swipeOrScroll() after retry attempt fails + } else { + System.out.println("Element not found after " + MAX_RETRIES + " attempts."); + // throw e; // Optionally re-throw the exception if all retries fail + } + } + } + + return element; + } + + public WebElement findElement(By by) { + int MAX_RETRIES = 10; + int RETRY_DELAY_MS = 1000; + WebElement element = null; + + for (int i = 0; i < MAX_RETRIES; i++) { + try { + element = driver.findElement(by); + break; // Exit loop if the element is found + } catch (NoSuchElementException e) { + if (i < MAX_RETRIES - 1) { + try { + Thread.sleep(RETRY_DELAY_MS); // Wait before retrying + } catch (InterruptedException ie) { + Thread.currentThread().interrupt(); // Restore interrupted status + } + } else { + throw new NoSuchElementException("Element not found after " + MAX_RETRIES + " attempts."); + } + } + } + + return element; + } + + protected boolean isElementDisplayed(By by) { + int attempts = 0; + while (attempts < 4) { + try { + waitForElementToBeVisible(driver.findElement(by)); + return driver.findElement(by).isDisplayed(); + } catch (Exception e) { + attempts++; + if (attempts == 4) { + return false; // After 3 attempts, return false + } + } + } + return false; + } + + protected void clickAtCoordinates(int x, int y) { + PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger"); + Sequence clickSequence = new Sequence(finger, 1) + .addAction(finger.createPointerMove(Duration.ZERO, PointerInput.Origin.viewport(), x, y)) // Move to x, + // y + // coordinates + .addAction(finger.createPointerDown(PointerInput.MouseButton.LEFT.asArg())) // Press down at x, y + // coordinates + .addAction(new Pause(finger, Duration.ofMillis(200))) // Pause for 200ms + .addAction(finger.createPointerUp(PointerInput.MouseButton.LEFT.asArg())); // Release at x, y + // coordinates + driver.perform(Collections.singletonList(clickSequence)); + } + + private static final Random random = new Random(); + + public static String generateData(String validator) { + if (validator == null || validator.isEmpty()) { + return generateStringOfLength(3, 30); } - - protected boolean isElementDisplayed(By by) { - int attempts = 0; - while (attempts < 4) { - try { - waitForElementToBeVisible(driver.findElement(by)); - return driver.findElement(by).isDisplayed(); - } catch (Exception e) { - attempts++; - if (attempts == 4) { - return false; // After 3 attempts, return false - } - } - } - return false; + switch (validator) { + case "^(?=.{2,50}$).*": + return generateStringOfLength(2, 30); + + case "^([0-9]{10})$": + return generateTenDigitNumber(); + + case "^(1869|18[7-9][0-9]|19[0-9][0-9]|20[0-9][0-9])/([0][1-9]|1[0-2])/([0][1-9]|[1-2][0-9]|3[01])$": + return generateDateInRange(); + + case "^(?=.{3,50}$).*": + return generateStringOfLength(3, 30); + + case "^[+]*([0-9]{1})([0-9]{9})$": + return generateNineDigitNumber() + "1"; + + case "^[0-9]{9}$": + return generateNineDigitNumber(); + + case "^[A-Za-z0-9_\\-]+(\\.[A-Za-z0-9_]+)*@[A-Za-z0-9_-]+(\\.[A-Za-z0-9_]+)*(\\.[a-zA-Z]{2,})$": + return generateEmail(); + + case "^([0-9]{10,30})$": + return generateTenDigitNumber(); + + default: + return "abcd"; } - - protected void clickAtCoordinates(int x, int y) { - PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger"); - Sequence clickSequence = new Sequence(finger, 1) - .addAction(finger.createPointerMove(Duration.ZERO, PointerInput.Origin.viewport(), x, y)) // Move to x, y coordinates - .addAction(finger.createPointerDown(PointerInput.MouseButton.LEFT.asArg())) // Press down at x, y coordinates - .addAction(new Pause(finger, Duration.ofMillis(200))) // Pause for 200ms - .addAction(finger.createPointerUp(PointerInput.MouseButton.LEFT.asArg())); // Release at x, y coordinates - driver.perform(Collections.singletonList(clickSequence)); + } + + private static String generateStringOfLength(int min, int max) { + int length = min + random.nextInt(max - min + 1); + StringBuilder sb = new StringBuilder(length); + for (int i = 0; i < length; i++) { + char c = (char) (random.nextInt(26) + 'a'); + sb.append(c); } - - private static final Random random = new Random(); - - public static String generateData(String validator) { - if (validator == null || validator.isEmpty()) { - return generateStringOfLength(3, 30); - } - - switch (validator) { - case "^(?=.{2,50}$).*": - return generateStringOfLength(2, 30); - - case "^([0-9]{10})$": - return generateTenDigitNumber(); - - case "^(1869|18[7-9][0-9]|19[0-9][0-9]|20[0-9][0-9])/([0][1-9]|1[0-2])/([0][1-9]|[1-2][0-9]|3[01])$": - return generateDateInRange(); - - case "^(?=.{3,50}$).*": - return generateStringOfLength(3, 30); - - case "^[+]*([0-9]{1})([0-9]{9})$": - return generateNineDigitNumber() + "1"; - - case "^[0-9]{9}$": - return generateNineDigitNumber(); - - case "^[A-Za-z0-9_\\-]+(\\.[A-Za-z0-9_]+)*@[A-Za-z0-9_-]+(\\.[A-Za-z0-9_]+)*(\\.[a-zA-Z]{2,})$": - return generateEmail(); - - case "^([0-9]{10,30})$": - return generateTenDigitNumber(); - - default: - return "abcd"; - } - } - - - private static String generateStringOfLength(int min, int max) { - int length = min + random.nextInt(max - min + 1); - StringBuilder sb = new StringBuilder(length); - for (int i = 0; i < length; i++) { - char c = (char) (random.nextInt(26) + 'a'); - sb.append(c); - } - return sb.toString(); - } - - private static String generateSixDigitNumber() { - return String.format("%06d", random.nextInt(1000000)); - } - - private static String generateTwoDigitNumber() { - return String.format("%02d", random.nextInt(100)); - } - - private static String generateOneDigitNumber() { - return String.valueOf(random.nextInt(10)); - } - - private static String generateDateInRange() { - int year = 1869 + random.nextInt(200); // Generates a year between 1869 and 2068 - int month = 1 + random.nextInt(12); // Generates a month between 1 and 12 - int day = 1 + random.nextInt(28); // Generates a day between 1 and 28 (to keep it simple) - - return String.format("%04d/%02d/%02d", year, month, day); - } - - private static String generateNineDigitNumber() { - return String.format("%09d", random.nextInt(1000000000)); - } - - - private static final Random randomten = new Random(); - - private static String generateTenDigitNumber() { - long number = 1000000000L + (long)(randomten.nextDouble() * 9000000000L); - return String.valueOf(number); - } - - - private static String generateEmail() { - String[] domains = {"example.com", "test.com", "email.com"}; - String localPart = generateStringOfLength(3, 10); - String domain = domains[random.nextInt(domains.length)]; - return localPart + "@" + domain; - } + return sb.toString(); + } + + private static String generateSixDigitNumber() { + return String.format("%06d", random.nextInt(1000000)); + } + + private static String generateTwoDigitNumber() { + return String.format("%02d", random.nextInt(100)); + } + + private static String generateOneDigitNumber() { + return String.valueOf(random.nextInt(10)); + } + + private static String generateDateInRange() { + int year = 1869 + random.nextInt(200); // Generates a year between 1869 and 2068 + int month = 1 + random.nextInt(12); // Generates a month between 1 and 12 + int day = 1 + random.nextInt(28); // Generates a day between 1 and 28 (to keep it simple) + + return String.format("%04d/%02d/%02d", year, month, day); + } + + private static String generateNineDigitNumber() { + return String.format("%09d", random.nextInt(1000000000)); + } + + private static final Random randomten = new Random(); + + private static String generateTenDigitNumber() { + long number = 1000000000L + (long) (randomten.nextDouble() * 9000000000L); + return String.valueOf(number); + } + + private static String generateEmail() { + String[] domains = { "example.com", "test.com", "email.com" }; + String localPart = generateStringOfLength(3, 10); + String domain = domains[random.nextInt(domains.length)]; + return localPart + "@" + domain; + } + + protected void switchContext(String targetContext) { + // Get all available contexts + Set contexts = ((SupportsContextSwitching) driver).getContextHandles(); + for (String context : contexts) { + System.out.println("Available context: " + context); + } + + // Try to match the target context + for (String context : contexts) { + if (context.toLowerCase().contains(targetContext.toLowerCase())) { + ((SupportsContextSwitching) driver).context(context); + System.out.println("Switched to context: " + context); + return; + } + } + + throw new RuntimeException("Target context not found: " + targetContext); + } + + protected void openArcApplication(String targetContext) { + AndroidDriver driver = (AndroidDriver) this.driver; + + if (driver.isAppInstalled("com.android.chrome")) { + driver.terminateApp("com.android.chrome"); + } + + driver.activateApp("io.mosip.registration_client"); + + if (driver.getContextHandles().contains(targetContext)) { + driver.context(targetContext); + } else { + System.out.println("Target context not available: " + targetContext); + driver.context(targetContext); + } + } + + public static void enableWifiAndData() throws IOException { + + new ProcessBuilder("adb", "shell", "svc", "wifi", "enable").start(); + new ProcessBuilder("adb", "shell", "svc", "data", "enable").start(); + } + + public static void disableWifiAndData() throws IOException { + new ProcessBuilder("adb", "shell", "svc", "wifi", "disable").start(); + new ProcessBuilder("adb", "shell", "svc", "data", "disable").start(); + } + + public WebElement findElementIfExists(By locator) { + try { + return findElementWithRetry(locator); // reuse your existing retry logic + } catch (Exception e) { + // Optional: log for debugging + System.out.println("⚠️ Element not found after retries: " + locator); + return null; // prevents NoSuchElementException / NPE + } + } + + public String extractValue(WebElement e) { + if (e == null) + return ""; + try { + String t = safeTrim(e.getText()); + if (!t.isEmpty()) + return t; + } catch (Exception ignored) { + } + try { + String cd = safeTrim(e.getAttribute("content-desc")); + if (!cd.isEmpty()) + return cd; + } catch (Exception ignored) { + } + try { + WebElement child = e.findElement(By.xpath(".//*")); + if (child != null) { + String ct = safeTrim(child.getText()); + if (!ct.isEmpty()) + return ct; + String ccd = safeTrim(child.getAttribute("content-desc")); + if (!ccd.isEmpty()) + return ccd; + } + } catch (Exception ignored) { + } + return ""; + } + + private String safeTrim(String s) { + return s == null ? "" : s.trim(); + } + + public String getVisibleValue(WebElement e) { + if (e == null) + return ""; + try { + String t = e.getText(); + if (t != null && !t.trim().isEmpty()) + return t.trim(); + } catch (Exception ignored) { + } + try { + String cd = e.getAttribute("content-desc"); + if (cd != null && !cd.trim().isEmpty()) + return cd.trim(); + } catch (Exception ignored) { + } + try { + WebElement child = e.findElement(By.xpath(".//*")); + if (child != null) { + String ct = child.getText(); + if (ct != null && !ct.trim().isEmpty()) + return ct.trim(); + String ccd = child.getAttribute("content-desc"); + if (ccd != null && !ccd.trim().isEmpty()) + return ccd.trim(); + } + } catch (Exception ignored) { + } + return ""; + } + + public String safeGetAttr(WebElement e, String name) { + try { + String v = e.getAttribute(name); + return v == null ? "" : v; + } catch (Exception ex) { + return ""; + } + } + + public String extract(WebElement e) { + if (e == null) + return ""; + try { + String t = e.getText(); + if (t != null && !t.trim().isEmpty()) + return t.trim(); + } catch (Exception ignored) { + } + try { + String cd = e.getAttribute("content-desc"); + if (cd != null && !cd.trim().isEmpty()) + return cd.trim(); + } catch (Exception ignored) { + } + try { + WebElement child = e.findElement(By.xpath(".//*")); + if (child != null) { + try { + String ct = child.getText(); + if (ct != null && !ct.trim().isEmpty()) + return ct.trim(); + } catch (Exception ignored) { + } + try { + String ccd = child.getAttribute("content-desc"); + if (ccd != null && !ccd.trim().isEmpty()) + return ccd.trim(); + } catch (Exception ignored) { + } + } + } catch (Exception ignored) { + } + return ""; + } + + protected void scrollToTop() { + Dimension size = driver.manage().window().getSize(); + int startX = size.getWidth() / 2; + int startY = (int) (size.getHeight() * 0.25); // near top + int endX = startX; + int endY = (int) (size.getHeight() * 0.75); // near bottom + + PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger"); + Sequence scrollUp = new Sequence(finger, 1) + .addAction(finger.createPointerMove(Duration.ZERO, PointerInput.Origin.viewport(), startX, startY)) + .addAction(finger.createPointerDown(PointerInput.MouseButton.LEFT.asArg())) + .addAction(new Pause(finger, Duration.ofMillis(200))) + .addAction(finger.createPointerMove(Duration.ofMillis(400), PointerInput.Origin.viewport(), endX, endY)) + .addAction(finger.createPointerUp(PointerInput.MouseButton.LEFT.asArg())); + + // perform a few downward swipes to reach top + for (int i = 0; i < 5; i++) { + driver.perform(Collections.singletonList(scrollUp)); + } + } } diff --git a/ui-test/src/main/java/regclient/page/BiometricDetailsPage.java b/ui-test/src/main/java/regclient/page/BiometricDetailsPage.java index 26e299aca..2636bf22b 100644 --- a/ui-test/src/main/java/regclient/page/BiometricDetailsPage.java +++ b/ui-test/src/main/java/regclient/page/BiometricDetailsPage.java @@ -2,39 +2,41 @@ import io.appium.java_client.AppiumDriver; - - -public abstract class BiometricDetailsPage extends BasePage{ +public abstract class BiometricDetailsPage extends BasePage { public BiometricDetailsPage(AppiumDriver driver) { super(driver); } - public abstract boolean isBiometricDetailsPageDisplayed(); - + public abstract boolean isBiometricDetailsPageDisplayed(); + public abstract ApplicantBiometricsPage clickOnIrisScan(); - + public abstract IntroducerBiometricPage clickOnIntroducerIrisScan(); - + public abstract ApplicantBiometricsPage clickOnRightHandScanIcon(); - + public abstract ApplicantBiometricsPage clickOnLeftHandScanIcon(); - + public abstract ApplicantBiometricsPage clickOnThumbsScanIcon(); - + public abstract ApplicantBiometricsPage clickOnFaceScanIcon(); - + public abstract ApplicantBiometricsPage clickOnExceptionScanIcon(); - - public abstract PreviewPage clickOnContinueButton(); - - public abstract boolean isAuthenticationBiometricTitleDisplayed(); - - public abstract IntroducerBiometricPage clickOnIntroducerRightHandScan(); - public abstract IntroducerBiometricPage clickOnIntroducerLeftHandScan(); + public abstract PreviewPage clickOnContinueButton(); + + public abstract boolean isAuthenticationBiometricTitleDisplayed(); + + public abstract IntroducerBiometricPage clickOnIntroducerRightHandScan(); + + public abstract IntroducerBiometricPage clickOnIntroducerLeftHandScan(); + + public abstract IntroducerBiometricPage clickOnIntroducerThumbScan(); + + public abstract IntroducerBiometricPage clickOnIntroducerFaceScan(); - public abstract IntroducerBiometricPage clickOnIntroducerThumbScan(); + public abstract boolean isAdditionalInfoRequestIdTextboxDisplayed(); - public abstract IntroducerBiometricPage clickOnIntroducerFaceScan(); + public abstract void enterAdditionalInfoUsingEmail(String emailId); } diff --git a/ui-test/src/main/java/regclient/page/CameraPage.java b/ui-test/src/main/java/regclient/page/CameraPage.java index 88755d7b8..7ff5f55b2 100644 --- a/ui-test/src/main/java/regclient/page/CameraPage.java +++ b/ui-test/src/main/java/regclient/page/CameraPage.java @@ -6,31 +6,51 @@ import io.appium.java_client.AppiumDriver; import io.appium.java_client.pagefactory.AndroidFindBy; import regclient.utils.TestDataReader; -; -public class CameraPage extends BasePage{ +public class CameraPage extends BasePage { - @AndroidFindBy(xpath = "//android.widget.TextView[@text=\"OK\"]") - + @AndroidFindBy(xpath = "//android.widget.TextView[@text=\"OK\"]") private WebElement okButton; + @AndroidFindBy(xpath = "//android.view.View[@content-desc='CANCEL']") + private WebElement cancelButton; + + @AndroidFindBy(id = "com.android.permissioncontroller:id/permission_message") + private WebElement permissionMessage; + + @AndroidFindBy(id = "com.android.permissioncontroller:id/permission_allow_foreground_only_button") + private WebElement allowWhileUsingButton; + public CameraPage(AppiumDriver driver) { super(driver); } - public void clickOkButton() { - if(isElementDisplayed(okButton)) - clickOnElement(okButton); - else { - waitTime(7); - clickAtCoordinates(401,1123); + public void clickimage() { + waitTime(1); + clickAtCoordinates(1835, 600); + } + + public void clickOkButton() { + if (isElementDisplayed(okButton)) + clickOnElement(okButton); + else { + waitTime(1); + clickAtCoordinates(43, 78); } } - public void clickimage() { - waitTime(7); - clickAtCoordinates(401,1123); + public void clickCancelButtonOfQrScanner() { + clickOnElement(cancelButton); + } + public void handleCameraPermission() { + try { + if (permissionMessage != null && isElementDisplayed(permissionMessage, 3)) { + clickOnElement(allowWhileUsingButton); + waitTime(1); + } + } catch (Exception ignored) { + } } } diff --git a/ui-test/src/main/java/regclient/page/ConsentPage.java b/ui-test/src/main/java/regclient/page/ConsentPage.java index 200dd6900..fb4b43472 100644 --- a/ui-test/src/main/java/regclient/page/ConsentPage.java +++ b/ui-test/src/main/java/regclient/page/ConsentPage.java @@ -2,21 +2,21 @@ import io.appium.java_client.AppiumDriver; -public abstract class ConsentPage extends BasePage{ +public abstract class ConsentPage extends BasePage { public ConsentPage(AppiumDriver driver) { super(driver); } - public abstract boolean isConsentPageDisplayed(); + public abstract boolean isPageDisplayed(String pageKey); public abstract boolean isCheckBoxReadable(); - public abstract boolean isInformedButtonEnabled(); + public abstract boolean isInformedButtonEnabled(); + + public abstract DemographicDetailsPage clickOnInformedButton(); + + public abstract RegistrationTasksPage clickOnCancelButton(); - public abstract DemographicDetailsPage clickOnInformedButton(); - - public abstract RegistrationTasksPage clickOnCancelButton(); - public abstract boolean updateUINTitleDisplayed(); } diff --git a/ui-test/src/main/java/regclient/page/DashboardPage.java b/ui-test/src/main/java/regclient/page/DashboardPage.java index aaa29f398..be5943819 100644 --- a/ui-test/src/main/java/regclient/page/DashboardPage.java +++ b/ui-test/src/main/java/regclient/page/DashboardPage.java @@ -2,7 +2,7 @@ import io.appium.java_client.AppiumDriver; -public abstract class DashboardPage extends BasePage{ +public abstract class DashboardPage extends BasePage { public DashboardPage(AppiumDriver driver) { super(driver); diff --git a/ui-test/src/main/java/regclient/page/DemographicDetailsPage.java b/ui-test/src/main/java/regclient/page/DemographicDetailsPage.java index 7d39b1439..587cad533 100644 --- a/ui-test/src/main/java/regclient/page/DemographicDetailsPage.java +++ b/ui-test/src/main/java/regclient/page/DemographicDetailsPage.java @@ -2,18 +2,17 @@ import io.appium.java_client.AppiumDriver; - -public abstract class DemographicDetailsPage extends BasePage{ +public abstract class DemographicDetailsPage extends BasePage { public DemographicDetailsPage(AppiumDriver driver) { super(driver); } - - public abstract boolean isDemographicDetailsPageDisplayed(); + + public abstract boolean isPageDisplayed(String pageKey); public abstract boolean isErrorMessageInvalidInputTextDisplayed(); - public abstract ConsentPage clickOnConsentPageTitle(); + public abstract ConsentPage clickOnPageTitle(String pageKey); public abstract DocumentUploadPage clickOnContinueButton(); @@ -26,9 +25,19 @@ public DemographicDetailsPage(AppiumDriver driver) { public abstract boolean checkSecondLanguageTextBoxNotNull(String id); public abstract boolean checkDateFormatAndCurrectDate(String id); - + public abstract void fillIntroducerDetailsInDemographicDetailsPage(String age); - - public abstract boolean isContinueButtonEnable(); + + public abstract boolean isContinueButtonEnable(); + + public abstract boolean isApplicationIdTextBoxDisplay(); + + public abstract void clickOnScanButton(); + + public abstract void fetchPreregApplicationId(String age); + + public abstract void validateFetchedDemographicData(); + + public abstract void fillRemainDemographicDetailsPage(String age); } diff --git a/ui-test/src/main/java/regclient/page/DocumentUploadPage.java b/ui-test/src/main/java/regclient/page/DocumentUploadPage.java index a04b0152a..5452d622d 100644 --- a/ui-test/src/main/java/regclient/page/DocumentUploadPage.java +++ b/ui-test/src/main/java/regclient/page/DocumentUploadPage.java @@ -2,24 +2,23 @@ import io.appium.java_client.AppiumDriver; - public abstract class DocumentUploadPage extends BasePage { - public DocumentUploadPage(AppiumDriver driver) { - super(driver); - } + public DocumentUploadPage(AppiumDriver driver) { + super(driver); + } + + public abstract BiometricDetailsPage clickOnContinueButton(); - public abstract BiometricDetailsPage clickOnContinueButton(); - public abstract boolean isDoccumentUploadPageDisplayed(); - - public abstract DocumentUploadPage clickOnSaveButton(); - + + public abstract DocumentUploadPage clickOnSaveButton(); + public abstract boolean isRetakeButtonDisplayed(); - + public abstract void cropCaptureImage(); - - public abstract void uploadDoccuments(String age,String type); - - public abstract void uploadDoccumentsUpdate(String age,String type); + + public abstract void uploadDoccuments(String age, String type); + + public abstract void uploadDoccumentsUpdate(String age, String type); } diff --git a/ui-test/src/main/java/regclient/page/IdentityProofPage.java b/ui-test/src/main/java/regclient/page/IdentityProofPage.java index 9a7cb1fbe..217853680 100644 --- a/ui-test/src/main/java/regclient/page/IdentityProofPage.java +++ b/ui-test/src/main/java/regclient/page/IdentityProofPage.java @@ -2,11 +2,12 @@ import io.appium.java_client.AppiumDriver; -public abstract class IdentityProofPage extends BasePage{ +public abstract class IdentityProofPage extends BasePage { public IdentityProofPage(AppiumDriver driver) { super(driver); } + public abstract DocumentUploadPage clickOnSaveButton(); public abstract boolean isRetakeButtonDisplayed(); diff --git a/ui-test/src/main/java/regclient/page/IntroducerBiometricPage.java b/ui-test/src/main/java/regclient/page/IntroducerBiometricPage.java index d952ea4cc..9832d3efd 100644 --- a/ui-test/src/main/java/regclient/page/IntroducerBiometricPage.java +++ b/ui-test/src/main/java/regclient/page/IntroducerBiometricPage.java @@ -2,12 +2,12 @@ import io.appium.java_client.AppiumDriver; -public abstract class IntroducerBiometricPage extends BasePage{ +public abstract class IntroducerBiometricPage extends BasePage { public IntroducerBiometricPage(AppiumDriver driver) { super(driver); } - + public abstract void clickOnScanButton(); public abstract void markOneEyeException(); @@ -59,6 +59,7 @@ public IntroducerBiometricPage(AppiumDriver driver) { public abstract boolean isFaceScan(); public abstract boolean isExceptionScan(); - + + public abstract boolean isNextButtonDisplyed(); } diff --git a/ui-test/src/main/java/regclient/page/KeycloakPage.java b/ui-test/src/main/java/regclient/page/KeycloakPage.java new file mode 100644 index 000000000..13021777a --- /dev/null +++ b/ui-test/src/main/java/regclient/page/KeycloakPage.java @@ -0,0 +1,44 @@ +package regclient.page; + +import io.appium.java_client.AppiumDriver; + +public abstract class KeycloakPage extends BasePage { + + public KeycloakPage(AppiumDriver driver) { + super(driver); + + } + + public abstract boolean openKeycloakWebView(); + + public abstract String getPageTitle(); + + public abstract void clickOnLanguageDropdown(); + + public abstract void clickOnEnglishLanguage(); + + public abstract void enterUserName(String username); + + public abstract void enterPassword(String password); + + public abstract void clickOnloginButton(); + + public abstract void clickOnPasswordOption(); + + public abstract void enterExistPassword(String password); + + public abstract void enterNewPassword(String password); + + public abstract void enterConfirmPassword(String password); + + public abstract void clickOnSaveButton(); + + public abstract boolean isPasswordUpdatedMessageDisplayed(); + + public abstract void clickOnSignoutButton(); + + public abstract boolean openKeycloakPassword(); + + public abstract boolean resumeArcApplication(); + +} diff --git a/ui-test/src/main/java/regclient/page/LoginPage.java b/ui-test/src/main/java/regclient/page/LoginPage.java index 213b1311a..0859f5a0b 100644 --- a/ui-test/src/main/java/regclient/page/LoginPage.java +++ b/ui-test/src/main/java/regclient/page/LoginPage.java @@ -1,43 +1,42 @@ package regclient.page; - import io.appium.java_client.AppiumDriver;; -public abstract class LoginPage extends BasePage { +public abstract class LoginPage extends BasePage { public LoginPage(AppiumDriver driver) { super(driver); } - public abstract void enterUserName(String username) ; + public abstract void enterUserName(String username); - public abstract void clickOnNextButton(); + public abstract void clickOnNextButton(); - public abstract void clickOnBackButton(); + public abstract void clickOnBackButton(); - public abstract void enterPassword(String password) ; + public abstract void enterPassword(String password); - public abstract RegistrationTasksPage clickOnloginButton() ; + public abstract RegistrationTasksPage clickOnloginButton(); - public abstract boolean isNextButtonEnabled() ; + public abstract boolean isNextButtonEnabled(); - public abstract boolean isLoginButtonEnabled() ; + public abstract boolean isLoginButtonEnabled(); - public abstract boolean isLoginPageLoaded() ; + public abstract boolean isLoginPageLoaded(); - public abstract boolean isPasswordHeaderDisplayed() ; + public abstract boolean isPasswordHeaderDisplayed(); public abstract boolean isUserNameHeaderDisplayed(); - public abstract boolean isWelcomeMessageDisplayed() ; + public abstract boolean isWelcomeMessageDisplayed(); - public abstract boolean isWelcomeMessageInSelectedLanguageDisplayed() ; + public abstract boolean isWelcomeMessageInSelectedLanguageDisplayed(); public abstract boolean isHelpButtonDisplayed(); public abstract boolean isBackButtonDisplayed(); - public abstract boolean isForgetOptionDisplayed() ; + public abstract boolean isForgetOptionDisplayed(); public abstract boolean isUserNotFoundErrorMessageDisplayed(); @@ -47,4 +46,6 @@ public LoginPage(AppiumDriver driver) { public abstract void selectLanguage(); + public abstract void clickOnSkipToHomeButton(); + } diff --git a/ui-test/src/main/java/regclient/page/ManageApplicationsPage.java b/ui-test/src/main/java/regclient/page/ManageApplicationsPage.java index eaded2e1d..9644f4721 100644 --- a/ui-test/src/main/java/regclient/page/ManageApplicationsPage.java +++ b/ui-test/src/main/java/regclient/page/ManageApplicationsPage.java @@ -2,7 +2,7 @@ import io.appium.java_client.AppiumDriver; -public abstract class ManageApplicationsPage extends BasePage{ +public abstract class ManageApplicationsPage extends BasePage { public ManageApplicationsPage(AppiumDriver driver) { super(driver); @@ -51,7 +51,7 @@ public ManageApplicationsPage(AppiumDriver driver) { public abstract void selectSyncedOptionDropdown(); public abstract void selectUploadedOptionDropdown(); - + public abstract boolean isReceivedDropdownOptionDisplayed(); public abstract boolean isProcessingDropdownOptionDisplayed(); @@ -59,8 +59,17 @@ public ManageApplicationsPage(AppiumDriver driver) { public abstract boolean isAcceptedDropdownOptionDisplayed(); public abstract boolean isDeletionDropdownOptionDisplayed(); - + public abstract void clickOnBackButton(); - + public abstract boolean isPacketRejected(String AID); + + public abstract void clickOnExportButton(); + + public abstract void clickOnUseThisFolderButton(); + + public abstract boolean isNoNetworkFoundDisplayed(); + + public abstract void selectLatestAidCheckBox(); + } diff --git a/ui-test/src/main/java/regclient/page/MockSBIPage.java b/ui-test/src/main/java/regclient/page/MockSBIPage.java new file mode 100644 index 000000000..356b06ab5 --- /dev/null +++ b/ui-test/src/main/java/regclient/page/MockSBIPage.java @@ -0,0 +1,260 @@ +package regclient.page; + +import static io.appium.java_client.touch.WaitOptions.waitOptions; + +import java.time.Duration; +import java.util.Arrays; +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import org.openqa.selenium.By; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.interactions.PointerInput; +import org.openqa.selenium.interactions.Sequence; +import org.openqa.selenium.support.PageFactory; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; + +import io.appium.java_client.AppiumDriver; +import io.appium.java_client.MobileBy; +import io.appium.java_client.TouchAction; +import io.appium.java_client.android.Activity; +import io.appium.java_client.android.AndroidDriver; +import io.appium.java_client.pagefactory.AndroidFindBy; +import io.appium.java_client.pagefactory.AppiumFieldDecorator; +import io.appium.java_client.touch.offset.PointOption; + +public class MockSBIPage extends BasePage { + private WebDriverWait wait; + + @AndroidFindBy(id = "io.mosip.mock.sbi:id/settingBtn") + private WebElement mockSbiSettingsButton; + + @AndroidFindBy(id = "io.mosip.mock.sbi:id/face_device_status") + private WebElement faceDeviceStatusDropdown; + + @AndroidFindBy(id = "io.mosip.mock.sbi:id/finger_device_status") + private WebElement fingerDeviceStatusDropdown; + + @AndroidFindBy(id = "io.mosip.mock.sbi:id/iris_device_status") + private WebElement irisDeviceStatusDropdown; + + @AndroidFindBy(id = "io.mosip.mock.sbi:id/button12") + private WebElement mockSbiSaveButton; + + public MockSBIPage(AppiumDriver driver) { + super(driver); + this.driver = driver; + PageFactory.initElements(new AppiumFieldDecorator(driver), this); + this.wait = new WebDriverWait(driver, Duration.ofSeconds(10)); + } + + public void switchToMockSBI() { + String MOCKSBI_PACKAGE = "io.mosip.mock.sbi"; + String MOCKSBI_ACTIVITY = "client.ClientActivity"; + + Activity mocksbi = new Activity(MOCKSBI_PACKAGE, MOCKSBI_ACTIVITY); + ((AndroidDriver) driver).startActivity(mocksbi); + clickOnElement(mockSbiSettingsButton); + } + + public void setAllToNotReadyAndSave() { + + setAllToNotReady("Face", "io.mosip.mock.sbi:id/face_device_status"); + swipeOrScroll(); + setAllToNotReady("Finger", "io.mosip.mock.sbi:id/finger_device_status"); + swipeOrScroll(); + setAllToNotReady("Iris", "io.mosip.mock.sbi:id/iris_device_status"); + + clickOnElement(mockSbiSaveButton); + } + + public void switchBackToArcApp() { + AndroidDriver driver = (AndroidDriver) this.driver; + try { + // detect the package from session capability (not hardcoded) + String mainPackage = String.valueOf(driver.getCapabilities().getCapability("appium:appPackage")); + String mainActivity = String.valueOf(driver.getCapabilities().getCapability("appium:appActivity")); + + // if current package already matches, nothing to do + if (mainPackage != null && mainPackage.equals(driver.getCurrentPackage())) { + return; + } + + // 1️⃣ Try to simply bring ARC app to foreground if installed + if (driver.isAppInstalled(mainPackage)) { + driver.activateApp(mainPackage); + return; + } + + // 2️⃣ Fallback: use startActivity if activateApp didn't work + if (mainActivity != null && !mainActivity.isEmpty()) { + driver.startActivity(new Activity(mainPackage, mainActivity)); + } + + } catch (Exception ignored) { + } + } + + public void setAllToReadyAndSave() { + + setAllToReady("Face", "io.mosip.mock.sbi:id/face_device_status"); + swipeOrScroll(); + setAllToReady("Finger", "io.mosip.mock.sbi:id/finger_device_status"); + swipeOrScroll(); + setAllToReady("Iris", "io.mosip.mock.sbi:id/iris_device_status"); + + clickOnElement(mockSbiSaveButton); + } + + public void setAllModalityLowScroe() { + setModalityScore("Face", 20); // ModalityScore should be (20-5=15) + setModalityScore("Iris", 20); + clickOnElement(mockSbiSaveButton); + } + + public void setAllModalityHighScroe() { + setModalityScore("Face", 95); + setModalityScore("Iris", 95); + clickOnElement(mockSbiSaveButton); + } + + private void setAllToNotReady(String section, String dropdownId) { + + driver.findElement(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true))" + + ".scrollIntoView(new UiSelector().text(\"" + section + "\"));")); + WebElement dropdown = wait.until(ExpectedConditions.presenceOfElementLocated(By.id(dropdownId))); + clickOnElement(dropdown); + WebElement notReady = wait.until(ExpectedConditions + .visibilityOfElementLocated(MobileBy.AndroidUIAutomator("new UiSelector().text(\"Not Ready\")"))); + clickOnElement(notReady); + + } + + private void setAllToReady(String section, String dropdownId) { + + driver.findElement(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true))" + + ".scrollIntoView(new UiSelector().text(\"" + section + "\"));")); + WebElement dropdown = wait.until(ExpectedConditions.presenceOfElementLocated(By.id(dropdownId))); + clickOnElement(dropdown); + WebElement ready = wait.until(ExpectedConditions + .elementToBeClickable(MobileBy.AndroidUIAutomator("new UiSelector().text(\"Ready\")"))); + clickOnElement(ready); + + } + + private void setModalityScore(String modality, int score) { + try { + scrollToText(modality); + + String modLower = modality.toLowerCase(); + String xpath = String.format( + "//android.widget.SeekBar[contains(@resource-id, 'slider_%s_score') or contains(@content-desc, '%s Score')]", + modLower, modality); + + WebElement seekBar = findElementIfExists(By.xpath(xpath)); // non-throwing + + // fallback: a few swipes + re-checks + for (int i = 0; i < 5 && seekBar == null; i++) { + swipeOrScroll(); + waitTime(1); + seekBar = findElementIfExists(By.xpath(xpath)); + } + + if (seekBar == null) { + // final attempt using retry (may throw) — catch below + seekBar = findElementWithRetry(By.xpath(xpath)); + } + + if (seekBar == null) { + throw new RuntimeException("SeekBar not found for modality: " + modality); + } + + setSeekBarPercent(seekBar, score); + waitTime(1); + System.out.println("Set " + modality + " -> " + score); + } catch (Exception e) { + System.err.println("Failed to set modality '" + modality + "': " + e.getMessage()); + } + } + + private void scrollToText(String text) { + if (text == null || text.isEmpty()) + return; + + try { + driver.findElement(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true)).scrollIntoView(new UiSelector().text(\"" + text + + "\"))")); + return; + } catch (Exception ignored) { + } + + try { + driver.findElement(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true)).scrollIntoView(new UiSelector().textContains(\"" + + text + "\"))")); + return; + } catch (Exception ignored) { + } + + for (int i = 0; i < 5; i++) { + try { + if (driver.findElements(MobileBy.AndroidUIAutomator("new UiSelector().text(\"" + text + "\")")) + .size() > 0 + || driver + .findElements( + MobileBy.AndroidUIAutomator("new UiSelector().textContains(\"" + text + "\")")) + .size() > 0) { + return; + } + } catch (Exception ignored) { + } + swipeOrScroll(); + waitTime(1); + } + } + + public void setSeekBarPercent(WebElement seekBar, int percent) { + if (seekBar == null) + throw new IllegalArgumentException("seekBar cannot be null"); + if (percent < 0) + percent = 0; + if (percent > 100) + percent = 100; + + int startX = seekBar.getLocation().getX(); + int width = seekBar.getSize().getWidth(); + int y = seekBar.getLocation().getY() + (seekBar.getSize().getHeight() / 2); + + // 🔸 calibration offsets (approx 4–5% on both sides) + double leftOffset = 0.04; // skip a few px from start + double rightOffset = 0.96; // stop a bit before end + + double ratio = percent / 100.0; + // Apply left/right correction depending on where target is + if (ratio < leftOffset) + ratio = leftOffset; + if (ratio > rightOffset) + ratio = rightOffset; + + int targetX = startX + (int) (width * ratio); + + try { + PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger"); + Sequence drag = new Sequence(finger, 1); + drag.addAction(finger.createPointerMove(Duration.ZERO, PointerInput.Origin.viewport(), startX + 5, y)); + drag.addAction(finger.createPointerDown(PointerInput.MouseButton.LEFT.asArg())); + drag.addAction( + finger.createPointerMove(Duration.ofMillis(400), PointerInput.Origin.viewport(), targetX, y)); + drag.addAction(finger.createPointerUp(PointerInput.MouseButton.LEFT.asArg())); + driver.perform(Collections.singletonList(drag)); + waitTime(1); + } catch (Exception ex) { + clickAtCoordinates(targetX, y); + } + } + +} diff --git a/ui-test/src/main/java/regclient/page/OnBoardPage.java b/ui-test/src/main/java/regclient/page/OnBoardPage.java index d3d2d04c1..c25ec34d8 100644 --- a/ui-test/src/main/java/regclient/page/OnBoardPage.java +++ b/ui-test/src/main/java/regclient/page/OnBoardPage.java @@ -7,14 +7,15 @@ public abstract class OnBoardPage extends BasePage { public OnBoardPage(AppiumDriver driver) { super(driver); } + public abstract boolean isGetOnBoardTitleDisplayed(); - - public abstract boolean isHelpButtonDisplayed(); - - public abstract boolean isOnBoardWelcomeMessageDisplayed(); - - public abstract SupervisorBiometricVerificationpage clickOnGetOnBoardTitle(); - - public abstract RegistrationTasksPage clickOnSkipToHomeScreen(); - + + public abstract boolean isHelpButtonDisplayed(); + + public abstract boolean isOnBoardWelcomeMessageDisplayed(); + + public abstract SupervisorBiometricVerificationpage clickOnGetOnBoardTitle(); + + public abstract RegistrationTasksPage clickOnSkipToHomeScreen(); + } diff --git a/ui-test/src/main/java/regclient/page/OperationalTaskPage.java b/ui-test/src/main/java/regclient/page/OperationalTaskPage.java index 9201f9749..9e72a7b52 100644 --- a/ui-test/src/main/java/regclient/page/OperationalTaskPage.java +++ b/ui-test/src/main/java/regclient/page/OperationalTaskPage.java @@ -2,25 +2,25 @@ import io.appium.java_client.AppiumDriver; -public abstract class OperationalTaskPage extends BasePage{ +public abstract class OperationalTaskPage extends BasePage { public OperationalTaskPage(AppiumDriver driver) { super(driver); } - public abstract SupervisorBiometricVerificationpage clickOnUpdateOperatorBiometricsButton(); + public abstract SupervisorBiometricVerificationpage clickOnUpdateOperatorBiometricsButton(); public abstract boolean isOperationalTaskPageLoaded(); - - public abstract void clickSynchronizeDataButton(); - + + public abstract void clickSynchronizeDataButton(); + public abstract boolean checkLastSyncDate(); - public abstract void clickApplicationUploadTitle(); - + public abstract void clickApplicationUploadTitle(); + public abstract boolean isApplicationUploadTitleDisplayed(); - - public abstract void clickPendingApprovalTitle(); - public abstract boolean isPendingApprovalTitleDisplayed(); + public abstract void clickPendingApprovalTitle(); + + public abstract boolean isPendingApprovalTitleDisplayed(); } diff --git a/ui-test/src/main/java/regclient/page/PendingApproval.java b/ui-test/src/main/java/regclient/page/PendingApproval.java index bc5e76bb7..7c4424bdf 100644 --- a/ui-test/src/main/java/regclient/page/PendingApproval.java +++ b/ui-test/src/main/java/regclient/page/PendingApproval.java @@ -2,56 +2,72 @@ import io.appium.java_client.AppiumDriver; -public abstract class PendingApproval extends BasePage{ +public abstract class PendingApproval extends BasePage { public PendingApproval(AppiumDriver driver) { super(driver); } - + public abstract boolean isPendingApprovalTitleDisplayed(); - public abstract void clickOnAID(String AID); - - public abstract void clickOnApproveButton(); - - public abstract void clickOnClosePopUpButton(); - - public abstract void clickOnCheckBox(); - - public abstract void clickOnSubmitButton(); - - public abstract boolean isSupervisorAuthenticationTitleDisplayed(); - - public abstract void enterUserName(String username); - - public abstract void enterPassword(String password); - - public abstract void clickOnBackButton(); - - public abstract boolean isApprovalButtonDisplayed(); - - public abstract boolean isPageAttributesDisplayed(); - - public abstract boolean isClientStatusDisplayed(); - - public abstract boolean isReviewStatusDisplayed(); - - public abstract void enterAID(String AID); - - public abstract boolean isRejectButtonDisplayed(); - - public abstract void clickOnRejectButton(); - - public abstract void selectRejectionReasonDropdown(); - - public abstract boolean isRejectPacketTitleDisplayed(); - - public abstract boolean isSubmitButtonEnabled(); - - public abstract boolean isInvalidUsernameMessageDisplayed(); - - public abstract boolean isInvalidemptyUsernameSumbitButtonEnbled(); - - + public abstract void clickOnAID(String AID); + + public abstract void clickOnApproveButton(); + + public abstract void clickOnClosePopUpButton(); + + public abstract void clickOnCheckBox(); + + public abstract void clickOnSubmitButton(); + + public abstract boolean isSupervisorAuthenticationTitleDisplayed(); + + public abstract void enterUserName(String username); + + public abstract void enterPassword(String password); + + public abstract void clickOnBackButton(); + + public abstract boolean isApprovalButtonDisplayed(); + + public abstract boolean isPageAttributesDisplayed(); + + public abstract boolean isClientStatusDisplayed(); + + public abstract boolean isReviewStatusDisplayed(); + + public abstract void enterAID(String AID); + + public abstract boolean isRejectButtonDisplayed(); + + public abstract void clickOnRejectButton(); + + public abstract void selectRejectionReasonDropdown(); + + public abstract boolean isRejectPacketTitleDisplayed(); + + public abstract boolean isSubmitButtonEnabled(); + + public abstract boolean isInvalidUsernameMessageDisplayed(); + + public abstract boolean isInvalidemptyUsernameSumbitButtonEnbled(); + + public abstract boolean isNumberOfApplicationDisplayed(); + + public abstract boolean isRejectPacketInfoMessageDisplayed(); + + public abstract boolean isPendingApprovalBiometricsInformationDisplayed(); + + public abstract void clickOnLatestAid(); + + public abstract void selectLatestAIdCheckBox(); + + public abstract boolean isNoNetworkFoundDisplayed(); + + public abstract void clickOnPendingApprovalSubmitButton(int maxRetries); + + public abstract boolean isAuthenticateButtonEnabled(); + + public abstract void clickOnAuthenticateButton(); } diff --git a/ui-test/src/main/java/regclient/page/PreviewPage.java b/ui-test/src/main/java/regclient/page/PreviewPage.java index 89e2082b3..040a062b5 100644 --- a/ui-test/src/main/java/regclient/page/PreviewPage.java +++ b/ui-test/src/main/java/regclient/page/PreviewPage.java @@ -2,7 +2,7 @@ import io.appium.java_client.AppiumDriver; -public abstract class PreviewPage extends BasePage{ +public abstract class PreviewPage extends BasePage { public PreviewPage(AppiumDriver driver) { super(driver); @@ -21,14 +21,21 @@ public PreviewPage(AppiumDriver driver) { public abstract boolean isApplicationIDPreviewPagePageDisplayed(); public abstract DemographicDetailsPage clickOnDemographicDetailsTitle(); - + public abstract boolean isBothIrisImageDisplayed(); - + public abstract boolean isSingleIrisImageDisplayed(); - - public abstract boolean isFingerExceptionText() ; + + public abstract boolean isFingerExceptionText(); public abstract String getAID(); - + public abstract boolean updateUINTitleDisplayed(); + + public abstract void validatePreRegAndApplicationIdMatch(String age); + + public abstract String getEmailId(); + + public abstract boolean isLostUinTitleDisplayed(); + } diff --git a/ui-test/src/main/java/regclient/page/ProfilePage.java b/ui-test/src/main/java/regclient/page/ProfilePage.java index f685f3808..6c0cc4b4f 100644 --- a/ui-test/src/main/java/regclient/page/ProfilePage.java +++ b/ui-test/src/main/java/regclient/page/ProfilePage.java @@ -1,15 +1,20 @@ package regclient.page; import io.appium.java_client.AppiumDriver; -public abstract class ProfilePage extends BasePage{ + +public abstract class ProfilePage extends BasePage { public ProfilePage(AppiumDriver driver) { super(driver); } - public abstract LoginPage clickOnLogoutButton(); - + public abstract LoginPage clickOnLogoutButton(); + public abstract boolean isProfileTitleDisplayed(); - + public abstract boolean isLogoutPopUpMessageDisplayed(); + + public abstract boolean isResetPasswordButtonDisplayed(); + + public abstract LoginPage clickOnResetPasswordButton(); } diff --git a/ui-test/src/main/java/regclient/page/RegistrationTasksPage.java b/ui-test/src/main/java/regclient/page/RegistrationTasksPage.java index 0a3123b2e..bbfe4497d 100644 --- a/ui-test/src/main/java/regclient/page/RegistrationTasksPage.java +++ b/ui-test/src/main/java/regclient/page/RegistrationTasksPage.java @@ -2,45 +2,54 @@ import io.appium.java_client.AppiumDriver; - public abstract class RegistrationTasksPage extends BasePage { public RegistrationTasksPage(AppiumDriver driver) { super(driver); } - public abstract SelectLanguagePage clickOnNewRegistrationButton(); + public abstract SelectLanguagePage clickOnNewRegistrationButton(); + + public abstract void clickOnSynchronizeDataButton(); - public abstract void clickOnSynchronizeDataButton() ; - public abstract boolean isRegistrationTasksPageLoaded(); - public abstract boolean isOperationalTaskDisplayed(); - + public abstract boolean isOperationalTaskDisplayed(); + public abstract boolean isPolicykeySyncCompletedDisplayed(); public abstract boolean isMasterDataSyncCompletedDisplayed(); public abstract boolean isScriptSyncCompletedDisplayed(); - - public abstract DashboardPage clickOnDashboardButton(); - - public abstract OperationalTaskPage clickOnOperationalTasksTitle(); + + public abstract DashboardPage clickOnDashboardButton(); + + public abstract OperationalTaskPage clickOnOperationalTasksTitle(); public abstract boolean isProfileTitleDisplayed(); - - public abstract ProfilePage clickProfileButton(); - - public abstract SelectLanguagePage clickUpdateMyUINButton(); - + + public abstract ProfilePage clickProfileButton(); + + public abstract SelectLanguagePage clickUpdateMyUINButton(); + public abstract boolean isUpdateUINTitleDisplayed(); - + public abstract boolean isLostUINTitleDisplayed(); - + public abstract boolean isBiometricCorrectionTitleDisplayed(); - - public abstract void clickSynchronizeDataButton(); - public abstract boolean checkLastSyncDate(); + public abstract void clickSynchronizeDataButton(); + + public abstract boolean checkLastSyncDate(); + + public abstract void clickOnLostUinButton(); + + public abstract void clickOnSettingsButton(); + + public abstract SelectLanguagePage clickOnBiometricCorrectionButton(); + + public abstract void handleLocationPermission(); + + public abstract void clickOnRegistrationTasksTab(); } diff --git a/ui-test/src/main/java/regclient/page/SelectLanguagePage.java b/ui-test/src/main/java/regclient/page/SelectLanguagePage.java index 66aa6478e..660fb88d5 100644 --- a/ui-test/src/main/java/regclient/page/SelectLanguagePage.java +++ b/ui-test/src/main/java/regclient/page/SelectLanguagePage.java @@ -7,22 +7,22 @@ public abstract class SelectLanguagePage extends BasePage { public SelectLanguagePage(AppiumDriver driver) { super(driver); } - + public abstract boolean isSelectLanguagePageLoaded(); - public abstract void clickOnSubmitButtonWithoutSelectingLanguage(); + public abstract void clickOnSubmitButtonWithoutSelectingLanguage(); - public abstract void selectSecondLanguage(); + public abstract void selectSecondLanguage(); public abstract void selectNotificationlanguage(String notificationLanguage); - public abstract void selectAllSecondLanguage(); + public abstract void selectAllSecondLanguage(); - public abstract boolean isArabicLanguageButtonEnabled(); + public abstract boolean isArabicLanguageButtonEnabled(); - public abstract boolean isSubmitButtonEnabled(); + public abstract boolean isSubmitButtonEnabled(); - public abstract ConsentPage clickOnSubmitButton(); + public abstract ConsentPage clickOnSubmitButton(); public abstract boolean isNotificationLanguageEnglishDisplayed(); diff --git a/ui-test/src/main/java/regclient/page/SettingsPage.java b/ui-test/src/main/java/regclient/page/SettingsPage.java new file mode 100644 index 000000000..e188eeea0 --- /dev/null +++ b/ui-test/src/main/java/regclient/page/SettingsPage.java @@ -0,0 +1,48 @@ +package regclient.page; + +import io.appium.java_client.AppiumDriver; + +public abstract class SettingsPage extends BasePage { + + public SettingsPage(AppiumDriver driver) { + super(driver); + } + + public abstract boolean isScheduledJobsSettingsTabDisplayed(); + + public abstract boolean isGlobalConfigSettingsTabDisplayed(); + + public abstract boolean isDeviceSettingsTabDisplayed(); + + public abstract void clickOnGlobalConfigSettingsTab(); + + public abstract boolean isGlobalConfigSettingsHeaderDisplayed(); + + public abstract void clickOnSubmitButton(); + + public abstract boolean isNoChangesToSaveDisplayed(); + + public abstract void clickOnDeviceSettingsTab(); + + public abstract boolean isDeviceSettingsPageDisplayed(); + + public abstract boolean isScanNowButtonDisplayed(); + + public abstract void clickOnScanNowButton(); + + public abstract boolean isFaceDeviceCardDisplayed(); + + public abstract boolean isIrisDeviceCardDisplayed(); + + public abstract boolean isFingerDeviceCardDisplayed(); + + public abstract void validateDeviceCard(String deviceName); + + public abstract void clickOnScheduledJobsSettingsTab(); + + public abstract boolean isNoDevicesFoundDisplayed(); + + public abstract boolean isSubmitChangesPopupDisplayed(); + + public abstract void clickOnChangesConfirmButton(); +} diff --git a/ui-test/src/main/java/regclient/page/SupervisorBiometricVerificationpage.java b/ui-test/src/main/java/regclient/page/SupervisorBiometricVerificationpage.java index 5eb3a63d7..57d5aaa49 100644 --- a/ui-test/src/main/java/regclient/page/SupervisorBiometricVerificationpage.java +++ b/ui-test/src/main/java/regclient/page/SupervisorBiometricVerificationpage.java @@ -2,11 +2,12 @@ import io.appium.java_client.AppiumDriver; -public abstract class SupervisorBiometricVerificationpage extends BasePage{ +public abstract class SupervisorBiometricVerificationpage extends BasePage { public SupervisorBiometricVerificationpage(AppiumDriver driver) { super(driver); } + public abstract boolean isSupervisorBiometricVerificationPageLoaded(); public abstract void clickOnIrisScan(); @@ -56,54 +57,54 @@ public SupervisorBiometricVerificationpage(AppiumDriver driver) { public abstract boolean isThumbsScanQualityDisplyed(); public abstract boolean isFaceScanQualityDisplyed(); - + public abstract void clickOnMarkExceptionButton(); - public abstract void markOneEyeException(); + public abstract void markOneEyeException(); + + public abstract void markOneFingureException(); + + public abstract boolean isExceptionTypeTitleDisplyed(); + + public abstract void clickOnExceptionTypeTemporaryButton(); + + public abstract boolean isCommentHeaderDisplyed(); + + public abstract void enterCommentsInTextBox(String comments); + + public abstract void clickOnIrisScanTitle(); + + public abstract void clickOnThumbsScanTitle(); + + public abstract boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed(); - public abstract void markOneFingureException(); - - public abstract boolean isExceptionTypeTitleDisplyed(); + public abstract boolean isZoomButtonDisplyed(); - public abstract void clickOnExceptionTypeTemporaryButton(); + public abstract void clickOnRightHandScanTitle(); - public abstract boolean isCommentHeaderDisplyed(); + public abstract void clickOnleftHandScanTitle(); - public abstract void enterCommentsInTextBox(String comments); + public abstract void clickOnFaceScanTitle(); - public abstract void clickOnIrisScanTitle(); - - public abstract void clickOnThumbsScanTitle(); - - public abstract boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed(); - - public abstract boolean isZoomButtonDisplyed(); - - public abstract void clickOnRightHandScanTitle(); + public abstract boolean checkThresholdValueIris(); + + public abstract boolean checkThresholdValueRightHand(); - public abstract void clickOnleftHandScanTitle(); - - public abstract void clickOnFaceScanTitle(); - - public abstract boolean checkThresholdValueIris(); - - public abstract boolean checkThresholdValueRightHand(); - public abstract boolean checkThresholdValueLeftHand(); - + public abstract boolean checkThresholdValueThumbs(); - + public abstract boolean checkThresholdValueFace(); - + public abstract boolean isVerifyAndSaveButtonEnabled(); - + public abstract void clickOnVerifyAndSaveButton(); - + public abstract boolean isDismissPageLoaded(); - + public abstract boolean isOperatorOnboardedPopupLoaded(); - + public abstract void clickOnHomeButton(); - + public abstract void clickOnBackButton(); } diff --git a/ui-test/src/main/java/regclient/page/UpdateOperatorBiometricspage.java b/ui-test/src/main/java/regclient/page/UpdateOperatorBiometricspage.java index ef03fedd6..57927ac26 100644 --- a/ui-test/src/main/java/regclient/page/UpdateOperatorBiometricspage.java +++ b/ui-test/src/main/java/regclient/page/UpdateOperatorBiometricspage.java @@ -2,11 +2,11 @@ import io.appium.java_client.AppiumDriver; -public abstract class UpdateOperatorBiometricspage extends BasePage{ +public abstract class UpdateOperatorBiometricspage extends BasePage { public UpdateOperatorBiometricspage(AppiumDriver driver) { super(driver); - + } public abstract void clickOnIrisScan(); @@ -56,49 +56,49 @@ public UpdateOperatorBiometricspage(AppiumDriver driver) { public abstract boolean isThumbsScanQualityDisplyed(); public abstract boolean isFaceScanQualityDisplyed(); - + public abstract void clickOnMarkExceptionButton(); - public abstract void markOneEyeException(); + public abstract void markOneEyeException(); + + public abstract void markOneFingureException(); + + public abstract boolean isExceptionTypeTitleDisplyed(); + + public abstract void clickOnExceptionTypeTemporaryButton(); + + public abstract boolean isCommentHeaderDisplyed(); + + public abstract void enterCommentsInTextBox(String comments); + + public abstract void clickOnIrisScanTitle(); + + public abstract void clickOnThumbsScanTitle(); - public abstract void markOneFingureException(); - - public abstract boolean isExceptionTypeTitleDisplyed(); + public abstract boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed(); - public abstract void clickOnExceptionTypeTemporaryButton(); + public abstract boolean isZoomButtonDisplyed(); - public abstract boolean isCommentHeaderDisplyed(); + public abstract void clickOnRightHandScanTitle(); - public abstract void enterCommentsInTextBox(String comments); + public abstract void clickOnLeftHandScanTitle(); - public abstract void clickOnIrisScanTitle(); - - public abstract void clickOnThumbsScanTitle(); - - public abstract boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed(); - - public abstract boolean isZoomButtonDisplyed(); - - public abstract void clickOnRightHandScanTitle(); + public abstract void clickOnFaceScanTitle(); + + public abstract boolean checkThresholdValueIris(); + + public abstract boolean checkThresholdValueRightHand(); - public abstract void clickOnLeftHandScanTitle(); - - public abstract void clickOnFaceScanTitle(); - - public abstract boolean checkThresholdValueIris(); - - public abstract boolean checkThresholdValueRightHand(); - public abstract boolean checkThresholdValueLeftHand(); - + public abstract boolean checkThresholdValueThumbs(); - + public abstract boolean checkThresholdValueFace(); - + public abstract boolean isSupervisorBiometricUpdatePageLoaded(); - + public abstract boolean isVerifyAndSaveButtonEnabled(); - + public abstract boolean isOperatorBiometricsUpdatedPopupLoaded(); public abstract void clickOnHomeButton(); @@ -106,7 +106,9 @@ public UpdateOperatorBiometricspage(AppiumDriver driver) { public abstract void clickOnVerifyAndSaveButton(); public abstract boolean isDismissPageLoaded(); - + public abstract void clickOnBackButton(); + public abstract boolean isUpdateOperatorBiometricsPageLoaded(); + } diff --git a/ui-test/src/main/java/regclient/page/UpdateUINPage.java b/ui-test/src/main/java/regclient/page/UpdateUINPage.java index 1091135ff..d6b03e73d 100644 --- a/ui-test/src/main/java/regclient/page/UpdateUINPage.java +++ b/ui-test/src/main/java/regclient/page/UpdateUINPage.java @@ -2,7 +2,7 @@ import io.appium.java_client.AppiumDriver; -public abstract class UpdateUINPage extends BasePage{ +public abstract class UpdateUINPage extends BasePage { public UpdateUINPage(AppiumDriver driver) { super(driver); @@ -17,8 +17,7 @@ public UpdateUINPage(AppiumDriver driver) { public abstract boolean isInvalidUINErrorMessageDisplayed(); public abstract void selectUpdateValue(String page); - - public abstract void selectUpdateIntroducerDetails(); + public abstract void selectUpdateIntroducerDetails(); } diff --git a/ui-test/src/main/java/regclient/pages/arabic/AcknowledgementPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/AcknowledgementPageArabic.java index d4340f2f7..5e5c6a56e 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/AcknowledgementPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/AcknowledgementPageArabic.java @@ -16,74 +16,75 @@ public class AcknowledgementPageArabic extends AcknowledgementPage { @AndroidFindBy(accessibility = "اعتراف بالتسجيل") private WebElement acknowledgementPageTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\"Application ID\"))") private WebElement applicationID; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.Image\")") private WebElement qrCodeImage; - + @AndroidFindBy(accessibility = "اذهب إلى المنزل") private WebElement goToHomeButton; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\"Demographic Information\"))") private WebElement demographicInformationInAcknowledgementPage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\"Documents\"))") private WebElement documentsInformationInAcknowledgementPage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\"Biometrics\"))") private WebElement biometricsInformationInAcknowledgementPage; - + @AndroidFindBy(accessibility = "حزمة المزامنة") private WebElement syncPacketButton; - + public AcknowledgementPageArabic(AppiumDriver driver) { super(driver); } - + public RegistrationTasksPage clickOnGoToHomeButton() { clickOnElement(goToHomeButton); return new RegistrationTasksPageEnglish(driver); } - + public boolean isAcknowledgementPageDisplayed() { return isElementDisplayed(acknowledgementPageTitle); } - + public boolean isApplicationIDDisplayed() { return isElementDisplayed(applicationID); } - + public boolean isQrCodeImageDisplayed() { return isElementDisplayed(qrCodeImage); } - + public boolean isDemographicInformationInAcknowledgementPageDisplayed() { return isElementDisplayed(demographicInformationInAcknowledgementPage); } - + public boolean isDocumentsInformationInAcknowledgementPageDisplayed() { return isElementDisplayed(documentsInformationInAcknowledgementPage); } - + public boolean isBiometricsInformationInAcknowledgementPageDisplayed() { return isElementDisplayed(biometricsInformationInAcknowledgementPage); } - + @SuppressWarnings("deprecation") public DemographicDetailsPage clickOnDemographicDetailsTitle() { - clickOnElement(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))"))); + clickOnElement(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))"))); return new DemographicDetailsPageEnglish(driver); } - public void clickOnSyncPacketButton() { waitTime(10); clickOnElement(syncPacketButton); } - + public String getAID() { return getTextFromLocator(applicationID); } diff --git a/ui-test/src/main/java/regclient/pages/arabic/ApplicantBiometricsPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/ApplicantBiometricsPageArabic.java index 6d7e96402..3f472b7b0 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/ApplicantBiometricsPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/ApplicantBiometricsPageArabic.java @@ -11,121 +11,121 @@ import regclient.pages.english.BiometricDetailsPageEnglish; public class ApplicantBiometricsPageArabic extends ApplicantBiometricsPage { - + @AndroidFindBy(accessibility = "القزحية مسح") private WebElement irisScanButton; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"القزحية مسح\"))") private WebElement irisScanButtonTitle; - + @AndroidFindBy(accessibility = "دائم") private WebElement permanentButton; - + @AndroidFindBy(accessibility = "مؤقت") private WebElement temporaryButton; - + @AndroidFindBy(accessibility = "وضع علامة استثناء") private WebElement markExceptionButton; - + @AndroidFindBy(accessibility = "وضع علامة استثناء") private WebElement exceptionTypeTitle; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(1)") private WebElement oneEyeException; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(2)") private WebElement firstFingureExceptionImage; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(1)") private WebElement secondFingureExceptionImage; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(3)") private WebElement thirdFingureExceptionImage; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(4)") private WebElement forthFingureExceptionImage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"اليد اليمنى مسح\"))") private WebElement rightHandScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"اليد اليسرى مسح\"))") private WebElement leftHandScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"الأبهام مسح\"))") private WebElement thumbsScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"الوجه مسح\"))") private WebElement faceScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"استثناء مسح\"))") private WebElement exceptionScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().description(\"مسح\"))") private WebElement scanButton; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Iris')]") private WebElement irisCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'RightHand')]") private WebElement rightHandCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'LeftHand')]") private WebElement leftHandCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Thumbs')]") private WebElement thumbsCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Face')]") private WebElement faceCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Exception')]") private WebElement exceptionCapturerHeader; - + @AndroidFindBy(xpath = "//android.widget.ScrollView/android.view.View[3]") private WebElement zoomButton; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"التعليقات\")]/following-sibling::android.widget.EditText") private WebElement commentsTextBox; - + @AndroidFindBy(className = "android.widget.Button") private WebElement popUpCloseButton; - + @AndroidFindBy(accessibility = "مقبل") private WebElement nextButton; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"التعليقات\"))") private WebElement commentsHeader; - + @AndroidFindBy(xpath = "//android.view.View[@content-desc=\"الاستثناءات\"]/following-sibling::android.view.View[@content-desc=\"1\"]") private WebElement exceptionCount; - + public ApplicantBiometricsPageArabic(AppiumDriver driver) { super(driver); } - - public void enterCommentsInTextBox(String comments) { - if(!isElementDisplayedOnScreen(commentsTextBox)) { + + public void enterCommentsInTextBox(String comments) { + if (!isElementDisplayedOnScreen(commentsTextBox)) { swipeOrScroll(); } - clickAndsendKeysToTextBox(commentsTextBox,comments); + clickAndsendKeysToTextBox(commentsTextBox, comments); } public void clickOnScanButton() { clickOnElement(scanButton); - } + } public void clickOnExceptionTypePermanentButton() { - if(!isElementDisplayedOnScreen(permanentButton)) { + if (!isElementDisplayedOnScreen(permanentButton)) { swipeOrScroll(); } clickOnElement(permanentButton); } public void clickOnExceptionTypeTemporaryButton() { - if(!isElementDisplayedOnScreen(temporaryButton)) { + if (!isElementDisplayedOnScreen(temporaryButton)) { swipeOrScroll(); } - clickOnElement(temporaryButton); + clickOnElement(temporaryButton); } public void markOneEyeException() { @@ -191,69 +191,73 @@ public BiometricDetailsPage clickOnBackButton() { } @SuppressWarnings("deprecation") - public boolean isApplicantBiometricsPageDisplyed() { - return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("individualBiometrics") + "\"))"))); + public boolean isApplicantBiometricsPageDisplyed() { + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getValueUsingId("individualBiometrics") + "\"))"))); } @SuppressWarnings("deprecation") - public boolean isAuthenticationBiometricsPageDisplyed() { - return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("individualAuthBiometrics") + "\"))"))); + public boolean isAuthenticationBiometricsPageDisplyed() { + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getValueUsingId("individualAuthBiometrics") + "\"))"))); } - public boolean isExceptionTypeTitleDisplyed() { + public boolean isExceptionTypeTitleDisplyed() { return isElementDisplayed(exceptionTypeTitle); } - public boolean isRightHandScanTitleDisplyed() { + public boolean isRightHandScanTitleDisplyed() { return isElementDisplayed(rightHandScanTitle); } - public boolean isLeftHandScanTitleDisplyed() { + public boolean isLeftHandScanTitleDisplyed() { return isElementDisplayed(leftHandScanTitle); } - public boolean isThumbsScanTitleDisplyed() { + public boolean isThumbsScanTitleDisplyed() { return isElementDisplayed(thumbsScanTitle); } - public boolean isFaceScanTitleDisplyed() { + public boolean isFaceScanTitleDisplyed() { return isElementDisplayed(faceScanTitle); } - public boolean isExceptionScanTitleDisplyed() { + public boolean isExceptionScanTitleDisplyed() { return isElementDisplayed(exceptionScanTitle); } - public boolean isIrisScan() { - return isElementDisplayed(irisCapturerHeader,2000); + public boolean isIrisScan() { + return isElementDisplayed(irisCapturerHeader, 2000); } - public boolean isRightHandScan() { - return isElementDisplayed(rightHandCapturerHeader,2000); + public boolean isRightHandScan() { + return isElementDisplayed(rightHandCapturerHeader, 2000); } - public boolean isLeftHandScan() { - return isElementDisplayed(leftHandCapturerHeader,2000); + public boolean isLeftHandScan() { + return isElementDisplayed(leftHandCapturerHeader, 2000); } - public boolean isThumbsScan() { - return isElementDisplayed(thumbsCapturerHeader,2000); + public boolean isThumbsScan() { + return isElementDisplayed(thumbsCapturerHeader, 2000); } - public boolean isFaceScan() { - return isElementDisplayed(faceCapturerHeader,2000); + public boolean isFaceScan() { + return isElementDisplayed(faceCapturerHeader, 2000); } - public boolean isExceptionScan() { - return isElementDisplayed(exceptionCapturerHeader,2000); + public boolean isExceptionScan() { + return isElementDisplayed(exceptionCapturerHeader, 2000); } - public boolean isCommentHeaderDisplyed() { + public boolean isCommentHeaderDisplyed() { return isElementDisplayed(commentsHeader); } - public boolean isExceptionCountDisplyed() { - if(!isElementDisplayedOnScreen(exceptionCount)) { + public boolean isExceptionCountDisplyed() { + if (!isElementDisplayedOnScreen(exceptionCount)) { swipeOrScroll(); isElementDisplayed(exceptionCount); } diff --git a/ui-test/src/main/java/regclient/pages/arabic/AuthenticationPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/AuthenticationPageArabic.java index 39a5dc0e0..3fd2d3f5a 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/AuthenticationPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/AuthenticationPageArabic.java @@ -11,35 +11,42 @@ public class AuthenticationPageArabic extends AuthenticationPage { @AndroidFindBy(accessibility = "المصادقة باستخدام كلمة المرور") private WebElement authenticationPageTitle; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.EditText\").instance(0)") private WebElement userNameTextBox; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.EditText\").instance(1)") private WebElement passwordTextBox; - + @AndroidFindBy(accessibility = "المصادقة") private WebElement authenticateButton; - + + @AndroidFindBy(xpath = "//android.view.View[@content-desc='Authentication using Password']/preceding-sibling::android.widget.ImageView") + private WebElement authenticationImage; + public AuthenticationPageArabic(AppiumDriver driver) { super(driver); } - - public void enterUserName(String username) { - clickAndsendKeysToTextBox(userNameTextBox,username); + + public void enterUserName(String username) { + clickAndsendKeysToTextBox(userNameTextBox, username); } - - public void enterPassword(String password) { - clickAndsendKeysToTextBox(passwordTextBox,password); + + public void enterPassword(String password) { + clickAndsendKeysToTextBox(passwordTextBox, password); } - + public boolean isAuthenticationPageDisplayed() { return isElementDisplayed(authenticationPageTitle); } - + public AcknowledgementPage clickOnAuthenticatenButton() { clickOnElement(authenticateButton); return new AcknowledgementPageArabic(driver); } + public boolean isAuthenticationImageDisplayed() { + return isElementDisplayed(authenticationImage); + } + } diff --git a/ui-test/src/main/java/regclient/pages/arabic/BiometricDetailsPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/BiometricDetailsPageArabic.java index 2dbe42cc0..936367b7b 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/BiometricDetailsPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/BiometricDetailsPageArabic.java @@ -19,102 +19,129 @@ public class BiometricDetailsPageArabic extends BiometricDetailsPage { @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"القزحية مسح\"))") private WebElement irisScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"اليد اليمنى مسح\"))") private WebElement rightHandScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"اليد اليسرى مسح\"))") private WebElement leftHandScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"الأبهام مسح\"))") private WebElement thumbsScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"الوجه مسح\"))") private WebElement faceScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"استثناء مسح\"))") private WebElement exceptionScanIcon; - + @AndroidFindBy(accessibility = "يكمل") private WebElement continueButton; + @AndroidFindBy(xpath = "//android.widget.EditText[contains(@hint, 'معرّف طلب المعلومات الإضافية')]") + private WebElement additionalInfoRequestIdTextbox; + public BiometricDetailsPageArabic(AppiumDriver driver) { super(driver); } @SuppressWarnings("deprecation") - public boolean isBiometricDetailsPageDisplayed() { - return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("individualBiometrics") + "\"))"))); + public boolean isBiometricDetailsPageDisplayed() { + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getValueUsingId("individualBiometrics") + "\"))"))); } - + @SuppressWarnings("deprecation") - public boolean isAuthenticationBiometricTitleDisplayed() { - return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("individualAuthBiometrics") + "\"))"))); + public boolean isAuthenticationBiometricTitleDisplayed() { + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getValueUsingId("individualAuthBiometrics") + "\"))"))); } - + public ApplicantBiometricsPage clickOnIrisScan() { clickOnElement(irisScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public ApplicantBiometricsPage clickOnRightHandScanIcon() { clickOnElement(rightHandScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public ApplicantBiometricsPage clickOnLeftHandScanIcon() { clickOnElement(leftHandScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public ApplicantBiometricsPage clickOnThumbsScanIcon() { clickOnElement(thumbsScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public ApplicantBiometricsPage clickOnFaceScanIcon() { clickOnElement(faceScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public ApplicantBiometricsPage clickOnExceptionScanIcon() { clickOnElement(exceptionScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public IntroducerBiometricPage clickOnIntroducerIrisScan() { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Iris Scan\"]"))); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + + FetchUiSpec.getValueUsingId("introducerBiometrics") + + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Iris Scan\"]"))); return new IntroducerBiometricPageEnglish(driver); } - + public IntroducerBiometricPage clickOnIntroducerRightHandScan() { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Right\"]"))); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + + FetchUiSpec.getValueUsingId("introducerBiometrics") + + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Right\"]"))); return new IntroducerBiometricPageEnglish(driver); } - + public IntroducerBiometricPage clickOnIntroducerLeftHandScan() { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Left\"]"))); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + + FetchUiSpec.getValueUsingId("introducerBiometrics") + + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Left\"]"))); return new IntroducerBiometricPageEnglish(driver); } - + public IntroducerBiometricPage clickOnIntroducerThumbScan() { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Thumbs\"]"))); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + + FetchUiSpec.getValueUsingId("introducerBiometrics") + + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Thumbs\"]"))); return new IntroducerBiometricPageEnglish(driver); } - + public IntroducerBiometricPage clickOnIntroducerFaceScan() { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Face\"]"))); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + + FetchUiSpec.getValueUsingId("introducerBiometrics") + + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Face\"]"))); return new IntroducerBiometricPageEnglish(driver); } - - public PreviewPage clickOnContinueButton() { + + public PreviewPage clickOnContinueButton() { clickOnElement(continueButton); return new PreviewPageEnglish(driver); } + + public boolean isAdditionalInfoRequestIdTextboxDisplayed() { + return isElementDisplayed(additionalInfoRequestIdTextbox); + } + + @Override + public void enterAdditionalInfoUsingEmail(String emailId) { + // TODO Auto-generated method stub + + } } diff --git a/ui-test/src/main/java/regclient/pages/arabic/ConsentPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/ConsentPageArabic.java index 438ec5774..5293e6cb3 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/ConsentPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/ConsentPageArabic.java @@ -12,13 +12,11 @@ import regclient.pages.english.DemographicDetailsPageEnglish; import regclient.pages.english.RegistrationTasksPageEnglish; - - public class ConsentPageArabic extends ConsentPage { @AndroidFindBy(accessibility = "أُبلغ") private WebElement informedButton; - + @AndroidFindBy(accessibility = "يلغي") private WebElement cancelButton; @@ -27,33 +25,47 @@ public ConsentPageArabic(AppiumDriver driver) { } @SuppressWarnings("deprecation") - public boolean isConsentPageDisplayed() { - return isElementDisplayed(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("consentdet") + "\"))")); + public boolean isPageDisplayed(String pageKey) { + try { + String screenTitle = FetchUiSpec.getScreenTitle(pageKey); + + WebElement pageElement = findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0))" + + ".scrollIntoView(new UiSelector().descriptionContains(\"" + screenTitle + "\"))")); + + return isElementDisplayed(pageElement); + + } catch (Exception e) { + return false; // page not found or not visible + } } @SuppressWarnings("deprecation") public boolean isCheckBoxReadable() { - return isElementDisplayed (findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("consent") + "\"))"))); + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getValueUsingId("consent") + "\"))"))); } - - public boolean isInformedButtonEnabled() { + + public boolean isInformedButtonEnabled() { return isElementEnabled(informedButton); } - public DemographicDetailsPage clickOnInformedButton() { + public DemographicDetailsPage clickOnInformedButton() { clickOnElement(informedButton); return new DemographicDetailsPageEnglish(driver); } - public RegistrationTasksPage clickOnCancelButton() { clickOnElement(cancelButton); - return new RegistrationTasksPageEnglish(driver); + return new RegistrationTasksPageEnglish(driver); } - + @SuppressWarnings("deprecation") public boolean updateUINTitleDisplayed() { - return isElementDisplayed (findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getTitleUsingId("UPDATE") + "\"))"))); + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getTitleUsingId("UPDATE") + "\"))"))); } - + } diff --git a/ui-test/src/main/java/regclient/pages/arabic/DashboardPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/DashboardPageArabic.java index 5ea1b01d5..e5b065d21 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/DashboardPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/DashboardPageArabic.java @@ -6,30 +6,30 @@ import io.appium.java_client.pagefactory.AndroidFindBy; import regclient.page.DashboardPage; -public class DashboardPageArabic extends DashboardPage{ +public class DashboardPageArabic extends DashboardPage { @AndroidFindBy(xpath = "//android.view.View[@content-desc=\"Dashboard\"]/following-sibling::android.view.View[3]") private WebElement packetUploadedNumber; - + @AndroidFindBy(xpath = "//android.view.View[@content-desc=\"Dashboard\"]/following-sibling::android.view.View[2]") private WebElement packetSyncedNumber; - - @AndroidFindBy(accessibility = "Dashboard") + + @AndroidFindBy(accessibility = "لوحة القيادة") private WebElement dashboardPageTitle; - - @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"User ID\")]") + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, 'معرف المستخدم')]") private WebElement userIDTitle; - - @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"User Name\")]") + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, 'اسم المستخدم')]") private WebElement userNameTitle; - - @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Status\")]") + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, 'الحالة')]") private WebElement statusTitle; - + public DashboardPageArabic(AppiumDriver driver) { super(driver); } - + public boolean isDashboardTitleDisplayed() { return isElementDisplayed(dashboardPageTitle); } @@ -37,19 +37,19 @@ public boolean isDashboardTitleDisplayed() { public boolean isPacketsUploadedValueDisplayed() { return isElementDisplayed(packetUploadedNumber); } - + public boolean isPacketsSyncedValueDisplayed() { return isElementDisplayed(packetSyncedNumber); } - + public boolean isUserIDDisplayed() { return isElementDisplayed(userIDTitle); } - + public boolean isUserNameDisplayed() { return isElementDisplayed(userNameTitle); } - + public boolean isStatusTitleDisplayed() { return isElementDisplayed(statusTitle); } diff --git a/ui-test/src/main/java/regclient/pages/arabic/DemographicDetailsPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/DemographicDetailsPageArabic.java index 0fea066f0..36236db08 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/DemographicDetailsPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/DemographicDetailsPageArabic.java @@ -2,7 +2,10 @@ import static org.testng.Assert.assertTrue; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.List; +import java.util.regex.Pattern; import org.openqa.selenium.By; import org.openqa.selenium.WebElement; @@ -10,6 +13,7 @@ import io.appium.java_client.AppiumDriver; import io.appium.java_client.MobileBy; import io.appium.java_client.pagefactory.AndroidFindBy; +import regclient.api.AdminTestUtil; import regclient.api.FetchUiSpec; import regclient.page.BasePage; import regclient.page.ConsentPage; @@ -19,34 +23,53 @@ import regclient.pages.english.DocumentuploadPageEnglish; import regclient.utils.TestDataReader; -public class DemographicDetailsPageArabic extends DemographicDetailsPage{ +public class DemographicDetailsPageArabic extends DemographicDetailsPage { @AndroidFindBy(accessibility = "آحرون") private WebElement maleButton; @AndroidFindBy(accessibility = "أنثى") private WebElement femaleButton; - + @AndroidFindBy(accessibility = "يكمل") private WebElement continueButton; - + @AndroidFindBy(accessibility = "مدخل غير صالح") private WebElement errorMessageInvalidInputText; - + @AndroidFindBy(accessibility = "تمويه") private WebElement backgroundScreen; - - @AndroidFindBy(accessibility = "FETCH DATA") + + @AndroidFindBy(accessibility = "ابحث عن المعلومة") private WebElement fetchDataButton; + @AndroidFindBy(xpath = "//android.widget.ScrollView/android.widget.EditText[1]") + private WebElement applicationIdTextBox; + + @AndroidFindBy(xpath = "//android.widget.Button[@content-desc='ابحث عن المعلومة']/following-sibling::android.widget.Button") + private WebElement scanButton; + + @AndroidFindBy(accessibility = "Postal/ بريدي") + private WebElement postalHeader; + public DemographicDetailsPageArabic(AppiumDriver driver) { super(driver); } @SuppressWarnings("deprecation") - public boolean isDemographicDetailsPageDisplayed() { - WebElement demographicDetailspage = findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))")); - return isElementDisplayed(demographicDetailspage); + public boolean isPageDisplayed(String pageKey) { + try { + String screenTitle = FetchUiSpec.getScreenTitle(pageKey); + + WebElement pageElement = findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0))" + + ".scrollIntoView(new UiSelector().descriptionContains(\"" + screenTitle + "\"))")); + + return isElementDisplayed(pageElement); + + } catch (Exception e) { + return false; // element not found or not visible + } } public boolean isErrorMessageInvalidInputTextDisplayed() { @@ -54,19 +77,22 @@ public boolean isErrorMessageInvalidInputTextDisplayed() { } @SuppressWarnings("deprecation") - public ConsentPage clickOnConsentPageTitle() { - WebElement consentTitle = findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("consentdet") + "\"))")); + public ConsentPage clickOnPageTitle(String pageKey) { + String screenTitle = FetchUiSpec.getScreenTitle(pageKey); + WebElement consentTitle = findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0))" + + ".scrollIntoView(new UiSelector().descriptionContains(\"" + screenTitle + "\"))")); clickOnElement(consentTitle); return new ConsentPageEnglish(driver); } - public DocumentUploadPage clickOnContinueButton() { + public DocumentUploadPage clickOnContinueButton() { clickOnElement(continueButton); return new DocumentuploadPageEnglish(driver); } - - public boolean isContinueButtonEnable() { + + public boolean isContinueButtonEnable() { return isElementEnabled(continueButton); } @@ -76,112 +102,159 @@ public boolean isPreRegFetchDataTextBoxDisplay() { } public void fillDemographicDetailsPage(String age) { - List idList=FetchUiSpec.getAllIds("DemographicDetails"); - for(String id : idList) { - if(FetchUiSpec.getRequiredTypeUsingId(id)) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + List idList = FetchUiSpec.getAllIds("DemographicDetails"); + for (String id : idList) { + if (FetchUiSpec.getRequiredTypeUsingId(id)) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); - } - else if(FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") && FetchUiSpec.getFormatUsingId(id).equals("none")){ + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); + } else if (FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") + && FetchUiSpec.getFormatUsingId(id).equals("none")) { waitTime(3); - while(!isElementDisplayed(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))) { + while (!isElementDisplayed(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))) { swipeOrScroll(); } - boolean isdisplayed =isElementDisplayed(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")")); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - WebElement dropdownElement=findElement(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.widget.Button")); + boolean isdisplayed = isElementDisplayed(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")")); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + WebElement dropdownElement = findElement( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.widget.Button")); clickOnElement(dropdownElement); waitTime(3); - if(!isElementDisplayed(dropdownElement)) { + if (!isElementDisplayed(dropdownElement)) { clickOnElement(findElement(By.className("android.view.View"))); - }else if(isElementDisplayed(dropdownElement)) { + } else if (isElementDisplayed(dropdownElement)) { swipeOrScroll(); clickOnElement(dropdownElement); waitTime(2); clickOnElement(findElement(By.className("android.view.View"))); } waitTime(2); - if(isElementDisplayed(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, \"Select Option\")]"))) { + if (isElementDisplayed(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, \"Select Option\")]"))) { clickOnElement(dropdownElement); waitTime(2); clickOnElement(findElement(By.className("android.view.View"))); } - }else if(FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") && FetchUiSpec.getFormatUsingId(id).equals("")){ - if(!isElementDisplayed(maleButton)) { + } else if (FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") + && FetchUiSpec.getFormatUsingId(id).equals("")) { + if (!isElementDisplayed(maleButton)) { swipeOrScroll(); - clickOnElement(maleButton); - }else - clickOnElement(maleButton); + clickOnElement(maleButton); + } else + clickOnElement(maleButton); - }else if(FetchUiSpec.getControlTypeUsingId(id).equals("ageDate")){ + } else if (FetchUiSpec.getControlTypeUsingId(id).equals("ageDate")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - if(age.equals("adult")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"20"); - else if(age.equals("minor")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"12"); - else if(age.equals("infant")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"4"); - else if(age.equals("currentCalenderDate")) { + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + if (age.equals("adult")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "20"); + else if (age.equals("minor")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "12"); + else if (age.equals("infant")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "4"); + else if (age.equals("currentCalenderDate")) { waitTime(1); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.view.View"))); + clickOnElement(findElementWithRetry(By.xpath( + "//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View"))); waitTime(1); clickOnElement(backgroundScreen); waitTime(1); - assertTrue(checkDateFormatAndCurrectDate(id),"Verify date format and current date and time while selecting age date"); + assertTrue(checkDateFormatAndCurrectDate(id), + "Verify date format and current date and time while selecting age date"); } } - } - else if(id.equals("residenceStatus")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") && FetchUiSpec.getFormatUsingId(id).equals("none")){ + } else if (id.equals("residenceStatus")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") + && FetchUiSpec.getFormatUsingId(id).equals("none")) { waitTime(2); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - WebElement dropdownElement=findElement(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.widget.Button")); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + WebElement dropdownElement = findElement( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.widget.Button")); clickOnElement(dropdownElement); waitTime(2); - if(!isElementDisplayed(dropdownElement)) { + if (!isElementDisplayed(dropdownElement)) { clickOnElement(findElement(By.className("android.view.View"))); - }else if(isElementDisplayed(dropdownElement)) { + } else if (isElementDisplayed(dropdownElement)) { swipeOrScroll(); clickOnElement(dropdownElement); waitTime(2); clickOnElement(findElement(By.className("android.view.View"))); } waitTime(2); - if(isElementDisplayed(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, \"Select Option\")]"))) { + if (isElementDisplayed(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, \"Select Option\")]"))) { clickOnElement(dropdownElement); waitTime(2); clickOnElement(findElement(By.className("android.view.View"))); } } } - if(id.equals("introducerName") && FetchUiSpec.getFlowType().equals("newProcess")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + if (id.equals("introducerName") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } - }if(id.equals("introducerRID") && FetchUiSpec.getFlowType().equals("newProcess")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + } + if (id.equals("introducerRID") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),TestDataReader.readData("RID")); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + TestDataReader.readData("RID")); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } } @@ -189,56 +262,91 @@ else if(id.equals("residenceStatus")) { } public void editDemographicDetailsPage(String age) { - List idList=FetchUiSpec.getAllIds("DemographicDetails"); - for(String id : idList) { - if(FetchUiSpec.getRequiredTypeUsingId(id)) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + List idList = FetchUiSpec.getAllIds("DemographicDetails"); + for (String id : idList) { + if (FetchUiSpec.getRequiredTypeUsingId(id)) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); - }else if(FetchUiSpec.getControlTypeUsingId(id).equals("ageDate")){ + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); + } else if (FetchUiSpec.getControlTypeUsingId(id).equals("ageDate")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - if(age.equals("adult")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"20"); - else if(age.equals("minor")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"12"); - else if(age.equals("infant")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"4"); - else if(age.equals("currentCalenderDate")) { + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + if (age.equals("adult")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "20"); + else if (age.equals("minor")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "12"); + else if (age.equals("infant")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "4"); + else if (age.equals("currentCalenderDate")) { waitTime(1); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.view.View"))); + clickOnElement(findElementWithRetry(By.xpath( + "//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View"))); waitTime(1); clickOnElement(backgroundScreen); waitTime(1); - assertTrue(checkDateFormatAndCurrectDate(id),"Verify date format and current date and time while selecting age date"); + assertTrue(checkDateFormatAndCurrectDate(id), + "Verify date format and current date and time while selecting age date"); } } } - if(id.equals("introducerName") && FetchUiSpec.getFlowType().equals("newProcess")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + if (id.equals("introducerName") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } - }if(id.equals("introducerRID") && FetchUiSpec.getFlowType().equals("newProcess")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + } + if (id.equals("introducerRID") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),TestDataReader.readData("RID")); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + TestDataReader.readData("RID")); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } } @@ -246,42 +354,409 @@ else if(age.equals("currentCalenderDate")) { } public boolean checkSecondLanguageTextBoxNotNull(String id) { - if(getTextFromLocator(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[2]")))==null || getTextFromLocator(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[2]")))=="" ) - return false; + if (getTextFromLocator(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[2]"))) == null + || getTextFromLocator(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[2]"))) == "") + return false; else - return true; + return true; } - public boolean checkDateFormatAndCurrectDate(String id) { - if(getTextFromLocator(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.view.View"))).equalsIgnoreCase(getCurrentDate())) - return true; + public boolean checkDateFormatAndCurrectDate(String id) { + if (getTextFromLocator(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View"))) + .equalsIgnoreCase(getCurrentDate())) + return true; else return false; } - + public void fillIntroducerDetailsInDemographicDetailsPage(String age) { - List idList=FetchUiSpec.getAllIds("DemographicDetails"); - for(String id : idList) { - if(id.equals("introducerName")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + List idList = FetchUiSpec.getAllIds("DemographicDetails"); + for (String id : idList) { + if (id.equals("introducerName")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + waitTime(3); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); + } + } + } + if (id.equals("introducerUIN")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + waitTime(3); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + TestDataReader.readData("UINminor")); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); + } + } + } + } + } + + public boolean isApplicationIdTextBoxDisplay() { + return isElementDisplayed(applicationIdTextBox); + } + + public void clickOnScanButton() { + clickOnElement(scanButton); + } + + public void fetchPreregApplicationId(String age) { + By appIdLabel = By.xpath("//android.widget.EditText[contains(@hint,'Application ID')]"); + By appIdTextbox = By.xpath("//android.widget.EditText[contains(@hint,'Please Enter Application ID')]"); + + // Verify label is displayed + boolean isDisplayed = isElementDisplayed(appIdLabel); + assertTrue(isDisplayed, "Verify if Application ID label is displayed"); + + // Enter prereg ID + applicationIdTextBox = findElementWithRetry(appIdTextbox); + clickAndsendKeysToTextBox(applicationIdTextBox, AdminTestUtil.getPreRegistrationFlow(age)); + clickOnElement(fetchDataButton); + } + + public void validateFetchedDemographicData() { + Pattern genderPattern = Pattern.compile("(?i)\\b(male|female|other|others|m|f|o)\\b"); + String[] dateFormats = { "yyyy-MM-dd", "dd/MM/yyyy", "dd-MM-yyyy" }; + + List idList = FetchUiSpec.getAllIds("DemographicDetails"); + for (String id : idList) { + if (!FetchUiSpec.getRequiredTypeUsingId(id)) + continue; + + String label = FetchUiSpec.getValueUsingId(id); + String controlType = FetchUiSpec.getControlTypeUsingId(id); + String lowerLabel = label == null ? "" : label.toLowerCase(); + + // common candidate element (immediate following control) + WebElement el = null; + try { + el = findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc,'" + label + "') or contains(@text,'" + + label + "')]" + "/parent::android.view.View/following-sibling::*[1]")); + } catch (Exception ignored) { + } + + // NAME + if (lowerLabel.contains("name")) { + // make visible like fill method + try { + int tries = 0; + while (tries < 6 && !isElementDisplayed(findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\"" + label + "\")")))) { + swipeOrScroll(); + tries++; + } + } catch (Exception ignored) { + } + + // prefer the same EditText locator used when filling + if (el == null) { + try { + el = findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,'" + label + + "') or contains(@text,'" + label + "')]" + + "/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")); + } catch (Exception ignored) { + } + } + assertTrue(el != null, "Name field element not found for: " + label); + String name = extract(el).trim(); + assertTrue(!name.isEmpty(), "Verify name is not empty for: " + label); + assertTrue(name.matches(".*[A-Za-z].*"), "Verify name contains letters: " + name); + continue; + } + + // DOB / ageDate + if ("ageDate".equals(controlType) || lowerLabel.contains("dob") || lowerLabel.contains("date of birth")) { + String raw = el == null ? "" : extract(el).trim(); + assertTrue(!raw.isEmpty(), "Verify DOB/AgeDate is not empty for: " + label); + boolean ok = false; + for (String fmt : dateFormats) { + try { + SimpleDateFormat sdf = new SimpleDateFormat(fmt); + sdf.setLenient(false); + if (sdf.parse(raw) != null) { + ok = true; + break; + } + } catch (ParseException ignored) { + } + } + ok = ok || raw.replaceAll("\\D+", "").length() > 0; + assertTrue(ok, "Verify DOB/AgeDate has valid date/digits for " + label + ": '" + raw + "'"); + continue; + } + + // PHONE - simple, robust version + if (lowerLabel.contains("phone") || lowerLabel.contains("mobile") || lowerLabel.contains("هاتف")) { + // make label visible (same approach as fillDemographicDetailsPage) + try { + int tries = 0; + while (tries < 6 && !isElementDisplayed(findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\"" + label + "\")")))) { + swipeOrScroll(); + tries++; + } + } catch (Exception ignored) { + } + + // primary locator (same as fill) + WebElement phoneEl = null; + try { + phoneEl = findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + label + + "\") or contains(@text, \"" + label + "\")]" + + "/parent::android.view.View/following-sibling::android.view.View//android.widget.EditText[1]")); + } catch (Exception ignored) { + } + + // fallback to ancestor search + if (phoneEl == null) { + try { + phoneEl = findElementIfExists(By.xpath("//android.view.View[contains(@content-desc, \"" + label + + "\") or contains(@text, \"" + label + "\")]" + + "/ancestor::android.view.View[1]//android.widget.EditText[1]")); + } catch (Exception ignored) { + } + } + + // if still null, provide short diagnostic and fail + if (phoneEl == null) { + StringBuilder diag = new StringBuilder(); + try { + WebElement labelEl = findElementIfExists( + By.xpath("//android.view.View[contains(@content-desc, \"" + label + + "\") or contains(@text, \"" + label + "\")]")); + if (labelEl != null) { + List sibs = labelEl + .findElements(By.xpath("parent::android.view.View/following-sibling::*")); + for (int i = 0; i < Math.min(sibs.size(), 6); i++) { + WebElement s = sibs.get(i); + String t = ""; + try { + t = s.getText(); + } catch (Exception ignored) { + } + String cd = ""; + try { + cd = s.getAttribute("content-desc"); + } catch (Exception ignored) { + } + diag.append("sib[").append(i).append("]={text=").append(t).append(",cd=").append(cd) + .append("}; "); + } + } + } catch (Exception ignored) { + } + assertTrue(false, "Phone field element not found for: " + label + ". Nearby: " + diag.toString()); + } + + // extract and validate + String phone = extract(phoneEl); + phone = phone == null ? "" : phone.trim(); + assertTrue(!phone.isEmpty(), "Verify phone is not empty for: " + label); + String digits = phone.replaceAll("\\D+", ""); + assertTrue(digits.length() >= 7 && digits.length() <= 15, + "Verify phone has 7-15 digits for " + label + ": " + phone); + } + + // EMAIL + if (lowerLabel.contains("email") || lowerLabel.contains("e-mail") || lowerLabel.contains("البريد")) { + // make label visible (same approach as fill) + try { + int tries = 0; + while (tries < 6 && !isElementDisplayed(findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\"" + label + "\")")))) { + swipeOrScroll(); + tries++; + } + } catch (Exception ignored) { + } + + // primary locator (same style as fill) + WebElement emailEl = null; + try { + emailEl = findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + label + + "\") or contains(@text, \"" + label + "\")]" + + "/parent::android.view.View/following-sibling::android.view.View//android.widget.EditText[1]")); + } catch (Exception ignored) { + } + + // fallback: any EditText under the same ancestor + if (emailEl == null) { + try { + emailEl = findElementIfExists(By.xpath("//android.view.View[contains(@content-desc, \"" + label + + "\") or contains(@text, \"" + label + "\")]" + + "/ancestor::android.view.View[1]//android.widget.EditText[1]")); + } catch (Exception ignored) { + } + } + + // if still null, show short diagnostic and fail + if (emailEl == null) { + StringBuilder diag = new StringBuilder(); + try { + WebElement labelEl = findElementIfExists( + By.xpath("//android.view.View[contains(@content-desc, \"" + label + + "\") or contains(@text, \"" + label + "\")]")); + if (labelEl != null) { + List sibs = labelEl + .findElements(By.xpath("parent::android.view.View/following-sibling::*")); + for (int i = 0; i < Math.min(sibs.size(), 6); i++) { + WebElement s = sibs.get(i); + String t = ""; + try { + t = s.getText(); + } catch (Exception ignored) { + } + String cd = ""; + try { + cd = s.getAttribute("content-desc"); + } catch (Exception ignored) { + } + diag.append("sib[").append(i).append("]={text=").append(t).append(",cd=").append(cd) + .append("}; "); + } + } + } catch (Exception ignored) { + } + assertTrue(false, "Email field element not found for: " + label + ". Nearby: " + diag.toString()); + } + + // extract and validate + String email = extract(emailEl); + email = email == null ? "" : email.trim(); + assertTrue(!email.isEmpty(), "Verify email is not empty for: " + label); + + // simple regex good for tests + boolean emailOk = email.matches("^[A-Za-z0-9._%+\\-]+@[A-Za-z0-9.\\-]+\\.[A-Za-z]{2,}$"); + assertTrue(emailOk, "Verify email format is valid for " + label + ": " + email); + } + } + } + + public void fillRemainDemographicDetailsPage(String age) { + + List idList = FetchUiSpec.getAllIds("DemographicDetails"); + for (String id : idList) { + if (FetchUiSpec.getRequiredTypeUsingId(id) && !id.equals("Postal")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") + && FetchUiSpec.getFormatUsingId(id).equals("none")) { + waitTime(3); + while (!isElementDisplayed(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))) { + swipeOrScroll(); + } + boolean isdisplayed = isElementDisplayed(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")")); +// assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + WebElement dropdownElement = findElement( + By.xpath("//android.widget.Button[.//android.view.View[contains(@content-desc,'" + + FetchUiSpec.getValueUsingId(id) + "')]]")); + clickOnElement(dropdownElement); + waitTime(3); + if (!isElementDisplayed(dropdownElement)) { + clickOnElement(findElement(By.className("android.view.View"))); + } else if (isElementDisplayed(dropdownElement)) { + swipeOrScroll(); + clickOnElement(dropdownElement); + waitTime(2); + clickOnElement(findElement(By.className("android.view.View"))); + } + waitTime(2); + if (isElementDisplayed(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, \"Select Option\")]"))) { + clickOnElement(dropdownElement); + waitTime(2); + clickOnElement(findElement(By.className("android.view.View"))); + } + } + } else if (FetchUiSpec.getRequiredTypeUsingId(id) && id.equals("Postal")) { + By postalDropdown = By.xpath("//android.view.View[contains(@content-desc, 'Postal')]" + + "/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, 'Select Option')]"); + + int attempts = 0; + while (attempts < 3) { + try { + if (isElementDisplayed(postalDropdown)) { + WebElement dropdownElement = findElement(postalDropdown); + clickOnElement(dropdownElement); + waitTime(3); // increased wait for Postal data load + + if (isElementDisplayed(By.className("android.view.View"))) { + clickOnElement(findElement(By.className("android.view.View"))); + System.out.println("✅ Postal dropdown handled successfully"); + break; // success + } else { + System.out.println("⏳ Postal options not visible yet, retrying..."); + } + } else { + swipeOrScroll(); + } + } catch (org.openqa.selenium.StaleElementReferenceException e) { + System.out.println("🔄 Postal element went stale, retrying..."); + } + waitTime(2); + attempts++; + } + } + if (id.equals("introducerName") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } - }if(id.equals("introducerUIN")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + } + if (id.equals("introducerRID") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),TestDataReader.readData("UINminor")); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + TestDataReader.readData("RID")); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } } diff --git a/ui-test/src/main/java/regclient/pages/arabic/DocumentuploadPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/DocumentuploadPageArabic.java index 360cdfc57..2b58bbfc6 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/DocumentuploadPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/DocumentuploadPageArabic.java @@ -17,7 +17,6 @@ import regclient.pages.english.BiometricDetailsPageEnglish; import regclient.pages.english.DocumentuploadPageEnglish; - public class DocumentuploadPageArabic extends DocumentUploadPage { @AndroidFindBy(accessibility = "تمويه") @@ -34,7 +33,7 @@ public class DocumentuploadPageArabic extends DocumentUploadPage { @AndroidFindBy(xpath = "//android.widget.ImageView") private WebElement captureImage; - + @AndroidFindBy(accessibility = "يحفظ") private WebElement saveButton; @@ -47,17 +46,20 @@ public class DocumentuploadPageArabic extends DocumentUploadPage { public DocumentuploadPageArabic(AppiumDriver driver) { super(driver); } - public BiometricDetailsPage clickOnContinueButton() { + + public BiometricDetailsPage clickOnContinueButton() { clickOnElement(continueButton); return new BiometricDetailsPageEnglish(driver); } @SuppressWarnings("deprecation") public boolean isDoccumentUploadPageDisplayed() { - return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("Documents") + "\"))"))); + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getScreenTitle("Documents") + "\"))"))); } - public DocumentUploadPage clickOnSaveButton() { + public DocumentUploadPage clickOnSaveButton() { clickOnElement(saveButton); return new DocumentuploadPageEnglish(driver); } @@ -71,108 +73,161 @@ public void cropCaptureImage() { cropCaptureImage(imageleftCorner); } - public void uploadDoccuments(String age,String type) { - List idList=FetchUiSpec.getAllIds("Documents"); - for(String id : idList) { - if(FetchUiSpec.getRequiredTypeUsingId(id)) { - if(type.equalsIgnoreCase("ReferenceNumber")) { - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.EditText")),"1234567890"); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View"))); - if(!isElementDisplayedOnScreen(PopUpCloseButton)) { + public void uploadDoccuments(String age, String type) { + List idList = FetchUiSpec.getAllIds("Documents"); + for (String id : idList) { + if (FetchUiSpec.getRequiredTypeUsingId(id)) { + if (type.equalsIgnoreCase("ReferenceNumber")) { + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.EditText")), + "1234567890"); + clickOnElement(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View"))); + if (!isElementDisplayedOnScreen(PopUpCloseButton)) { swipeOrScroll(); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View"))); + clickOnElement(findElementWithRetry(By.xpath( + "//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View"))); } clickOnElement(PopUpCloseButton); waitTime(1); - boolean isEnabled = isElementEnabled(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); - assertTrue(isEnabled,"Verify if scan button enabled for "+FetchUiSpec.getValueUsingId(id)); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); - CameraPage cameraPage=new CameraPage(driver); + boolean isEnabled = isElementEnabled(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); + assertTrue(isEnabled, "Verify if scan button enabled for " + FetchUiSpec.getValueUsingId(id)); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); + CameraPage cameraPage = new CameraPage(driver); cameraPage.clickimage(); cameraPage.clickOkButton(); - assertTrue(isRetakeButtonDisplayed(),"Verify if retake button displayed"); + assertTrue(isRetakeButtonDisplayed(), "Verify if retake button displayed"); cropCaptureImage(); clickOnSaveButton(); - assertTrue(isDoccumentUploadPageDisplayed(),"Verify if doccumentupload page is displayed after upload of "+FetchUiSpec.getValueUsingId(id)); - }else { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View"))); - if(!isElementDisplayedOnScreen(PopUpCloseButton)) { + assertTrue(isDoccumentUploadPageDisplayed(), + "Verify if doccumentupload page is displayed after upload of " + + FetchUiSpec.getValueUsingId(id)); + } else { + clickOnElement(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View"))); + if (!isElementDisplayedOnScreen(PopUpCloseButton)) { swipeOrScroll(); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View"))); + clickOnElement(findElementWithRetry(By.xpath( + "//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View"))); } clickOnElement(PopUpCloseButton); waitTime(1); - boolean isEnabled = isElementEnabled(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); - assertTrue(isEnabled,"Verify if scan button enabled for "+FetchUiSpec.getValueUsingId(id)); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); - CameraPage cameraPage=new CameraPage(driver); + boolean isEnabled = isElementEnabled(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); + assertTrue(isEnabled, "Verify if scan button enabled for " + FetchUiSpec.getValueUsingId(id)); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); + CameraPage cameraPage = new CameraPage(driver); cameraPage.clickimage(); cameraPage.clickOkButton(); - assertTrue(isRetakeButtonDisplayed(),"Verify if retake button displayed"); + assertTrue(isRetakeButtonDisplayed(), "Verify if retake button displayed"); cropCaptureImage(); clickOnSaveButton(); - assertTrue(isDoccumentUploadPageDisplayed(),"Verify if doccumentupload page is displayed after upload of "+FetchUiSpec.getValueUsingId(id)); + assertTrue(isDoccumentUploadPageDisplayed(), + "Verify if doccumentupload page is displayed after upload of " + + FetchUiSpec.getValueUsingId(id)); } - }if(id.equals("proofOfRelationship")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View"))); - if(!isElementDisplayedOnScreen(PopUpCloseButton)) { + } + if (id.equals("proofOfRelationship")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + clickOnElement(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View"))); + if (!isElementDisplayedOnScreen(PopUpCloseButton)) { swipeOrScroll(); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View"))); + clickOnElement(findElementWithRetry(By.xpath( + "//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View"))); } clickOnElement(PopUpCloseButton); waitTime(1); - boolean isEnabled = isElementEnabled(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); - assertTrue(isEnabled,"Verify if scan button enabled for "+FetchUiSpec.getValueUsingId(id)); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); - CameraPage cameraPage=new CameraPage(driver); + boolean isEnabled = isElementEnabled(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); + assertTrue(isEnabled, "Verify if scan button enabled for " + FetchUiSpec.getValueUsingId(id)); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); + CameraPage cameraPage = new CameraPage(driver); cameraPage.clickimage(); cameraPage.clickOkButton(); - assertTrue(isRetakeButtonDisplayed(),"Verify if retake button displayed"); + assertTrue(isRetakeButtonDisplayed(), "Verify if retake button displayed"); cropCaptureImage(); clickOnSaveButton(); - assertTrue(isDoccumentUploadPageDisplayed(),"Verify if doccumentupload page is displayed after upload of "+FetchUiSpec.getValueUsingId(id)); + assertTrue(isDoccumentUploadPageDisplayed(), + "Verify if doccumentupload page is displayed after upload of " + + FetchUiSpec.getValueUsingId(id)); } } } } - public void uploadDoccumentsUpdate(String age,String type) { - List idList=FetchUiSpec.getAllIds("Documents"); - for(String id : idList) { - if(type.equals("all") && !id.equals("proofOfException") && !id.equals("proofOfRelationship")) { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View"))); - if(!isElementDisplayedOnScreen(PopUpCloseButton)) { + + public void uploadDoccumentsUpdate(String age, String type) { + List idList = FetchUiSpec.getAllIds("Documents"); + for (String id : idList) { + if (type.equals("all") && !id.equals("proofOfException") && !id.equals("proofOfRelationship")) { + clickOnElement(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View"))); + if (!isElementDisplayedOnScreen(PopUpCloseButton)) { swipeOrScroll(); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View"))); + clickOnElement(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View"))); } clickOnElement(PopUpCloseButton); waitTime(1); - boolean isEnabled = isElementEnabled(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); - assertTrue(isEnabled,"Verify if scan button enabled for "+FetchUiSpec.getValueUsingId(id)); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); - CameraPage cameraPage=new CameraPage(driver); + boolean isEnabled = isElementEnabled(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); + assertTrue(isEnabled, "Verify if scan button enabled for " + FetchUiSpec.getValueUsingId(id)); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); + CameraPage cameraPage = new CameraPage(driver); cameraPage.clickimage(); cameraPage.clickOkButton(); - assertTrue(isRetakeButtonDisplayed(),"Verify if retake button displayed"); + assertTrue(isRetakeButtonDisplayed(), "Verify if retake button displayed"); cropCaptureImage(); clickOnSaveButton(); - }if(id.equals("proofOfRelationship")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View"))); - if(!isElementDisplayedOnScreen(PopUpCloseButton)) { + } + if (id.equals("proofOfRelationship")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + clickOnElement(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View"))); + if (!isElementDisplayedOnScreen(PopUpCloseButton)) { swipeOrScroll(); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View"))); + clickOnElement(findElementWithRetry(By.xpath( + "//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View"))); } clickOnElement(PopUpCloseButton); waitTime(1); - boolean isEnabled = isElementEnabled(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); - assertTrue(isEnabled,"Verify if scan button enabled for "+FetchUiSpec.getValueUsingId(id)); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); - CameraPage cameraPage=new CameraPage(driver); + boolean isEnabled = isElementEnabled(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); + assertTrue(isEnabled, "Verify if scan button enabled for " + FetchUiSpec.getValueUsingId(id)); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); + CameraPage cameraPage = new CameraPage(driver); cameraPage.clickimage(); cameraPage.clickOkButton(); - assertTrue(isRetakeButtonDisplayed(),"Verify if retake button displayed"); + assertTrue(isRetakeButtonDisplayed(), "Verify if retake button displayed"); cropCaptureImage(); clickOnSaveButton(); } diff --git a/ui-test/src/main/java/regclient/pages/arabic/IdentityProofPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/IdentityProofPageArabic.java index f3d40348b..a0ea5526e 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/IdentityProofPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/IdentityProofPageArabic.java @@ -1,7 +1,5 @@ package regclient.pages.arabic; - - import org.openqa.selenium.WebElement; import io.appium.java_client.AppiumDriver; @@ -9,7 +7,7 @@ import regclient.page.DocumentUploadPage; import regclient.page.IdentityProofPage; -public class IdentityProofPageArabic extends IdentityProofPage{ +public class IdentityProofPageArabic extends IdentityProofPage { @AndroidFindBy(accessibility = "يحفظ") private WebElement saveButton; @@ -22,12 +20,12 @@ public class IdentityProofPageArabic extends IdentityProofPage{ @AndroidFindBy(className = "android.widget.ImageView") private WebElement captureImage; - + public IdentityProofPageArabic(AppiumDriver driver) { super(driver); } - public DocumentUploadPage clickOnSaveButton() { + public DocumentUploadPage clickOnSaveButton() { clickOnElement(saveButton); return new DocumentuploadPageArabic(driver); } diff --git a/ui-test/src/main/java/regclient/pages/arabic/IntroducerBiometricPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/IntroducerBiometricPageArabic.java index b417f77df..d7bd87426 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/IntroducerBiometricPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/IntroducerBiometricPageArabic.java @@ -11,64 +11,64 @@ import regclient.pages.english.BiometricDetailsPageEnglish; public class IntroducerBiometricPageArabic extends IntroducerBiometricPage { - + @AndroidFindBy(accessibility = "القزحية مسح") private WebElement irisScanButton;; - + @AndroidFindBy(accessibility = "وضع علامة استثناء") private WebElement markExceptionButton; - + @AndroidFindBy(accessibility = "وضع علامة استثناء") private WebElement exceptionTypeTitle; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(1)") private WebElement oneEyeException; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(2)") private WebElement firstFingureException; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"اليد اليمنى مسح\"))") private WebElement rightHandScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"اليد اليسرى مسح\"))") private WebElement leftHandScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"الأبهام مسح\"))") private WebElement thumbsScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"الوجه مسح\"))") private WebElement faceScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"استثناء مسح\"))") private WebElement exceptionScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().description(\"مسح\"))") private WebElement scanButton; - - @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Iris')]") + + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'قزحية العين')]") private WebElement irisCapturerHeader; - - @AndroidFindBy(xpath = "//*[contains(@content-desc, 'RightHand')]") + + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'اليد اليمنى')]") private WebElement rightHandCapturerHeader; - - @AndroidFindBy(xpath = "//*[contains(@content-desc, 'LeftHand')]") + + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'اليد اليسرى')]") private WebElement leftHandCapturerHeader; - - @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Thumbs')]") + + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'الإبهامان')]") private WebElement thumbsCapturerHeader; - - @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Face')]") + + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'الوجه')]") private WebElement faceCapturerHeader; - - @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Exception')]") + + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'الاستثناء')]") private WebElement exceptionCapturerHeader; - + @AndroidFindBy(xpath = "//android.widget.ScrollView/android.view.View[3]") private WebElement zoomButton; - + @AndroidFindBy(className = "android.widget.Button") private WebElement popUpCloseButton; - + @AndroidFindBy(accessibility = "مقبل") private WebElement nextButton; @@ -78,109 +78,115 @@ public IntroducerBiometricPageArabic(AppiumDriver driver) { public void clickOnScanButton() { clickOnElement(scanButton); - } - + } + public void markOneEyeException() { clickOnElement(oneEyeException); } - + public void markOneFingureException() { clickOnElement(firstFingureException); } - + public void clickOnClosePopUp() { clickOnElement(popUpCloseButton); } - + public void clickOnMarkExceptionButton() { clickOnElement(markExceptionButton); } - + public void clickOnIrisScanButton() { clickOnElement(irisScanButton); } - + public BiometricDetailsPage clickOnNextButton() { clickOnElement(nextButton); return new BiometricDetailsPageEnglish(driver); } - + public void clickOnZoomButton() { clickOnElement(zoomButton); } - + public void clickOnRightHandScanTitle() { clickOnElement(rightHandScanTitle); } - + public void clickOnleftHandScanTitle() { clickOnElement(leftHandScanTitle); } - + public void clickOnThumbsScanTitle() { clickOnElement(thumbsScanTitle); } - + public void closeScanCapturePopUp() { driver.navigate().back(); } - + public BiometricDetailsPage clickOnBackButton() { driver.navigate().back(); return new BiometricDetailsPageEnglish(driver); } - + @SuppressWarnings("deprecation") - public boolean isIntroducerBiometricsPageDisplyed() { - return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId("introducerBiometrics")+"\")"))); + public boolean isIntroducerBiometricsPageDisplyed() { + return isElementDisplayed( + findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\"" + + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")"))); } - - public boolean isExceptionTypeTitleDisplyed() { + + public boolean isExceptionTypeTitleDisplyed() { return isElementDisplayed(exceptionTypeTitle); } - - public boolean isRightHandScanTitleDisplyed() { + + public boolean isRightHandScanTitleDisplyed() { return isElementDisplayed(rightHandScanTitle); } - - public boolean isLeftHandScanTitleDisplyed() { + + public boolean isLeftHandScanTitleDisplyed() { return isElementDisplayed(leftHandScanTitle); } - - public boolean isThumbsScanTitleDisplyed() { + + public boolean isThumbsScanTitleDisplyed() { return isElementDisplayed(thumbsScanTitle); } - - public boolean isFaceScanTitleDisplyed() { + + public boolean isFaceScanTitleDisplyed() { return isElementDisplayed(faceScanTitle); } - - public boolean isExceptionScanTitleDisplyed() { + + public boolean isExceptionScanTitleDisplyed() { return isElementDisplayed(exceptionScanTitle); } - - public boolean isIrisScan() { - return isElementDisplayed(irisCapturerHeader,2000); + + public boolean isIrisScan() { + return isElementDisplayed(irisCapturerHeader, 2000); + } + + public boolean isRightHandScan() { + return isElementDisplayed(rightHandCapturerHeader, 2000); } - - public boolean isRightHandScan() { - return isElementDisplayed(rightHandCapturerHeader,2000); + + public boolean isLeftHandScan() { + return isElementDisplayed(leftHandCapturerHeader, 2000); } - - public boolean isLeftHandScan() { - return isElementDisplayed(leftHandCapturerHeader,2000); + + public boolean isThumbsScan() { + return isElementDisplayed(thumbsCapturerHeader, 2000); } - - public boolean isThumbsScan() { - return isElementDisplayed(thumbsCapturerHeader,2000); + + public boolean isFaceScan() { + return isElementDisplayed(faceCapturerHeader, 2000); } - - public boolean isFaceScan() { - return isElementDisplayed(faceCapturerHeader,2000); + + public boolean isExceptionScan() { + return isElementDisplayed(exceptionCapturerHeader, 2000); } - - public boolean isExceptionScan() { - return isElementDisplayed(exceptionCapturerHeader,2000); + + public boolean isNextButtonDisplyed() { + return isElementDisplayed(nextButton); } } diff --git a/ui-test/src/main/java/regclient/pages/arabic/LoginPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/LoginPageArabic.java index 5240c5fa0..a90d771e4 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/LoginPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/LoginPageArabic.java @@ -8,7 +8,7 @@ import regclient.page.RegistrationTasksPage; public class LoginPageArabic extends LoginPage { - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(1)") private WebElement mosipLogo; @@ -51,39 +51,42 @@ public class LoginPageArabic extends LoginPage { @AndroidFindBy(accessibility = "كلمة المرور غير صحيحة!") private WebElement passwordIncorrectErrorMessage; - @AndroidFindBy(accessibility = "Arabic") + @AndroidFindBy(accessibility = "العربية") private WebElement arabicButton; - + + @AndroidFindBy(accessibility = "انتقل إلى المنزل") + private WebElement skipToHomeButton; + public LoginPageArabic(AppiumDriver driver) { super(driver); } - - public void enterUserName(String username) { - clickAndsendKeysToTextBox(userNameTextBox,username); + + public void enterUserName(String username) { + clickAndsendKeysToTextBox(userNameTextBox, username); } - public void clickOnNextButton() { + public void clickOnNextButton() { clickOnElement(nextButton); } - public void clickOnBackButton() { + public void clickOnBackButton() { clickOnElement(backButton); } - public void enterPassword(String password) { - clickAndsendKeysToTextBox(passwordTextBox,password); + public void enterPassword(String password) { + clickAndsendKeysToTextBox(passwordTextBox, password); } - public RegistrationTasksPage clickOnloginButton() { + public RegistrationTasksPage clickOnloginButton() { clickOnElement(loginButton); return new RegistrationTasksPageArabic(driver); } - public boolean isNextButtonEnabled() { + public boolean isNextButtonEnabled() { return isElementEnabled(nextButton); } - public boolean isLoginButtonEnabled() { + public boolean isLoginButtonEnabled() { return isElementEnabled(loginButton); } @@ -135,4 +138,8 @@ public void selectLanguage() { clickOnElement(arabicButton); } + public void clickOnSkipToHomeButton() { + clickOnElement(skipToHomeButton); + } + } diff --git a/ui-test/src/main/java/regclient/pages/arabic/ManageApplicationsPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/ManageApplicationsPageArabic.java index 881421831..01d66d3c3 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/ManageApplicationsPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/ManageApplicationsPageArabic.java @@ -7,65 +7,83 @@ import io.appium.java_client.pagefactory.AndroidFindBy; import regclient.page.ManageApplicationsPage; -public class ManageApplicationsPageArabic extends ManageApplicationsPage{ +public class ManageApplicationsPageArabic extends ManageApplicationsPage { - @AndroidFindBy(accessibility = "Manage Applications") + @AndroidFindBy(accessibility = "إدارة التطبيقات") private WebElement manageApplicationsTitle; @AndroidFindBy(xpath = "//android.widget.EditText") private WebElement ApplicationIDTextBox; - @AndroidFindBy(accessibility = "UPLOAD") + @AndroidFindBy(accessibility = "تحميل") private WebElement uploadButton; - @AndroidFindBy(accessibility = "Client Status") + @AndroidFindBy(accessibility = "حالة العميل") private WebElement clientStatusDropdown; - @AndroidFindBy(accessibility = "Server Status") + @AndroidFindBy(accessibility = "حالة الخادم") private WebElement serverStatusDropdown; - @AndroidFindBy(accessibility = "EXPORT") + @AndroidFindBy(accessibility = "تصدير") private WebElement exportButton; - @AndroidFindBy(accessibility = "Created") + @AndroidFindBy(accessibility = "تم الإنشاء") private WebElement createdOption; - @AndroidFindBy(accessibility = "Approved") + @AndroidFindBy(accessibility = "تمت الموافقة") private WebElement approvedOption; - @AndroidFindBy(accessibility = "Rejected") + @AndroidFindBy(accessibility = "مرفوض") private WebElement rejectedOption; - @AndroidFindBy(accessibility = "Synced") + @AndroidFindBy(accessibility = "تمت المزامنة") private WebElement syncedOption; - @AndroidFindBy(accessibility = "Uploaded") + @AndroidFindBy(accessibility = "تم التحميل") private WebElement uploadedOption; - @AndroidFindBy(accessibility = "Exported") + @AndroidFindBy(accessibility = "تم التصدير") private WebElement exportedsOption; - - @AndroidFindBy(accessibility = "Dismiss") + + @AndroidFindBy(accessibility = "تجاهل") private WebElement dismissButton; - - @AndroidFindBy(accessibility = "Displaying 0 Applications") + + @AndroidFindBy(accessibility = "عرض 0 من الطلبات") private WebElement displayZeroApplication; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.CheckBox\").instance(0)") private WebElement searchCheckBoxButton; - - @AndroidFindBy(accessibility = "Received") + + @AndroidFindBy(accessibility = "تم الاستلام") private WebElement receivedValueDropdown; - - @AndroidFindBy(accessibility = "Processing") + + @AndroidFindBy(accessibility = "قيد المعالجة") private WebElement processingValueDropdown; - - @AndroidFindBy(accessibility = "Accepted") + + @AndroidFindBy(accessibility = "تم القبول") private WebElement acceptedValueDropdown; - - @AndroidFindBy(accessibility = "Dismiss") + + @AndroidFindBy(accessibility = "تجاهل") private WebElement deletionValueDropdown; + @AndroidFindBy(xpath = "//android.widget.TextView[@text='Documents'][2]") + private WebElement documentsHeader; + + @AndroidFindBy(accessibility = "android:id/button1") + private WebElement useThisFolderButton; + + @AndroidFindBy(accessibility = "android:id/button1") + private WebElement allowButton; + + @AndroidFindBy(xpath = "//android.widget.TextView[@resource-id='android:id/title' and @text='Documents']") + private WebElement documentsFolder; + + @AndroidFindBy(accessibility = "لم يتم العثور على شبكة!") + private WebElement noNetworkFound; + + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.CheckBox\").instance(1)") + private WebElement latestAidCheckBox; + public ManageApplicationsPageArabic(AppiumDriver driver) { super(driver); } @@ -74,17 +92,18 @@ public boolean isManageApplicationPageDisplayed() { return isElementDisplayed(manageApplicationsTitle); } - public void enterAID(String AID) { - clickAndsendKeysToTextBox(ApplicationIDTextBox,AID); + public void enterAID(String AID) { + clickAndsendKeysToTextBox(ApplicationIDTextBox, AID); } - public void enterWrongAID(String AID) { - clickAndsendKeysToTextBox(ApplicationIDTextBox,AID); - } + public void enterWrongAID(String AID) { + clickAndsendKeysToTextBox(ApplicationIDTextBox, AID); + } public boolean isSearchAIDDisplayed(String AID) { waitTime(2); - return isElementDisplayed(driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'"+AID+"')]"))); + return isElementDisplayed( + driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'" + AID + "')]"))); } public boolean isZeroApplicationDisplayed() { @@ -92,30 +111,29 @@ public boolean isZeroApplicationDisplayed() { return isElementDisplayed(displayZeroApplication); } - public void clickOnUploadButton() { + public void clickOnUploadButton() { clickOnElement(uploadButton); waitTime(10); } public boolean isPacketUploadDone(String AID) { waitTime(2); - WebElement element =driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'"+AID+"')]")); - if(element.getAttribute("contentDescription").contains("NOT UPLOADED")) { + WebElement element = driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'" + AID + "')]")); + if (element.getAttribute("contentDescription").contains("NOT UPLOADED")) { waitTime(10); - element =driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'"+AID+"')]")); - if(element.getAttribute("contentDescription").contains("NOT UPLOADED")) + element = driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'" + AID + "')]")); + if (element.getAttribute("contentDescription").contains("NOT UPLOADED")) return false; else return true; - } - else + } else return true; } public boolean isPacketApproved(String AID) { waitTime(2); - WebElement element =driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'"+AID+"')]")); - if(element.getAttribute("contentDescription").contains("APPROVED")) + WebElement element = driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'" + AID + "')]")); + if (element.getAttribute("contentDescription").contains("APPROVED")) return true; else return false; @@ -123,27 +141,27 @@ public boolean isPacketApproved(String AID) { public boolean isPacketSynned(String AID) { waitTime(2); - WebElement element =driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'"+AID+"')]")); - if(element.getAttribute("contentDescription").contains("SYNCED")) + WebElement element = driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'" + AID + "')]")); + if (element.getAttribute("contentDescription").contains("SYNCED")) return true; else return false; } - + public boolean isPacketRejected(String AID) { waitTime(2); - WebElement element =driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'"+AID+"')]")); - if(element.getAttribute("contentDescription").contains("REJECTED")) + WebElement element = driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'" + AID + "')]")); + if (element.getAttribute("contentDescription").contains("REJECTED")) return true; else return false; } - public void clickClientStatusDropdown() { + public void clickClientStatusDropdown() { clickOnElement(clientStatusDropdown); } - public void clickServerStatusDropdown() { + public void clickServerStatusDropdown() { clickOnElement(serverStatusDropdown); } @@ -171,25 +189,25 @@ public boolean isExportedsDropdownOptionDisplayed() { return isElementDisplayed(exportedsOption); } - public void clickDismissButton() { + public void clickDismissButton() { clickOnElement(dismissButton); } - public void clickOnSearchCheckBox() { + public void clickOnSearchCheckBox() { clickOnElement(searchCheckBoxButton); } - public void selectApprovedValueDropdown() { + public void selectApprovedValueDropdown() { clickOnElement(clientStatusDropdown); clickOnElement(approvedOption); - } + } - public void selectSyncedOptionDropdown() { + public void selectSyncedOptionDropdown() { clickOnElement(clientStatusDropdown); clickOnElement(syncedOption); } - public void selectUploadedOptionDropdown() { + public void selectUploadedOptionDropdown() { clickOnElement(clientStatusDropdown); clickOnElement(uploadedOption); @@ -215,4 +233,34 @@ public void clickOnBackButton() { driver.navigate().back(); } + public void clickOnExportButton() { + clickOnElement(exportButton); + waitTime(10); + } + + public void clickOnUseThisFolderButton() { + if (isElementDisplayed(documentsHeader)) { + clickOnElement(useThisFolderButton); + if (isElementDisplayed(allowButton)) { + clickOnElement(allowButton); + } + } else if (isElementDisplayed(documentsFolder)) { + clickOnElement(documentsFolder); + clickOnElement(useThisFolderButton); + if (isElementDisplayed(allowButton)) { + clickOnElement(allowButton); + } + } else { + throw new RuntimeException("Documents folder or header not found on screen"); + } + } + + public boolean isNoNetworkFoundDisplayed() { + return isElementDisplayed(noNetworkFound); + } + + public void selectLatestAidCheckBox() { + clickOnElement(latestAidCheckBox); + } + } diff --git a/ui-test/src/main/java/regclient/pages/arabic/OnBoardPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/OnBoardPageArabic.java index 6a2249462..ebee72d67 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/OnBoardPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/OnBoardPageArabic.java @@ -8,14 +8,14 @@ import regclient.page.RegistrationTasksPage; import regclient.page.SupervisorBiometricVerificationpage; -public class OnBoardPageArabic extends OnBoardPage{ +public class OnBoardPageArabic extends OnBoardPage { @AndroidFindBy(accessibility = "تعليمات") private WebElement helpButton; @AndroidFindBy(accessibility = "إركب") private WebElement getOnBoardTitle; - + @AndroidFindBy(accessibility = "انتقل إلى المنزل") private WebElement skipToHomeScreenButton; @@ -33,16 +33,16 @@ public boolean isGetOnBoardTitleDisplayed() { public boolean isHelpButtonDisplayed() { return isElementDisplayed(helpButton); } - + public boolean isOnBoardWelcomeMessageDisplayed() { return isElementDisplayed(onBoardWelcomeMessage); } - + public SupervisorBiometricVerificationpage clickOnGetOnBoardTitle() { clickOnElement(getOnBoardTitle); return new SupervisorBiometricVerificationpageArabic(driver); } - + public RegistrationTasksPage clickOnSkipToHomeScreen() { clickOnElement(skipToHomeScreenButton); return new RegistrationTasksPageArabic(driver); diff --git a/ui-test/src/main/java/regclient/pages/arabic/OperationalTaskPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/OperationalTaskPageArabic.java index 73c5cad43..78aa73d98 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/OperationalTaskPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/OperationalTaskPageArabic.java @@ -7,28 +7,28 @@ import regclient.page.OperationalTaskPage; import regclient.page.SupervisorBiometricVerificationpage; -public class OperationalTaskPageArabic extends OperationalTaskPage{ +public class OperationalTaskPageArabic extends OperationalTaskPage { @AndroidFindBy(accessibility = "تحديث القياسات الحيوية للمشغل") private WebElement updateOperatorBiometricsButton; - + @AndroidFindBy(accessibility = "System Storage Usage") private WebElement systemStorageUsageTitle; - + @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"مزامنة البيانات\")") - private WebElement synchronizeDataButton ; - + private WebElement synchronizeDataButton; + @AndroidFindBy(accessibility = "تحميل التطبيق") private WebElement applicationUploadTitle; - + @AndroidFindBy(accessibility = "ما زال يحتاج بتصدير") private WebElement pendingApprovalTitle; - + public OperationalTaskPageArabic(AppiumDriver driver) { super(driver); } - public SupervisorBiometricVerificationpage clickOnUpdateOperatorBiometricsButton() { + public SupervisorBiometricVerificationpage clickOnUpdateOperatorBiometricsButton() { clickOnElement(updateOperatorBiometricsButton); return new SupervisorBiometricVerificationpageArabic(driver); } @@ -37,40 +37,39 @@ public boolean isOperationalTaskPageLoaded() { return isElementDisplayed(systemStorageUsageTitle); } - public void clickSynchronizeDataButton() { + public void clickSynchronizeDataButton() { clickOnElement(synchronizeDataButton); waitTime(50); } - + public boolean checkLastSyncDate() { String contentDesc = synchronizeDataButton.getAttribute("content-desc"); - if(contentDesc.contains("مزامنة البيانات\n"+getCurrentDateWord()+",")) + if (contentDesc.contains("مزامنة البيانات\n" + getCurrentDateWord() + ",")) return true; else return false; } - - public void clickApplicationUploadTitle() { + + public void clickApplicationUploadTitle() { clickOnElement(applicationUploadTitle); } - + public boolean isApplicationUploadTitleDisplayed() { - if(!isElementDisplayedOnScreen(applicationUploadTitle)) { + if (!isElementDisplayedOnScreen(applicationUploadTitle)) { swipeOrScroll(); } return isElementDisplayed(applicationUploadTitle); } - - public void clickPendingApprovalTitle() { + + public void clickPendingApprovalTitle() { clickOnElement(pendingApprovalTitle); } - + public boolean isPendingApprovalTitleDisplayed() { - if(!isElementDisplayedOnScreen(pendingApprovalTitle)) { + if (!isElementDisplayedOnScreen(pendingApprovalTitle)) { swipeOrScroll(); } return isElementDisplayed(pendingApprovalTitle); } - } diff --git a/ui-test/src/main/java/regclient/pages/arabic/PendingApprovalArabic.java b/ui-test/src/main/java/regclient/pages/arabic/PendingApprovalArabic.java index 7b1cb4aa5..c287f3f92 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/PendingApprovalArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/PendingApprovalArabic.java @@ -1,19 +1,21 @@ -/** - * - */ package regclient.pages.arabic; import static org.testng.Assert.assertTrue; +import java.time.Duration; +import java.util.List; + import org.openqa.selenium.By; +import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.ui.WebDriverWait; import io.appium.java_client.AppiumDriver; import io.appium.java_client.MobileBy; import io.appium.java_client.pagefactory.AndroidFindBy; import regclient.page.PendingApproval; -public class PendingApprovalArabic extends PendingApproval{ +public class PendingApprovalArabic extends PendingApproval { @AndroidFindBy(accessibility = "ما زال يحتاج بتصدير") private WebElement pendingApprovalTitle; @@ -29,11 +31,11 @@ public class PendingApprovalArabic extends PendingApproval{ @AndroidFindBy(accessibility = "يُقدِّم") private WebElement submitButton; - + @AndroidFindBy(accessibility = "اسم المستخدم غير صالح!") private WebElement invalidUsernameMessage; - - @AndroidFindBy(accessibility = "SUBMIT") + + @AndroidFindBy(accessibility = "إرسال") private WebElement invalidUsernameMessageForempty; @AndroidFindBy(accessibility = "مصادقة المشرف") @@ -44,37 +46,58 @@ public class PendingApprovalArabic extends PendingApproval{ @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.EditText\").instance(1)") private WebElement passwordTextBox; - + @AndroidFindBy(xpath = "//*[contains(@content-desc,\"ما زال يحتاج بتصدير\")]//preceding-sibling::android.widget.Button") private WebElement backButton; - - @AndroidFindBy(accessibility = "REJECT") + + @AndroidFindBy(accessibility = "رفض") private WebElement rejectButton; - - @AndroidFindBy(accessibility = "Sl.no Application ID Reg. Date Client Status Review Status Operator ID") - private WebElement pageAttributes ; - - @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"CREATED\")") + + @AndroidFindBy(accessibility = "الرقم التسلسلي معرف التطبيق تاريخ التسجيل حالة العميل حالة المراجعة معرف المشغل") + private WebElement pageAttributes; + + @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"تم الإنشاء\")") private WebElement clientStatus; - - @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"Pending\").instance(1)") + + @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"قيد الانتظار\").instance(1)") private WebElement reviewStatus; - + @AndroidFindBy(xpath = "//android.widget.EditText") private WebElement applicationIdTextbox; - - @AndroidFindBy(accessibility = "Reject Packet?") + + @AndroidFindBy(accessibility = "رفض الحزمة؟") private WebElement rejectPacketTitle; - - @AndroidFindBy(accessibility = "Please select a value") + + @AndroidFindBy(accessibility = "يرجى تحديد قيمة") private WebElement rejectReasonDropdown; + @AndroidFindBy(accessibility = "عرض 1 من الطلبات") + private WebElement displayApplication; + + @AndroidFindBy(accessibility = "يرجى تحديد سبب لرفض الحزمة. يمكنك تغيير المراجعة إلى الموافقة أو إعادة تعيين حالة المراجعة لاحقًا.") + private WebElement rejectPacketInfoMessage; + + @AndroidFindBy(uiAutomator = "new UiSelector().text(\"البيانات البيومترية\")") + private WebElement pendingApprovalBiometricsInformation; + + @AndroidFindBy(xpath = "(//android.widget.Button[@content-desc])[1]") + private WebElement latestAid; + + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.CheckBox\").instance(1)") + private WebElement latestAIdCheckBox; + + @AndroidFindBy(accessibility = "لم يتم العثور على شبكة!") + private WebElement noNetworkFound; + + @AndroidFindBy(accessibility = "المصادقة") + private WebElement authenticateButton; + public PendingApprovalArabic(AppiumDriver driver) { super(driver); } public boolean isPendingApprovalTitleDisplayed() { - return isElementDisplayed(pendingApprovalTitle); + return isElementDisplayed(pendingApprovalTitle); } @SuppressWarnings("deprecation") @@ -99,78 +122,128 @@ public void clickOnSubmitButton() { } public boolean isSupervisorAuthenticationTitleDisplayed() { - return isElementDisplayed(supervisorAuthenticationTitle); + return isElementDisplayed(supervisorAuthenticationTitle); } - public void enterUserName(String username) { - sendKeysToTextBox(userNameTextBox,username); + public void enterUserName(String username) { + sendKeysToTextBox(userNameTextBox, username); } - public void enterPassword(String password) { - sendKeysToTextBox(passwordTextBox,password); + public void enterPassword(String password) { + sendKeysToTextBox(passwordTextBox, password); } - + public void clickOnBackButton() { clickOnElement(backButton); } public boolean isApprovalButtonDisplayed() { - return isElementDisplayed(approveButton); + return isElementDisplayed(approveButton); } - + public boolean isRejectButtonDisplayed() { - return isElementDisplayed(rejectButton); + return isElementDisplayed(rejectButton); } - + public boolean isInvalidUsernameMessageDisplayed() { - return isElementDisplayed(invalidUsernameMessage); + return isElementDisplayed(invalidUsernameMessage); } - - + public boolean isPageAttributesDisplayed() { - return isElementDisplayed(pageAttributes); + return isElementDisplayed(pageAttributes); } - + public boolean isClientStatusDisplayed() { - return isElementDisplayed(clientStatus); + return isElementDisplayed(clientStatus); } public boolean isReviewStatusDisplayed() { - return isElementDisplayed(reviewStatus); + return isElementDisplayed(reviewStatus); } - - public void enterAID(String AID) { - clickAndsendKeysToTextBox(applicationIdTextbox,AID); + + public void enterAID(String AID) { + clickAndsendKeysToTextBox(applicationIdTextbox, AID); } - + public void clickOnRejectButton() { clickOnElement(rejectButton); } - + public boolean isRejectPacketTitleDisplayed() { - return isElementDisplayed(rejectPacketTitle); + return isElementDisplayed(rejectPacketTitle); } - + public void selectRejectionReasonDropdown() { - boolean isdisplayed =isElementDisplayed(rejectReasonDropdown); - assertTrue(isdisplayed,"Verify if "+rejectReasonDropdown+" header is displayed"); + boolean isdisplayed = isElementDisplayed(rejectReasonDropdown); + assertTrue(isdisplayed, "Verify if " + rejectReasonDropdown + " header is displayed"); clickOnElement(rejectReasonDropdown); waitTime(2); - if(!isElementDisplayed(rejectReasonDropdown)) { + if (!isElementDisplayed(rejectReasonDropdown)) { clickOnElement(findElement(By.className("android.view.View"))); - }else { + } else { clickOnElement(rejectReasonDropdown); waitTime(2); clickOnElement(findElement(By.className("android.view.View"))); - } + } } - + public boolean isSubmitButtonEnabled() { - return isElementEnabled(submitButton); + return isElementEnabled(submitButton); } - + public boolean isInvalidemptyUsernameSumbitButtonEnbled() { return isElementEnabled(invalidUsernameMessageForempty); } + public boolean isNumberOfApplicationDisplayed() { + waitTime(2); + return isElementDisplayed(displayApplication); + } + + public boolean isRejectPacketInfoMessageDisplayed() { + return isElementDisplayed(rejectPacketInfoMessage); + } + + public boolean isPendingApprovalBiometricsInformationDisplayed() { + swipeOrScroll(); + return isElementDisplayed(pendingApprovalBiometricsInformation); + } + + public void clickOnLatestAid() { + List allButtons = driver.findElements(MobileBy.className("android.widget.Button")); + allButtons.get(2).click(); + } + + public void selectLatestAIdCheckBox() { + clickOnElement(latestAIdCheckBox); + } + + public boolean isNoNetworkFoundDisplayed() { + return isElementEnabled(noNetworkFound); + } + + public void clickOnPendingApprovalSubmitButton(int maxRetries) { + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(3)); + + for (int i = 1; i <= maxRetries; i++) { + clickOnSubmitButton(); + try { + boolean popupShown = wait.until(d -> isNoNetworkFoundDisplayed()); + if (popupShown) { + } + } catch (TimeoutException e) { + break; + } + } + System.out.println("Still No Network Found Displayed"); + } + + public void clickOnAuthenticateButton() { + clickOnElement(authenticateButton); + } + + public boolean isAuthenticateButtonEnabled() { + return isElementEnabled(authenticateButton); + } + } diff --git a/ui-test/src/main/java/regclient/pages/arabic/PreviewPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/PreviewPageArabic.java index 958f830e5..1f24586f6 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/PreviewPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/PreviewPageArabic.java @@ -1,10 +1,12 @@ package regclient.pages.arabic; import org.openqa.selenium.WebElement; +import org.testng.Assert; import io.appium.java_client.AppiumDriver; import io.appium.java_client.MobileBy; import io.appium.java_client.pagefactory.AndroidFindBy; +import regclient.api.AdminTestUtil; import regclient.api.FetchUiSpec; import regclient.page.AuthenticationPage; import regclient.page.DemographicDetailsPage; @@ -14,85 +16,120 @@ public class PreviewPageArabic extends PreviewPage { - @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\"Demographic Information\"))") + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0))" + + ".scrollIntoView(new UiSelector().text(\"المعلومات الديموغرافية\"))") private WebElement demographicInformationInPreviewPage; - - @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\"Application ID\"))") + + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0))" + + ".scrollIntoView(new UiSelector().textContains(\"معرف التطبيق\"))") private WebElement applicationIDPreviewPage; - - @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\"Documents\"))") + + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0))" + + ".scrollIntoView(new UiSelector().text(\"المستندات\"))") private WebElement documentsInformationInPreviewPage; - - @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\"Biometrics\"))") + + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0))" + + ".scrollIntoView(new UiSelector().text(\"البيانات البيومترية\"))") private WebElement biometricsInformationInPreviewPage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\"Iris ( 1 )\"))") private WebElement singleIrisImage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\"Iris ( 2 )\"))") private WebElement bothIrisImage; - + @AndroidFindBy(accessibility = "يكمل") private WebElement continueButton; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\"Fingers ( 7 )\"))") private WebElement fingerExceptionText; - + + @AndroidFindBy(xpath = "//android.view.View[contains(@text,'Email')]/../following-sibling::android.view.View[1]") + private WebElement emailIdPreviewPage; + + @AndroidFindBy(accessibility = "فقدت UIN") + private WebElement lostUinTitle; + public PreviewPageArabic(AppiumDriver driver) { super(driver); } - - public AuthenticationPage clickOnContinueButton() { + + public AuthenticationPage clickOnContinueButton() { clickOnElement(continueButton); return new AuthenticationPageEnglish(driver); } - + public boolean isDemographicInformationInPreviewPageDisplayed() { return isElementDisplayed(demographicInformationInPreviewPage); } - + public boolean isDocumentsInformationInPreviewPageDisplayed() { return isElementDisplayed(documentsInformationInPreviewPage); } - + public boolean isBiometricsInformationInPreviewPagePageDisplayed() { return isElementDisplayed(biometricsInformationInPreviewPage); } - + @SuppressWarnings("deprecation") public boolean isNewRegistrationTitleDisplayed() { - return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getTitleUsingId("NEW") + "\"))"))); + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getTitleUsingId("NEW") + "\"))"))); } - + public boolean updateUINTitleDisplayed() { - return isElementDisplayed (findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getTitleUsingId("UPDATE") + "\"))"))); + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getTitleUsingId("UPDATE") + "\"))"))); } - + public boolean isApplicationIDPreviewPagePageDisplayed() { return isElementDisplayed(applicationIDPreviewPage); } - + @SuppressWarnings("deprecation") public DemographicDetailsPage clickOnDemographicDetailsTitle() { - clickOnElement(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))"))); + clickOnElement(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))"))); return new DemographicDetailsPageEnglish(driver); } - + public boolean isBothIrisImageDisplayed() { return isElementDisplayed(bothIrisImage); } - + public boolean isSingleIrisImageDisplayed() { return isElementDisplayed(singleIrisImage); } - + public boolean isFingerExceptionText() { return isElementDisplayed(fingerExceptionText); } public String getAID() { - String applicationID = getTextFromLocator(applicationIDPreviewPage).replaceAll(".*Application ID (\\d+).*", "$1"); + String applicationID = getTextFromLocator(applicationIDPreviewPage).replaceAll(".*Application ID (\\d+).*", + "$1"); return applicationID; } - + + public void validatePreRegAndApplicationIdMatch(String age) { + String preRegId = AdminTestUtil.getPreRegistrationFlow(age); + + String applicationID = getAID(); + + Assert.assertEquals(applicationID, preRegId, "Mismatch between API PreReg ID and UI Application ID!"); + } + + public String getEmailId() { + String emailId = getTextFromLocator(emailIdPreviewPage) + .replaceAll(".*?([A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}).*", "$1"); + return emailId; + } + + public boolean isLostUinTitleDisplayed() { + return isElementDisplayed(lostUinTitle); + } + } diff --git a/ui-test/src/main/java/regclient/pages/arabic/ProfilePageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/ProfilePageArabic.java index 700d5912a..2b3949fe0 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/ProfilePageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/ProfilePageArabic.java @@ -8,40 +8,50 @@ import regclient.page.ProfilePage; import regclient.pages.english.LoginPageEnglish; -public class ProfilePageArabic extends ProfilePage{ +public class ProfilePageArabic extends ProfilePage { @AndroidFindBy(accessibility = "حساب تعريفي") private WebElement profileTitle; - + @AndroidFindBy(accessibility = "الخروج") private WebElement logoutButton; - - @AndroidFindBy(accessibility = "There is still some action required!") + + @AndroidFindBy(accessibility = "لا يزال هناك بعض الإجراءات المطلوبة!") private WebElement logoutPopUpMessage; - + + @AndroidFindBy(accessibility = "إعادة تعيين كلمة المرور") + private WebElement resetPasswordButton; public ProfilePageArabic(AppiumDriver driver) { super(driver); } - public LoginPage clickOnLogoutButton() { - if(isElementDisplayed(logoutButton)) - clickOnElement(logoutButton); + public LoginPage clickOnLogoutButton() { + if (isElementDisplayed(logoutButton)) + clickOnElement(logoutButton); return new LoginPageEnglish(driver); - } - - public LoginPage clickOnLogoutButtonOnPopUp() { + } + + public LoginPage clickOnLogoutButtonOnPopUp() { clickOnElement(logoutButton); return new LoginPageEnglish(driver); - } - + } + public boolean isProfileTitleDisplayed() { return isElementDisplayed(profileTitle); } - + public boolean isLogoutPopUpMessageDisplayed() { return isElementDisplayed(logoutPopUpMessage); } + public boolean isResetPasswordButtonDisplayed() { + return isElementDisplayed(resetPasswordButton); + } + + public LoginPage clickOnResetPasswordButton() { + clickOnElement(resetPasswordButton); + return new LoginPageEnglish(driver); + } } diff --git a/ui-test/src/main/java/regclient/pages/arabic/RegistrationTasksPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/RegistrationTasksPageArabic.java index 34cbd4256..6492a6a41 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/RegistrationTasksPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/RegistrationTasksPageArabic.java @@ -9,8 +9,9 @@ import regclient.page.ProfilePage; import regclient.page.RegistrationTasksPage; import regclient.page.SelectLanguagePage; +import regclient.pages.english.SelectLanguagePageEnglish; -public class RegistrationTasksPageArabic extends RegistrationTasksPage{ +public class RegistrationTasksPageArabic extends RegistrationTasksPage { @AndroidFindBy(accessibility = "مهام التسجيل") private WebElement registrationTasksTitle; @@ -22,42 +23,57 @@ public class RegistrationTasksPageArabic extends RegistrationTasksPage{ private WebElement newRegistrationButton; @AndroidFindBy(uiAutomator = "new UiSelector().className(\"android.widget.ImageView\").instance(0)") - private WebElement synchronizeDataButton ; + private WebElement synchronizeDataButton; - @AndroidFindBy(xpath = "//android.widget.Toast[@text=\"Policy key Sync Completed\"]") - private WebElement policykeySyncCompletedMessage ; + @AndroidFindBy(xpath = "//android.widget.Toast[@text=\"اكتمل مزامنة مفتاح السياسة\"]") + private WebElement policykeySyncCompletedMessage; - @AndroidFindBy(xpath = "//*[contains(@text,'Sync Completed')]") - private WebElement masterDataSyncCompletedMessage ; + @AndroidFindBy(xpath = "//*[contains(@text,'اكتملت المزامنة')]") + private WebElement masterDataSyncCompletedMessage; - @AndroidFindBy(xpath = "//android.widget.Toast[@text=\"Script Sync Completed\"]") - private WebElement scriptSyncCompletedMessage ; + @AndroidFindBy(xpath = "//android.widget.Toast[@text=\"اكتملت مزامنة البرنامج النصي\"]") + private WebElement scriptSyncCompletedMessage; @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(2)") private WebElement dashboardButton; - + @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"حساب تعريفي\")") private WebElement profileButton; - + @AndroidFindBy(accessibility = "تحديث UIN") - private WebElement updateUinButton; - + private WebElement updateUinButton; + @AndroidFindBy(accessibility = "فقدت UIN") private WebElement lostUinButton; - + @AndroidFindBy(accessibility = "التصحيح البيومتري") private WebElement biometricCorrectionButton; - + + @AndroidFindBy(accessibility = "إعدادات\nعلامة التبويب 2 من 4") + private WebElement settingsButton; + + @AndroidFindBy(id = "com.android.permissioncontroller:id/permission_message") + private WebElement locationPermissionMessage; + + @AndroidFindBy(id = "com.android.permissioncontroller:id/permission_allow_foreground_only_button") + private WebElement allowWhileUsingButton; + + @AndroidFindBy(id = "com.android.permissioncontroller:id/permission_allow_one_time_button") + private WebElement allowOnceButton; + + @AndroidFindBy(id = "com.android.permissioncontroller:id/permission_deny_button") + private WebElement dontAllowButton; + public RegistrationTasksPageArabic(AppiumDriver driver) { super(driver); } - public SelectLanguagePage clickOnNewRegistrationButton() { + public SelectLanguagePage clickOnNewRegistrationButton() { clickOnElement(newRegistrationButton); return new SelectLanguagePageArabic(driver); } - - public void clickOnSynchronizeDataButton() { + + public void clickOnSynchronizeDataButton() { clickOnElement(synchronizeDataButton); } @@ -80,54 +96,80 @@ public boolean isMasterDataSyncCompletedDisplayed() { public boolean isScriptSyncCompletedDisplayed() { return isElementDisplayed(scriptSyncCompletedMessage); } - - public DashboardPage clickOnDashboardButton() { + + public DashboardPage clickOnDashboardButton() { clickOnElement(dashboardButton); return new DashboardPageArabic(driver); } - - public OperationalTaskPage clickOnOperationalTasksTitle() { + + public OperationalTaskPage clickOnOperationalTasksTitle() { clickOnElement(operationalTaskPageTitle); return new OperationalTaskPageArabic(driver); } - + public boolean isProfileTitleDisplayed() { return isElementDisplayed(profileButton); } - - public ProfilePage clickProfileButton() { + + public ProfilePage clickProfileButton() { clickOnElement(profileButton); return new ProfilePageArabic(driver); } - - public SelectLanguagePage clickUpdateMyUINButton() { + + public SelectLanguagePage clickUpdateMyUINButton() { clickOnElement(updateUinButton); return new SelectLanguagePageArabic(driver); } - + public boolean isUpdateUINTitleDisplayed() { return isElementDisplayed(updateUinButton); } - + public boolean isLostUINTitleDisplayed() { return isElementDisplayed(lostUinButton); } - + public boolean isBiometricCorrectionTitleDisplayed() { return isElementDisplayed(biometricCorrectionButton); } - - public void clickSynchronizeDataButton() { + + public void clickSynchronizeDataButton() { clickOnElement(synchronizeDataButton); waitTime(50); } - + public boolean checkLastSyncDate() { String contentDesc = synchronizeDataButton.getAttribute("content-desc"); - if(contentDesc.contains("Synchronize Data\n"+getCurrentDateWord()+",")) + if (contentDesc.contains("Synchronize Data\n" + getCurrentDateWord() + ",")) return true; else return false; } + public void clickOnLostUinButton() { + clickOnElement(lostUinButton); + } + + public void clickOnSettingsButton() { + clickOnElement(settingsButton); + } + + public SelectLanguagePage clickOnBiometricCorrectionButton() { + clickOnElement(biometricCorrectionButton); + return new SelectLanguagePageEnglish(driver); + } + + public void handleLocationPermission() { + try { + if (isElementDisplayed(locationPermissionMessage)) { + clickOnElement(allowWhileUsingButton); + } + } catch (Exception e) { + } + } + + public void clickOnRegistrationTasksTab() { + clickOnElement(registrationTasksTitle); + } + } diff --git a/ui-test/src/main/java/regclient/pages/arabic/SelectLanguagePageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/SelectLanguagePageArabic.java index e2fd659df..c4008a5ae 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/SelectLanguagePageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/SelectLanguagePageArabic.java @@ -8,8 +8,7 @@ import regclient.page.SelectLanguagePage; import regclient.utils.TestDataReader; - -public class SelectLanguagePageArabic extends SelectLanguagePage{ +public class SelectLanguagePageArabic extends SelectLanguagePage { @AndroidFindBy(accessibility = "اختار اللغة") private WebElement selectLanguageTitle; @@ -17,10 +16,10 @@ public class SelectLanguagePageArabic extends SelectLanguagePage{ @AndroidFindBy(accessibility = "يُقدِّم") private WebElement submitButton; - @AndroidFindBy(accessibility = "French") + @AndroidFindBy(accessibility = "français") private WebElement frenchLanguageButton; - @AndroidFindBy(accessibility = "Arabic") + @AndroidFindBy(accessibility = "عربي") private WebElement arabicLanguageButton; @AndroidFindBy(xpath = "(//android.view.View[@content-desc=\"ಕನ್ನಡ\"])[1]") @@ -70,12 +69,12 @@ public boolean isSelectLanguagePageLoaded() { return isElementDisplayed(selectLanguageTitle); } - public void clickOnSubmitButtonWithoutSelectingLanguage() { + public void clickOnSubmitButtonWithoutSelectingLanguage() { clickOnElement(submitButton); } - public void selectSecondLanguage() { - if(TestDataReader.readData("defaultlanguage").equalsIgnoreCase("ara")) + public void selectSecondLanguage() { + if (TestDataReader.readData("defaultlanguage").equalsIgnoreCase("ara")) clickOnElement(englishLanguageButton); else clickOnElement(arabicLanguageButton); @@ -110,7 +109,7 @@ public void selectNotificationlanguage(String notificationLanguage) { } } - public void selectAllSecondLanguage() { + public void selectAllSecondLanguage() { clickOnElement(englishLanguageButton); @@ -122,19 +121,18 @@ public void selectAllSecondLanguage() { clickOnElement(hindiLanguageButton); - clickOnElement(tamilLanguageButton); + clickOnElement(tamilLanguageButton); } - - public boolean isArabicLanguageButtonEnabled() { + public boolean isArabicLanguageButtonEnabled() { return isElementEnabled(arabicLanguageButton); } - public boolean isSubmitButtonEnabled() { + public boolean isSubmitButtonEnabled() { return isElementEnabled(submitButton); } - public ConsentPage clickOnSubmitButton() { + public ConsentPage clickOnSubmitButton() { clickOnElement(submitButton); return new ConsentPageArabic(driver); } diff --git a/ui-test/src/main/java/regclient/pages/arabic/SupervisorBiometricVerificationpageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/SupervisorBiometricVerificationpageArabic.java index 05cd4dd87..4bdb1b466 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/SupervisorBiometricVerificationpageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/SupervisorBiometricVerificationpageArabic.java @@ -6,131 +6,131 @@ import io.appium.java_client.pagefactory.AndroidFindBy; import regclient.page.SupervisorBiometricVerificationpage; -public class SupervisorBiometricVerificationpageArabic extends SupervisorBiometricVerificationpage{ +public class SupervisorBiometricVerificationpageArabic extends SupervisorBiometricVerificationpage { - @AndroidFindBy(accessibility = "Supervisor's Biometric Verification") + @AndroidFindBy(accessibility = "التحقق البيومتري للمشرف") private WebElement supervisorBiometricVerificationPageTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"القزحية مسح\"))") private WebElement irisScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"اليد اليمنى مسح\"))") private WebElement rightHandScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"اليد اليسرى مسح\"))") private WebElement leftHandScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"الأبهام مسح\"))") private WebElement thumbsScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"الوجه مسح\"))") private WebElement faceScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"استثناء مسح\"))") private WebElement exceptionScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"القزحية مسح\"))") private WebElement irisScanButtonTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"اليد اليمنى مسح\"))") private WebElement rightHandScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"اليد اليسرى مسح\"))") private WebElement leftHandScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"الأبهام مسح\"))") private WebElement thumbsScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"الوجه مسح\"))") private WebElement faceScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"استثناء مسح\"))") private WebElement exceptionScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().description(\"مسح\"))") private WebElement scanButton; - - @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Iris')]") + + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'قزحية العين')]") private WebElement irisCapturerHeader; - - @AndroidFindBy(xpath = "//*[contains(@content-desc, 'RightHand')]") + + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'اليد اليمنى')]") private WebElement rightHandCapturerHeader; - - @AndroidFindBy(xpath = "//*[contains(@content-desc, 'LeftHand')]") + + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'اليد اليسرى')]") private WebElement leftHandCapturerHeader; - - @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Thumbs')]") + + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'الإبهامان')]") private WebElement thumbsCapturerHeader; - - @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Face')]") + + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'الوجه')]") private WebElement faceCapturerHeader; - + @AndroidFindBy(className = "android.widget.Button") private WebElement popUpCloseButton; - + @AndroidFindBy(accessibility = "مقبل") private WebElement nextButton; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"الحد \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement irisScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"الحد \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement rightHandScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"الحد \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement leftHandScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"الحد \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement thumbsScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"الحد \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement faceScanQuality; - + @AndroidFindBy(accessibility = "وضع علامة استثناء") private WebElement markExceptionButton; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(1)") private WebElement oneEyeException; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(2)") private WebElement firstFingureExceptionImage; - + @AndroidFindBy(accessibility = "وضع علامة استثناء") private WebElement exceptionTypeTitle; - + @AndroidFindBy(accessibility = "دائم") private WebElement permanentButton; - + @AndroidFindBy(accessibility = "مؤقت") private WebElement temporaryButton; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"التعليقات\"))") private WebElement commentsHeader; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"التعليقات\")]/following-sibling::android.widget.EditText") private WebElement commentsTextBox; - + @AndroidFindBy(accessibility = "وضع علامة على الاستثناءات على الوجه غير مسموح") private WebElement markingExceptionsOnFaceIsNotAllowedText; - + @AndroidFindBy(xpath = "//android.widget.ScrollView/android.view.View[3]") private WebElement zoomButton; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"الحد \")]/following-sibling::android.view.View") private WebElement scanQualityText; - + @AndroidFindBy(accessibility = "التحقق والحفظ") private WebElement verifyAndSaveButton; - + @AndroidFindBy(accessibility = "رفض") private WebElement dismissPage; - + @AndroidFindBy(accessibility = "لقد انضممت بنجاح.") private WebElement successPopup; - + @AndroidFindBy(accessibility = "بيت") private WebElement homeButton; - + public SupervisorBiometricVerificationpageArabic(AppiumDriver driver) { super(driver); } @@ -138,237 +138,237 @@ public SupervisorBiometricVerificationpageArabic(AppiumDriver driver) { public void clickOnIrisScan() { clickOnElement(irisScanIcon); } - + public boolean isSupervisorBiometricVerificationPageLoaded() { return isElementDisplayed(supervisorBiometricVerificationPageTitle); } - + public void clickOnRightHandScanIcon() { clickOnElement(rightHandScanIcon); } - + public void clickOnLeftHandScanIcon() { clickOnElement(leftHandScanIcon); } - + public void clickOnThumbsScanIcon() { clickOnElement(thumbsScanIcon); } - + public void clickOnFaceScanIcon() { clickOnElement(faceScanIcon); } - + public void clickOnExceptionScanIcon() { clickOnElement(exceptionScanIcon); } - + public void clickOnScanButton() { clickOnElement(scanButton); - } - + } + public void clickOnNextButton() { clickOnElement(nextButton); } - + public void closeScanCapturePopUp() { driver.navigate().back(); } - - - public boolean isRightHandScanTitleDisplyed() { + + public boolean isRightHandScanTitleDisplyed() { return isElementDisplayed(rightHandScanTitle); } - - public boolean isLeftHandScanTitleDisplyed() { + + public boolean isLeftHandScanTitleDisplyed() { return isElementDisplayed(leftHandScanTitle); } - - public boolean isThumbsScanTitleDisplyed() { + + public boolean isThumbsScanTitleDisplyed() { return isElementDisplayed(thumbsScanTitle); } - - public boolean isFaceScanTitleDisplyed() { + + public boolean isFaceScanTitleDisplyed() { return isElementDisplayed(faceScanTitle); } - - public boolean isExceptionScanTitleDisplyed() { + + public boolean isExceptionScanTitleDisplyed() { return isElementDisplayed(exceptionScanTitle); } - - public boolean isIrisScan() { - return isElementDisplayed(irisCapturerHeader,2000); + + public boolean isIrisScan() { + return isElementDisplayed(irisCapturerHeader, 2000); } - - public boolean isRightHandScan() { - return isElementDisplayed(rightHandCapturerHeader,2000); + + public boolean isRightHandScan() { + return isElementDisplayed(rightHandCapturerHeader, 2000); } - - public boolean isLeftHandScan() { - return isElementDisplayed(leftHandCapturerHeader,2000); + + public boolean isLeftHandScan() { + return isElementDisplayed(leftHandCapturerHeader, 2000); } - - public boolean isThumbsScan() { - return isElementDisplayed(thumbsCapturerHeader,2000); + + public boolean isThumbsScan() { + return isElementDisplayed(thumbsCapturerHeader, 2000); } - - public boolean isFaceScan() { - return isElementDisplayed(faceCapturerHeader,2000); + + public boolean isFaceScan() { + return isElementDisplayed(faceCapturerHeader, 2000); } - - public boolean isIrisScanQualityDisplyed() { + + public boolean isIrisScanQualityDisplyed() { return isElementDisplayed(irisScanQuality); } - - public boolean isRightHandScanQualityDisplyed() { + + public boolean isRightHandScanQualityDisplyed() { return isElementDisplayed(rightHandScanQuality); } - - public boolean isLeftHandScanQualityDisplyed() { + + public boolean isLeftHandScanQualityDisplyed() { return isElementDisplayed(leftHandScanQuality); } - - public boolean isThumbsScanQualityDisplyed() { + + public boolean isThumbsScanQualityDisplyed() { return isElementDisplayed(thumbsScanQuality); } - - public boolean isFaceScanQualityDisplyed() { + + public boolean isFaceScanQualityDisplyed() { return isElementDisplayed(faceScanQuality); } - + public void clickOnMarkExceptionButton() { clickOnElement(markExceptionButton); } - + public void markOneEyeException() { clickOnElement(oneEyeException); } - + public void markOneFingureException() { clickOnElement(firstFingureExceptionImage); } - - public boolean isExceptionTypeTitleDisplyed() { + + public boolean isExceptionTypeTitleDisplyed() { return isElementDisplayed(exceptionTypeTitle); } - + public void clickOnExceptionTypeTemporaryButton() { - if(!isElementDisplayedOnScreen(temporaryButton)) { + if (!isElementDisplayedOnScreen(temporaryButton)) { swipeOrScroll(); } - clickOnElement(temporaryButton); + clickOnElement(temporaryButton); } - - public boolean isCommentHeaderDisplyed() { + + public boolean isCommentHeaderDisplyed() { return isElementDisplayed(commentsHeader); } - - public void enterCommentsInTextBox(String comments) { - if(!isElementDisplayedOnScreen(commentsTextBox)) { + + public void enterCommentsInTextBox(String comments) { + if (!isElementDisplayedOnScreen(commentsTextBox)) { swipeOrScroll(); } - clickAndsendKeysToTextBox(commentsTextBox,comments); + clickAndsendKeysToTextBox(commentsTextBox, comments); } - + public void clickOnIrisScanTitle() { clickOnElement(irisScanButtonTitle); } - + public void clickOnThumbsScanTitle() { clickOnElement(thumbsScanTitle); } - - public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed() { + + public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed() { return isElementDisplayed(markingExceptionsOnFaceIsNotAllowedText); } - - public boolean isZoomButtonDisplyed() { + + public boolean isZoomButtonDisplyed() { return isElementDisplayed(zoomButton); } - + public void clickOnRightHandScanTitle() { clickOnElement(rightHandScanTitle); } - + public void clickOnleftHandScanTitle() { clickOnElement(leftHandScanTitle); } - + public void clickOnFaceScanTitle() { clickOnElement(faceScanTitle); } + public boolean checkThresholdValueIris() { - int requiredValue=60; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 60; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueRightHand() { - int requiredValue=40; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 40; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueLeftHand() { - int requiredValue=60; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 60; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueThumbs() { - int requiredValue=40; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 40; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueFace() { - int requiredValue=90; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 90; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean isVerifyAndSaveButtonEnabled() { - return isElementDisplayed(verifyAndSaveButton); + return isElementDisplayed(verifyAndSaveButton); } @Override public void clickOnVerifyAndSaveButton() { clickOnElement(verifyAndSaveButton); - + } - + public boolean isDismissPageLoaded() { return isElementDisplayed(dismissPage); } - + public boolean isOperatorOnboardedPopupLoaded() { - return isElementDisplayed(successPopup); + return isElementDisplayed(successPopup); } - + public void clickOnHomeButton() { clickOnElement(homeButton); } - + public void clickOnBackButton() { driver.navigate().back(); } diff --git a/ui-test/src/main/java/regclient/pages/arabic/UpdateOperatorBiometricspageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/UpdateOperatorBiometricspageArabic.java index 0e3386b3b..86ca01dde 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/UpdateOperatorBiometricspageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/UpdateOperatorBiometricspageArabic.java @@ -6,372 +6,378 @@ import io.appium.java_client.pagefactory.AndroidFindBy; import regclient.page.UpdateOperatorBiometricspage; -public class UpdateOperatorBiometricspageArabic extends UpdateOperatorBiometricspage{ +public class UpdateOperatorBiometricspageArabic extends UpdateOperatorBiometricspage { public UpdateOperatorBiometricspageArabic(AppiumDriver driver) { super(driver); - + } + @AndroidFindBy(accessibility = "تحديث المشرف الحيوي") private WebElement supervisorBiometricUpdatePageTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"القزحية مسح\"))") private WebElement irisScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"اليد اليمنى مسح\"))") private WebElement rightHandScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"اليد اليسرى مسح\"))") private WebElement leftHandScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"الأبهام مسح\"))") private WebElement thumbsScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"الوجه مسح\"))") private WebElement faceScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"استثناء مسح\"))") private WebElement exceptionScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"القزحية مسح\"))") private WebElement irisScanButtonTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"اليد اليمنى مسح\"))") private WebElement rightHandScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"اليد اليسرى مسح\"))") private WebElement leftHandScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"الأبهام مسح\"))") private WebElement thumbsScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"الوجه مسح\"))") private WebElement faceScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"استثناء مسح\"))") private WebElement exceptionScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().description(\"مسح\"))") private WebElement scanButton; - - @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Iris')]") + + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'قزحية العين')]") private WebElement irisCapturerHeader; - - @AndroidFindBy(xpath = "//*[contains(@content-desc, 'RightHand')]") + + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'اليد اليمنى')]") private WebElement rightHandCapturerHeader; - - @AndroidFindBy(xpath = "//*[contains(@content-desc, 'LeftHand')]") + + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'اليد اليسرى')]") private WebElement leftHandCapturerHeader; - - @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Thumbs')]") + + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'الإبهامان')]") private WebElement thumbsCapturerHeader; - - @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Face')]") + + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'الوجه')]") private WebElement faceCapturerHeader; - + @AndroidFindBy(className = "android.widget.Button") private WebElement popUpCloseButton; - + @AndroidFindBy(accessibility = "مقبل") private WebElement nextButton; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"الحد \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement irisScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"الحد \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement rightHandScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"الحد \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement leftHandScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"الحد \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement thumbsScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"الحد \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement faceScanQuality; - + @AndroidFindBy(accessibility = "وضع علامة استثناء") private WebElement markExceptionButton; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(1)") private WebElement oneEyeException; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(2)") private WebElement firstFingureExceptionImage; - + @AndroidFindBy(accessibility = "وضع علامة استثناء") private WebElement exceptionTypeTitle; - + @AndroidFindBy(accessibility = "دائم") private WebElement permanentButton; - + @AndroidFindBy(accessibility = "مؤقت") private WebElement temporaryButton; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"التعليقات\"))") private WebElement commentsHeader; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"التعليقات\")]/following-sibling::android.widget.EditText") private WebElement commentsTextBox; - + @AndroidFindBy(accessibility = "وضع علامة على الاستثناءات على الوجه غير مسموح") private WebElement markingExceptionsOnFaceIsNotAllowedText; - + @AndroidFindBy(xpath = "//android.widget.ScrollView/android.view.View[3]") private WebElement zoomButton; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"الحد \")]/following-sibling::android.view.View") private WebElement scanQualityText; - + @AndroidFindBy(accessibility = "التحقق والحفظ") private WebElement verifyAndSaveButton; - + @AndroidFindBy(accessibility = "رفض") private WebElement dismissPage; - + @AndroidFindBy(accessibility = "تم تحديث القياسات الحيوية للمشغل بنجاح.") private WebElement successPopup; - + @AndroidFindBy(accessibility = "بيت") private WebElement homeButton; - + + @AndroidFindBy(accessibility = "تحديث القياسات الحيوية للمشغل") + private WebElement updateOperatorBiometrics; public void clickOnIrisScan() { clickOnElement(irisScanIcon); } - + public boolean isSupervisorBiometricUpdatePageLoaded() { return isElementDisplayed(supervisorBiometricUpdatePageTitle); } - + public void clickOnRightHandScanIcon() { clickOnElement(rightHandScanIcon); } - + public void clickOnLeftHandScanIcon() { clickOnElement(leftHandScanIcon); } - + public void clickOnThumbsScanIcon() { clickOnElement(thumbsScanIcon); } - + public void clickOnFaceScanIcon() { clickOnElement(faceScanIcon); } - + public void clickOnExceptionScanIcon() { clickOnElement(exceptionScanIcon); } - + public void clickOnScanButton() { clickOnElement(scanButton); - } - + } + public void clickOnNextButton() { clickOnElement(nextButton); } - + public void closeScanCapturePopUp() { driver.navigate().back(); } - - - public boolean isRightHandScanTitleDisplyed() { + + public boolean isRightHandScanTitleDisplyed() { return isElementDisplayed(rightHandScanTitle); } - - public boolean isLeftHandScanTitleDisplyed() { + + public boolean isLeftHandScanTitleDisplyed() { return isElementDisplayed(leftHandScanTitle); } - - public boolean isThumbsScanTitleDisplyed() { + + public boolean isThumbsScanTitleDisplyed() { return isElementDisplayed(thumbsScanTitle); } - - public boolean isFaceScanTitleDisplyed() { + + public boolean isFaceScanTitleDisplyed() { return isElementDisplayed(faceScanTitle); } - - public boolean isExceptionScanTitleDisplyed() { + + public boolean isExceptionScanTitleDisplyed() { return isElementDisplayed(exceptionScanTitle); } - - public boolean isIrisScan() { - return isElementDisplayed(irisCapturerHeader,2000); + + public boolean isIrisScan() { + return isElementDisplayed(irisCapturerHeader, 2000); } - - public boolean isRightHandScan() { - return isElementDisplayed(rightHandCapturerHeader,2000); + + public boolean isRightHandScan() { + return isElementDisplayed(rightHandCapturerHeader, 2000); } - - public boolean isLeftHandScan() { - return isElementDisplayed(leftHandCapturerHeader,2000); + + public boolean isLeftHandScan() { + return isElementDisplayed(leftHandCapturerHeader, 2000); } - - public boolean isThumbsScan() { - return isElementDisplayed(thumbsCapturerHeader,2000); + + public boolean isThumbsScan() { + return isElementDisplayed(thumbsCapturerHeader, 2000); } - - public boolean isFaceScan() { - return isElementDisplayed(faceCapturerHeader,2000); + + public boolean isFaceScan() { + return isElementDisplayed(faceCapturerHeader, 2000); } - - public boolean isIrisScanQualityDisplyed() { + + public boolean isIrisScanQualityDisplyed() { return isElementDisplayed(irisScanQuality); } - - public boolean isRightHandScanQualityDisplyed() { + + public boolean isRightHandScanQualityDisplyed() { return isElementDisplayed(rightHandScanQuality); } - - public boolean isLeftHandScanQualityDisplyed() { + + public boolean isLeftHandScanQualityDisplyed() { return isElementDisplayed(leftHandScanQuality); } - - public boolean isThumbsScanQualityDisplyed() { + + public boolean isThumbsScanQualityDisplyed() { return isElementDisplayed(thumbsScanQuality); } - - public boolean isFaceScanQualityDisplyed() { + + public boolean isFaceScanQualityDisplyed() { return isElementDisplayed(faceScanQuality); } - + public void clickOnMarkExceptionButton() { clickOnElement(markExceptionButton); } - + public void markOneEyeException() { clickOnElement(oneEyeException); } - + public void markOneFingureException() { clickOnElement(firstFingureExceptionImage); } - - public boolean isExceptionTypeTitleDisplyed() { + + public boolean isExceptionTypeTitleDisplyed() { return isElementDisplayed(exceptionTypeTitle); } - + public void clickOnExceptionTypeTemporaryButton() { - if(!isElementDisplayedOnScreen(temporaryButton)) { + if (!isElementDisplayedOnScreen(temporaryButton)) { swipeOrScroll(); } - clickOnElement(temporaryButton); + clickOnElement(temporaryButton); } - - public boolean isCommentHeaderDisplyed() { + + public boolean isCommentHeaderDisplyed() { return isElementDisplayed(commentsHeader); } - - public void enterCommentsInTextBox(String comments) { - if(!isElementDisplayedOnScreen(commentsTextBox)) { + + public void enterCommentsInTextBox(String comments) { + if (!isElementDisplayedOnScreen(commentsTextBox)) { swipeOrScroll(); } - clickAndsendKeysToTextBox(commentsTextBox,comments); + clickAndsendKeysToTextBox(commentsTextBox, comments); } - + public void clickOnIrisScanTitle() { clickOnElement(irisScanButtonTitle); } - + public void clickOnThumbsScanTitle() { clickOnElement(thumbsScanTitle); } - - public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed() { + + public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed() { return isElementDisplayed(markingExceptionsOnFaceIsNotAllowedText); } - - public boolean isZoomButtonDisplyed() { + + public boolean isZoomButtonDisplyed() { return isElementDisplayed(zoomButton); } - + public void clickOnRightHandScanTitle() { clickOnElement(rightHandScanTitle); } - + public void clickOnLeftHandScanTitle() { clickOnElement(leftHandScanTitle); } - + public void clickOnFaceScanTitle() { clickOnElement(faceScanTitle); } + public boolean checkThresholdValueIris() { - int requiredValue=60; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 60; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueRightHand() { - int requiredValue=40; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 40; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueLeftHand() { - int requiredValue=60; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 60; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueThumbs() { - int requiredValue=40; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 40; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueFace() { - int requiredValue=90; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 90; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean isVerifyAndSaveButtonEnabled() { return isElementDisplayed(verifyAndSaveButton); } - + public void clickOnVerifyAndSaveButton() { clickOnElement(verifyAndSaveButton); - + } - + public boolean isDismissPageLoaded() { return isElementDisplayed(dismissPage); } - - + public boolean isOperatorBiometricsUpdatedPopupLoaded() { - return isElementDisplayed(successPopup); + return isElementDisplayed(successPopup); } - + public void clickOnHomeButton() { clickOnElement(homeButton); } - + public void clickOnBackButton() { driver.navigate().back(); } + public boolean isUpdateOperatorBiometricsPageLoaded() { + return isElementDisplayed(updateOperatorBiometrics); + } + } diff --git a/ui-test/src/main/java/regclient/pages/arabic/UpdateUINPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/UpdateUINPageArabic.java index 789191e93..2ac6430de 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/UpdateUINPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/UpdateUINPageArabic.java @@ -1,6 +1,5 @@ package regclient.pages.arabic; - import static org.testng.Assert.assertTrue; import java.util.List; @@ -15,50 +14,57 @@ import regclient.page.UpdateUINPage; import regclient.pages.english.ConsentPageEnglish; -public class UpdateUINPageArabic extends UpdateUINPage{ - +public class UpdateUINPageArabic extends UpdateUINPage { + @AndroidFindBy(xpath = "//android.widget.EditText") private WebElement UINNumberTextBox; - + @AndroidFindBy(accessibility = "يكمل") private WebElement continueButton; - + @AndroidFindBy(accessibility = "الرجاء إدخال رقم تعريف شخصي صالح") private WebElement invalidUINErrorMessage; public UpdateUINPageArabic(AppiumDriver driver) { super(driver); } - + @SuppressWarnings("deprecation") public boolean isUpdateMyUINTitleDisplayed() { - return isElementDisplayed (findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getTitleUsingId("UPDATE") + "\"))"))); + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getTitleUsingId("UPDATE") + "\"))"))); } - public void enterUIN(String UIN) { - clickAndsendKeysToTextBox(UINNumberTextBox,UIN); + + public void enterUIN(String UIN) { + clickAndsendKeysToTextBox(UINNumberTextBox, UIN); } - public ConsentPage clickOnContinueButton() { + public ConsentPage clickOnContinueButton() { clickOnElement(continueButton); return new ConsentPageEnglish(driver); } - + public boolean isInvalidUINErrorMessageDisplayed() { return isElementDisplayed(invalidUINErrorMessage); } - + public void selectUpdateValue(String page) { - List groupLabelList=FetchUiSpec.getAllGroupLabelUsingId(page); - for(String title : groupLabelList) { - WebElement webelement =findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+title+"\")")); - assertTrue(isElementDisplayed(webelement),"Verify if "+title+" title is displayed in update uin page"); - clickOnElement(webelement); - } + List groupLabelList = FetchUiSpec.getAllGroupLabelUsingId(page); + for (String title : groupLabelList) { + WebElement webelement = findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\"" + title + "\")")); + assertTrue(isElementDisplayed(webelement), "Verify if " + title + " title is displayed in update uin page"); + clickOnElement(webelement); + } } - + public void selectUpdateIntroducerDetails() { - WebElement webelement =findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getGroupValueUsingId("introducerName")+"\")")); - assertTrue(isElementDisplayed(webelement),"Verify if "+FetchUiSpec.getGroupValueUsingId("introducerName")+" title is displayed in update uin page"); - clickOnElement(webelement); + WebElement webelement = findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\"" + + FetchUiSpec.getGroupValueUsingId("introducerName") + "\")")); + assertTrue(isElementDisplayed(webelement), "Verify if " + FetchUiSpec.getGroupValueUsingId("introducerName") + + " title is displayed in update uin page"); + clickOnElement(webelement); } } diff --git a/ui-test/src/main/java/regclient/pages/english/AcknowledgementPageEnglish.java b/ui-test/src/main/java/regclient/pages/english/AcknowledgementPageEnglish.java index 06da8e8d6..ae5f101e9 100644 --- a/ui-test/src/main/java/regclient/pages/english/AcknowledgementPageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/AcknowledgementPageEnglish.java @@ -1,6 +1,5 @@ package regclient.pages.english; - import org.openqa.selenium.WebElement; import io.appium.java_client.AppiumDriver; @@ -11,89 +10,89 @@ import regclient.page.DemographicDetailsPage; import regclient.page.RegistrationTasksPage; - public class AcknowledgementPageEnglish extends AcknowledgementPage { @AndroidFindBy(accessibility = "Registration Acknowledgement") private WebElement acknowledgementPageTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\"Application ID\"))") private WebElement applicationID; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.Image\")") private WebElement qrCodeImage; - + @AndroidFindBy(accessibility = "Go To Home") private WebElement goToHomeButton; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\"Demographic Information\"))") private WebElement demographicInformationInAcknowledgementPage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\"Documents\"))") private WebElement documentsInformationInAcknowledgementPage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\"Biometrics\"))") private WebElement biometricsInformationInAcknowledgementPage; - + @AndroidFindBy(accessibility = "Sync Packet") private WebElement syncPacketButton; - + @AndroidFindBy(accessibility = "//*[@text=\"Packet synced successfully\"]") private WebElement packetSyncSuccessfullyMessage; - + @AndroidFindBy(xpath = "Upload Packet") private WebElement uploadPacketButton; - + public AcknowledgementPageEnglish(AppiumDriver driver) { super(driver); } - + public RegistrationTasksPage clickOnGoToHomeButton() { clickOnElement(goToHomeButton); return new RegistrationTasksPageEnglish(driver); } - + public boolean isAcknowledgementPageDisplayed() { return isElementDisplayed(acknowledgementPageTitle); } - + public boolean isApplicationIDDisplayed() { return isElementDisplayed(applicationID); } - + public boolean isQrCodeImageDisplayed() { return isElementDisplayed(qrCodeImage); } - + public boolean isDemographicInformationInAcknowledgementPageDisplayed() { return isElementDisplayed(demographicInformationInAcknowledgementPage); } - + public boolean isDocumentsInformationInAcknowledgementPageDisplayed() { return isElementDisplayed(documentsInformationInAcknowledgementPage); } - + public boolean isBiometricsInformationInAcknowledgementPageDisplayed() { return isElementDisplayed(biometricsInformationInAcknowledgementPage); } - + @SuppressWarnings("deprecation") public DemographicDetailsPage clickOnDemographicDetailsTitle() { - clickOnElement(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))"))); + clickOnElement(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))"))); return new DemographicDetailsPageEnglish(driver); } - public void clickOnSyncPacketButton() { waitTime(10); clickOnElement(syncPacketButton); } - + public void clickOnUploadPacketButton() { clickOnElement(uploadPacketButton); } - + public String getAID() { return getTextFromLocator(applicationID); } diff --git a/ui-test/src/main/java/regclient/pages/english/ApplicantBiometricsPageEnglish.java b/ui-test/src/main/java/regclient/pages/english/ApplicantBiometricsPageEnglish.java index 03b93f8d7..e71f862dc 100644 --- a/ui-test/src/main/java/regclient/pages/english/ApplicantBiometricsPageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/ApplicantBiometricsPageEnglish.java @@ -9,7 +9,6 @@ import regclient.page.ApplicantBiometricsPage; import regclient.page.BiometricDetailsPage; - public class ApplicantBiometricsPageEnglish extends ApplicantBiometricsPage { @AndroidFindBy(accessibility = "Iris Scan") @@ -81,7 +80,7 @@ public class ApplicantBiometricsPageEnglish extends ApplicantBiometricsPage { @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Exception Capture')]") private WebElement exceptionCapturerHeader; - @AndroidFindBy(xpath = "//android.widget.ScrollView/android.view.View[3]") + @AndroidFindBy(xpath = "//android.widget.ScrollView/android.view.View[10]") private WebElement zoomButton; @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Comments\")]/following-sibling::android.widget.EditText") @@ -103,29 +102,29 @@ public ApplicantBiometricsPageEnglish(AppiumDriver driver) { super(driver); } - public void enterCommentsInTextBox(String comments) { - if(!isElementDisplayedOnScreen(commentsTextBox)) { + public void enterCommentsInTextBox(String comments) { + if (!isElementDisplayedOnScreen(commentsTextBox)) { swipeOrScroll(); } - clickAndsendKeysToTextBox(commentsTextBox,comments); + clickAndsendKeysToTextBox(commentsTextBox, comments); } public void clickOnScanButton() { clickOnElement(scanButton); - } + } public void clickOnExceptionTypePermanentButton() { - if(!isElementDisplayedOnScreen(permanentButton)) { + if (!isElementDisplayedOnScreen(permanentButton)) { swipeOrScroll(); } clickOnElement(permanentButton); } public void clickOnExceptionTypeTemporaryButton() { - if(!isElementDisplayedOnScreen(temporaryButton)) { + if (!isElementDisplayedOnScreen(temporaryButton)) { swipeOrScroll(); } - clickOnElement(temporaryButton); + clickOnElement(temporaryButton); } public void markOneEyeException() { @@ -162,7 +161,8 @@ public BiometricDetailsPage clickOnNextButton() { } public void clickOnZoomButton() { - clickOnElement(zoomButton); + waitTime(1); + clickAtCoordinates(1035, 1077); } public void clickOnIrisScanTitle() { @@ -191,69 +191,73 @@ public BiometricDetailsPage clickOnBackButton() { } @SuppressWarnings("deprecation") - public boolean isApplicantBiometricsPageDisplyed() { - return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("individualBiometrics") + "\"))"))); + public boolean isApplicantBiometricsPageDisplyed() { + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getValueUsingId("individualBiometrics") + "\"))"))); } @SuppressWarnings("deprecation") - public boolean isAuthenticationBiometricsPageDisplyed() { - return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("individualAuthBiometrics") + "\"))"))); + public boolean isAuthenticationBiometricsPageDisplyed() { + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getValueUsingId("individualAuthBiometrics") + "\"))"))); } - public boolean isExceptionTypeTitleDisplyed() { + public boolean isExceptionTypeTitleDisplyed() { return isElementDisplayed(exceptionTypeTitle); } - public boolean isRightHandScanTitleDisplyed() { + public boolean isRightHandScanTitleDisplyed() { return isElementDisplayed(rightHandScanTitle); } - public boolean isLeftHandScanTitleDisplyed() { + public boolean isLeftHandScanTitleDisplyed() { return isElementDisplayed(leftHandScanTitle); } - public boolean isThumbsScanTitleDisplyed() { + public boolean isThumbsScanTitleDisplyed() { return isElementDisplayed(thumbsScanTitle); } - public boolean isFaceScanTitleDisplyed() { + public boolean isFaceScanTitleDisplyed() { return isElementDisplayed(faceScanTitle); } - public boolean isExceptionScanTitleDisplyed() { + public boolean isExceptionScanTitleDisplyed() { return isElementDisplayed(exceptionScanTitle); } - public boolean isIrisScan() { - return isElementDisplayed(irisCapturerHeader,2000); + public boolean isIrisScan() { + return isElementDisplayed(irisCapturerHeader, 2000); } - public boolean isRightHandScan() { - return isElementDisplayed(rightHandCapturerHeader,2000); + public boolean isRightHandScan() { + return isElementDisplayed(rightHandCapturerHeader, 2000); } - public boolean isLeftHandScan() { - return isElementDisplayed(leftHandCapturerHeader,2000); + public boolean isLeftHandScan() { + return isElementDisplayed(leftHandCapturerHeader, 2000); } - public boolean isThumbsScan() { - return isElementDisplayed(thumbsCapturerHeader,2000); + public boolean isThumbsScan() { + return isElementDisplayed(thumbsCapturerHeader, 2000); } - public boolean isFaceScan() { - return isElementDisplayed(faceCapturerHeader,2000); + public boolean isFaceScan() { + return isElementDisplayed(faceCapturerHeader, 2000); } - public boolean isExceptionScan() { - return isElementDisplayed(exceptionCapturerHeader,2000); + public boolean isExceptionScan() { + return isElementDisplayed(exceptionCapturerHeader, 2000); } - public boolean isCommentHeaderDisplyed() { + public boolean isCommentHeaderDisplyed() { return isElementDisplayed(commentsHeader); } - public boolean isExceptionCountDisplyed() { - if(!isElementDisplayedOnScreen(exceptionCount)) { + public boolean isExceptionCountDisplyed() { + if (!isElementDisplayedOnScreen(exceptionCount)) { swipeOrScroll(); isElementDisplayed(exceptionCount); } diff --git a/ui-test/src/main/java/regclient/pages/english/AuthenticationPageEnglish.java b/ui-test/src/main/java/regclient/pages/english/AuthenticationPageEnglish.java index f76be7dcf..37c809250 100644 --- a/ui-test/src/main/java/regclient/pages/english/AuthenticationPageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/AuthenticationPageEnglish.java @@ -11,39 +11,42 @@ public class AuthenticationPageEnglish extends AuthenticationPage { @AndroidFindBy(accessibility = "Authentication using Password") private WebElement authenticationPageTitle; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.EditText\").instance(0)") private WebElement userNameTextBox; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.EditText\").instance(1)") private WebElement passwordTextBox; - + @AndroidFindBy(accessibility = "AUTHENTICATE") private WebElement authenticateButton; - + + @AndroidFindBy(xpath = "//android.view.View[@content-desc='Authentication using Password']/preceding-sibling::android.widget.ImageView") + private WebElement authenticationImage; + public AuthenticationPageEnglish(AppiumDriver driver) { super(driver); } - - public void enterUserName(String username) { - clickAndsendKeysToTextBox(userNameTextBox,username); + + public void enterUserName(String username) { + clickAndsendKeysToTextBox(userNameTextBox, username); } - - public void enterPassword(String password) { - clickAndsendKeysToTextBox(passwordTextBox,password); + + public void enterPassword(String password) { + clickAndsendKeysToTextBox(passwordTextBox, password); } - + public boolean isAuthenticationPageDisplayed() { return isElementDisplayed(authenticationPageTitle); } - - - - - + public AcknowledgementPage clickOnAuthenticatenButton() { clickOnElement(authenticateButton); return new AcknowledgementPageEnglish(driver); } + public boolean isAuthenticationImageDisplayed() { + return isElementDisplayed(authenticationImage); + } + } diff --git a/ui-test/src/main/java/regclient/pages/english/BiometricDetailsPageEnglish.java b/ui-test/src/main/java/regclient/pages/english/BiometricDetailsPageEnglish.java index f368cd9c3..7b14bbbb9 100644 --- a/ui-test/src/main/java/regclient/pages/english/BiometricDetailsPageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/BiometricDetailsPageEnglish.java @@ -1,118 +1,191 @@ package regclient.pages.english; import org.openqa.selenium.By; +import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebElement; import io.appium.java_client.AppiumDriver; import io.appium.java_client.MobileBy; import io.appium.java_client.pagefactory.AndroidFindBy; +import io.mosip.testrig.apirig.testrunner.OTPListener; import regclient.api.FetchUiSpec; import regclient.page.ApplicantBiometricsPage; import regclient.page.BiometricDetailsPage; import regclient.page.IntroducerBiometricPage; import regclient.page.PreviewPage; - +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class BiometricDetailsPageEnglish extends BiometricDetailsPage { @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Iris\"))") private WebElement irisScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Right\"))") private WebElement rightHandScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Left\"))") private WebElement leftHandScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Thumbs\"))") private WebElement thumbsScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Face\"))") private WebElement faceScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Exception Scan\"))") private WebElement exceptionScanIcon; - + @AndroidFindBy(accessibility = "CONTINUE") private WebElement continueButton; + @AndroidFindBy(xpath = "//android.widget.ScrollView/android.view.View/android.view.View[2]") + private WebElement menuOptionInSelecetedLanguage; + + @AndroidFindBy(xpath = "//android.widget.EditText[contains(@hint, 'Additional Info Request ID')]") + private WebElement additionalInfoRequestIdTextbox; + public BiometricDetailsPageEnglish(AppiumDriver driver) { super(driver); } @SuppressWarnings("deprecation") - public boolean isBiometricDetailsPageDisplayed() { - return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("individualBiometrics") + "\"))"))); + public boolean isBiometricDetailsPageDisplayed() { + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getValueUsingId("individualBiometrics") + "\"))"))); } - + @SuppressWarnings("deprecation") - public boolean isAuthenticationBiometricTitleDisplayed() { - return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("individualAuthBiometrics") + "\"))"))); + public boolean isAuthenticationBiometricTitleDisplayed() { + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getValueUsingId("individualAuthBiometrics") + "\"))"))); } - + public ApplicantBiometricsPage clickOnIrisScan() { clickOnElement(irisScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public ApplicantBiometricsPage clickOnRightHandScanIcon() { clickOnElement(rightHandScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public ApplicantBiometricsPage clickOnLeftHandScanIcon() { clickOnElement(leftHandScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public ApplicantBiometricsPage clickOnThumbsScanIcon() { clickOnElement(thumbsScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public ApplicantBiometricsPage clickOnFaceScanIcon() { clickOnElement(faceScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public ApplicantBiometricsPage clickOnExceptionScanIcon() { clickOnElement(exceptionScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public IntroducerBiometricPage clickOnIntroducerIrisScan() { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Iris Scan\"]"))); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + + FetchUiSpec.getValueUsingId("introducerBiometrics") + + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Iris Scan\"]"))); return new IntroducerBiometricPageEnglish(driver); } - + public IntroducerBiometricPage clickOnIntroducerRightHandScan() { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Right\"]"))); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + + FetchUiSpec.getValueUsingId("introducerBiometrics") + + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Right\"]"))); return new IntroducerBiometricPageEnglish(driver); } - + public IntroducerBiometricPage clickOnIntroducerLeftHandScan() { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Left\"]"))); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + + FetchUiSpec.getValueUsingId("introducerBiometrics") + + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Left\"]"))); return new IntroducerBiometricPageEnglish(driver); } - + public IntroducerBiometricPage clickOnIntroducerThumbScan() { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Thumbs\"]"))); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + + FetchUiSpec.getValueUsingId("introducerBiometrics") + + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Thumbs\"]"))); return new IntroducerBiometricPageEnglish(driver); } - + public IntroducerBiometricPage clickOnIntroducerFaceScan() { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Face\"]"))); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + + FetchUiSpec.getValueUsingId("introducerBiometrics") + + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Face\"]"))); return new IntroducerBiometricPageEnglish(driver); } - - public PreviewPage clickOnContinueButton() { + + public PreviewPage clickOnContinueButton() { clickOnElement(continueButton); return new PreviewPageEnglish(driver); } + + public boolean isAdditionalInfoRequestIdTextboxDisplayed() { + return isElementDisplayed(additionalInfoRequestIdTextbox); + } + + public void enterAdditionalInfoUsingEmail(String emailId) { + int retries = 20, waitSeconds = 10; + final String SUFFIX = "-BIOMETRIC_CORRECTION-1"; + + for (int i = 1; i <= retries; i++) { + String id = OTPListener.getAdditionalReqId(emailId); + if (id != null && !id.isEmpty() && !id.equals("{Failed}")) { + String sanitized = id.trim().replaceAll("\\p{C}", ""); + String finalId = sanitized.endsWith(SUFFIX) ? sanitized : sanitized + SUFFIX; + + try { + WebElement el = additionalInfoRequestIdTextbox; + try { + el.clear(); + el.sendKeys(finalId); + } catch (Exception ignored) { + } + if (finalId.equals(el.getAttribute("value"))) + return; + + ((JavascriptExecutor) driver).executeScript( + "arguments[0].value=arguments[1];arguments[0].dispatchEvent(new Event('input',{bubbles:true}));", + el, finalId); + if (finalId.equals(el.getAttribute("value"))) + return; + } catch (Exception e) { + logger.error("Enter ID failed: ", e); + } + throw new RuntimeException("Textbox not accepting: " + finalId); + } + sleepSeconds(waitSeconds); + } + throw new RuntimeException("AdditionalInfoReqId not found after wait."); + } + + private void sleepSeconds(int s) { + try { + Thread.sleep(s * 1000L); + } catch (InterruptedException ignored) { + Thread.currentThread().interrupt(); + } + } + + private static final Logger logger = LoggerFactory.getLogger(BiometricDetailsPageEnglish.class); + } diff --git a/ui-test/src/main/java/regclient/pages/english/ConsentPageEnglish.java b/ui-test/src/main/java/regclient/pages/english/ConsentPageEnglish.java index 0d62a442b..8f1a4411b 100644 --- a/ui-test/src/main/java/regclient/pages/english/ConsentPageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/ConsentPageEnglish.java @@ -1,8 +1,6 @@ package regclient.pages.english; - import org.openqa.selenium.WebElement; - import io.appium.java_client.AppiumDriver; import io.appium.java_client.MobileBy; import io.appium.java_client.pagefactory.AndroidFindBy; @@ -11,12 +9,11 @@ import regclient.page.DemographicDetailsPage; import regclient.page.RegistrationTasksPage; - -public class ConsentPageEnglish extends ConsentPage{ +public class ConsentPageEnglish extends ConsentPage { @AndroidFindBy(accessibility = "INFORMED") private WebElement informedButton; - + @AndroidFindBy(accessibility = "CANCEL") private WebElement cancelButton; @@ -25,39 +22,47 @@ public ConsentPageEnglish(AppiumDriver driver) { } @SuppressWarnings("deprecation") - public boolean isConsentPageDisplayed() { - String title; - if (FetchUiSpec.getScreenTitle("consentdet") != null) { - title = FetchUiSpec.getScreenTitle("consentdet"); - } else { - title = FetchUiSpec.getScreenTitle("consent"); + public boolean isPageDisplayed(String pageKey) { + try { + String screenTitle = FetchUiSpec.getScreenTitle(pageKey); + + WebElement pageElement = findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0))" + + ".scrollIntoView(new UiSelector().descriptionContains(\"" + screenTitle + "\"))")); + + return isElementDisplayed(pageElement); + + } catch (Exception e) { + return false; // page not found or not visible } - return isElementDisplayed(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + title + "\"))")); } @SuppressWarnings("deprecation") public boolean isCheckBoxReadable() { - return isElementDisplayed (findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("consent") + "\"))"))); + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getValueUsingId("consent") + "\"))"))); } - - public boolean isInformedButtonEnabled() { + + public boolean isInformedButtonEnabled() { return isElementEnabled(informedButton); } - public DemographicDetailsPage clickOnInformedButton() { + public DemographicDetailsPage clickOnInformedButton() { clickOnElement(informedButton); return new DemographicDetailsPageEnglish(driver); } - public RegistrationTasksPage clickOnCancelButton() { clickOnElement(cancelButton); - return new RegistrationTasksPageEnglish(driver); + return new RegistrationTasksPageEnglish(driver); } - + @SuppressWarnings("deprecation") public boolean updateUINTitleDisplayed() { - return isElementDisplayed (findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getTitleUsingId("UPDATE") + "\"))"))); + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getTitleUsingId("UPDATE") + "\"))"))); } - + } diff --git a/ui-test/src/main/java/regclient/pages/english/DashboardPageEnglish.java b/ui-test/src/main/java/regclient/pages/english/DashboardPageEnglish.java index e9810543c..e3c11b550 100644 --- a/ui-test/src/main/java/regclient/pages/english/DashboardPageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/DashboardPageEnglish.java @@ -6,30 +6,30 @@ import io.appium.java_client.pagefactory.AndroidFindBy; import regclient.page.DashboardPage; -public class DashboardPageEnglish extends DashboardPage{ +public class DashboardPageEnglish extends DashboardPage { @AndroidFindBy(xpath = "//android.view.View[@content-desc=\"Dashboard\"]/following-sibling::android.view.View[3]") private WebElement packetUploadedNumber; - + @AndroidFindBy(xpath = "//android.view.View[@content-desc=\"Dashboard\"]/following-sibling::android.view.View[2]") private WebElement packetSyncedNumber; - + @AndroidFindBy(accessibility = "Dashboard") private WebElement dashboardPageTitle; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"User ID\")]") private WebElement userIDTitle; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"User Name\")]") private WebElement userNameTitle; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Status\")]") private WebElement statusTitle; - + public DashboardPageEnglish(AppiumDriver driver) { super(driver); } - + public boolean isDashboardTitleDisplayed() { return isElementDisplayed(dashboardPageTitle); } @@ -37,19 +37,19 @@ public boolean isDashboardTitleDisplayed() { public boolean isPacketsUploadedValueDisplayed() { return isElementDisplayed(packetUploadedNumber); } - + public boolean isPacketsSyncedValueDisplayed() { return isElementDisplayed(packetSyncedNumber); } - + public boolean isUserIDDisplayed() { return isElementDisplayed(userIDTitle); } - + public boolean isUserNameDisplayed() { return isElementDisplayed(userNameTitle); } - + public boolean isStatusTitleDisplayed() { return isElementDisplayed(statusTitle); } diff --git a/ui-test/src/main/java/regclient/pages/english/DemographicDetailsPageEnglish.java b/ui-test/src/main/java/regclient/pages/english/DemographicDetailsPageEnglish.java index dcf0d3df1..4af7870dc 100644 --- a/ui-test/src/main/java/regclient/pages/english/DemographicDetailsPageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/DemographicDetailsPageEnglish.java @@ -2,14 +2,31 @@ import static org.testng.Assert.assertTrue; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.time.Duration; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Date; +import java.util.HashSet; import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.regex.Pattern; import org.openqa.selenium.By; import org.openqa.selenium.WebElement; +import org.openqa.selenium.remote.RemoteWebElement; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; +import colesico.framework.ioc.production.Supplier; import io.appium.java_client.AppiumDriver; import io.appium.java_client.MobileBy; +import io.appium.java_client.android.AndroidDriver; import io.appium.java_client.pagefactory.AndroidFindBy; +import regclient.api.AdminTestUtil; import regclient.api.BaseTestCase; import regclient.api.FetchUiSpec; import regclient.page.BasePage; @@ -18,7 +35,6 @@ import regclient.page.DocumentUploadPage; import regclient.utils.TestDataReader; - public class DemographicDetailsPageEnglish extends DemographicDetailsPage { @AndroidFindBy(accessibility = "Male") @@ -39,15 +55,41 @@ public class DemographicDetailsPageEnglish extends DemographicDetailsPage { @AndroidFindBy(accessibility = "FETCH DATA") private WebElement fetchDataButton; + @AndroidFindBy(accessibility = "آحرون") + private WebElement maleButtonInArabic; + + @AndroidFindBy(accessibility = "Mâle") + private WebElement maleButtonInFrench; + + @AndroidFindBy(xpath = "//android.widget.ScrollView/android.widget.EditText[1]") + private WebElement applicationIdTextBox; + + @AndroidFindBy(xpath = "//android.widget.Button[@content-desc='FETCH DATA']/following-sibling::android.widget.Button") + private WebElement scanButton; + + @AndroidFindBy(accessibility = "Postal/ بريدي") + private WebElement postalHeader; public DemographicDetailsPageEnglish(AppiumDriver driver) { super(driver); } @SuppressWarnings("deprecation") - public boolean isDemographicDetailsPageDisplayed() { - WebElement demographicDetailspage = findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))")); - return isElementDisplayed(demographicDetailspage); + + public boolean isPageDisplayed(String pageKey) { + try { + String screenTitle = FetchUiSpec.getScreenTitle(pageKey); + + WebElement pageElement = findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0))" + + ".scrollIntoView(new UiSelector().descriptionContains(\"" + screenTitle + "\"))")); + + return isElementDisplayed(pageElement); + + } catch (Exception e) { + return false; + } + } public boolean isErrorMessageInvalidInputTextDisplayed() { @@ -55,21 +97,23 @@ public boolean isErrorMessageInvalidInputTextDisplayed() { } @SuppressWarnings("deprecation") - public ConsentPage clickOnConsentPageTitle() { - WebElement consentTitle = findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("consentdet") + "\"))")); + public ConsentPage clickOnPageTitle(String pageKey) { + String screenTitle = FetchUiSpec.getScreenTitle(pageKey); + WebElement consentTitle = findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0))" + + ".scrollIntoView(new UiSelector().descriptionContains(\"" + screenTitle + "\"))")); clickOnElement(consentTitle); return new ConsentPageEnglish(driver); } - public DocumentUploadPage clickOnContinueButton() { + public DocumentUploadPage clickOnContinueButton() { clickOnElement(continueButton); return new DocumentuploadPageEnglish(driver); } - - public boolean isContinueButtonEnable() { + + public boolean isContinueButtonEnable() { return isElementEnabled(continueButton); - } @@ -77,113 +121,171 @@ public boolean isPreRegFetchDataTextBoxDisplay() { return isElementDisplayed(fetchDataButton); } + public boolean isApplicationIdTextBoxDisplay() { + return isElementDisplayed(applicationIdTextBox); + } + + public void clickOnScanButton() { + clickOnElement(scanButton); + } + public void fillDemographicDetailsPage(String age) { - List idList=FetchUiSpec.getAllIds("DemographicDetails"); - for(String id : idList) { - if(FetchUiSpec.getRequiredTypeUsingId(id)) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + scrollToTop(); + List idList = FetchUiSpec.getAllIds("DemographicDetails"); + for (String id : idList) { + if (FetchUiSpec.getRequiredTypeUsingId(id)) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); - } - else if(FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") && FetchUiSpec.getFormatUsingId(id).equals("none")){ + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); + } else if (FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") + && FetchUiSpec.getFormatUsingId(id).equals("none")) { waitTime(3); - while(!isElementDisplayed(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))) { + while (!isElementDisplayed(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))) { swipeOrScroll(); } - boolean isdisplayed =isElementDisplayed(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")")); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - WebElement dropdownElement=findElement(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.widget.Button")); + + boolean isdisplayed = isElementDisplayed(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")")); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + WebElement dropdownElement = findElement( + By.xpath("//android.widget.Button[.//android.view.View[contains(@content-desc,'" + + FetchUiSpec.getValueUsingId(id) + "')]]")); + clickOnElement(dropdownElement); waitTime(3); - if(!isElementDisplayed(dropdownElement)) { + if (!isElementDisplayed(dropdownElement)) { clickOnElement(findElement(By.className("android.view.View"))); - }else if(isElementDisplayed(dropdownElement)) { + } else if (isElementDisplayed(dropdownElement)) { swipeOrScroll(); clickOnElement(dropdownElement); waitTime(2); clickOnElement(findElement(By.className("android.view.View"))); } waitTime(2); - if(isElementDisplayed(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, \"Select Option\")]"))) { + if (isElementDisplayed(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, \"Select Option\")]"))) { clickOnElement(dropdownElement); waitTime(2); clickOnElement(findElement(By.className("android.view.View"))); } - }else if(FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") && FetchUiSpec.getFormatUsingId(id).equals("")){ - if(!isElementDisplayed(maleButton)) { + } else if (FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") + && FetchUiSpec.getFormatUsingId(id).equals("")) { + if (!isElementDisplayed(maleButton)) { swipeOrScroll(); - clickOnElement(maleButton); - }else - clickOnElement(maleButton); + clickOnElement(maleButton); + } else + clickOnElement(maleButton); - }else if(FetchUiSpec.getControlTypeUsingId(id).equals("ageDate")){ + } else if (FetchUiSpec.getControlTypeUsingId(id).equals("ageDate")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - if(age.equals("adult")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"20"); - else if(age.equals("minor")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"12"); - else if(age.equals("infant")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"4"); - else if(age.equals("currentCalenderDate")) { + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + if (age.equals("adult")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "20"); + else if (age.equals("minor")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "12"); + else if (age.equals("infant")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "4"); + else if (age.equals("currentCalenderDate")) { waitTime(1); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.view.View"))); + clickOnElement(findElementWithRetry(By.xpath( + "//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View"))); waitTime(1); clickOnElement(backgroundScreen); waitTime(1); - assertTrue(checkDateFormatAndCurrectDate(id),"Verify date format and current date and time while selecting age date"); + assertTrue(checkDateFormatAndCurrectDate(id), + "Verify date format and current date and time while selecting age date"); } } - } - else if(id.equals("residenceStatus")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") && FetchUiSpec.getFormatUsingId(id).equals("none")){ + } else if (id.equals("residenceStatus")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") + && FetchUiSpec.getFormatUsingId(id).equals("none")) { waitTime(2); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - WebElement dropdownElement=findElement(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.widget.Button")); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + WebElement dropdownElement = findElement( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.widget.Button")); clickOnElement(dropdownElement); waitTime(2); - if(!isElementDisplayed(dropdownElement)) { + if (!isElementDisplayed(dropdownElement)) { clickOnElement(findElement(By.className("android.view.View"))); - }else if(isElementDisplayed(dropdownElement)) { + } else if (isElementDisplayed(dropdownElement)) { swipeOrScroll(); clickOnElement(dropdownElement); waitTime(2); clickOnElement(findElement(By.className("android.view.View"))); } waitTime(2); - if(isElementDisplayed(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, \"Select Option\")]"))) { + if (isElementDisplayed(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, \"Select Option\")]"))) { clickOnElement(dropdownElement); waitTime(2); clickOnElement(findElement(By.className("android.view.View"))); } } } - if(id.equals("introducerName") && FetchUiSpec.getFlowType().equals("newProcess")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + if (id.equals("introducerName") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } - }if(id.equals("introducerRID") && FetchUiSpec.getFlowType().equals("newProcess")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + } + if (id.equals("introducerRID") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),TestDataReader.readData("RID")); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + TestDataReader.readData("RID")); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } } @@ -191,56 +293,91 @@ else if(id.equals("residenceStatus")) { } public void editDemographicDetailsPage(String age) { - List idList=FetchUiSpec.getAllIds("DemographicDetails"); - for(String id : idList) { - if(FetchUiSpec.getRequiredTypeUsingId(id)) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + List idList = FetchUiSpec.getAllIds("DemographicDetails"); + for (String id : idList) { + if (FetchUiSpec.getRequiredTypeUsingId(id)) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); - }else if(FetchUiSpec.getControlTypeUsingId(id).equals("ageDate")){ + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); + } else if (FetchUiSpec.getControlTypeUsingId(id).equals("ageDate")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - if(age.equals("adult")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"20"); - else if(age.equals("minor")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"12"); - else if(age.equals("infant")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"4"); - else if(age.equals("currentCalenderDate")) { + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + if (age.equals("adult")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "20"); + else if (age.equals("minor")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "12"); + else if (age.equals("infant")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "4"); + else if (age.equals("currentCalenderDate")) { waitTime(1); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.view.View"))); + clickOnElement(findElementWithRetry(By.xpath( + "//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View"))); waitTime(1); clickOnElement(backgroundScreen); waitTime(1); - assertTrue(checkDateFormatAndCurrectDate(id),"Verify date format and current date and time while selecting age date"); + assertTrue(checkDateFormatAndCurrectDate(id), + "Verify date format and current date and time while selecting age date"); } } } - if(id.equals("introducerName") && FetchUiSpec.getFlowType().equals("newProcess")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + if (id.equals("introducerName") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } - }if(id.equals("introducerRID") && FetchUiSpec.getFlowType().equals("newProcess")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + } + if (id.equals("introducerRID") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),TestDataReader.readData("RID")); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + TestDataReader.readData("RID")); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } } @@ -248,45 +385,293 @@ else if(age.equals("currentCalenderDate")) { } public boolean checkSecondLanguageTextBoxNotNull(String id) { - if(getTextFromLocator(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[2]")))==null || getTextFromLocator(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[2]")))=="" ) - return false; + if (getTextFromLocator(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[2]"))) == null + || getTextFromLocator(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[2]"))) == "") + return false; else - return true; + return true; } - public boolean checkDateFormatAndCurrectDate(String id) { - if(getTextFromLocator(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.view.View"))).equalsIgnoreCase(getCurrentDate())) - return true; + public boolean checkDateFormatAndCurrectDate(String id) { + if (getTextFromLocator(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View"))) + .equalsIgnoreCase(getCurrentDate())) + return true; else return false; } - + public void fillIntroducerDetailsInDemographicDetailsPage(String age) { - List idList=FetchUiSpec.getAllIds("DemographicDetails"); - for(String id : idList) { - if(id.equals("introducerName")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + List idList = FetchUiSpec.getAllIds("DemographicDetails"); + for (String id : idList) { + if (id.equals("introducerName")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + waitTime(3); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); + } + } + } + if (id.equals("introducerUIN")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + waitTime(3); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + TestDataReader.readData("UINminor")); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); + } + } + } + } + } + + public void fetchPreregApplicationId(String age) { + By appIdLabel = By.xpath("//android.widget.EditText[contains(@hint,'Application ID')]"); + By appIdTextbox = By.xpath("//android.widget.EditText[contains(@hint,'Please Enter Application ID')]"); + + // Verify label is displayed + boolean isDisplayed = isElementDisplayed(appIdLabel); + assertTrue(isDisplayed, "Verify if Application ID label is displayed"); + + // Enter prereg ID + applicationIdTextBox = findElementWithRetry(appIdTextbox); + clickAndsendKeysToTextBox(applicationIdTextBox, AdminTestUtil.getPreRegistrationFlow(age)); + clickOnElement(fetchDataButton); + } + + public void validateFetchedDemographicData() { + String[] dateFormats = { "yyyy-MM-dd", "dd/MM/yyyy", "dd-MM-yyyy" }; + List ids = FetchUiSpec.getAllIds("DemographicDetails"); + + for (String id : ids) { + if (!FetchUiSpec.getRequiredTypeUsingId(id)) + continue; + + String label = FetchUiSpec.getValueUsingId(id); + String controlType = FetchUiSpec.getControlTypeUsingId(id); + String lower = label == null ? "" : label.toLowerCase(); + + WebElement field = getInputField(label); + assertTrue(field != null, "Field not found for: " + label); + + String value = extract(field) == null ? "" : extract(field).trim(); + assertTrue(!value.isEmpty(), "Value empty for: " + label); + + // --- NAME --- + if (lower.contains("name")) { + assertTrue(value.matches(".*[A-Za-z].*"), "Invalid name (no letters): " + value); + continue; + } + + // --- DOB / AGE --- + if ("ageDate".equals(controlType) || lower.contains("dob") || lower.contains("birth")) { + boolean ok = false; + for (String fmt : dateFormats) { + try { + SimpleDateFormat sdf = new SimpleDateFormat(fmt); + sdf.setLenient(false); + sdf.parse(value); + ok = true; + break; + } catch (Exception ignored) { + } + } + ok = ok || value.replaceAll("\\D+", "").length() > 0; + assertTrue(ok, "Invalid DOB/AgeDate for " + label + ": " + value); + continue; + } + + // --- PHONE --- + if (lower.contains("phone") || lower.contains("mobile") || lower.contains("هاتف")) { + String digits = value.replaceAll("\\D+", ""); + assertTrue(digits.length() >= 7 && digits.length() <= 15, + "Invalid phone digits for " + label + ": " + value); + continue; + } + + // --- EMAIL --- + if (lower.contains("email") || lower.contains("e-mail") || lower.contains("البريد")) { + boolean emailOk = value.matches("^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$"); + assertTrue(emailOk, "Invalid email format for " + label + ": " + value); + } + } + } + + private WebElement getInputField(String label) { + if (label == null || label.trim().isEmpty()) + return null; + String cleanedLabel = label.trim(); + String leftPart = cleanedLabel.contains("/") ? cleanedLabel.substring(0, cleanedLabel.indexOf("/")).trim() + : cleanedLabel; + + WebElement element = null; + + // Try multiple patterns with tighter scope + String[] patterns = { + // EditText under same parent container + "//android.view.View[contains(@content-desc,'" + cleanedLabel + "') or contains(@text,'" + cleanedLabel + + "')]" + + "/parent::android.view.View/following-sibling::android.view.View//android.widget.EditText[1]", + + // fallback: sibling EditText + "//android.view.View[contains(@content-desc,'" + cleanedLabel + "') or contains(@text,'" + cleanedLabel + + "')]" + "/following-sibling::android.widget.EditText[1]", + + // fallback: any EditText under ancestor container (section block) + "//android.view.View[contains(@content-desc,'" + cleanedLabel + "') or contains(@text,'" + cleanedLabel + + "')]" + "/ancestor::android.view.View[1]//android.widget.EditText[1]" }; + + // Scroll & try + for (int attempt = 0; attempt < 6 && element == null; attempt++) { + for (String xp : patterns) { + try { + element = findElementIfExists(By.xpath(xp)); + if (element != null && isElementDisplayed(element)) + return element; + } catch (Exception ignored) { + } + } + swipeOrScroll(); + } + + // Fallback: first visible EditText (not recommended but prevents NPE) + try { + for (WebElement e : driver.findElements(By.className("android.widget.EditText"))) { + if (isElementDisplayed(e)) + return e; + } + } catch (Exception ignored) { + } + + return null; + } + + public void fillRemainDemographicDetailsPage(String age) { + scrollToTop(); + List idList = FetchUiSpec.getAllIds("DemographicDetails"); + for (String id : idList) { + if (FetchUiSpec.getRequiredTypeUsingId(id) && !id.equals("Postal")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") + && FetchUiSpec.getFormatUsingId(id).equals("none")) { + waitTime(3); + while (!isElementDisplayed(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))) { + swipeOrScroll(); + } + boolean isdisplayed = isElementDisplayed(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")")); +// assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + WebElement dropdownElement = findElement( + By.xpath("//android.widget.Button[.//android.view.View[contains(@content-desc,'" + + FetchUiSpec.getValueUsingId(id) + "')]]")); + clickOnElement(dropdownElement); + waitTime(3); + if (!isElementDisplayed(dropdownElement)) { + clickOnElement(findElement(By.className("android.view.View"))); + } else if (isElementDisplayed(dropdownElement)) { + swipeOrScroll(); + clickOnElement(dropdownElement); + waitTime(2); + clickOnElement(findElement(By.className("android.view.View"))); + } + waitTime(2); + if (isElementDisplayed(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, \"Select Option\")]"))) { + clickOnElement(dropdownElement); + waitTime(2); + clickOnElement(findElement(By.className("android.view.View"))); + } + } + } else if (FetchUiSpec.getRequiredTypeUsingId(id) && id.equals("Postal")) { + By postalDropdown = By.xpath("//android.view.View[contains(@content-desc, 'Postal')]" + + "/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, 'Select Option')]"); + + int attempts = 0; + while (attempts < 3) { + try { + if (isElementDisplayed(postalDropdown)) { + WebElement dropdownElement = findElement(postalDropdown); + clickOnElement(dropdownElement); + waitTime(3); // increased wait for Postal data load + + if (isElementDisplayed(By.className("android.view.View"))) { + clickOnElement(findElement(By.className("android.view.View"))); + System.out.println("✅ Postal dropdown handled successfully"); + break; // success + } else { + System.out.println("⏳ Postal options not visible yet, retrying..."); + } + } else { + swipeOrScroll(); + } + } catch (org.openqa.selenium.StaleElementReferenceException e) { + System.out.println("🔄 Postal element went stale, retrying..."); + } + waitTime(2); + attempts++; + } + } + if (id.equals("introducerName") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } - }if(id.equals("introducerUIN")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + } + if (id.equals("introducerRID") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),TestDataReader.readData("UINminor")); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + TestDataReader.readData("RID")); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } } } } + } diff --git a/ui-test/src/main/java/regclient/pages/english/DocumentuploadPageEnglish.java b/ui-test/src/main/java/regclient/pages/english/DocumentuploadPageEnglish.java index 9071b299c..fc9ef60ef 100644 --- a/ui-test/src/main/java/regclient/pages/english/DocumentuploadPageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/DocumentuploadPageEnglish.java @@ -15,7 +15,6 @@ import regclient.page.CameraPage; import regclient.page.DocumentUploadPage; - public class DocumentuploadPageEnglish extends DocumentUploadPage { @AndroidFindBy(accessibility = "Scrim") @@ -46,7 +45,7 @@ public DocumentuploadPageEnglish(AppiumDriver driver) { super(driver); } - public BiometricDetailsPage clickOnContinueButton() { + public BiometricDetailsPage clickOnContinueButton() { clickOnElement(continueButton); return new BiometricDetailsPageEnglish(driver); } @@ -57,7 +56,7 @@ public boolean isDoccumentUploadPageDisplayed() { return true; } - public DocumentUploadPage clickOnSaveButton() { + public DocumentUploadPage clickOnSaveButton() { clickOnElement(saveButton); return new DocumentuploadPageEnglish(driver); } @@ -71,108 +70,163 @@ public void cropCaptureImage() { cropCaptureImage(imageleftCorner); } - public void uploadDoccuments(String age,String type) { - List idList=FetchUiSpec.getAllIds("Documents"); - for(String id : idList) { - if(FetchUiSpec.getRequiredTypeUsingId(id)) { - if(type.equalsIgnoreCase("ReferenceNumber")) { - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.EditText")),"1234567890"); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View"))); - if(!isElementDisplayedOnScreen(PopUpCloseButton)) { + public void uploadDoccuments(String age, String type) { + List idList = FetchUiSpec.getAllIds("Documents"); + for (String id : idList) { + if (FetchUiSpec.getRequiredTypeUsingId(id)) { + if (type.equalsIgnoreCase("ReferenceNumber")) { + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.EditText")), + "1234567890"); + clickOnElement(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View"))); + if (!isElementDisplayedOnScreen(PopUpCloseButton)) { swipeOrScroll(); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View"))); + clickOnElement(findElementWithRetry(By.xpath( + "//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View"))); } clickOnElement(PopUpCloseButton); waitTime(1); - boolean isEnabled = isElementEnabled(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); - assertTrue(isEnabled,"Verify if scan button enabled for "+FetchUiSpec.getValueUsingId(id)); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); - CameraPage cameraPage=new CameraPage(driver); + boolean isEnabled = isElementEnabled(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); + assertTrue(isEnabled, "Verify if scan button enabled for " + FetchUiSpec.getValueUsingId(id)); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); + CameraPage cameraPage = new CameraPage(driver); + cameraPage.handleCameraPermission(); cameraPage.clickimage(); cameraPage.clickOkButton(); - assertTrue(isRetakeButtonDisplayed(),"Verify if retake button displayed"); + assertTrue(isRetakeButtonDisplayed(), "Verify if retake button displayed"); cropCaptureImage(); clickOnSaveButton(); - assertTrue(isDoccumentUploadPageDisplayed(),"Verify if doccumentupload page is displayed after upload of "+FetchUiSpec.getValueUsingId(id)); - }else { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View"))); - if(!isElementDisplayedOnScreen(PopUpCloseButton)) { + assertTrue(isDoccumentUploadPageDisplayed(), + "Verify if doccumentupload page is displayed after upload of " + + FetchUiSpec.getValueUsingId(id)); + } else { + clickOnElement(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View"))); + if (!isElementDisplayedOnScreen(PopUpCloseButton)) { swipeOrScroll(); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View"))); + clickOnElement(findElementWithRetry(By.xpath( + "//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View"))); } clickOnElement(PopUpCloseButton); waitTime(1); - boolean isEnabled = isElementEnabled(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); - assertTrue(isEnabled,"Verify if scan button enabled for "+FetchUiSpec.getValueUsingId(id)); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); - CameraPage cameraPage=new CameraPage(driver); + boolean isEnabled = isElementEnabled(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); + assertTrue(isEnabled, "Verify if scan button enabled for " + FetchUiSpec.getValueUsingId(id)); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); + CameraPage cameraPage = new CameraPage(driver); cameraPage.clickimage(); cameraPage.clickOkButton(); - assertTrue(isRetakeButtonDisplayed(),"Verify if retake button displayed"); + assertTrue(isRetakeButtonDisplayed(), "Verify if retake button displayed"); cropCaptureImage(); clickOnSaveButton(); - assertTrue(isDoccumentUploadPageDisplayed(),"Verify if doccumentupload page is displayed after upload of "+FetchUiSpec.getValueUsingId(id)); + assertTrue(isDoccumentUploadPageDisplayed(), + "Verify if doccumentupload page is displayed after upload of " + + FetchUiSpec.getValueUsingId(id)); } - }if(id.equals("proofOfRelationship")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View"))); - if(!isElementDisplayedOnScreen(PopUpCloseButton)) { + } + if (id.equals("proofOfRelationship")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + clickOnElement(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View"))); + if (!isElementDisplayedOnScreen(PopUpCloseButton)) { swipeOrScroll(); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View"))); + clickOnElement(findElementWithRetry(By.xpath( + "//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View"))); } clickOnElement(PopUpCloseButton); waitTime(1); - boolean isEnabled = isElementEnabled(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); - assertTrue(isEnabled,"Verify if scan button enabled for "+FetchUiSpec.getValueUsingId(id)); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); - CameraPage cameraPage=new CameraPage(driver); + boolean isEnabled = isElementEnabled(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); + assertTrue(isEnabled, "Verify if scan button enabled for " + FetchUiSpec.getValueUsingId(id)); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); + CameraPage cameraPage = new CameraPage(driver); cameraPage.clickimage(); cameraPage.clickOkButton(); - assertTrue(isRetakeButtonDisplayed(),"Verify if retake button displayed"); +// assertTrue(isRetakeButtonDisplayed(),"Verify if retake button displayed"); cropCaptureImage(); clickOnSaveButton(); - assertTrue(isDoccumentUploadPageDisplayed(),"Verify if doccumentupload page is displayed after upload of "+FetchUiSpec.getValueUsingId(id)); + assertTrue(isDoccumentUploadPageDisplayed(), + "Verify if doccumentupload page is displayed after upload of " + + FetchUiSpec.getValueUsingId(id)); } } } } - public void uploadDoccumentsUpdate(String age,String type) { - List idList=FetchUiSpec.getAllIds("Documents"); - for(String id : idList) { - if(type.equals("all") && !id.equals("proofOfException") && !id.equals("proofOfRelationship")) { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View"))); - if(!isElementDisplayedOnScreen(PopUpCloseButton)) { + + public void uploadDoccumentsUpdate(String age, String type) { + scrollToTop(); + List idList = FetchUiSpec.getAllIds("Documents"); + for (String id : idList) { + if (type.equals("all") && !id.equals("proofOfException") && !id.equals("proofOfRelationship")) { + clickOnElement(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View"))); + if (!isElementDisplayedOnScreen(PopUpCloseButton)) { swipeOrScroll(); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View"))); + clickOnElement(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View"))); } clickOnElement(PopUpCloseButton); waitTime(1); - boolean isEnabled = isElementEnabled(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); - assertTrue(isEnabled,"Verify if scan button enabled for "+FetchUiSpec.getValueUsingId(id)); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); - CameraPage cameraPage=new CameraPage(driver); + boolean isEnabled = isElementEnabled(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); + assertTrue(isEnabled, "Verify if scan button enabled for " + FetchUiSpec.getValueUsingId(id)); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); + CameraPage cameraPage = new CameraPage(driver); cameraPage.clickimage(); cameraPage.clickOkButton(); - assertTrue(isRetakeButtonDisplayed(),"Verify if retake button displayed"); + assertTrue(isRetakeButtonDisplayed(), "Verify if retake button displayed"); cropCaptureImage(); clickOnSaveButton(); - }if(id.equals("proofOfRelationship")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View"))); - if(!isElementDisplayedOnScreen(PopUpCloseButton)) { + } + if (id.equals("proofOfRelationship")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + clickOnElement(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View"))); + if (!isElementDisplayedOnScreen(PopUpCloseButton)) { swipeOrScroll(); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View"))); + clickOnElement(findElementWithRetry(By.xpath( + "//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View"))); } clickOnElement(PopUpCloseButton); waitTime(1); - boolean isEnabled = isElementEnabled(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); - assertTrue(isEnabled,"Verify if scan button enabled for "+FetchUiSpec.getValueUsingId(id)); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); - CameraPage cameraPage=new CameraPage(driver); + boolean isEnabled = isElementEnabled(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); + assertTrue(isEnabled, "Verify if scan button enabled for " + FetchUiSpec.getValueUsingId(id)); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); + CameraPage cameraPage = new CameraPage(driver); cameraPage.clickimage(); cameraPage.clickOkButton(); - assertTrue(isRetakeButtonDisplayed(),"Verify if retake button displayed"); + assertTrue(isRetakeButtonDisplayed(), "Verify if retake button displayed"); cropCaptureImage(); clickOnSaveButton(); } @@ -181,5 +235,4 @@ public void uploadDoccumentsUpdate(String age,String type) { } } - } diff --git a/ui-test/src/main/java/regclient/pages/english/IdentityProofPageEnglish.java b/ui-test/src/main/java/regclient/pages/english/IdentityProofPageEnglish.java index 62b606884..3cba80407 100644 --- a/ui-test/src/main/java/regclient/pages/english/IdentityProofPageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/IdentityProofPageEnglish.java @@ -7,7 +7,7 @@ import regclient.page.DocumentUploadPage; import regclient.page.IdentityProofPage; -public class IdentityProofPageEnglish extends IdentityProofPage{ +public class IdentityProofPageEnglish extends IdentityProofPage { @AndroidFindBy(accessibility = "SAVE") private WebElement saveButton; @@ -17,15 +17,15 @@ public class IdentityProofPageEnglish extends IdentityProofPage{ @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.view.View\").instance(8)") private WebElement imageleftCorner; - + @AndroidFindBy(className = "android.widget.ImageView") private WebElement captureImage; - + public IdentityProofPageEnglish(AppiumDriver driver) { super(driver); } - public DocumentUploadPage clickOnSaveButton() { + public DocumentUploadPage clickOnSaveButton() { clickOnElement(saveButton); return new DocumentuploadPageEnglish(driver); } diff --git a/ui-test/src/main/java/regclient/pages/english/IntroducerBiometricPageEnglish.java b/ui-test/src/main/java/regclient/pages/english/IntroducerBiometricPageEnglish.java index af12a04ee..90433700f 100644 --- a/ui-test/src/main/java/regclient/pages/english/IntroducerBiometricPageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/IntroducerBiometricPageEnglish.java @@ -9,178 +9,183 @@ import regclient.page.BiometricDetailsPage; import regclient.page.IntroducerBiometricPage; - public class IntroducerBiometricPageEnglish extends IntroducerBiometricPage { - - @AndroidFindBy(accessibility = "Iris Scan") - private WebElement irisScanButton; - - @AndroidFindBy(accessibility = "Mark Exception") - private WebElement markExceptionButton; - - @AndroidFindBy(accessibility = "Mark Exception") - private WebElement exceptionTypeTitle; - - @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(1)") - private WebElement oneEyeException; - - @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(2)") - private WebElement firstFingureException; - - @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Right Hand\"))") - private WebElement rightHandScanTitle; - - @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Left Hand\"))") - private WebElement leftHandScanTitle; - - @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Thumbs Scan\"))") - private WebElement thumbsScanTitle; - - @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Face Scan\"))") - private WebElement faceScanTitle; - - @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Exception Scan\"))") - private WebElement exceptionScanTitle; - - @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().description(\"Scan\"))") - private WebElement scanButton; - - @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Iris Capture')]") - private WebElement irisCapturerHeader; - - @AndroidFindBy(xpath = "//*[contains(@content-desc, 'RightHand Capture')]") - private WebElement rightHandCapturerHeader; - - @AndroidFindBy(xpath = "//*[contains(@content-desc, 'LeftHand Capture')]") - private WebElement leftHandCapturerHeader; - - @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Thumbs Capture')]") - private WebElement thumbsCapturerHeader; - - @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Face Capture')]") - private WebElement faceCapturerHeader; - - @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Exception Capture')]") - private WebElement exceptionCapturerHeader; - - @AndroidFindBy(xpath = "//android.widget.ScrollView/android.view.View[3]") - private WebElement zoomButton; - - @AndroidFindBy(className = "android.widget.Button") - private WebElement popUpCloseButton; - - @AndroidFindBy(accessibility = "NEXT") - private WebElement nextButton; - - public IntroducerBiometricPageEnglish(AppiumDriver driver) { - super(driver); - } - - public void clickOnScanButton() { - clickOnElement(scanButton); - } - - public void markOneEyeException() { - clickOnElement(oneEyeException); - } - - public void markOneFingureException() { - clickOnElement(firstFingureException); - } - - public void clickOnClosePopUp() { - clickOnElement(popUpCloseButton); - } - - public void clickOnMarkExceptionButton() { - clickOnElement(markExceptionButton); - } - - public void clickOnIrisScanButton() { - clickOnElement(irisScanButton); - } - - public BiometricDetailsPage clickOnNextButton() { - clickOnElement(nextButton); - return new BiometricDetailsPageEnglish(driver); - } - - public void clickOnZoomButton() { - clickOnElement(zoomButton); - } - - public void clickOnRightHandScanTitle() { - clickOnElement(rightHandScanTitle); - } - - public void clickOnleftHandScanTitle() { - clickOnElement(leftHandScanTitle); - } - - public void clickOnThumbsScanTitle() { - clickOnElement(thumbsScanTitle); - } - - public void closeScanCapturePopUp() { - driver.navigate().back(); - } - - public BiometricDetailsPage clickOnBackButton() { - driver.navigate().back(); - return new BiometricDetailsPageEnglish(driver); - } - - @SuppressWarnings("deprecation") - public boolean isIntroducerBiometricsPageDisplyed() { - return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId("introducerBiometrics")+"\")"))); - } - - public boolean isExceptionTypeTitleDisplyed() { - return isElementDisplayed(exceptionTypeTitle); - } - - public boolean isRightHandScanTitleDisplyed() { - return isElementDisplayed(rightHandScanTitle); - } - - public boolean isLeftHandScanTitleDisplyed() { - return isElementDisplayed(leftHandScanTitle); - } - - public boolean isThumbsScanTitleDisplyed() { - return isElementDisplayed(thumbsScanTitle); - } - - public boolean isFaceScanTitleDisplyed() { - return isElementDisplayed(faceScanTitle); - } - - public boolean isExceptionScanTitleDisplyed() { - return isElementDisplayed(exceptionScanTitle); - } - - public boolean isIrisScan() { - return isElementDisplayed(irisCapturerHeader,2000); - } - - public boolean isRightHandScan() { - return isElementDisplayed(rightHandCapturerHeader,2000); - } - - public boolean isLeftHandScan() { - return isElementDisplayed(leftHandCapturerHeader,2000); - } - - public boolean isThumbsScan() { - return isElementDisplayed(thumbsCapturerHeader,2000); - } - - public boolean isFaceScan() { - return isElementDisplayed(faceCapturerHeader,2000); - } - - public boolean isExceptionScan() { - return isElementDisplayed(exceptionCapturerHeader,2000); - } + + @AndroidFindBy(accessibility = "Iris Scan") + private WebElement irisScanButton; + + @AndroidFindBy(accessibility = "Mark Exception") + private WebElement markExceptionButton; + + @AndroidFindBy(accessibility = "Mark Exception") + private WebElement exceptionTypeTitle; + + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(1)") + private WebElement oneEyeException; + + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(2)") + private WebElement firstFingureException; + + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Right Hand\"))") + private WebElement rightHandScanTitle; + + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Left Hand\"))") + private WebElement leftHandScanTitle; + + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Thumbs Scan\"))") + private WebElement thumbsScanTitle; + + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Face Scan\"))") + private WebElement faceScanTitle; + + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Exception Scan\"))") + private WebElement exceptionScanTitle; + + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().description(\"Scan\"))") + private WebElement scanButton; + + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Iris Capture')]") + private WebElement irisCapturerHeader; + + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'RightHand Capture')]") + private WebElement rightHandCapturerHeader; + + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'LeftHand Capture')]") + private WebElement leftHandCapturerHeader; + + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Thumbs Capture')]") + private WebElement thumbsCapturerHeader; + + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Face Capture')]") + private WebElement faceCapturerHeader; + + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Exception Capture')]") + private WebElement exceptionCapturerHeader; + + @AndroidFindBy(xpath = "//android.widget.ScrollView/android.view.View[3]") + private WebElement zoomButton; + + @AndroidFindBy(className = "android.widget.Button") + private WebElement popUpCloseButton; + + @AndroidFindBy(accessibility = "NEXT") + private WebElement nextButton; + + public IntroducerBiometricPageEnglish(AppiumDriver driver) { + super(driver); + } + + public void clickOnScanButton() { + clickOnElement(scanButton); + } + + public void markOneEyeException() { + clickOnElement(oneEyeException); + } + + public void markOneFingureException() { + clickOnElement(firstFingureException); + } + + public void clickOnClosePopUp() { + clickOnElement(popUpCloseButton); + } + + public void clickOnMarkExceptionButton() { + clickOnElement(markExceptionButton); + } + + public void clickOnIrisScanButton() { + clickOnElement(irisScanButton); + } + + public BiometricDetailsPage clickOnNextButton() { + clickOnElement(nextButton); + return new BiometricDetailsPageEnglish(driver); + } + + public void clickOnZoomButton() { + clickOnElement(zoomButton); + } + + public void clickOnRightHandScanTitle() { + clickOnElement(rightHandScanTitle); + } + + public void clickOnleftHandScanTitle() { + clickOnElement(leftHandScanTitle); + } + + public void clickOnThumbsScanTitle() { + clickOnElement(thumbsScanTitle); + } + + public void closeScanCapturePopUp() { + driver.navigate().back(); + } + + public BiometricDetailsPage clickOnBackButton() { + driver.navigate().back(); + return new BiometricDetailsPageEnglish(driver); + } + + @SuppressWarnings("deprecation") + public boolean isIntroducerBiometricsPageDisplyed() { + return isElementDisplayed( + findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\"" + + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")"))); + } + + public boolean isExceptionTypeTitleDisplyed() { + return isElementDisplayed(exceptionTypeTitle); + } + + public boolean isRightHandScanTitleDisplyed() { + return isElementDisplayed(rightHandScanTitle); + } + + public boolean isLeftHandScanTitleDisplyed() { + return isElementDisplayed(leftHandScanTitle); + } + + public boolean isThumbsScanTitleDisplyed() { + return isElementDisplayed(thumbsScanTitle); + } + + public boolean isFaceScanTitleDisplyed() { + return isElementDisplayed(faceScanTitle); + } + + public boolean isExceptionScanTitleDisplyed() { + return isElementDisplayed(exceptionScanTitle); + } + + public boolean isIrisScan() { + return isElementDisplayed(irisCapturerHeader, 2000); + } + + public boolean isRightHandScan() { + return isElementDisplayed(rightHandCapturerHeader, 2000); + } + + public boolean isLeftHandScan() { + return isElementDisplayed(leftHandCapturerHeader, 2000); + } + + public boolean isThumbsScan() { + return isElementDisplayed(thumbsCapturerHeader, 2000); + } + + public boolean isFaceScan() { + return isElementDisplayed(faceCapturerHeader, 2000); + } + + public boolean isExceptionScan() { + return isElementDisplayed(exceptionCapturerHeader, 2000); + } + + public boolean isNextButtonDisplyed() { + return isElementDisplayed(nextButton); + } } diff --git a/ui-test/src/main/java/regclient/pages/english/KeycloakPageEnglish.java b/ui-test/src/main/java/regclient/pages/english/KeycloakPageEnglish.java new file mode 100644 index 000000000..06093ad66 --- /dev/null +++ b/ui-test/src/main/java/regclient/pages/english/KeycloakPageEnglish.java @@ -0,0 +1,152 @@ +package regclient.pages.english; + +import java.time.Duration; +import io.appium.java_client.AppiumDriver; +import io.appium.java_client.pagefactory.AndroidFindBy; +import regclient.page.KeycloakPage; + +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; +import org.openqa.selenium.support.FindBy; +import org.openqa.selenium.By; +import org.openqa.selenium.WebElement; + +public class KeycloakPageEnglish extends KeycloakPage { + + private WebDriverWait wait; + + public KeycloakPageEnglish(AppiumDriver driver) { + super(driver); + } + + @FindBy(id = "kc-page-title") + private WebElement keycloakPageTitle; + + @FindBy(id = "English˅") + private WebElement languageDropdown; + + @FindBy(id = "English") + private WebElement englishLanguage; + + @FindBy(id = "username") + private WebElement usernameTextBox; + + @FindBy(id = "password") + private WebElement passwordTextBox; + + @FindBy(id = "kc-login") + private WebElement loginButton; + + @AndroidFindBy(uiAutomator = "new UiSelector().text(\"Password\")") + private WebElement passwordOption; + + @FindBy(id = "password") + private WebElement passwordTextbox; + + @FindBy(id = "password-new") + private WebElement newPasswordTextbox; + + @FindBy(id = "password-confirm") + private WebElement confirmPasswordTextbox; + + @FindBy(xpath = "//button[text()='Save']") + private WebElement saveButton; + + @FindBy(xpath = "//*[contains(text(),'Your password has been updated.')]") + private WebElement passwordUpdatedMessage; + + @FindBy(xpath = "//*[contains(text(),'Sign Out')]") + private WebElement signoutButton; + + @AndroidFindBy(accessibility = "LOGOUT") + private WebElement logoutButton; + + public boolean openKeycloakWebView() { + switchContext("WEBVIEW_chrome"); + retryFindElement(keycloakPageTitle, Duration.ofSeconds(10)); + return isElementDisplayed(keycloakPageTitle); + } + + public boolean openKeycloakPassword() { + switchContext("NATIVE_APP"); + retryFindElement(passwordOption, Duration.ofSeconds(10)); + return isElementDisplayed(passwordOption); + } + + public String getPageTitle() { + return keycloakPageTitle.getText(); + } + + public void clickOnLanguageDropdown() { + clickOnElement(languageDropdown); + } + + public void clickOnEnglishLanguage() { + clickOnElement(englishLanguage); + } + + public void enterUserName(String username) { + clickAndsendKeysToTextBox(usernameTextBox, username); + } + + public void enterPassword(String password) { + retryFindElement(passwordTextBox, Duration.ofSeconds(10)); + clickAndsendKeysToTextBox(passwordTextBox, password); + } + + public void clickOnloginButton() { + clickOnElement(loginButton); + } + +// public boolean isPasswordOptionDisplayed() { +// switchContext("WEBVIEW_chrome"); +// WebElement passwordOption = wait.until( +// ExpectedConditions.visibilityOfElementLocated(By.id("password")) +// ); +// return passwordOption.isDisplayed(); +// } + + public void clickOnPasswordOption() { + switchContext("NATIVE_APP"); + clickOnElement(passwordOption); + } + + public void enterExistPassword(String password) { + switchContext("WEBVIEW_chrome"); + retryFindElement(passwordTextbox, Duration.ofSeconds(10)); + clickAndsendKeysToTextBox(passwordTextbox, password); + } + + public void enterNewPassword(String password) { + switchContext("WEBVIEW_chrome"); + retryFindElement(newPasswordTextbox, Duration.ofSeconds(10)); + clickAndsendKeysToTextBox(newPasswordTextbox, password); + } + + public void enterConfirmPassword(String password) { + switchContext("WEBVIEW_chrome"); + retryFindElement(confirmPasswordTextbox, Duration.ofSeconds(10)); + clickAndsendKeysToTextBox(confirmPasswordTextbox, password); + } + + public void clickOnSaveButton() { + switchContext("WEBVIEW_chrome"); + clickOnElement(saveButton); + } + + public boolean isPasswordUpdatedMessageDisplayed() { + switchContext("WEBVIEW_chrome"); + return isElementDisplayed(passwordUpdatedMessage); + } + + public void clickOnSignoutButton() { + switchContext("WEBVIEW_chrome"); + clickOnElement(signoutButton); + } + + public boolean resumeArcApplication() { + openArcApplication("NATIVE_APP"); + return isElementDisplayed(logoutButton); + } + +} diff --git a/ui-test/src/main/java/regclient/pages/english/LoginPageEnglish.java b/ui-test/src/main/java/regclient/pages/english/LoginPageEnglish.java index aa9fd84cc..c7514cf8b 100644 --- a/ui-test/src/main/java/regclient/pages/english/LoginPageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/LoginPageEnglish.java @@ -25,13 +25,12 @@ public LoginPageEnglish(AppiumDriver driver) { @AndroidFindBy(accessibility = "NEXT") private WebElement nextButton; - + @AndroidFindBy(accessibility = "Machine not found!") private WebElement machineNotFound; @AndroidFindBy(xpath = "//android.widget.EditText") private WebElement passwordTextBox; - @AndroidFindBy(accessibility = "LOGIN") private WebElement loginButton; @@ -105,45 +104,47 @@ public LoginPageEnglish(AppiumDriver driver) { @AndroidFindBy(accessibility = "COPY TEXT") private WebElement copyTextButton; + @AndroidFindBy(accessibility = "SKIP TO HOME") + private WebElement skipToHomeButton; - public void enterUserName(String username) { - clickAndsendKeysToTextBox(userNameTextBox,username); + public void enterUserName(String username) { + clickAndsendKeysToTextBox(userNameTextBox, username); } - public void clickOnCopyTextButton() { + public void clickOnCopyTextButton() { clickOnElement(copyTextButton); } - public void clickOnNextButton() { + public void clickOnNextButton() { clickOnElement(nextButton); } - public void clickOnBackButton() { + public void clickOnBackButton() { clickOnElement(backButton); } - public void enterPassword(String password) { - retryFindElement(passwordTextBox,Duration.ofSeconds(10)); - clickAndsendKeysToTextBox(passwordTextBox,password); + public void enterPassword(String password) { + retryFindElement(passwordTextBox, Duration.ofSeconds(10)); + clickAndsendKeysToTextBox(passwordTextBox, password); } - public RegistrationTasksPage clickOnloginButton() { + public RegistrationTasksPage clickOnloginButton() { clickOnElement(loginButton); return new RegistrationTasksPageEnglish(driver); } - public boolean isNextButtonEnabled() { + public boolean isNextButtonEnabled() { return isElementEnabled(nextButton); } - public boolean isLoginButtonEnabled() { + public boolean isLoginButtonEnabled() { return isElementEnabled(loginButton); } public boolean isLoginPageLoaded() { return true; // return isElementDisplayed(loginMessage); - + } public boolean isPasswordHeaderDisplayed() { @@ -157,7 +158,7 @@ public boolean isUserNameHeaderDisplayed() { public boolean isWelcomeMessageDisplayed() { return isElementDisplayed(welcomeMessageEnglish); } - + public boolean isMachineNotFoundMessageDisplayed() { return isElementDisplayed(machineNotFound); } @@ -196,24 +197,31 @@ public void selectLanguage() { clickOnElement(englishButton); } - public boolean isSyncCompletedSuccessfullyMessageDisplayed() { - return isElementDisplayed(syncCompletedSuccessfullyMessage,2000); + return isElementDisplayed(syncCompletedSuccessfullyMessage, 2000); } public void clickandHold() { clickAndHold(); } - public void getMachineDetails() { - try { + public void getMachineDetails() { + try { getMachineDetail(); } catch (UnsupportedFlavorException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); - }catch (InterruptedException e) { + } catch (InterruptedException e) { e.printStackTrace(); } } + + public void clickOnSkipToHomeButton() { + clickOnElement(skipToHomeButton); + } + + public boolean isCopyTextPopupDisplayed() { + return isElementDisplayed(copyTextButton, 2000); + } } diff --git a/ui-test/src/main/java/regclient/pages/english/ManageApplicationsPageEnglish.java b/ui-test/src/main/java/regclient/pages/english/ManageApplicationsPageEnglish.java index 6484422c1..029cb83e6 100644 --- a/ui-test/src/main/java/regclient/pages/english/ManageApplicationsPageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/ManageApplicationsPageEnglish.java @@ -7,7 +7,7 @@ import io.appium.java_client.pagefactory.AndroidFindBy; import regclient.page.ManageApplicationsPage; -public class ManageApplicationsPageEnglish extends ManageApplicationsPage{ +public class ManageApplicationsPageEnglish extends ManageApplicationsPage { @AndroidFindBy(accessibility = "Manage Applications") private WebElement manageApplicationsTitle; @@ -66,6 +66,27 @@ public class ManageApplicationsPageEnglish extends ManageApplicationsPage{ @AndroidFindBy(accessibility = "Dismiss") private WebElement deletionValueDropdown; + @AndroidFindBy(xpath = "//android.widget.TextView[@text='Documents'][2]") + private WebElement documentsHeader; + + @AndroidFindBy(accessibility = "android:id/button1") + private WebElement useThisFolderButton; + + @AndroidFindBy(accessibility = "android:id/button1") + private WebElement allowButton; + + @AndroidFindBy(xpath = "//android.widget.TextView[@resource-id='android:id/title' and @text='Documents']") + private WebElement documentsFolder; + + @AndroidFindBy(accessibility = "No network found!") + private WebElement noNetworkFound; + + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.CheckBox\").instance(1)") + private WebElement latestAidCheckBox; + + @AndroidFindBy(accessibility = "Displaying 1 Applications") + private WebElement displayOneApplication; + public ManageApplicationsPageEnglish(AppiumDriver driver) { super(driver); } @@ -74,17 +95,18 @@ public boolean isManageApplicationPageDisplayed() { return isElementDisplayed(manageApplicationsTitle); } - public void enterAID(String AID) { - clickAndsendKeysToTextBox(ApplicationIDTextBox,AID); + public void enterAID(String AID) { + clickAndsendKeysToTextBox(ApplicationIDTextBox, AID); } - public void enterWrongAID(String AID) { - clickAndsendKeysToTextBox(ApplicationIDTextBox,AID); - } + public void enterWrongAID(String AID) { + clickAndsendKeysToTextBox(ApplicationIDTextBox, AID); + } public boolean isSearchAIDDisplayed(String AID) { waitTime(2); - return isElementDisplayed(driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'"+AID+"')]"))); + return isElementDisplayed( + driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'" + AID + "')]"))); } public boolean isZeroApplicationDisplayed() { @@ -92,30 +114,29 @@ public boolean isZeroApplicationDisplayed() { return isElementDisplayed(displayZeroApplication); } - public void clickOnUploadButton() { + public void clickOnUploadButton() { clickOnElement(uploadButton); waitTime(10); } public boolean isPacketUploadDone(String AID) { waitTime(2); - WebElement element =driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'"+AID+"')]")); - if(element.getAttribute("contentDescription").contains("NOT UPLOADED")) { + WebElement element = driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'" + AID + "')]")); + if (element.getAttribute("contentDescription").contains("NOT UPLOADED")) { waitTime(10); - element =driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'"+AID+"')]")); - if(element.getAttribute("contentDescription").contains("NOT UPLOADED")) + element = driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'" + AID + "')]")); + if (element.getAttribute("contentDescription").contains("NOT UPLOADED")) return false; else return true; - } - else + } else return true; } public boolean isPacketApproved(String AID) { waitTime(2); - WebElement element =driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'"+AID+"')]")); - if(element.getAttribute("contentDescription").contains("APPROVED")) + WebElement element = driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'" + AID + "')]")); + if (element.getAttribute("contentDescription").contains("APPROVED")) return true; else return false; @@ -123,27 +144,27 @@ public boolean isPacketApproved(String AID) { public boolean isPacketSynned(String AID) { waitTime(2); - WebElement element =driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'"+AID+"')]")); - if(element.getAttribute("contentDescription").contains("SYNCED")) + WebElement element = driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'" + AID + "')]")); + if (element.getAttribute("contentDescription").contains("SYNCED")) return true; else return false; } - + public boolean isPacketRejected(String AID) { waitTime(2); - WebElement element =driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'"+AID+"')]")); - if(element.getAttribute("contentDescription").contains("REJECTED")) + WebElement element = driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'" + AID + "')]")); + if (element.getAttribute("contentDescription").contains("REJECTED")) return true; else return false; } - public void clickClientStatusDropdown() { + public void clickClientStatusDropdown() { clickOnElement(clientStatusDropdown); } - public void clickServerStatusDropdown() { + public void clickServerStatusDropdown() { clickOnElement(serverStatusDropdown); } @@ -171,25 +192,25 @@ public boolean isExportedsDropdownOptionDisplayed() { return isElementDisplayed(exportedsOption); } - public void clickDismissButton() { + public void clickDismissButton() { clickOnElement(dismissButton); } - public void clickOnSearchCheckBox() { + public void clickOnSearchCheckBox() { clickOnElement(searchCheckBoxButton); } - public void selectApprovedValueDropdown() { + public void selectApprovedValueDropdown() { clickOnElement(clientStatusDropdown); clickOnElement(approvedOption); - } + } - public void selectSyncedOptionDropdown() { + public void selectSyncedOptionDropdown() { clickOnElement(clientStatusDropdown); clickOnElement(syncedOption); } - public void selectUploadedOptionDropdown() { + public void selectUploadedOptionDropdown() { clickOnElement(clientStatusDropdown); clickOnElement(uploadedOption); @@ -214,4 +235,35 @@ public boolean isDeletionDropdownOptionDisplayed() { public void clickOnBackButton() { driver.navigate().back(); } + + public void clickOnExportButton() { + clickOnElement(exportButton); + waitTime(10); + } + + public void clickOnUseThisFolderButton() { + if (isElementDisplayed(documentsHeader)) { + clickOnElement(useThisFolderButton); + if (isElementDisplayed(allowButton)) { + clickOnElement(allowButton); + } + } else if (isElementDisplayed(documentsFolder)) { + clickOnElement(documentsFolder); + clickOnElement(useThisFolderButton); + if (isElementDisplayed(allowButton)) { + clickOnElement(allowButton); + } + } else { + throw new RuntimeException("Documents folder or header not found on screen"); + } + } + + public boolean isNoNetworkFoundDisplayed() { + return isElementDisplayed(noNetworkFound); + } + + public void selectLatestAidCheckBox() { + clickOnElement(latestAidCheckBox); + } + } diff --git a/ui-test/src/main/java/regclient/pages/english/OnBoardPageEnglish.java b/ui-test/src/main/java/regclient/pages/english/OnBoardPageEnglish.java index fe92d7c10..950cb8874 100644 --- a/ui-test/src/main/java/regclient/pages/english/OnBoardPageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/OnBoardPageEnglish.java @@ -8,14 +8,14 @@ import regclient.page.RegistrationTasksPage; import regclient.page.SupervisorBiometricVerificationpage; -public class OnBoardPageEnglish extends OnBoardPage{ +public class OnBoardPageEnglish extends OnBoardPage { @AndroidFindBy(accessibility = "HELP") private WebElement helpButton; @AndroidFindBy(accessibility = "GET ONBOARDED") private WebElement getOnBoardTitle; - + @AndroidFindBy(accessibility = "SKIP TO HOME") private WebElement skipToHomeScreenButton; @@ -33,16 +33,16 @@ public boolean isGetOnBoardTitleDisplayed() { public boolean isHelpButtonDisplayed() { return isElementDisplayed(helpButton); } - + public boolean isOnBoardWelcomeMessageDisplayed() { return isElementDisplayed(onBoardWelcomeMessage); } - + public SupervisorBiometricVerificationpage clickOnGetOnBoardTitle() { clickOnElement(getOnBoardTitle); return new SupervisorBiometricVerificationpageEnglish(driver); } - + public RegistrationTasksPage clickOnSkipToHomeScreen() { clickOnElement(skipToHomeScreenButton); return new RegistrationTasksPageEnglish(driver); diff --git a/ui-test/src/main/java/regclient/pages/english/OperationalTaskPageEnglish.java b/ui-test/src/main/java/regclient/pages/english/OperationalTaskPageEnglish.java index e6b15b711..6e3aef46e 100644 --- a/ui-test/src/main/java/regclient/pages/english/OperationalTaskPageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/OperationalTaskPageEnglish.java @@ -7,21 +7,20 @@ import regclient.page.OperationalTaskPage; import regclient.page.SupervisorBiometricVerificationpage; -public class OperationalTaskPageEnglish extends OperationalTaskPage{ - +public class OperationalTaskPageEnglish extends OperationalTaskPage { @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"Update Operator Biometrics\")") private WebElement updateOperatorBiometricsButton; - + @AndroidFindBy(accessibility = "System Storage Usage") private WebElement systemStorageUsageTitle; - + @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"Synchronize Data\")") - private WebElement synchronizeDataButton ; - + private WebElement synchronizeDataButton; + @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"Application Upload\")") private WebElement applicationUploadTitle; - + @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"Pending Approval\")") private WebElement pendingApprovalTitle; @@ -29,49 +28,48 @@ public OperationalTaskPageEnglish(AppiumDriver driver) { super(driver); } - public SupervisorBiometricVerificationpage clickOnUpdateOperatorBiometricsButton() { - clickOnElement(updateOperatorBiometricsButton); - return new SupervisorBiometricVerificationpageEnglish(driver); + public SupervisorBiometricVerificationpage clickOnUpdateOperatorBiometricsButton() { + clickOnElement(updateOperatorBiometricsButton); + return new SupervisorBiometricVerificationpageEnglish(driver); } public boolean isOperationalTaskPageLoaded() { return true; } - public void clickSynchronizeDataButton() { + public void clickSynchronizeDataButton() { clickOnElement(synchronizeDataButton); waitTime(50); } - + public boolean checkLastSyncDate() { String contentDesc = synchronizeDataButton.getAttribute("content-desc"); - if(contentDesc.contains("Synchronize Data\n"+getCurrentDateWord()+",")) + if (contentDesc.contains("Synchronize Data\n" + getCurrentDateWord() + ",")) return true; else return false; } - - public void clickApplicationUploadTitle() { + + public void clickApplicationUploadTitle() { clickOnElement(applicationUploadTitle); } - + public boolean isApplicationUploadTitleDisplayed() { - if(!isElementDisplayedOnScreen(applicationUploadTitle)) { + if (!isElementDisplayedOnScreen(applicationUploadTitle)) { swipeOrScroll(); } return isElementDisplayed(applicationUploadTitle); } - - public void clickPendingApprovalTitle() { + + public void clickPendingApprovalTitle() { clickOnElement(pendingApprovalTitle); } - + public boolean isPendingApprovalTitleDisplayed() { - if(!isElementDisplayedOnScreen(pendingApprovalTitle)) { + if (!isElementDisplayedOnScreen(pendingApprovalTitle)) { swipeOrScroll(); } return isElementDisplayed(pendingApprovalTitle); } - } diff --git a/ui-test/src/main/java/regclient/pages/english/PendingApprovalEnglish.java b/ui-test/src/main/java/regclient/pages/english/PendingApprovalEnglish.java index f2cce4bd6..6f6aca1b9 100644 --- a/ui-test/src/main/java/regclient/pages/english/PendingApprovalEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/PendingApprovalEnglish.java @@ -1,26 +1,31 @@ -/** - * - */ + package regclient.pages.english; import static org.testng.Assert.assertTrue; +import java.time.Duration; +import java.util.List; + import org.openqa.selenium.By; +import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; import io.appium.java_client.AppiumDriver; import io.appium.java_client.MobileBy; +import io.appium.java_client.android.AndroidDriver; import io.appium.java_client.pagefactory.AndroidFindBy; import regclient.page.PendingApproval; -public class PendingApprovalEnglish extends PendingApproval{ +public class PendingApprovalEnglish extends PendingApproval { @AndroidFindBy(accessibility = "Pending Approval") private WebElement pendingApprovalTitle; @AndroidFindBy(accessibility = "APPROVE") private WebElement approveButton; - + @AndroidFindBy(accessibility = "REJECT") private WebElement rejectButton; @@ -32,14 +37,12 @@ public class PendingApprovalEnglish extends PendingApproval{ @AndroidFindBy(accessibility = "SUBMIT") private WebElement submitButton; - + @AndroidFindBy(accessibility = "Username invalid!") private WebElement invalidUsernameMessage; - - + @AndroidFindBy(accessibility = "SUBMIT") private WebElement invalidUsernameMessageForempty; - @AndroidFindBy(accessibility = "Supervisor's Authentication") private WebElement supervisorAuthenticationTitle; @@ -49,34 +52,55 @@ public class PendingApprovalEnglish extends PendingApproval{ @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.EditText\").instance(1)") private WebElement passwordTextBox; - + @AndroidFindBy(xpath = "//*[contains(@content-desc,\"Pending Approval\")]//preceding-sibling::android.widget.Button") private WebElement backButton; - + @AndroidFindBy(accessibility = "Sl.no Application ID Reg. Date Client Status Review Status Operator ID") - private WebElement pageAttributes ; - + private WebElement pageAttributes; + @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"CREATED\")") private WebElement clientStatus; - + @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"Pending\").instance(1)") private WebElement reviewStatus; - + @AndroidFindBy(xpath = "//android.widget.EditText") private WebElement applicationIdTextbox; - + @AndroidFindBy(accessibility = "Reject Packet?") private WebElement rejectPacketTitle; - + @AndroidFindBy(accessibility = "Please select a value") private WebElement rejectReasonDropdown; + @AndroidFindBy(accessibility = "Displaying 1 Applications") + private WebElement displayApplication; + + @AndroidFindBy(accessibility = "Please select a reason for packet rejection. You can change your review to approve or reset the review status later.") + private WebElement rejectPacketInfoMessage; + + @AndroidFindBy(uiAutomator = "new UiSelector().text(\"Biometrics\")") + private WebElement pendingApprovalBiometricsInformation; + + @AndroidFindBy(xpath = "(//android.widget.Button[@content-desc])[1]") + private WebElement latestAid; + + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.CheckBox\").instance(1)") + private WebElement latestAIdCheckBox; + + @AndroidFindBy(accessibility = "No network found!") + private WebElement noNetworkFound; + + @AndroidFindBy(accessibility = "AUTHENTICATE") + private WebElement authenticateButton; + public PendingApprovalEnglish(AppiumDriver driver) { super(driver); } public boolean isPendingApprovalTitleDisplayed() { - return isElementDisplayed(pendingApprovalTitle); + return isElementDisplayed(pendingApprovalTitle); } @SuppressWarnings("deprecation") @@ -101,76 +125,128 @@ public void clickOnSubmitButton() { } public boolean isSupervisorAuthenticationTitleDisplayed() { - return isElementDisplayed(supervisorAuthenticationTitle); + return isElementDisplayed(supervisorAuthenticationTitle); } - + public boolean isInvalidUsernameMessageDisplayed() { - return isElementDisplayed(invalidUsernameMessage); + return isElementDisplayed(invalidUsernameMessage); } - + public boolean isInvalidemptyUsernameSumbitButtonEnbled() { return isElementEnabled(invalidUsernameMessageForempty); } - public void enterUserName(String username) { - clickAndsendKeysToTextBox2(userNameTextBox,username); + public void enterUserName(String username) { + clickAndsendKeysToTextBox2(userNameTextBox, username); } - public void enterPassword(String password) { - clickAndsendKeysToTextBox2(passwordTextBox,password); + public void enterPassword(String password) { + clickAndsendKeysToTextBox2(passwordTextBox, password); } - + public void clickOnBackButton() { clickOnElement(backButton); } public boolean isApprovalButtonDisplayed() { - return isElementDisplayed(approveButton); + return isElementDisplayed(approveButton); } - + public boolean isRejectButtonDisplayed() { - return isElementDisplayed(rejectButton); + return isElementDisplayed(rejectButton); } - + public boolean isPageAttributesDisplayed() { - return isElementDisplayed(pageAttributes); + return isElementDisplayed(pageAttributes); } - + public boolean isClientStatusDisplayed() { - return isElementDisplayed(clientStatus); + return isElementDisplayed(clientStatus); } public boolean isReviewStatusDisplayed() { - return isElementDisplayed(reviewStatus); + return isElementDisplayed(reviewStatus); } - - public void enterAID(String AID) { - clickAndsendKeysToTextBox(applicationIdTextbox,AID); + + public void enterAID(String AID) { + clickAndsendKeysToTextBox(applicationIdTextbox, AID); } - + public void clickOnRejectButton() { clickOnElement(rejectButton); } - + public boolean isRejectPacketTitleDisplayed() { - return isElementDisplayed(rejectPacketTitle); + return isElementDisplayed(rejectPacketTitle); } - + public void selectRejectionReasonDropdown() { - boolean isdisplayed =isElementDisplayed(rejectReasonDropdown); - assertTrue(isdisplayed,"Verify if "+rejectReasonDropdown+" header is displayed"); + boolean isdisplayed = isElementDisplayed(rejectReasonDropdown); + assertTrue(isdisplayed, "Verify if " + rejectReasonDropdown + " header is displayed"); clickOnElement(rejectReasonDropdown); waitTime(2); - if(!isElementDisplayed(rejectReasonDropdown)) { + if (!isElementDisplayed(rejectReasonDropdown)) { clickOnElement(findElement(By.className("android.view.View"))); - }else { + } else { clickOnElement(rejectReasonDropdown); waitTime(2); clickOnElement(findElement(By.className("android.view.View"))); - } + } } - + public boolean isSubmitButtonEnabled() { - return isElementEnabled(submitButton); + return isElementEnabled(submitButton); + } + + public boolean isNumberOfApplicationDisplayed() { + waitTime(2); + return isElementDisplayed(displayApplication); + } + + public boolean isRejectPacketInfoMessageDisplayed() { + return isElementDisplayed(rejectPacketInfoMessage); + } + + public boolean isPendingApprovalBiometricsInformationDisplayed() { + swipeOrScroll(); + return isElementDisplayed(pendingApprovalBiometricsInformation); + } + + public void clickOnLatestAid() { + List allButtons = driver.findElements(MobileBy.className("android.widget.Button")); + allButtons.get(2).click(); } + + public void selectLatestAIdCheckBox() { + clickOnElement(latestAIdCheckBox); + } + + public boolean isNoNetworkFoundDisplayed() { + return isElementEnabled(noNetworkFound); + } + + public void clickOnPendingApprovalSubmitButton(int maxRetries) { + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(3)); + + for (int i = 1; i <= maxRetries; i++) { + clickOnSubmitButton(); + try { + boolean popupShown = wait.until(d -> isNoNetworkFoundDisplayed()); + if (popupShown) { + } + } catch (TimeoutException e) { + break; + } + } + System.out.println("Still No Network Found Displayed"); + } + + public void clickOnAuthenticateButton() { + clickOnElement(authenticateButton); + } + + public boolean isAuthenticateButtonEnabled() { + return isElementEnabled(authenticateButton); + } + } diff --git a/ui-test/src/main/java/regclient/pages/english/PreviewPageEnglish.java b/ui-test/src/main/java/regclient/pages/english/PreviewPageEnglish.java index 05d8c2508..e37e4f823 100644 --- a/ui-test/src/main/java/regclient/pages/english/PreviewPageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/PreviewPageEnglish.java @@ -1,98 +1,136 @@ package regclient.pages.english; +import java.util.Set; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.openqa.selenium.By; import org.openqa.selenium.WebElement; import io.appium.java_client.AppiumDriver; import io.appium.java_client.MobileBy; import io.appium.java_client.pagefactory.AndroidFindBy; +import regclient.api.AdminTestUtil; import regclient.api.FetchUiSpec; import regclient.page.AuthenticationPage; import regclient.page.DemographicDetailsPage; import regclient.page.PreviewPage; - +import org.testng.Assert; public class PreviewPageEnglish extends PreviewPage { - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\"Demographic Information\"))") private WebElement demographicInformationInPreviewPage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\"Application ID\"))") private WebElement applicationIDPreviewPage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\"Documents\"))") private WebElement documentsInformationInPreviewPage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\"Biometrics\"))") private WebElement biometricsInformationInPreviewPage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\"Iris ( 1 )\"))") private WebElement singleIrisImage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\"Iris ( 2 )\"))") private WebElement bothIrisImage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\"Fingers ( 7 )\"))") private WebElement fingerExceptionText; - + @AndroidFindBy(accessibility = "CONTINUE") private WebElement continueButton; - + + @AndroidFindBy(xpath = "//android.view.View[contains(@text,'Email')]/../following-sibling::android.view.View[1]") + private WebElement emailIdPreviewPage; + + @AndroidFindBy(accessibility = "Lost UIN") + private WebElement lostUinTitle; + public PreviewPageEnglish(AppiumDriver driver) { super(driver); } - - public AuthenticationPage clickOnContinueButton() { + + public AuthenticationPage clickOnContinueButton() { clickOnElement(continueButton); return new AuthenticationPageEnglish(driver); } - + public boolean isDemographicInformationInPreviewPageDisplayed() { return isElementDisplayed(demographicInformationInPreviewPage); } - + public boolean isDocumentsInformationInPreviewPageDisplayed() { return isElementDisplayed(documentsInformationInPreviewPage); } - + public boolean isBiometricsInformationInPreviewPagePageDisplayed() { return isElementDisplayed(biometricsInformationInPreviewPage); } - + @SuppressWarnings("deprecation") public boolean isNewRegistrationTitleDisplayed() { - return isElementDisplayed(findElement(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getTitleUsingId("NEW") + "\"))"))); + return isElementDisplayed(findElement(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getTitleUsingId("NEW") + "\"))"))); } - + @SuppressWarnings("deprecation") public boolean updateUINTitleDisplayed() { - return isElementDisplayed (findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getTitleUsingId("UPDATE") + "\"))"))); + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getTitleUsingId("UPDATE") + "\"))"))); } - + public boolean isApplicationIDPreviewPagePageDisplayed() { waitTime(1); return isElementDisplayed(applicationIDPreviewPage); } - + @SuppressWarnings("deprecation") public DemographicDetailsPage clickOnDemographicDetailsTitle() { - clickOnElement(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))"))); + clickOnElement(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))"))); return new DemographicDetailsPageEnglish(driver); } - + public boolean isBothIrisImageDisplayed() { return isElementDisplayed(bothIrisImage); } - + public boolean isSingleIrisImageDisplayed() { return isElementDisplayed(singleIrisImage); } - + public boolean isFingerExceptionText() { return isElementDisplayed(fingerExceptionText); } public String getAID() { - String applicationID = getTextFromLocator(applicationIDPreviewPage).replaceAll(".*Application ID (\\d+).*", "$1"); + String applicationID = getTextFromLocator(applicationIDPreviewPage).replaceAll(".*Application ID (\\d+).*", + "$1"); return applicationID; } + + public void validatePreRegAndApplicationIdMatch(String age) { + String preRegId = AdminTestUtil.getPreRegistrationFlow(age); + + String applicationID = getAID(); + + Assert.assertEquals(applicationID, preRegId, "Mismatch between API PreReg ID and UI Application ID!"); + } + + public String getEmailId() { + String emailId = getTextFromLocator(emailIdPreviewPage) + .replaceAll(".*?([A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}).*", "$1"); + return emailId; + } + + public boolean isLostUinTitleDisplayed() { + return isElementDisplayed(lostUinTitle); + } + } diff --git a/ui-test/src/main/java/regclient/pages/english/ProfilePageEnglish.java b/ui-test/src/main/java/regclient/pages/english/ProfilePageEnglish.java index 50635ab63..78b7d00a8 100644 --- a/ui-test/src/main/java/regclient/pages/english/ProfilePageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/ProfilePageEnglish.java @@ -7,40 +7,49 @@ import regclient.page.LoginPage; import regclient.page.ProfilePage; -public class ProfilePageEnglish extends ProfilePage{ +public class ProfilePageEnglish extends ProfilePage { @AndroidFindBy(accessibility = "Profile") private WebElement profileTitle; - + @AndroidFindBy(accessibility = "LOGOUT") private WebElement logoutButton; - + @AndroidFindBy(accessibility = "There is still some action required!") private WebElement logoutPopUpMessage; - + + @AndroidFindBy(accessibility = "Reset Password") + private WebElement resetPasswordButton; public ProfilePageEnglish(AppiumDriver driver) { super(driver); } - public LoginPage clickOnLogoutButton() { - if(isElementDisplayed(logoutButton)) - clickOnElement(logoutButton); + public LoginPage clickOnLogoutButton() { + if (isElementDisplayed(logoutButton)) + clickOnElement(logoutButton); return new LoginPageEnglish(driver); - } - - public LoginPage clickOnLogoutButtonOnPopUp() { + } + + public LoginPage clickOnLogoutButtonOnPopUp() { clickOnElement(logoutButton); return new LoginPageEnglish(driver); - } - + } + public boolean isProfileTitleDisplayed() { return isElementDisplayed(profileTitle); } - + public boolean isLogoutPopUpMessageDisplayed() { return isElementDisplayed(logoutPopUpMessage); } + public boolean isResetPasswordButtonDisplayed() { + return isElementDisplayed(resetPasswordButton); + } + public LoginPage clickOnResetPasswordButton() { + clickOnElement(resetPasswordButton); + return new LoginPageEnglish(driver); + } } diff --git a/ui-test/src/main/java/regclient/pages/english/RegistrationTasksPageEnglish.java b/ui-test/src/main/java/regclient/pages/english/RegistrationTasksPageEnglish.java index 6077316a7..ba60f040d 100644 --- a/ui-test/src/main/java/regclient/pages/english/RegistrationTasksPageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/RegistrationTasksPageEnglish.java @@ -10,15 +10,14 @@ import regclient.page.RegistrationTasksPage; import regclient.page.SelectLanguagePage; - -public class RegistrationTasksPageEnglish extends RegistrationTasksPage{ +public class RegistrationTasksPageEnglish extends RegistrationTasksPage { @AndroidFindBy(accessibility = "Registration Tasks") private WebElement registrationTasksTitle; - + @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"Dashboard\")") private WebElement dashboardButton; - + @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"Profile\")") private WebElement profileButton; @@ -27,43 +26,58 @@ public class RegistrationTasksPageEnglish extends RegistrationTasksPage{ @AndroidFindBy(accessibility = "New Registration") private WebElement newRegistrationButton; - + @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"Update\")") private WebElement updateUinButton; - + @AndroidFindBy(accessibility = "Lost UIN") private WebElement lostUinButton; - + @AndroidFindBy(accessibility = "Biometric correction") private WebElement biometricCorrectionButton; @AndroidFindBy(xpath = "//android.widget.Toast[@text=\"Policy key Sync Completed\"]") - private WebElement policykeySyncCompletedMessage ; + private WebElement policykeySyncCompletedMessage; @AndroidFindBy(xpath = "//android.widget.Toast[@text=\"Master Data Sync Completed\"]") - private WebElement masterDataSyncCompletedMessage ; + private WebElement masterDataSyncCompletedMessage; @AndroidFindBy(xpath = "//android.widget.Toast[@text=\"Script Sync Completed\"]") - private WebElement scriptSyncCompletedMessage ; - + private WebElement scriptSyncCompletedMessage; + @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"Synchronize Data\")") - private WebElement synchronizeDataButton ; + private WebElement synchronizeDataButton; + + @AndroidFindBy(accessibility = "Settings\nTab 2 of 4") + private WebElement settingsButton; + + @AndroidFindBy(id = "com.android.permissioncontroller:id/permission_message") + private WebElement locationPermissionMessage; + + @AndroidFindBy(id = "com.android.permissioncontroller:id/permission_allow_foreground_only_button") + private WebElement allowWhileUsingButton; + + @AndroidFindBy(id = "com.android.permissioncontroller:id/permission_allow_one_time_button") + private WebElement allowOnceButton; + + @AndroidFindBy(id = "com.android.permissioncontroller:id/permission_deny_button") + private WebElement dontAllowButton; public RegistrationTasksPageEnglish(AppiumDriver driver) { super(driver); } - public SelectLanguagePage clickOnNewRegistrationButton() { + public SelectLanguagePage clickOnNewRegistrationButton() { clickOnElement(newRegistrationButton); return new SelectLanguagePageEnglish(driver); } - public void clickOnSynchronizeDataButton() { + public void clickOnSynchronizeDataButton() { clickOnElement(synchronizeDataButton); } public boolean isRegistrationTasksPageLoaded() { - return isElementDisplayed(registrationTasksTitle,2000); + return isElementDisplayed(registrationTasksTitle, 2000); } public boolean isOperationalTaskDisplayed() { @@ -82,53 +96,79 @@ public boolean isScriptSyncCompletedDisplayed() { return isElementDisplayed(scriptSyncCompletedMessage); } - public DashboardPage clickOnDashboardButton() { + public DashboardPage clickOnDashboardButton() { clickOnElement(dashboardButton); return new DashboardPageEnglish(driver); } - - public OperationalTaskPage clickOnOperationalTasksTitle() { + + public OperationalTaskPage clickOnOperationalTasksTitle() { clickOnElement(operationalTaskPageTitle); return new OperationalTaskPageEnglish(driver); } - + public boolean isProfileTitleDisplayed() { return isElementDisplayed(profileButton); } - - public ProfilePage clickProfileButton() { + + public ProfilePage clickProfileButton() { clickOnElement(profileButton); return new ProfilePageEnglish(driver); } - - public SelectLanguagePage clickUpdateMyUINButton() { + + public SelectLanguagePage clickUpdateMyUINButton() { clickOnElement(updateUinButton); return new SelectLanguagePageEnglish(driver); } - + public boolean isUpdateUINTitleDisplayed() { return isElementDisplayed(updateUinButton); } - + public boolean isLostUINTitleDisplayed() { return isElementDisplayed(lostUinButton); } - + public boolean isBiometricCorrectionTitleDisplayed() { return isElementDisplayed(biometricCorrectionButton); } - - public void clickSynchronizeDataButton() { + + public void clickSynchronizeDataButton() { clickOnElement(synchronizeDataButton); waitTime(50); } - + public boolean checkLastSyncDate() { String contentDesc = synchronizeDataButton.getAttribute("content-desc"); - if(contentDesc.contains("Synchronize Data\n"+getCurrentDateWord()+",")) + if (contentDesc.contains("Synchronize Data\n" + getCurrentDateWord() + ",")) return true; else return false; } + public void clickOnLostUinButton() { + clickOnElement(lostUinButton); + } + + public void clickOnSettingsButton() { + clickOnElement(settingsButton); + } + + public SelectLanguagePage clickOnBiometricCorrectionButton() { + clickOnElement(biometricCorrectionButton); + return new SelectLanguagePageEnglish(driver); + } + + public void handleLocationPermission() { + try { + if (isElementDisplayed(locationPermissionMessage)) { + clickOnElement(allowWhileUsingButton); + } + } catch (Exception e) { + } + } + + public void clickOnRegistrationTasksTab() { + clickOnElement(registrationTasksTitle); + } + } diff --git a/ui-test/src/main/java/regclient/pages/english/SelectLanguagePageEnglish.java b/ui-test/src/main/java/regclient/pages/english/SelectLanguagePageEnglish.java index 776128666..a0cee9683 100644 --- a/ui-test/src/main/java/regclient/pages/english/SelectLanguagePageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/SelectLanguagePageEnglish.java @@ -7,7 +7,8 @@ import regclient.page.ConsentPage; import regclient.page.SelectLanguagePage; import regclient.utils.TestDataReader; -public class SelectLanguagePageEnglish extends SelectLanguagePage{ + +public class SelectLanguagePageEnglish extends SelectLanguagePage { @AndroidFindBy(accessibility = "Select Language") private WebElement selectLanguageTitle; @@ -18,7 +19,7 @@ public class SelectLanguagePageEnglish extends SelectLanguagePage{ @AndroidFindBy(accessibility = "French") private WebElement frenchLanguageButton; - @AndroidFindBy(accessibility = "Arabic") + @AndroidFindBy(accessibility = "عربي") private WebElement arabicLanguageButton; @AndroidFindBy(xpath = "(//android.view.View[@content-desc=\"ಕನ್ನಡ\"])[1]") @@ -68,12 +69,12 @@ public boolean isSelectLanguagePageLoaded() { return isElementDisplayed(selectLanguageTitle); } - public void clickOnSubmitButtonWithoutSelectingLanguage() { + public void clickOnSubmitButtonWithoutSelectingLanguage() { clickOnElement(submitButton); } - public void selectSecondLanguage() { - if(TestDataReader.readData("defaultlanguage").equalsIgnoreCase("eng")) + public void selectSecondLanguage() { + if (TestDataReader.readData("defaultlanguage").equalsIgnoreCase("eng")) clickOnElement(arabicLanguageButton); else clickOnElement(englishLanguageButton); @@ -108,7 +109,7 @@ public void selectNotificationlanguage(String notificationLanguage) { } } - public void selectAllSecondLanguage() { + public void selectAllSecondLanguage() { clickOnElement(englishLanguageButton); @@ -120,19 +121,18 @@ public void selectAllSecondLanguage() { clickOnElement(hindiLanguageButton); - clickOnElement(tamilLanguageButton); + clickOnElement(tamilLanguageButton); } - - public boolean isArabicLanguageButtonEnabled() { + public boolean isArabicLanguageButtonEnabled() { return isElementEnabled(arabicLanguageButton); } - public boolean isSubmitButtonEnabled() { + public boolean isSubmitButtonEnabled() { return isElementEnabled(submitButton); } - public ConsentPage clickOnSubmitButton() { + public ConsentPage clickOnSubmitButton() { clickOnElement(submitButton); return new ConsentPageEnglish(driver); } diff --git a/ui-test/src/main/java/regclient/pages/english/SettingsPageEnglish.java b/ui-test/src/main/java/regclient/pages/english/SettingsPageEnglish.java new file mode 100644 index 000000000..fc44344cb --- /dev/null +++ b/ui-test/src/main/java/regclient/pages/english/SettingsPageEnglish.java @@ -0,0 +1,216 @@ +package regclient.pages.english; + +import java.io.IOException; +import java.io.InputStream; +import java.time.Duration; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.NoSuchElementException; +import java.util.Random; +import java.util.Set; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import io.appium.java_client.android.Activity; + +import io.appium.java_client.pagefactory.AppiumFieldDecorator; +import io.appium.java_client.touch.offset.PointOption; + +import static org.testng.Assert.assertTrue; +import org.openqa.selenium.Point; +import org.openqa.selenium.StaleElementReferenceException; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import org.openqa.selenium.By; +import org.openqa.selenium.Dimension; +import org.openqa.selenium.JavascriptExecutor; +import org.openqa.selenium.Keys; +import org.openqa.selenium.TimeoutException; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.interactions.Pause; +import org.openqa.selenium.interactions.PointerInput; +import org.openqa.selenium.interactions.Sequence; +import org.openqa.selenium.remote.RemoteWebElement; +import org.openqa.selenium.support.PageFactory; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; +import io.appium.java_client.TouchAction; +import io.appium.java_client.android.Activity; +import io.appium.java_client.android.AndroidDriver; +import io.appium.java_client.android.StartsActivity; +import regclient.api.FetchUiSpec; + +import com.fasterxml.jackson.core.exc.StreamReadException; +import com.fasterxml.jackson.databind.DatabindException; +import com.fasterxml.jackson.databind.ObjectMapper; + +import io.appium.java_client.AppiumBy; +import io.appium.java_client.AppiumDriver; +import io.appium.java_client.MobileBy; +import io.appium.java_client.pagefactory.AndroidFindBy; +import regclient.api.FetchUiSpec; +import regclient.page.BasePage; +import regclient.page.SettingsPage; + +public class SettingsPageEnglish extends SettingsPage { + + private final AppiumDriver driver; + + @AndroidFindBy(accessibility = "Scheduled Jobs Settings\nTab 1 of 3") + private WebElement scheduledJobsSettingsTab; + + @AndroidFindBy(accessibility = "Global Config Settings\nTab 2 of 3") + private WebElement globalConfigSettingsTab; + + @AndroidFindBy(accessibility = "Device Settings\nTab 3 of 3") + private WebElement deviceSettingsTab; + + @AndroidFindBy(accessibility = "Key\nServer Value\nLocal Value") + private WebElement globalConfigSettingsHeader; + + @AndroidFindBy(accessibility = "SUBMIT") + private WebElement submitButton; + + @AndroidFindBy(accessibility = "No changes to save") + private WebElement noChangesToSave; + + @AndroidFindBy(accessibility = "Device Settings") + private WebElement deviceSettingsPage; + + @AndroidFindBy(accessibility = "Scan Now") + private WebElement scanNowButton; + + @AndroidFindBy(accessibility = "ID: e88198714e67562c\nName: io.mosip.mock.sbi.face\nStatus: Ready") + private WebElement faceDeviceCard; + + @AndroidFindBy(accessibility = "ID: e88198714e67562c\nName: io.mosip.mock.sbi.iris\nStatus: Ready") + private WebElement irisDeviceCard; + + @AndroidFindBy(accessibility = "ID: e88198714e67562c\nName: io.mosip.mock.sbi.finger\nStatus: Ready") + private WebElement fingerDeviceCard; + + @AndroidFindBy(accessibility = "No devices found") + private WebElement noDevicesFound; + + @AndroidFindBy(accessibility = "Submit Changes") + private WebElement submitChangesPopup; + + @AndroidFindBy(accessibility = "CONFIRM") + private WebElement changesConfirmButton; + + @AndroidFindBy(accessibility = "CANCEL") + private WebElement changesCancelButton; + + public SettingsPageEnglish(AppiumDriver driver) { + super(driver); + this.driver = driver; + PageFactory.initElements(new AppiumFieldDecorator(driver), this); + } + + public boolean isScheduledJobsSettingsTabDisplayed() { + return isElementDisplayed(scheduledJobsSettingsTab); + } + + public boolean isGlobalConfigSettingsTabDisplayed() { + return isElementDisplayed(globalConfigSettingsTab); + } + + public boolean isDeviceSettingsTabDisplayed() { + return isElementDisplayed(deviceSettingsTab); + } + + public void clickOnGlobalConfigSettingsTab() { + clickOnElement(globalConfigSettingsTab); + } + + public boolean isGlobalConfigSettingsHeaderDisplayed() { + return isElementDisplayed(globalConfigSettingsHeader); + } + + public void clickOnSubmitButton() { + clickOnElement(submitButton); + } + + public boolean isNoChangesToSaveDisplayed() { + return isElementDisplayed(noChangesToSave); + } + + public void clickOnDeviceSettingsTab() { + clickOnElement(deviceSettingsTab); + } + + public boolean isScanNowButtonDisplayed() { + return isElementDisplayed(scanNowButton); + } + + public void clickOnScanNowButton() { + clickOnElement(scanNowButton); + } + + public boolean isDeviceSettingsPageDisplayed() { + try { + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(30)); + wait.until(ExpectedConditions.visibilityOf(deviceSettingsPage)); + return isElementDisplayed(deviceSettingsPage); + } catch (TimeoutException e) { + return false; + } + } + + public boolean isFaceDeviceCardDisplayed() { + try { + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(30)); + wait.until(ExpectedConditions.visibilityOf(faceDeviceCard)); + return isElementDisplayed(faceDeviceCard); + } catch (TimeoutException e) { + return false; + } + } + + public boolean isIrisDeviceCardDisplayed() { + return isElementDisplayed(irisDeviceCard); + } + + public boolean isFingerDeviceCardDisplayed() { + return isElementDisplayed(fingerDeviceCard); + } + + public boolean isNoDevicesFoundDisplayed() { + return isElementDisplayed(noDevicesFound); + } + + public void clickOnScheduledJobsSettingsTab() { + clickOnElement(scheduledJobsSettingsTab); + } + + public void validateDeviceCard(String deviceName) { + // Wait a bit for the card to appear (helps if page loads slowly) + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10)); + WebElement card = wait.until(ExpectedConditions + .presenceOfElementLocated(By.xpath("//*[contains(@content-desc,'" + deviceName + "')]"))); + + String desc = card.getAttribute("content-desc"); + System.out.println("Card text: " + desc); + + Pattern p = Pattern.compile("ID:\\s*([a-zA-Z0-9]+)"); + Matcher m = p.matcher(desc); + assertTrue(m.find(), "ID not found or empty"); + + assertTrue(desc.contains("Name: " + deviceName), "Device name mismatch"); + assertTrue(desc.contains("Status: Ready"), "Device status not Ready"); + } + + public boolean isSubmitChangesPopupDisplayed() { + return isElementDisplayed(submitChangesPopup); + } + + public void clickOnChangesConfirmButton() { + clickOnElement(changesConfirmButton); + } + +} diff --git a/ui-test/src/main/java/regclient/pages/english/SupervisorBiometricVerificationpageEnglish.java b/ui-test/src/main/java/regclient/pages/english/SupervisorBiometricVerificationpageEnglish.java index cace87855..867c5fec2 100644 --- a/ui-test/src/main/java/regclient/pages/english/SupervisorBiometricVerificationpageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/SupervisorBiometricVerificationpageEnglish.java @@ -7,131 +7,131 @@ import regclient.page.BiometricDetailsPage; import regclient.page.SupervisorBiometricVerificationpage; -public class SupervisorBiometricVerificationpageEnglish extends SupervisorBiometricVerificationpage{ +public class SupervisorBiometricVerificationpageEnglish extends SupervisorBiometricVerificationpage { @AndroidFindBy(accessibility = "Supervisor's Biometric Onboarding") private WebElement supervisorBiometricVerificationPageTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Iris\"))") private WebElement irisScanIcon; - - @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Right\"))") + + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Right\"))") private WebElement rightHandScanIcon; - - @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Left\"))") + + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().className(\"android.widget.ScrollView\")).scrollIntoView(new UiSelector().className(\"android.widget.ImageView\").description(\"Left Hand Scan\"))") private WebElement leftHandScanIcon; - - @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Thumbs\"))") + + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Thumbs\"))") private WebElement thumbsScanIcon; - - @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Face\"))") + + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().className(\"android.widget.ScrollView\")).scrollIntoView(new UiSelector().className(\"android.widget.ImageView\").description(\"Face Scan\"))") private WebElement faceScanIcon; - - @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Exception Scan\"))") + + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Exception Scan\"))") private WebElement exceptionScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Iris Scan\"))") private WebElement irisScanButtonTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Right Hand\"))") private WebElement rightHandScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Left Hand\"))") private WebElement leftHandScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Thumbs Scan\"))") private WebElement thumbsScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Face Scan\"))") private WebElement faceScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Exception Scan\"))") private WebElement exceptionScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().description(\"Scan\"))") private WebElement scanButton; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Iris Capture')]") private WebElement irisCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'RightHand Capture')]") private WebElement rightHandCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'LeftHand Capture')]") private WebElement leftHandCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Thumbs Capture')]") private WebElement thumbsCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Face Capture')]") private WebElement faceCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Exception Capture')]") private WebElement exceptionCapturerHeader; - + @AndroidFindBy(className = "android.widget.Button") private WebElement popUpCloseButton; - + @AndroidFindBy(accessibility = "NEXT") private WebElement nextButton; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Threshold\")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement irisScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Threshold\")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement rightHandScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Threshold\")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement leftHandScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Threshold\")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement thumbsScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Threshold\")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement faceScanQuality; - + @AndroidFindBy(accessibility = "Mark Exception") private WebElement markExceptionButton; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(1)") private WebElement oneEyeException; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(2)") private WebElement firstFingureExceptionImage; - + @AndroidFindBy(accessibility = "Mark Exception") private WebElement exceptionTypeTitle; - + @AndroidFindBy(accessibility = "Temporary") private WebElement temporaryButton; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Comments\"))") private WebElement commentsHeader; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Comments\")]/following-sibling::android.widget.EditText") private WebElement commentsTextBox; - + @AndroidFindBy(accessibility = "Marking exceptions on Face is not allowed") private WebElement markingExceptionsOnFaceIsNotAllowedText; - + @AndroidFindBy(xpath = "//android.widget.ScrollView/android.view.View[3]") private WebElement zoomButton; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Threshold\")]/following-sibling::android.view.View") private WebElement scanQualityText; - + @AndroidFindBy(accessibility = "VERIFY & SAVE") private WebElement verifyAndSaveButton; - + @AndroidFindBy(accessibility = "Dismiss") private WebElement dismissPage; - + @AndroidFindBy(accessibility = "You have onboarded successfully.") private WebElement successPopup; - + @AndroidFindBy(accessibility = "HOME") private WebElement homeButton; - + public SupervisorBiometricVerificationpageEnglish(AppiumDriver driver) { super(driver); } @@ -139,246 +139,243 @@ public SupervisorBiometricVerificationpageEnglish(AppiumDriver driver) { public void clickOnIrisScan() { clickOnElement(irisScanIcon); } - + public boolean isSupervisorBiometricVerificationPageLoaded() { return isElementDisplayed(supervisorBiometricVerificationPageTitle); } - + public void clickOnRightHandScanIcon() { clickOnElement(rightHandScanIcon); } - + public void clickOnLeftHandScanIcon() { clickOnElement(leftHandScanIcon); } - + public void clickOnThumbsScanIcon() { clickOnElement(thumbsScanIcon); } - + public void clickOnFaceScanIcon() { clickOnElement(faceScanIcon); } - + public void clickOnExceptionScanIcon() { clickOnElement(exceptionScanIcon); } - + public void clickOnScanButton() { clickOnElement(scanButton); - } - + } + public void clickOnNextButton() { clickOnElement(nextButton); } - + public void closeScanCapturePopUp() { driver.navigate().back(); } - - - public boolean isRightHandScanTitleDisplyed() { + + public boolean isRightHandScanTitleDisplyed() { return isElementDisplayed(rightHandScanTitle); } - - public boolean isLeftHandScanTitleDisplyed() { + + public boolean isLeftHandScanTitleDisplyed() { return isElementDisplayed(leftHandScanTitle); } - - public boolean isThumbsScanTitleDisplyed() { + + public boolean isThumbsScanTitleDisplyed() { return isElementDisplayed(thumbsScanTitle); } - - public boolean isFaceScanTitleDisplyed() { + + public boolean isFaceScanTitleDisplyed() { return isElementDisplayed(faceScanTitle); } - - public boolean isExceptionScanTitleDisplyed() { + + public boolean isExceptionScanTitleDisplyed() { return isElementDisplayed(exceptionScanTitle); } - - public boolean isIrisScan() { - return isElementDisplayed(irisCapturerHeader,2000); + + public boolean isIrisScan() { + return isElementDisplayed(irisCapturerHeader, 2000); } - - public boolean isRightHandScan() { - return isElementDisplayed(rightHandCapturerHeader,2000); + + public boolean isRightHandScan() { + return isElementDisplayed(rightHandCapturerHeader, 2000); } - - public boolean isLeftHandScan() { - return isElementDisplayed(leftHandCapturerHeader,2000); + + public boolean isLeftHandScan() { + return isElementDisplayed(leftHandCapturerHeader, 2000); } - - public boolean isThumbsScan() { - return isElementDisplayed(thumbsCapturerHeader,2000); + + public boolean isThumbsScan() { + return isElementDisplayed(thumbsCapturerHeader, 2000); } - - public boolean isFaceScan() { - return isElementDisplayed(faceCapturerHeader,2000); + + public boolean isFaceScan() { + return isElementDisplayed(faceCapturerHeader, 2000); } - - public boolean isExceptionScan() { - return isElementDisplayed(exceptionCapturerHeader,2000); + + public boolean isExceptionScan() { + return isElementDisplayed(exceptionCapturerHeader, 2000); } - - public boolean isIrisScanQualityDisplyed() { + + public boolean isIrisScanQualityDisplyed() { return isElementDisplayed(irisScanQuality); } - - public boolean isRightHandScanQualityDisplyed() { + + public boolean isRightHandScanQualityDisplyed() { return isElementDisplayed(rightHandScanQuality); } - - public boolean isLeftHandScanQualityDisplyed() { + + public boolean isLeftHandScanQualityDisplyed() { return isElementDisplayed(leftHandScanQuality); } - - public boolean isThumbsScanQualityDisplyed() { + + public boolean isThumbsScanQualityDisplyed() { return isElementDisplayed(thumbsScanQuality); } - - public boolean isFaceScanQualityDisplyed() { + + public boolean isFaceScanQualityDisplyed() { return isElementDisplayed(faceScanQuality); } - + public void clickOnMarkExceptionButton() { clickOnElement(markExceptionButton); } - + public void markOneEyeException() { clickOnElement(oneEyeException); } - + public void markOneFingureException() { clickOnElement(firstFingureExceptionImage); } - - public boolean isExceptionTypeTitleDisplyed() { + + public boolean isExceptionTypeTitleDisplyed() { return isElementDisplayed(exceptionTypeTitle); } - + public void clickOnExceptionTypeTemporaryButton() { - if(!isElementDisplayedOnScreen(temporaryButton)) { + if (!isElementDisplayedOnScreen(temporaryButton)) { swipeOrScroll(); } - clickOnElement(temporaryButton); + clickOnElement(temporaryButton); } - - public boolean isCommentHeaderDisplyed() { + + public boolean isCommentHeaderDisplyed() { return isElementDisplayed(commentsHeader); } - - public void enterCommentsInTextBox(String comments) { - if(!isElementDisplayedOnScreen(commentsTextBox)) { + + public void enterCommentsInTextBox(String comments) { + if (!isElementDisplayedOnScreen(commentsTextBox)) { swipeOrScroll(); } - clickAndsendKeysToTextBox(commentsTextBox,comments); + clickAndsendKeysToTextBox(commentsTextBox, comments); } - + public void clickOnIrisScanTitle() { clickOnElement(irisScanButtonTitle); } - + public void clickOnThumbsScanTitle() { clickOnElement(thumbsScanTitle); } - - public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed() { + + public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed() { return isElementDisplayed(markingExceptionsOnFaceIsNotAllowedText); } - - public boolean isZoomButtonDisplyed() { + + public boolean isZoomButtonDisplyed() { return true; // return isElementDisplayed(zoomButton); } - + public void clickOnRightHandScanTitle() { clickOnElement(rightHandScanTitle); } - + public void clickOnleftHandScanTitle() { clickOnElement(leftHandScanTitle); } - + public void clickOnFaceScanTitle() { clickOnElement(faceScanTitle); } - + public boolean checkThresholdValueIris() { - int requiredValue=60; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 60; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueRightHand() { - int requiredValue=40; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 40; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueLeftHand() { - int requiredValue=60; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 60; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueThumbs() { - int requiredValue=40; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 40; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueFace() { - int requiredValue=90; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 90; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean isVerifyAndSaveButtonEnabled() { return isElementDisplayed(verifyAndSaveButton); - - + } @Override public void clickOnVerifyAndSaveButton() { clickOnElement(verifyAndSaveButton); - + } - + public boolean isDismissPageLoaded() { return isElementDisplayed(dismissPage); } - - + public boolean isOperatorOnboardedPopupLoaded() { - return isElementDisplayed(successPopup); + return isElementDisplayed(successPopup); } - + public void clickOnHomeButton() { clickOnElement(homeButton); } - + public void clickOnBackButton() { driver.navigate().back(); } diff --git a/ui-test/src/main/java/regclient/pages/english/UpdateOperatorBiometricspageEnglish.java b/ui-test/src/main/java/regclient/pages/english/UpdateOperatorBiometricspageEnglish.java index c57f360e7..b1d0413f7 100644 --- a/ui-test/src/main/java/regclient/pages/english/UpdateOperatorBiometricspageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/UpdateOperatorBiometricspageEnglish.java @@ -6,368 +6,368 @@ import io.appium.java_client.pagefactory.AndroidFindBy; import regclient.page.UpdateOperatorBiometricspage; -public class UpdateOperatorBiometricspageEnglish extends UpdateOperatorBiometricspage{ +public class UpdateOperatorBiometricspageEnglish extends UpdateOperatorBiometricspage { public UpdateOperatorBiometricspageEnglish(AppiumDriver driver) { super(driver); - } - + @AndroidFindBy(accessibility = "Supervisor's Biometric Update") private WebElement supervisorBiometricUpdatePageTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Iris\"))") private WebElement irisScanIcon; - - @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Right\"))") + + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Right\"))") private WebElement rightHandScanIcon; - - @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Left\"))") + + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().className(\"android.widget.ScrollView\")).scrollIntoView(new UiSelector().className(\"android.widget.ImageView\").description(\"Left Hand Scan\"))") private WebElement leftHandScanIcon; - - @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Thumbs\"))") + + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Thumbs\"))") private WebElement thumbsScanIcon; - - @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Face\"))") + + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().className(\"android.widget.ScrollView\")).scrollIntoView(new UiSelector().className(\"android.widget.ImageView\").description(\"Face Scan\"))") private WebElement faceScanIcon; - - @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Exception Scan\"))") + + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Exception Scan\"))") private WebElement exceptionScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Iris Scan\"))") private WebElement irisScanButtonTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Right Hand\"))") private WebElement rightHandScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Left Hand\"))") private WebElement leftHandScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Thumbs Scan\"))") private WebElement thumbsScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Face Scan\"))") private WebElement faceScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Exception Scan\"))") private WebElement exceptionScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().description(\"Scan\"))") private WebElement scanButton; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Iris Capture')]") private WebElement irisCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'RightHand Capture')]") private WebElement rightHandCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'LeftHand Capture')]") private WebElement leftHandCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Thumbs Capture')]") private WebElement thumbsCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Face Capture')]") private WebElement faceCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Exception Capture')]") private WebElement exceptionCapturerHeader; - + @AndroidFindBy(className = "android.widget.Button") private WebElement popUpCloseButton; - + @AndroidFindBy(accessibility = "NEXT") private WebElement nextButton; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Threshold\")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement irisScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Threshold\")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement rightHandScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Threshold\")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement leftHandScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Threshold\")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement thumbsScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Threshold\")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement faceScanQuality; - + @AndroidFindBy(accessibility = "Mark Exception") private WebElement markExceptionButton; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(1)") private WebElement oneEyeException; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(2)") private WebElement firstFingureExceptionImage; - + @AndroidFindBy(accessibility = "Mark Exception") private WebElement exceptionTypeTitle; - + @AndroidFindBy(accessibility = "Temporary") private WebElement temporaryButton; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Comments\"))") private WebElement commentsHeader; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Comments\")]/following-sibling::android.widget.EditText") private WebElement commentsTextBox; - + @AndroidFindBy(accessibility = "Marking exceptions on Face is not allowed") private WebElement markingExceptionsOnFaceIsNotAllowedText; - + @AndroidFindBy(xpath = "//android.widget.ScrollView/android.view.View[3]") private WebElement zoomButton; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Threshold\")]/following-sibling::android.view.View") private WebElement scanQualityText; - + @AndroidFindBy(accessibility = "VERIFY & SAVE") private WebElement verifyAndSaveButton; - + @AndroidFindBy(accessibility = "Dismiss") private WebElement dismissPage; - + @AndroidFindBy(accessibility = "Operator biometrics updated successfully.") private WebElement successPopup; - + @AndroidFindBy(accessibility = "HOME") private WebElement homeButton; - + + @AndroidFindBy(accessibility = "Update Operator Biometrics") + private WebElement updateOperatorBiometrics; + public void clickOnIrisScan() { clickOnElement(irisScanIcon); } - + public boolean isSupervisorBiometricUpdatePageLoaded() { return isElementDisplayed(supervisorBiometricUpdatePageTitle); } - + public void clickOnRightHandScanIcon() { clickOnElement(rightHandScanIcon); } - + public void clickOnLeftHandScanIcon() { clickOnElement(leftHandScanIcon); } - + public void clickOnThumbsScanIcon() { clickOnElement(thumbsScanIcon); } - + public void clickOnFaceScanIcon() { clickOnElement(faceScanIcon); } - + public void clickOnExceptionScanIcon() { clickOnElement(exceptionScanIcon); } - + public void clickOnScanButton() { clickOnElement(scanButton); - } - + } + public void clickOnNextButton() { clickOnElement(nextButton); } - + public void closeScanCapturePopUp() { driver.navigate().back(); } - - - public boolean isRightHandScanTitleDisplyed() { + + public boolean isRightHandScanTitleDisplyed() { return isElementDisplayed(rightHandScanTitle); } - - public boolean isLeftHandScanTitleDisplyed() { + + public boolean isLeftHandScanTitleDisplyed() { return isElementDisplayed(leftHandScanTitle); } - - public boolean isThumbsScanTitleDisplyed() { + + public boolean isThumbsScanTitleDisplyed() { return isElementDisplayed(thumbsScanTitle); } - - public boolean isFaceScanTitleDisplyed() { + + public boolean isFaceScanTitleDisplyed() { return isElementDisplayed(faceScanTitle); } - - public boolean isExceptionScanTitleDisplyed() { + + public boolean isExceptionScanTitleDisplyed() { return isElementDisplayed(exceptionScanTitle); } - - public boolean isIrisScan() { - return isElementDisplayed(irisCapturerHeader,2000); + + public boolean isIrisScan() { + return isElementDisplayed(irisCapturerHeader, 2000); } - - public boolean isRightHandScan() { - return isElementDisplayed(rightHandCapturerHeader,2000); + + public boolean isRightHandScan() { + return isElementDisplayed(rightHandCapturerHeader, 2000); } - - public boolean isLeftHandScan() { - return isElementDisplayed(leftHandCapturerHeader,2000); + + public boolean isLeftHandScan() { + return isElementDisplayed(leftHandCapturerHeader, 2000); } - - public boolean isThumbsScan() { - return isElementDisplayed(thumbsCapturerHeader,2000); + + public boolean isThumbsScan() { + return isElementDisplayed(thumbsCapturerHeader, 2000); } - - public boolean isFaceScan() { - return isElementDisplayed(faceCapturerHeader,2000); + + public boolean isFaceScan() { + return isElementDisplayed(faceCapturerHeader, 2000); } - - public boolean isExceptionScan() { - return isElementDisplayed(exceptionCapturerHeader,2000); + + public boolean isExceptionScan() { + return isElementDisplayed(exceptionCapturerHeader, 2000); } - - public boolean isIrisScanQualityDisplyed() { + + public boolean isIrisScanQualityDisplyed() { return isElementDisplayed(irisScanQuality); } - - public boolean isRightHandScanQualityDisplyed() { + + public boolean isRightHandScanQualityDisplyed() { return isElementDisplayed(rightHandScanQuality); } - - public boolean isLeftHandScanQualityDisplyed() { + + public boolean isLeftHandScanQualityDisplyed() { return isElementDisplayed(leftHandScanQuality); } - - public boolean isThumbsScanQualityDisplyed() { + + public boolean isThumbsScanQualityDisplyed() { return isElementDisplayed(thumbsScanQuality); } - - public boolean isFaceScanQualityDisplyed() { + + public boolean isFaceScanQualityDisplyed() { return isElementDisplayed(faceScanQuality); } - + public void clickOnMarkExceptionButton() { clickOnElement(markExceptionButton); } - + public void markOneEyeException() { clickOnElement(oneEyeException); } - + public void markOneFingureException() { clickOnElement(firstFingureExceptionImage); } - - public boolean isExceptionTypeTitleDisplyed() { + + public boolean isExceptionTypeTitleDisplyed() { return isElementDisplayed(exceptionTypeTitle); } - + public void clickOnExceptionTypeTemporaryButton() { - if(!isElementDisplayedOnScreen(temporaryButton)) { + if (!isElementDisplayedOnScreen(temporaryButton)) { swipeOrScroll(); } - clickOnElement(temporaryButton); + clickOnElement(temporaryButton); } - - public boolean isCommentHeaderDisplyed() { + + public boolean isCommentHeaderDisplyed() { return isElementDisplayed(commentsHeader); } - - public void enterCommentsInTextBox(String comments) { - if(!isElementDisplayedOnScreen(commentsTextBox)) { + + public void enterCommentsInTextBox(String comments) { + if (!isElementDisplayedOnScreen(commentsTextBox)) { swipeOrScroll(); } - clickAndsendKeysToTextBox(commentsTextBox,comments); + clickAndsendKeysToTextBox(commentsTextBox, comments); } - + public void clickOnIrisScanTitle() { clickOnElement(irisScanButtonTitle); } - + public void clickOnThumbsScanTitle() { clickOnElement(thumbsScanTitle); } - - public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed() { + + public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed() { return isElementDisplayed(markingExceptionsOnFaceIsNotAllowedText); } - - public boolean isZoomButtonDisplyed() { + + public boolean isZoomButtonDisplyed() { return true; // return isElementDisplayed(zoomButton); - + } - + public void clickOnRightHandScanTitle() { clickOnElement(rightHandScanTitle); } - + public void clickOnLeftHandScanTitle() { clickOnElement(leftHandScanTitle); } - + public void clickOnFaceScanTitle() { clickOnElement(faceScanTitle); } - + public boolean checkThresholdValueIris() { - int requiredValue=60; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 60; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueRightHand() { - int requiredValue=40; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 40; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueLeftHand() { - int requiredValue=60; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 60; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueThumbs() { - int requiredValue=40; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 40; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueFace() { - int requiredValue=90; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 90; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean isVerifyAndSaveButtonEnabled() { return isElementDisplayed(verifyAndSaveButton); } - + public boolean isDismissPageLoaded() { return isElementDisplayed(dismissPage); } - - + public boolean isOperatorBiometricsUpdatedPopupLoaded() { - return isElementDisplayed(successPopup); + return isElementDisplayed(successPopup); } - + public void clickOnHomeButton() { clickOnElement(homeButton); } @@ -375,10 +375,14 @@ public void clickOnHomeButton() { @Override public void clickOnVerifyAndSaveButton() { clickOnElement(verifyAndSaveButton); - + } public void clickOnBackButton() { driver.navigate().back(); } + + public boolean isUpdateOperatorBiometricsPageLoaded() { + return isElementDisplayed(updateOperatorBiometrics); + } } diff --git a/ui-test/src/main/java/regclient/pages/english/UpdateUINPageEnglish.java b/ui-test/src/main/java/regclient/pages/english/UpdateUINPageEnglish.java index 0b5f0a91a..ecc81121c 100644 --- a/ui-test/src/main/java/regclient/pages/english/UpdateUINPageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/UpdateUINPageEnglish.java @@ -1,6 +1,5 @@ package regclient.pages.english; - import static org.testng.Assert.assertTrue; import java.util.List; @@ -14,7 +13,7 @@ import regclient.page.ConsentPage; import regclient.page.UpdateUINPage; -public class UpdateUINPageEnglish extends UpdateUINPage{ +public class UpdateUINPageEnglish extends UpdateUINPage { @AndroidFindBy(xpath = "//android.widget.EditText") private WebElement UINNumberTextBox; @@ -31,13 +30,16 @@ public UpdateUINPageEnglish(AppiumDriver driver) { @SuppressWarnings("deprecation") public boolean isUpdateMyUINTitleDisplayed() { - return isElementDisplayed (findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getTitleUsingId("UPDATE") + "\"))"))); + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getTitleUsingId("UPDATE") + "\"))"))); } - public void enterUIN(String UIN) { - clickAndsendKeysToTextBox(UINNumberTextBox,UIN); + + public void enterUIN(String UIN) { + clickAndsendKeysToTextBox(UINNumberTextBox, UIN); } - public ConsentPage clickOnContinueButton() { + public ConsentPage clickOnContinueButton() { clickOnElement(continueButton); return new ConsentPageEnglish(driver); } @@ -47,18 +49,22 @@ public boolean isInvalidUINErrorMessageDisplayed() { } public void selectUpdateValue(String page) { - List groupLabelList=FetchUiSpec.getAllGroupLabelUsingId(page); - for(String title : groupLabelList) { - WebElement webelement =findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+title+"\")")); - assertTrue(isElementDisplayed(webelement),"Verify if "+title+" title is displayed in update uin page"); - clickOnElement(webelement); - } + List groupLabelList = FetchUiSpec.getAllGroupLabelUsingId(page); + for (String title : groupLabelList) { + WebElement webelement = findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\"" + title + "\")")); + assertTrue(isElementDisplayed(webelement), "Verify if " + title + " title is displayed in update uin page"); + clickOnElement(webelement); + } } public void selectUpdateIntroducerDetails() { - WebElement webelement =findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getGroupValueUsingId("introducerName")+"\")")); - assertTrue(isElementDisplayed(webelement),"Verify if "+FetchUiSpec.getGroupValueUsingId("introducerName")+" title is displayed in update uin page"); - clickOnElement(webelement); - } + WebElement webelement = findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\"" + + FetchUiSpec.getGroupValueUsingId("introducerName") + "\")")); + assertTrue(isElementDisplayed(webelement), "Verify if " + FetchUiSpec.getGroupValueUsingId("introducerName") + + " title is displayed in update uin page"); + clickOnElement(webelement); + } } diff --git a/ui-test/src/main/java/regclient/pages/french/AcknowledgementPageFrench.java b/ui-test/src/main/java/regclient/pages/french/AcknowledgementPageFrench.java index ed00434a5..76d866996 100644 --- a/ui-test/src/main/java/regclient/pages/french/AcknowledgementPageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/AcknowledgementPageFrench.java @@ -12,70 +12,71 @@ import regclient.pages.english.DemographicDetailsPageEnglish; import regclient.pages.english.RegistrationTasksPageEnglish; -public class AcknowledgementPageFrench extends AcknowledgementPage{ +public class AcknowledgementPageFrench extends AcknowledgementPage { @AndroidFindBy(accessibility = "Accusé de réception d'inscription") private WebElement acknowledgementPageTitle; - - @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\"Application ID\"))") + + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0))" + + ".scrollIntoView(new UiSelector().textContains(\"ID de l’application\"))") private WebElement applicationID; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.Image\")") private WebElement qrCodeImage; - + @AndroidFindBy(accessibility = "Aller à la maison") private WebElement goToHomeButton; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\"Informations démographiques\"))") private WebElement demographicInformationInAcknowledgementPage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\"Documents\"))") private WebElement documentsInformationInAcknowledgementPage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\"Biométrie\"))") private WebElement biometricsInformationInAcknowledgementPage; - - + public AcknowledgementPageFrench(AppiumDriver driver) { super(driver); } - + public RegistrationTasksPage clickOnGoToHomeButton() { clickOnElement(goToHomeButton); return new RegistrationTasksPageEnglish(driver); - } - + public boolean isAcknowledgementPageDisplayed() { return isElementDisplayed(acknowledgementPageTitle); } - + public boolean isApplicationIDDisplayed() { return isElementDisplayed(applicationID); } - + public boolean isQrCodeImageDisplayed() { return isElementDisplayed(qrCodeImage); } - + public boolean isDemographicInformationInAcknowledgementPageDisplayed() { return isElementDisplayed(demographicInformationInAcknowledgementPage); } - + public boolean isDocumentsInformationInAcknowledgementPageDisplayed() { return isElementDisplayed(documentsInformationInAcknowledgementPage); } - + public boolean isBiometricsInformationInAcknowledgementPageDisplayed() { return isElementDisplayed(biometricsInformationInAcknowledgementPage); } - + @SuppressWarnings("deprecation") public DemographicDetailsPage clickOnDemographicDetailsTitle() { - clickOnElement(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))"))); + clickOnElement(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))"))); return new DemographicDetailsPageEnglish(driver); - } - + } + public String getAID() { return getTextFromLocator(applicationID); } diff --git a/ui-test/src/main/java/regclient/pages/french/ApplicantBiometricsPageFrench.java b/ui-test/src/main/java/regclient/pages/french/ApplicantBiometricsPageFrench.java index b0470fc39..572e46098 100644 --- a/ui-test/src/main/java/regclient/pages/french/ApplicantBiometricsPageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/ApplicantBiometricsPageFrench.java @@ -10,123 +10,122 @@ import regclient.page.BiometricDetailsPage; import regclient.pages.english.BiometricDetailsPageEnglish; -public class ApplicantBiometricsPageFrench extends ApplicantBiometricsPage{ - +public class ApplicantBiometricsPageFrench extends ApplicantBiometricsPage { + @AndroidFindBy(accessibility = "Iris ANALYSE") private WebElement irisScanButton; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Iris ANALYSE\"))") private WebElement irisScanButtonTitle; - + @AndroidFindBy(accessibility = "Permanent") private WebElement permanentButton; - + @AndroidFindBy(accessibility = "Temporaire") private WebElement temporaryButton; - + @AndroidFindBy(accessibility = "Marquer l'exception") private WebElement markExceptionButton; - + @AndroidFindBy(accessibility = "Marquer l'exception") private WebElement exceptionTypeTitle; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(1)") private WebElement oneEyeException; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(2)") private WebElement firstFingureExceptionImage; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(1)") private WebElement secondFingureExceptionImage; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(3)") private WebElement thirdFingureExceptionImage; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(4)") private WebElement forthFingureExceptionImage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Main droite ANALYSE\"))") private WebElement rightHandScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Main gauche ANALYSE\"))") private WebElement leftHandScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Pouces ANALYSE\"))") private WebElement thumbsScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Visage ANALYSE\"))") private WebElement faceScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Exception ANALYSE\"))") private WebElement exceptionScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().description(\"ANALYSE\"))") private WebElement scanButton; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Iris Capturer')]") private WebElement irisCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'RightHand Capturer')]") private WebElement rightHandCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'LeftHand Capturer')]") private WebElement leftHandCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Thumbs Capturer')]") private WebElement thumbsCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Face Capturer')]") private WebElement faceCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Exception Capturer')]") private WebElement exceptionCapturerHeader; - + @AndroidFindBy(xpath = "//android.widget.ScrollView/android.view.View[3]") private WebElement zoomButton; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Commentaires\")]/following-sibling::android.widget.EditText") private WebElement commentsTextBox; - + @AndroidFindBy(className = "android.widget.Button") private WebElement popUpCloseButton; - + @AndroidFindBy(accessibility = "PROCHAINE") private WebElement nextButton; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Commentaires\"))") private WebElement commentsHeader; - + @AndroidFindBy(xpath = "//android.view.View[@content-desc=\"Des exceptions\"]/following-sibling::android.view.View[@content-desc=\"1\"]") private WebElement exceptionCount; - - + public ApplicantBiometricsPageFrench(AppiumDriver driver) { super(driver); } - - public void enterCommentsInTextBox(String comments) { - if(!isElementDisplayedOnScreen(commentsTextBox)) { + + public void enterCommentsInTextBox(String comments) { + if (!isElementDisplayedOnScreen(commentsTextBox)) { swipeOrScroll(); } - clickAndsendKeysToTextBox(commentsTextBox,comments); + clickAndsendKeysToTextBox(commentsTextBox, comments); } public void clickOnScanButton() { clickOnElement(scanButton); - } + } public void clickOnExceptionTypePermanentButton() { - if(!isElementDisplayedOnScreen(permanentButton)) { + if (!isElementDisplayedOnScreen(permanentButton)) { swipeOrScroll(); } clickOnElement(permanentButton); } public void clickOnExceptionTypeTemporaryButton() { - if(!isElementDisplayedOnScreen(temporaryButton)) { + if (!isElementDisplayedOnScreen(temporaryButton)) { swipeOrScroll(); } - clickOnElement(temporaryButton); + clickOnElement(temporaryButton); } public void markOneEyeException() { @@ -192,69 +191,73 @@ public BiometricDetailsPage clickOnBackButton() { } @SuppressWarnings("deprecation") - public boolean isApplicantBiometricsPageDisplyed() { - return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("individualBiometrics") + "\"))"))); + public boolean isApplicantBiometricsPageDisplyed() { + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getValueUsingId("individualBiometrics") + "\"))"))); } @SuppressWarnings("deprecation") - public boolean isAuthenticationBiometricsPageDisplyed() { - return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("individualAuthBiometrics") + "\"))"))); + public boolean isAuthenticationBiometricsPageDisplyed() { + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getValueUsingId("individualAuthBiometrics") + "\"))"))); } - public boolean isExceptionTypeTitleDisplyed() { + public boolean isExceptionTypeTitleDisplyed() { return isElementDisplayed(exceptionTypeTitle); } - public boolean isRightHandScanTitleDisplyed() { + public boolean isRightHandScanTitleDisplyed() { return isElementDisplayed(rightHandScanTitle); } - public boolean isLeftHandScanTitleDisplyed() { + public boolean isLeftHandScanTitleDisplyed() { return isElementDisplayed(leftHandScanTitle); } - public boolean isThumbsScanTitleDisplyed() { + public boolean isThumbsScanTitleDisplyed() { return isElementDisplayed(thumbsScanTitle); } - public boolean isFaceScanTitleDisplyed() { + public boolean isFaceScanTitleDisplyed() { return isElementDisplayed(faceScanTitle); } - public boolean isExceptionScanTitleDisplyed() { + public boolean isExceptionScanTitleDisplyed() { return isElementDisplayed(exceptionScanTitle); } - public boolean isIrisScan() { - return isElementDisplayed(irisCapturerHeader,2000); + public boolean isIrisScan() { + return isElementDisplayed(irisCapturerHeader, 2000); } - public boolean isRightHandScan() { - return isElementDisplayed(rightHandCapturerHeader,2000); + public boolean isRightHandScan() { + return isElementDisplayed(rightHandCapturerHeader, 2000); } - public boolean isLeftHandScan() { - return isElementDisplayed(leftHandCapturerHeader,2000); + public boolean isLeftHandScan() { + return isElementDisplayed(leftHandCapturerHeader, 2000); } - public boolean isThumbsScan() { - return isElementDisplayed(thumbsCapturerHeader,2000); + public boolean isThumbsScan() { + return isElementDisplayed(thumbsCapturerHeader, 2000); } - public boolean isFaceScan() { - return isElementDisplayed(faceCapturerHeader,2000); + public boolean isFaceScan() { + return isElementDisplayed(faceCapturerHeader, 2000); } - public boolean isExceptionScan() { - return isElementDisplayed(exceptionCapturerHeader,2000); + public boolean isExceptionScan() { + return isElementDisplayed(exceptionCapturerHeader, 2000); } - public boolean isCommentHeaderDisplyed() { + public boolean isCommentHeaderDisplyed() { return isElementDisplayed(commentsHeader); } - public boolean isExceptionCountDisplyed() { - if(!isElementDisplayedOnScreen(exceptionCount)) { + public boolean isExceptionCountDisplyed() { + if (!isElementDisplayedOnScreen(exceptionCount)) { swipeOrScroll(); isElementDisplayed(exceptionCount); } diff --git a/ui-test/src/main/java/regclient/pages/french/AuthenticationPageFrench.java b/ui-test/src/main/java/regclient/pages/french/AuthenticationPageFrench.java index b22ce29ba..336cd8bec 100644 --- a/ui-test/src/main/java/regclient/pages/french/AuthenticationPageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/AuthenticationPageFrench.java @@ -7,39 +7,46 @@ import regclient.page.AcknowledgementPage; import regclient.page.AuthenticationPage; -public class AuthenticationPageFrench extends AuthenticationPage{ +public class AuthenticationPageFrench extends AuthenticationPage { @AndroidFindBy(accessibility = "Authentification en utilisant un mot de passe") private WebElement authenticationPageTitle; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.EditText\").instance(0)") private WebElement userNameTextBox; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.EditText\").instance(1)") private WebElement passwordTextBox; - + @AndroidFindBy(accessibility = "AUTHENTIFIER") private WebElement authenticateButton; - + + @AndroidFindBy(xpath = "//android.view.View[@content-desc='Authentication using Password']/preceding-sibling::android.widget.ImageView") + private WebElement authenticationImage; + public AuthenticationPageFrench(AppiumDriver driver) { super(driver); } - - public void enterUserName(String username) { - clickAndsendKeysToTextBox(userNameTextBox,username); + + public void enterUserName(String username) { + clickAndsendKeysToTextBox(userNameTextBox, username); } - - public void enterPassword(String password) { - clickAndsendKeysToTextBox(passwordTextBox,password); + + public void enterPassword(String password) { + clickAndsendKeysToTextBox(passwordTextBox, password); } - + public boolean isAuthenticationPageDisplayed() { return isElementDisplayed(authenticationPageTitle); } - + public AcknowledgementPage clickOnAuthenticatenButton() { clickOnElement(authenticateButton); return new AcknowledgementPageFrench(driver); } + public boolean isAuthenticationImageDisplayed() { + return isElementDisplayed(authenticationImage); + } + } diff --git a/ui-test/src/main/java/regclient/pages/french/BiometricDetailsPageFrench.java b/ui-test/src/main/java/regclient/pages/french/BiometricDetailsPageFrench.java index d78166010..bada23085 100644 --- a/ui-test/src/main/java/regclient/pages/french/BiometricDetailsPageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/BiometricDetailsPageFrench.java @@ -15,110 +15,138 @@ import regclient.pages.english.IntroducerBiometricPageEnglish; import regclient.pages.english.PreviewPageEnglish; - -public class BiometricDetailsPageFrench extends BiometricDetailsPage{ +public class BiometricDetailsPageFrench extends BiometricDetailsPage { @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Iris\"))") private WebElement irisScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Main droite\"))") private WebElement rightHandScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Main gauche\"))") private WebElement leftHandScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Pouces ANALYSE\"))") private WebElement thumbsScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Visage ANALYSE\"))") private WebElement faceScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Exception\"))") private WebElement exceptionScanIcon; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc,\"Introducteur Biométrie\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Iris ANALYSE\"]") private WebElement introducerIrisScanIcon; - + @AndroidFindBy(accessibility = "CONTINUER") private WebElement continueButton; + @AndroidFindBy(xpath = "//android.widget.EditText[contains(@hint, \"Identifiant de la demande d'information supplémentaire\")]") + private WebElement additionalInfoRequestIdTextbox; + public BiometricDetailsPageFrench(AppiumDriver driver) { super(driver); } - + @SuppressWarnings("deprecation") - public boolean isBiometricDetailsPageDisplayed() { - return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("individualBiometrics") + "\"))"))); + public boolean isBiometricDetailsPageDisplayed() { + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getValueUsingId("individualBiometrics") + "\"))"))); } - + @SuppressWarnings("deprecation") - public boolean isAuthenticationBiometricTitleDisplayed() { - return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("individualAuthBiometrics") + "\"))"))); + public boolean isAuthenticationBiometricTitleDisplayed() { + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getValueUsingId("individualAuthBiometrics") + "\"))"))); } - + public ApplicantBiometricsPage clickOnIrisScan() { clickOnElement(irisScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public ApplicantBiometricsPage clickOnRightHandScanIcon() { clickOnElement(rightHandScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public ApplicantBiometricsPage clickOnLeftHandScanIcon() { clickOnElement(leftHandScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public ApplicantBiometricsPage clickOnThumbsScanIcon() { clickOnElement(thumbsScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public ApplicantBiometricsPage clickOnFaceScanIcon() { clickOnElement(faceScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public ApplicantBiometricsPage clickOnExceptionScanIcon() { clickOnElement(exceptionScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public IntroducerBiometricPage clickOnIntroducerIrisScan() { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Iris Scan\"]"))); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + + FetchUiSpec.getValueUsingId("introducerBiometrics") + + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Iris Scan\"]"))); return new IntroducerBiometricPageEnglish(driver); } - + public IntroducerBiometricPage clickOnIntroducerRightHandScan() { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Right\"]"))); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + + FetchUiSpec.getValueUsingId("introducerBiometrics") + + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Right\"]"))); return new IntroducerBiometricPageEnglish(driver); } - + public IntroducerBiometricPage clickOnIntroducerLeftHandScan() { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Left\"]"))); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + + FetchUiSpec.getValueUsingId("introducerBiometrics") + + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Left\"]"))); return new IntroducerBiometricPageEnglish(driver); } - + public IntroducerBiometricPage clickOnIntroducerThumbScan() { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Thumbs\"]"))); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + + FetchUiSpec.getValueUsingId("introducerBiometrics") + + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Thumbs\"]"))); return new IntroducerBiometricPageEnglish(driver); } - + public IntroducerBiometricPage clickOnIntroducerFaceScan() { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Face\"]"))); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + + FetchUiSpec.getValueUsingId("introducerBiometrics") + + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Face\"]"))); return new IntroducerBiometricPageEnglish(driver); } - - public PreviewPage clickOnContinueButton() { + + public PreviewPage clickOnContinueButton() { clickOnElement(continueButton); return new PreviewPageEnglish(driver); } + + @Override + public boolean isAdditionalInfoRequestIdTextboxDisplayed() { + // TODO Auto-generated method stub + return false; + } + + @Override + public void enterAdditionalInfoUsingEmail(String emailId) { + // TODO Auto-generated method stub + + } } diff --git a/ui-test/src/main/java/regclient/pages/french/ConsentPageFrench.java b/ui-test/src/main/java/regclient/pages/french/ConsentPageFrench.java index 01938bcd8..ac56f4869 100644 --- a/ui-test/src/main/java/regclient/pages/french/ConsentPageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/ConsentPageFrench.java @@ -12,47 +12,60 @@ import regclient.pages.english.DemographicDetailsPageEnglish; import regclient.pages.english.RegistrationTasksPageEnglish; - -public class ConsentPageFrench extends ConsentPage{ +public class ConsentPageFrench extends ConsentPage { @AndroidFindBy(accessibility = "INFORMÉ") private WebElement informedButton; - + @AndroidFindBy(accessibility = "ANNULER") private WebElement cancelButton; - + public ConsentPageFrench(AppiumDriver driver) { super(driver); } - + @SuppressWarnings("deprecation") - public boolean isConsentPageDisplayed() { - return isElementDisplayed(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("consentdet") + "\"))")); + public boolean isPageDisplayed(String pageKey) { + try { + String screenTitle = FetchUiSpec.getScreenTitle(pageKey); + + WebElement pageElement = findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0))" + + ".scrollIntoView(new UiSelector().descriptionContains(\"" + screenTitle + "\"))")); + + return isElementDisplayed(pageElement); + + } catch (Exception e) { + return false; // page not found or not visible + } } @SuppressWarnings("deprecation") public boolean isCheckBoxReadable() { - return isElementDisplayed (findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("consent") + "\"))"))); + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getValueUsingId("consent") + "\"))"))); } - - public boolean isInformedButtonEnabled() { + + public boolean isInformedButtonEnabled() { return isElementEnabled(informedButton); } - public DemographicDetailsPage clickOnInformedButton() { + public DemographicDetailsPage clickOnInformedButton() { clickOnElement(informedButton); return new DemographicDetailsPageEnglish(driver); } - public RegistrationTasksPage clickOnCancelButton() { clickOnElement(cancelButton); - return new RegistrationTasksPageEnglish(driver); + return new RegistrationTasksPageEnglish(driver); } - + @SuppressWarnings("deprecation") public boolean updateUINTitleDisplayed() { - return isElementDisplayed (findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getTitleUsingId("UPDATE") + "\"))"))); + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getTitleUsingId("UPDATE") + "\"))"))); } } diff --git a/ui-test/src/main/java/regclient/pages/french/DashboardPageFrench.java b/ui-test/src/main/java/regclient/pages/french/DashboardPageFrench.java index d59447274..326c594d3 100644 --- a/ui-test/src/main/java/regclient/pages/french/DashboardPageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/DashboardPageFrench.java @@ -6,30 +6,30 @@ import io.appium.java_client.pagefactory.AndroidFindBy; import regclient.page.DashboardPage; -public class DashboardPageFrench extends DashboardPage{ - +public class DashboardPageFrench extends DashboardPage { + @AndroidFindBy(xpath = "//android.view.View[@content-desc=\"Dashboard\"]/following-sibling::android.view.View[3]") private WebElement packetUploadedNumber; - + @AndroidFindBy(xpath = "//android.view.View[@content-desc=\"Dashboard\"]/following-sibling::android.view.View[2]") private WebElement packetSyncedNumber; - - @AndroidFindBy(accessibility = "Dashboard") + + @AndroidFindBy(accessibility = "Tableau de bord") private WebElement dashboardPageTitle; - - @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"User ID\")]") + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Identifiant utilisateur\")]") private WebElement userIDTitle; - - @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"User Name\")]") + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Nom d’utilisateur\")]") private WebElement userNameTitle; - - @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Status\")]") + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Statut\")]") private WebElement statusTitle; - + public DashboardPageFrench(AppiumDriver driver) { super(driver); } - + public boolean isDashboardTitleDisplayed() { return isElementDisplayed(dashboardPageTitle); } @@ -37,19 +37,19 @@ public boolean isDashboardTitleDisplayed() { public boolean isPacketsUploadedValueDisplayed() { return isElementDisplayed(packetUploadedNumber); } - + public boolean isPacketsSyncedValueDisplayed() { return isElementDisplayed(packetSyncedNumber); } - + public boolean isUserIDDisplayed() { return isElementDisplayed(userIDTitle); } - + public boolean isUserNameDisplayed() { return isElementDisplayed(userNameTitle); } - + public boolean isStatusTitleDisplayed() { return isElementDisplayed(statusTitle); } diff --git a/ui-test/src/main/java/regclient/pages/french/DemographicDetailsPageFrench.java b/ui-test/src/main/java/regclient/pages/french/DemographicDetailsPageFrench.java index 293e125e4..a2bfc83c0 100644 --- a/ui-test/src/main/java/regclient/pages/french/DemographicDetailsPageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/DemographicDetailsPageFrench.java @@ -2,7 +2,10 @@ import static org.testng.Assert.assertTrue; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.List; +import java.util.regex.Pattern; import org.openqa.selenium.By; import org.openqa.selenium.WebElement; @@ -10,6 +13,7 @@ import io.appium.java_client.AppiumDriver; import io.appium.java_client.MobileBy; import io.appium.java_client.pagefactory.AndroidFindBy; +import regclient.api.AdminTestUtil; import regclient.api.BaseTestCase; import regclient.api.FetchUiSpec; import regclient.page.BasePage; @@ -20,7 +24,7 @@ import regclient.pages.english.DocumentuploadPageEnglish; import regclient.utils.TestDataReader; -public class DemographicDetailsPageFrench extends DemographicDetailsPage{ +public class DemographicDetailsPageFrench extends DemographicDetailsPage { @AndroidFindBy(accessibility = "Mâle") private WebElement maleButton; @@ -30,24 +34,43 @@ public class DemographicDetailsPageFrench extends DemographicDetailsPage{ @AndroidFindBy(accessibility = "CONTINUER") private WebElement continueButton; - + @AndroidFindBy(accessibility = "Entrée invalide") private WebElement errorMessageInvalidInputText; @AndroidFindBy(accessibility = "Fond") private WebElement backgroundScreen; - - @AndroidFindBy(accessibility = "FETCH DATA") + + @AndroidFindBy(accessibility = "RÉCUPÉRER DES DONNÉES") private WebElement fetchDataButton; - + + @AndroidFindBy(xpath = "//android.widget.ScrollView/android.widget.EditText[1]") + private WebElement applicationIdTextBox; + + @AndroidFindBy(xpath = "//android.widget.Button[@content-desc='RÉCUPÉRER DES DONNÉES']/following-sibling::android.widget.Button") + private WebElement scanButton; + + @AndroidFindBy(accessibility = "Postal/ بريدي") + private WebElement postalHeader; + public DemographicDetailsPageFrench(AppiumDriver driver) { super(driver); } - + @SuppressWarnings("deprecation") - public boolean isDemographicDetailsPageDisplayed() { - WebElement demographicDetailspage = findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))")); - return isElementDisplayed(demographicDetailspage); + public boolean isPageDisplayed(String pageKey) { + try { + String screenTitle = FetchUiSpec.getScreenTitle(pageKey); + + WebElement pageElement = findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0))" + + ".scrollIntoView(new UiSelector().descriptionContains(\"" + screenTitle + "\"))")); + + return isElementDisplayed(pageElement); + + } catch (Exception e) { + return false; // element not found or not visible + } } public boolean isErrorMessageInvalidInputTextDisplayed() { @@ -55,19 +78,22 @@ public boolean isErrorMessageInvalidInputTextDisplayed() { } @SuppressWarnings("deprecation") - public ConsentPage clickOnConsentPageTitle() { - WebElement consentTitle = findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("consentdet") + "\"))")); + public ConsentPage clickOnPageTitle(String pageKey) { + String screenTitle = FetchUiSpec.getScreenTitle(pageKey); + WebElement consentTitle = findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0))" + + ".scrollIntoView(new UiSelector().descriptionContains(\"" + screenTitle + "\"))")); clickOnElement(consentTitle); return new ConsentPageEnglish(driver); } - public DocumentUploadPage clickOnContinueButton() { + public DocumentUploadPage clickOnContinueButton() { clickOnElement(continueButton); return new DocumentuploadPageEnglish(driver); } - - public boolean isContinueButtonEnable() { + + public boolean isContinueButtonEnable() { return isElementEnabled(continueButton); } @@ -77,112 +103,159 @@ public boolean isPreRegFetchDataTextBoxDisplay() { } public void fillDemographicDetailsPage(String age) { - List idList=FetchUiSpec.getAllIds("DemographicDetails"); - for(String id : idList) { - if(FetchUiSpec.getRequiredTypeUsingId(id)) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + List idList = FetchUiSpec.getAllIds("DemographicDetails"); + for (String id : idList) { + if (FetchUiSpec.getRequiredTypeUsingId(id)) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); - } - else if(FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") && FetchUiSpec.getFormatUsingId(id).equals("none")){ + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); + } else if (FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") + && FetchUiSpec.getFormatUsingId(id).equals("none")) { waitTime(3); - while(!isElementDisplayed(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))) { + while (!isElementDisplayed(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))) { swipeOrScroll(); } - boolean isdisplayed =isElementDisplayed(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")")); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - WebElement dropdownElement=findElement(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.widget.Button")); + boolean isdisplayed = isElementDisplayed(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")")); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + WebElement dropdownElement = findElement( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.widget.Button")); clickOnElement(dropdownElement); waitTime(3); - if(!isElementDisplayed(dropdownElement)) { + if (!isElementDisplayed(dropdownElement)) { clickOnElement(findElement(By.className("android.view.View"))); - }else if(isElementDisplayed(dropdownElement)) { + } else if (isElementDisplayed(dropdownElement)) { swipeOrScroll(); clickOnElement(dropdownElement); waitTime(2); clickOnElement(findElement(By.className("android.view.View"))); } waitTime(2); - if(isElementDisplayed(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, \"Select Option\")]"))) { + if (isElementDisplayed(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, \"Select Option\")]"))) { clickOnElement(dropdownElement); waitTime(2); clickOnElement(findElement(By.className("android.view.View"))); } - }else if(FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") && FetchUiSpec.getFormatUsingId(id).equals("")){ - if(!isElementDisplayed(maleButton)) { + } else if (FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") + && FetchUiSpec.getFormatUsingId(id).equals("")) { + if (!isElementDisplayed(maleButton)) { swipeOrScroll(); - clickOnElement(maleButton); - }else - clickOnElement(maleButton); + clickOnElement(maleButton); + } else + clickOnElement(maleButton); - }else if(FetchUiSpec.getControlTypeUsingId(id).equals("ageDate")){ + } else if (FetchUiSpec.getControlTypeUsingId(id).equals("ageDate")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - if(age.equals("adult")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"20"); - else if(age.equals("minor")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"12"); - else if(age.equals("infant")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"4"); - else if(age.equals("currentCalenderDate")) { + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + if (age.equals("adult")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "20"); + else if (age.equals("minor")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "12"); + else if (age.equals("infant")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "4"); + else if (age.equals("currentCalenderDate")) { waitTime(1); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.view.View"))); + clickOnElement(findElementWithRetry(By.xpath( + "//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View"))); waitTime(1); clickOnElement(backgroundScreen); waitTime(1); - assertTrue(checkDateFormatAndCurrectDate(id),"Verify date format and current date and time while selecting age date"); + assertTrue(checkDateFormatAndCurrectDate(id), + "Verify date format and current date and time while selecting age date"); } } - } - else if(id.equals("residenceStatus")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") && FetchUiSpec.getFormatUsingId(id).equals("none")){ + } else if (id.equals("residenceStatus")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") + && FetchUiSpec.getFormatUsingId(id).equals("none")) { waitTime(2); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - WebElement dropdownElement=findElement(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.widget.Button")); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + WebElement dropdownElement = findElement( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.widget.Button")); clickOnElement(dropdownElement); waitTime(2); - if(!isElementDisplayed(dropdownElement)) { + if (!isElementDisplayed(dropdownElement)) { clickOnElement(findElement(By.className("android.view.View"))); - }else if(isElementDisplayed(dropdownElement)) { + } else if (isElementDisplayed(dropdownElement)) { swipeOrScroll(); clickOnElement(dropdownElement); waitTime(2); clickOnElement(findElement(By.className("android.view.View"))); } waitTime(2); - if(isElementDisplayed(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, \"Select Option\")]"))) { + if (isElementDisplayed(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, \"Select Option\")]"))) { clickOnElement(dropdownElement); waitTime(2); clickOnElement(findElement(By.className("android.view.View"))); } } } - if(id.equals("introducerName") && FetchUiSpec.getFlowType().equals("newProcess")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + if (id.equals("introducerName") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } - }if(id.equals("introducerRID") && FetchUiSpec.getFlowType().equals("newProcess")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + } + if (id.equals("introducerRID") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),TestDataReader.readData("RID")); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + TestDataReader.readData("RID")); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } } @@ -190,56 +263,91 @@ else if(id.equals("residenceStatus")) { } public void editDemographicDetailsPage(String age) { - List idList=FetchUiSpec.getAllIds("DemographicDetails"); - for(String id : idList) { - if(FetchUiSpec.getRequiredTypeUsingId(id)) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + List idList = FetchUiSpec.getAllIds("DemographicDetails"); + for (String id : idList) { + if (FetchUiSpec.getRequiredTypeUsingId(id)) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); - }else if(FetchUiSpec.getControlTypeUsingId(id).equals("ageDate")){ + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); + } else if (FetchUiSpec.getControlTypeUsingId(id).equals("ageDate")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - if(age.equals("adult")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"20"); - else if(age.equals("minor")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"12"); - else if(age.equals("infant")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"4"); - else if(age.equals("currentCalenderDate")) { + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + if (age.equals("adult")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "20"); + else if (age.equals("minor")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "12"); + else if (age.equals("infant")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "4"); + else if (age.equals("currentCalenderDate")) { waitTime(1); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.view.View"))); + clickOnElement(findElementWithRetry(By.xpath( + "//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View"))); waitTime(1); clickOnElement(backgroundScreen); waitTime(1); - assertTrue(checkDateFormatAndCurrectDate(id),"Verify date format and current date and time while selecting age date"); + assertTrue(checkDateFormatAndCurrectDate(id), + "Verify date format and current date and time while selecting age date"); } } } - if(id.equals("introducerName") && FetchUiSpec.getFlowType().equals("newProcess")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + if (id.equals("introducerName") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } - }if(id.equals("introducerRID") && FetchUiSpec.getFlowType().equals("newProcess")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + } + if (id.equals("introducerRID") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),TestDataReader.readData("RID")); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + TestDataReader.readData("RID")); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } } @@ -247,45 +355,412 @@ else if(age.equals("currentCalenderDate")) { } public boolean checkSecondLanguageTextBoxNotNull(String id) { - if(getTextFromLocator(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[2]")))==null || getTextFromLocator(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[2]")))=="" ) - return false; + if (getTextFromLocator(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[2]"))) == null + || getTextFromLocator(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[2]"))) == "") + return false; else - return true; + return true; } - public boolean checkDateFormatAndCurrectDate(String id) { - if(getTextFromLocator(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.view.View"))).equalsIgnoreCase(getCurrentDate())) - return true; + public boolean checkDateFormatAndCurrectDate(String id) { + if (getTextFromLocator(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View"))) + .equalsIgnoreCase(getCurrentDate())) + return true; else return false; } - + public void fillIntroducerDetailsInDemographicDetailsPage(String age) { - List idList=FetchUiSpec.getAllIds("DemographicDetails"); - for(String id : idList) { - if(id.equals("introducerName")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + List idList = FetchUiSpec.getAllIds("DemographicDetails"); + for (String id : idList) { + if (id.equals("introducerName")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + waitTime(3); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); + } + } + } + if (id.equals("introducerUIN")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + waitTime(3); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + TestDataReader.readData("UINminor")); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); + } + } + } + } + } + + public void fetchPreregApplicationId(String age) { + By appIdLabel = By.xpath("//android.widget.EditText[contains(@hint,'Application ID')]"); + By appIdTextbox = By.xpath("//android.widget.EditText[contains(@hint,'Please Enter Application ID')]"); + + // Verify label is displayed + boolean isDisplayed = isElementDisplayed(appIdLabel); + assertTrue(isDisplayed, "Verify if Application ID label is displayed"); + + // Enter prereg ID + applicationIdTextBox = findElementWithRetry(appIdTextbox); + clickAndsendKeysToTextBox(applicationIdTextBox, AdminTestUtil.getPreRegistrationFlow(age)); + clickOnElement(fetchDataButton); + } + + public void validateFetchedDemographicData() { + Pattern genderPattern = Pattern.compile("(?i)\\b(male|female|other|others|m|f|o)\\b"); + String[] dateFormats = { "yyyy-MM-dd", "dd/MM/yyyy", "dd-MM-yyyy" }; + + List idList = FetchUiSpec.getAllIds("DemographicDetails"); + for (String id : idList) { + if (!FetchUiSpec.getRequiredTypeUsingId(id)) + continue; + + String label = FetchUiSpec.getValueUsingId(id); + String controlType = FetchUiSpec.getControlTypeUsingId(id); + String lowerLabel = label == null ? "" : label.toLowerCase(); + + // common candidate element (immediate following control) + WebElement el = null; + try { + el = findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc,'" + label + "') or contains(@text,'" + + label + "')]" + "/parent::android.view.View/following-sibling::*[1]")); + } catch (Exception ignored) { + } + + // NAME + if (lowerLabel.contains("name")) { + // make visible like fill method + try { + int tries = 0; + while (tries < 6 && !isElementDisplayed(findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\"" + label + "\")")))) { + swipeOrScroll(); + tries++; + } + } catch (Exception ignored) { + } + + // prefer the same EditText locator used when filling + if (el == null) { + try { + el = findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,'" + label + + "') or contains(@text,'" + label + "')]" + + "/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")); + } catch (Exception ignored) { + } + } + assertTrue(el != null, "Name field element not found for: " + label); + String name = extract(el).trim(); + assertTrue(!name.isEmpty(), "Verify name is not empty for: " + label); + assertTrue(name.matches(".*[A-Za-z].*"), "Verify name contains letters: " + name); + continue; + } + + // DOB / ageDate + if ("ageDate".equals(controlType) || lowerLabel.contains("dob") || lowerLabel.contains("date of birth")) { + String raw = el == null ? "" : extract(el).trim(); + assertTrue(!raw.isEmpty(), "Verify DOB/AgeDate is not empty for: " + label); + boolean ok = false; + for (String fmt : dateFormats) { + try { + SimpleDateFormat sdf = new SimpleDateFormat(fmt); + sdf.setLenient(false); + if (sdf.parse(raw) != null) { + ok = true; + break; + } + } catch (ParseException ignored) { + } + } + ok = ok || raw.replaceAll("\\D+", "").length() > 0; + assertTrue(ok, "Verify DOB/AgeDate has valid date/digits for " + label + ": '" + raw + "'"); + continue; + } + + // PHONE - simple, robust version + if (lowerLabel.contains("phone") || lowerLabel.contains("mobile") || lowerLabel.contains("هاتف")) { + // make label visible (same approach as fillDemographicDetailsPage) + try { + int tries = 0; + while (tries < 6 && !isElementDisplayed(findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\"" + label + "\")")))) { + swipeOrScroll(); + tries++; + } + } catch (Exception ignored) { + } + + // primary locator (same as fill) + WebElement phoneEl = null; + try { + phoneEl = findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + label + + "\") or contains(@text, \"" + label + "\")]" + + "/parent::android.view.View/following-sibling::android.view.View//android.widget.EditText[1]")); + } catch (Exception ignored) { + } + + // fallback to ancestor search + if (phoneEl == null) { + try { + phoneEl = findElementIfExists(By.xpath("//android.view.View[contains(@content-desc, \"" + label + + "\") or contains(@text, \"" + label + "\")]" + + "/ancestor::android.view.View[1]//android.widget.EditText[1]")); + } catch (Exception ignored) { + } + } + + // if still null, provide short diagnostic and fail + if (phoneEl == null) { + StringBuilder diag = new StringBuilder(); + try { + WebElement labelEl = findElementIfExists( + By.xpath("//android.view.View[contains(@content-desc, \"" + label + + "\") or contains(@text, \"" + label + "\")]")); + if (labelEl != null) { + List sibs = labelEl + .findElements(By.xpath("parent::android.view.View/following-sibling::*")); + for (int i = 0; i < Math.min(sibs.size(), 6); i++) { + WebElement s = sibs.get(i); + String t = ""; + try { + t = s.getText(); + } catch (Exception ignored) { + } + String cd = ""; + try { + cd = s.getAttribute("content-desc"); + } catch (Exception ignored) { + } + diag.append("sib[").append(i).append("]={text=").append(t).append(",cd=").append(cd) + .append("}; "); + } + } + } catch (Exception ignored) { + } + assertTrue(false, "Phone field element not found for: " + label + ". Nearby: " + diag.toString()); + } + + // extract and validate + String phone = extract(phoneEl); + phone = phone == null ? "" : phone.trim(); + assertTrue(!phone.isEmpty(), "Verify phone is not empty for: " + label); + String digits = phone.replaceAll("\\D+", ""); + assertTrue(digits.length() >= 7 && digits.length() <= 15, + "Verify phone has 7-15 digits for " + label + ": " + phone); + } + + // EMAIL + if (lowerLabel.contains("email") || lowerLabel.contains("e-mail") || lowerLabel.contains("البريد")) { + // make label visible (same approach as fill) + try { + int tries = 0; + while (tries < 6 && !isElementDisplayed(findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\"" + label + "\")")))) { + swipeOrScroll(); + tries++; + } + } catch (Exception ignored) { + } + + // primary locator (same style as fill) + WebElement emailEl = null; + try { + emailEl = findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + label + + "\") or contains(@text, \"" + label + "\")]" + + "/parent::android.view.View/following-sibling::android.view.View//android.widget.EditText[1]")); + } catch (Exception ignored) { + } + + // fallback: any EditText under the same ancestor + if (emailEl == null) { + try { + emailEl = findElementIfExists(By.xpath("//android.view.View[contains(@content-desc, \"" + label + + "\") or contains(@text, \"" + label + "\")]" + + "/ancestor::android.view.View[1]//android.widget.EditText[1]")); + } catch (Exception ignored) { + } + } + + // if still null, show short diagnostic and fail + if (emailEl == null) { + StringBuilder diag = new StringBuilder(); + try { + WebElement labelEl = findElementIfExists( + By.xpath("//android.view.View[contains(@content-desc, \"" + label + + "\") or contains(@text, \"" + label + "\")]")); + if (labelEl != null) { + List sibs = labelEl + .findElements(By.xpath("parent::android.view.View/following-sibling::*")); + for (int i = 0; i < Math.min(sibs.size(), 6); i++) { + WebElement s = sibs.get(i); + String t = ""; + try { + t = s.getText(); + } catch (Exception ignored) { + } + String cd = ""; + try { + cd = s.getAttribute("content-desc"); + } catch (Exception ignored) { + } + diag.append("sib[").append(i).append("]={text=").append(t).append(",cd=").append(cd) + .append("}; "); + } + } + } catch (Exception ignored) { + } + assertTrue(false, "Email field element not found for: " + label + ". Nearby: " + diag.toString()); + } + + // extract and validate + String email = extract(emailEl); + email = email == null ? "" : email.trim(); + assertTrue(!email.isEmpty(), "Verify email is not empty for: " + label); + + // simple regex good for tests + boolean emailOk = email.matches("^[A-Za-z0-9._%+\\-]+@[A-Za-z0-9.\\-]+\\.[A-Za-z]{2,}$"); + assertTrue(emailOk, "Verify email format is valid for " + label + ": " + email); + } + } + } + + public void fillRemainDemographicDetailsPage(String age) { + + List idList = FetchUiSpec.getAllIds("DemographicDetails"); + for (String id : idList) { + if (FetchUiSpec.getRequiredTypeUsingId(id) && !id.equals("Postal")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") + && FetchUiSpec.getFormatUsingId(id).equals("none")) { + waitTime(3); + while (!isElementDisplayed(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))) { + swipeOrScroll(); + } + boolean isdisplayed = isElementDisplayed(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")")); +// assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + WebElement dropdownElement = findElement( + By.xpath("//android.widget.Button[.//android.view.View[contains(@content-desc,'" + + FetchUiSpec.getValueUsingId(id) + "')]]")); + clickOnElement(dropdownElement); + waitTime(3); + if (!isElementDisplayed(dropdownElement)) { + clickOnElement(findElement(By.className("android.view.View"))); + } else if (isElementDisplayed(dropdownElement)) { + swipeOrScroll(); + clickOnElement(dropdownElement); + waitTime(2); + clickOnElement(findElement(By.className("android.view.View"))); + } + waitTime(2); + if (isElementDisplayed(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, \"Select Option\")]"))) { + clickOnElement(dropdownElement); + waitTime(2); + clickOnElement(findElement(By.className("android.view.View"))); + } + } + } else if (FetchUiSpec.getRequiredTypeUsingId(id) && id.equals("Postal")) { + By postalDropdown = By.xpath("//android.view.View[contains(@content-desc, 'Postal')]" + + "/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, 'Select Option')]"); + + int attempts = 0; + while (attempts < 3) { + try { + if (isElementDisplayed(postalDropdown)) { + WebElement dropdownElement = findElement(postalDropdown); + clickOnElement(dropdownElement); + waitTime(3); // increased wait for Postal data load + + if (isElementDisplayed(By.className("android.view.View"))) { + clickOnElement(findElement(By.className("android.view.View"))); + System.out.println("✅ Postal dropdown handled successfully"); + break; // success + } else { + System.out.println("⏳ Postal options not visible yet, retrying..."); + } + } else { + swipeOrScroll(); + } + } catch (org.openqa.selenium.StaleElementReferenceException e) { + System.out.println("🔄 Postal element went stale, retrying..."); + } + waitTime(2); + attempts++; + } + } + if (id.equals("introducerName") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } - }if(id.equals("introducerUIN")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + } + if (id.equals("introducerRID") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),TestDataReader.readData("UINminor")); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + TestDataReader.readData("RID")); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } } } } + + public boolean isApplicationIdTextBoxDisplay() { + return isElementDisplayed(applicationIdTextBox); + } + + public void clickOnScanButton() { + clickOnElement(scanButton); + } } diff --git a/ui-test/src/main/java/regclient/pages/french/DocumentUploadPageFrench.java b/ui-test/src/main/java/regclient/pages/french/DocumentUploadPageFrench.java index cb5fbb8f5..36cdcd0cd 100644 --- a/ui-test/src/main/java/regclient/pages/french/DocumentUploadPageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/DocumentUploadPageFrench.java @@ -17,7 +17,7 @@ import regclient.pages.english.BiometricDetailsPageEnglish; import regclient.pages.english.DocumentuploadPageEnglish; -public class DocumentUploadPageFrench extends DocumentUploadPage{ +public class DocumentUploadPageFrench extends DocumentUploadPage { @AndroidFindBy(accessibility = "Fond") private WebElement PopUpCloseButton; @@ -33,7 +33,7 @@ public class DocumentUploadPageFrench extends DocumentUploadPage{ @AndroidFindBy(xpath = "//android.widget.ImageView") private WebElement captureImage; - + @AndroidFindBy(accessibility = "SAUVEGARDER") private WebElement saveButton; @@ -42,22 +42,24 @@ public class DocumentUploadPageFrench extends DocumentUploadPage{ @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.view.View\").instance(8)") private WebElement imageleftCorner; - + public DocumentUploadPageFrench(AppiumDriver driver) { super(driver); } - - public BiometricDetailsPage clickOnContinueButton() { + + public BiometricDetailsPage clickOnContinueButton() { clickOnElement(continueButton); return new BiometricDetailsPageEnglish(driver); } @SuppressWarnings("deprecation") public boolean isDoccumentUploadPageDisplayed() { - return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("Documents") + "\"))"))); + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getScreenTitle("Documents") + "\"))"))); } - public DocumentUploadPage clickOnSaveButton() { + public DocumentUploadPage clickOnSaveButton() { clickOnElement(saveButton); return new DocumentuploadPageEnglish(driver); } @@ -71,108 +73,161 @@ public void cropCaptureImage() { cropCaptureImage(imageleftCorner); } - public void uploadDoccuments(String age,String type) { - List idList=FetchUiSpec.getAllIds("Documents"); - for(String id : idList) { - if(FetchUiSpec.getRequiredTypeUsingId(id)) { - if(type.equalsIgnoreCase("ReferenceNumber")) { - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.EditText")),"1234567890"); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View"))); - if(!isElementDisplayedOnScreen(PopUpCloseButton)) { + public void uploadDoccuments(String age, String type) { + List idList = FetchUiSpec.getAllIds("Documents"); + for (String id : idList) { + if (FetchUiSpec.getRequiredTypeUsingId(id)) { + if (type.equalsIgnoreCase("ReferenceNumber")) { + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.EditText")), + "1234567890"); + clickOnElement(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View"))); + if (!isElementDisplayedOnScreen(PopUpCloseButton)) { swipeOrScroll(); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View"))); + clickOnElement(findElementWithRetry(By.xpath( + "//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View"))); } clickOnElement(PopUpCloseButton); waitTime(1); - boolean isEnabled = isElementEnabled(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); - assertTrue(isEnabled,"Verify if scan button enabled for "+FetchUiSpec.getValueUsingId(id)); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); - CameraPage cameraPage=new CameraPage(driver); + boolean isEnabled = isElementEnabled(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); + assertTrue(isEnabled, "Verify if scan button enabled for " + FetchUiSpec.getValueUsingId(id)); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); + CameraPage cameraPage = new CameraPage(driver); cameraPage.clickimage(); cameraPage.clickOkButton(); - assertTrue(isRetakeButtonDisplayed(),"Verify if retake button displayed"); + assertTrue(isRetakeButtonDisplayed(), "Verify if retake button displayed"); cropCaptureImage(); clickOnSaveButton(); - assertTrue(isDoccumentUploadPageDisplayed(),"Verify if doccumentupload page is displayed after upload of "+FetchUiSpec.getValueUsingId(id)); - }else { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View"))); - if(!isElementDisplayedOnScreen(PopUpCloseButton)) { + assertTrue(isDoccumentUploadPageDisplayed(), + "Verify if doccumentupload page is displayed after upload of " + + FetchUiSpec.getValueUsingId(id)); + } else { + clickOnElement(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View"))); + if (!isElementDisplayedOnScreen(PopUpCloseButton)) { swipeOrScroll(); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View"))); + clickOnElement(findElementWithRetry(By.xpath( + "//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View"))); } clickOnElement(PopUpCloseButton); waitTime(1); - boolean isEnabled = isElementEnabled(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); - assertTrue(isEnabled,"Verify if scan button enabled for "+FetchUiSpec.getValueUsingId(id)); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); - CameraPage cameraPage=new CameraPage(driver); + boolean isEnabled = isElementEnabled(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); + assertTrue(isEnabled, "Verify if scan button enabled for " + FetchUiSpec.getValueUsingId(id)); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); + CameraPage cameraPage = new CameraPage(driver); cameraPage.clickimage(); cameraPage.clickOkButton(); - assertTrue(isRetakeButtonDisplayed(),"Verify if retake button displayed"); + assertTrue(isRetakeButtonDisplayed(), "Verify if retake button displayed"); cropCaptureImage(); clickOnSaveButton(); - assertTrue(isDoccumentUploadPageDisplayed(),"Verify if doccumentupload page is displayed after upload of "+FetchUiSpec.getValueUsingId(id)); + assertTrue(isDoccumentUploadPageDisplayed(), + "Verify if doccumentupload page is displayed after upload of " + + FetchUiSpec.getValueUsingId(id)); } - }if(id.equals("proofOfRelationship")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View"))); - if(!isElementDisplayedOnScreen(PopUpCloseButton)) { + } + if (id.equals("proofOfRelationship")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + clickOnElement(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View"))); + if (!isElementDisplayedOnScreen(PopUpCloseButton)) { swipeOrScroll(); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View"))); + clickOnElement(findElementWithRetry(By.xpath( + "//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View"))); } clickOnElement(PopUpCloseButton); waitTime(1); - boolean isEnabled = isElementEnabled(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); - assertTrue(isEnabled,"Verify if scan button enabled for "+FetchUiSpec.getValueUsingId(id)); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); - CameraPage cameraPage=new CameraPage(driver); + boolean isEnabled = isElementEnabled(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); + assertTrue(isEnabled, "Verify if scan button enabled for " + FetchUiSpec.getValueUsingId(id)); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); + CameraPage cameraPage = new CameraPage(driver); cameraPage.clickimage(); cameraPage.clickOkButton(); - assertTrue(isRetakeButtonDisplayed(),"Verify if retake button displayed"); + assertTrue(isRetakeButtonDisplayed(), "Verify if retake button displayed"); cropCaptureImage(); clickOnSaveButton(); - assertTrue(isDoccumentUploadPageDisplayed(),"Verify if doccumentupload page is displayed after upload of "+FetchUiSpec.getValueUsingId(id)); + assertTrue(isDoccumentUploadPageDisplayed(), + "Verify if doccumentupload page is displayed after upload of " + + FetchUiSpec.getValueUsingId(id)); } } } } - public void uploadDoccumentsUpdate(String age,String type) { - List idList=FetchUiSpec.getAllIds("Documents"); - for(String id : idList) { - if(type.equals("all") && !id.equals("proofOfException") && !id.equals("proofOfRelationship")) { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View"))); - if(!isElementDisplayedOnScreen(PopUpCloseButton)) { + + public void uploadDoccumentsUpdate(String age, String type) { + List idList = FetchUiSpec.getAllIds("Documents"); + for (String id : idList) { + if (type.equals("all") && !id.equals("proofOfException") && !id.equals("proofOfRelationship")) { + clickOnElement(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View"))); + if (!isElementDisplayedOnScreen(PopUpCloseButton)) { swipeOrScroll(); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View"))); + clickOnElement(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View"))); } clickOnElement(PopUpCloseButton); waitTime(1); - boolean isEnabled = isElementEnabled(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); - assertTrue(isEnabled,"Verify if scan button enabled for "+FetchUiSpec.getValueUsingId(id)); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); - CameraPage cameraPage=new CameraPage(driver); + boolean isEnabled = isElementEnabled(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); + assertTrue(isEnabled, "Verify if scan button enabled for " + FetchUiSpec.getValueUsingId(id)); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); + CameraPage cameraPage = new CameraPage(driver); cameraPage.clickimage(); cameraPage.clickOkButton(); - assertTrue(isRetakeButtonDisplayed(),"Verify if retake button displayed"); + assertTrue(isRetakeButtonDisplayed(), "Verify if retake button displayed"); cropCaptureImage(); clickOnSaveButton(); - }if(id.equals("proofOfRelationship")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View"))); - if(!isElementDisplayedOnScreen(PopUpCloseButton)) { + } + if (id.equals("proofOfRelationship")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + clickOnElement(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View"))); + if (!isElementDisplayedOnScreen(PopUpCloseButton)) { swipeOrScroll(); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View"))); + clickOnElement(findElementWithRetry(By.xpath( + "//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View"))); } clickOnElement(PopUpCloseButton); waitTime(1); - boolean isEnabled = isElementEnabled(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); - assertTrue(isEnabled,"Verify if scan button enabled for "+FetchUiSpec.getValueUsingId(id)); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); - CameraPage cameraPage=new CameraPage(driver); + boolean isEnabled = isElementEnabled(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); + assertTrue(isEnabled, "Verify if scan button enabled for " + FetchUiSpec.getValueUsingId(id)); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.view.View/following-sibling::android.widget.Button"))); + CameraPage cameraPage = new CameraPage(driver); cameraPage.clickimage(); cameraPage.clickOkButton(); - assertTrue(isRetakeButtonDisplayed(),"Verify if retake button displayed"); + assertTrue(isRetakeButtonDisplayed(), "Verify if retake button displayed"); cropCaptureImage(); clickOnSaveButton(); } @@ -181,5 +236,4 @@ public void uploadDoccumentsUpdate(String age,String type) { } } - } diff --git a/ui-test/src/main/java/regclient/pages/french/IdentityProofPageFrench.java b/ui-test/src/main/java/regclient/pages/french/IdentityProofPageFrench.java index e0d42db6b..c033541f8 100644 --- a/ui-test/src/main/java/regclient/pages/french/IdentityProofPageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/IdentityProofPageFrench.java @@ -7,7 +7,7 @@ import regclient.page.DocumentUploadPage; import regclient.page.IdentityProofPage; -public class IdentityProofPageFrench extends IdentityProofPage{ +public class IdentityProofPageFrench extends IdentityProofPage { @AndroidFindBy(accessibility = "SAUVEGARDER") private WebElement saveButton; @@ -17,15 +17,15 @@ public class IdentityProofPageFrench extends IdentityProofPage{ @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.view.View\").instance(8)") private WebElement imageleftCorner; - + @AndroidFindBy(className = "android.widget.ImageView") private WebElement captureImage; - + public IdentityProofPageFrench(AppiumDriver driver) { super(driver); } - public DocumentUploadPage clickOnSaveButton() { + public DocumentUploadPage clickOnSaveButton() { clickOnElement(saveButton); return new DocumentUploadPageFrench(driver); } diff --git a/ui-test/src/main/java/regclient/pages/french/IntroducerBiometricPageFrench.java b/ui-test/src/main/java/regclient/pages/french/IntroducerBiometricPageFrench.java index 5bcd44a7e..92127e687 100644 --- a/ui-test/src/main/java/regclient/pages/french/IntroducerBiometricPageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/IntroducerBiometricPageFrench.java @@ -10,187 +10,192 @@ import regclient.page.IntroducerBiometricPage; import regclient.pages.english.BiometricDetailsPageEnglish; -public class IntroducerBiometricPageFrench extends IntroducerBiometricPage{ - +public class IntroducerBiometricPageFrench extends IntroducerBiometricPage { + @AndroidFindBy(accessibility = "Iris ANALYSE") private WebElement irisScanButton; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Iris ANALYSE\"))") private WebElement irisScanButtonTitle; - + @AndroidFindBy(accessibility = "Permanent") private WebElement permanentButton; - + @AndroidFindBy(accessibility = "Temporaire") private WebElement temporaryButton; - + @AndroidFindBy(accessibility = "Marquer l'exception") private WebElement markExceptionButton; - + @AndroidFindBy(accessibility = "Marquer l'exception") private WebElement exceptionTypeTitle; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(1)") private WebElement oneEyeException; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(2)") private WebElement firstFingureException; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Main droite ANALYSE\"))") private WebElement rightHandScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Main gauche ANALYSE\"))") private WebElement leftHandScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Pouces ANALYSE\"))") private WebElement thumbsScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Visage ANALYSE\"))") private WebElement faceScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Exception ANALYSE\"))") private WebElement exceptionScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().description(\"ANALYSE\"))") private WebElement scanButton; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Iris Capturer')]") private WebElement irisCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'RightHand Capturer')]") private WebElement rightHandCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'LeftHand Capturer')]") private WebElement leftHandCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Thumbs Capturer')]") private WebElement thumbsCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Face Capturer')]") private WebElement faceCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Exception Capturer')]") private WebElement exceptionCapturerHeader; - + @AndroidFindBy(xpath = "//android.widget.ScrollView/android.view.View[3]") private WebElement zoomButton; - + @AndroidFindBy(className = "android.widget.Button") private WebElement popUpCloseButton; - + @AndroidFindBy(accessibility = "PROCHAINE") private WebElement nextButton; - + public IntroducerBiometricPageFrench(AppiumDriver driver) { super(driver); } public void clickOnScanButton() { clickOnElement(scanButton); - } - + } + public void markOneEyeException() { clickOnElement(oneEyeException); } - + public void markOneFingureException() { clickOnElement(firstFingureException); } - + public void clickOnClosePopUp() { clickOnElement(popUpCloseButton); } - + public void clickOnMarkExceptionButton() { clickOnElement(markExceptionButton); } - + public void clickOnIrisScanButton() { clickOnElement(irisScanButton); } - + public BiometricDetailsPage clickOnNextButton() { clickOnElement(nextButton); return new BiometricDetailsPageEnglish(driver); } - + public void clickOnZoomButton() { clickOnElement(zoomButton); } - + public void clickOnRightHandScanTitle() { clickOnElement(rightHandScanTitle); } - + public void clickOnleftHandScanTitle() { clickOnElement(leftHandScanTitle); } - + public void clickOnThumbsScanTitle() { clickOnElement(thumbsScanTitle); } - + public void closeScanCapturePopUp() { driver.navigate().back(); } - + public BiometricDetailsPage clickOnBackButton() { driver.navigate().back(); return new BiometricDetailsPageEnglish(driver); } - + @SuppressWarnings("deprecation") - public boolean isIntroducerBiometricsPageDisplyed() { - return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId("introducerBiometrics")+"\")"))); + public boolean isIntroducerBiometricsPageDisplyed() { + return isElementDisplayed( + findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\"" + + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")"))); } - - public boolean isExceptionTypeTitleDisplyed() { + + public boolean isExceptionTypeTitleDisplyed() { return isElementDisplayed(exceptionTypeTitle); } - - public boolean isRightHandScanTitleDisplyed() { + + public boolean isRightHandScanTitleDisplyed() { return isElementDisplayed(rightHandScanTitle); } - - public boolean isLeftHandScanTitleDisplyed() { + + public boolean isLeftHandScanTitleDisplyed() { return isElementDisplayed(leftHandScanTitle); } - - public boolean isThumbsScanTitleDisplyed() { + + public boolean isThumbsScanTitleDisplyed() { return isElementDisplayed(thumbsScanTitle); } - - public boolean isFaceScanTitleDisplyed() { + + public boolean isFaceScanTitleDisplyed() { return isElementDisplayed(faceScanTitle); } - - public boolean isExceptionScanTitleDisplyed() { + + public boolean isExceptionScanTitleDisplyed() { return isElementDisplayed(exceptionScanTitle); } - - public boolean isIrisScan() { - return isElementDisplayed(irisCapturerHeader,2000); + + public boolean isIrisScan() { + return isElementDisplayed(irisCapturerHeader, 2000); } - - public boolean isRightHandScan() { - return isElementDisplayed(rightHandCapturerHeader,2000); + + public boolean isRightHandScan() { + return isElementDisplayed(rightHandCapturerHeader, 2000); } - - public boolean isLeftHandScan() { - return isElementDisplayed(leftHandCapturerHeader,2000); + + public boolean isLeftHandScan() { + return isElementDisplayed(leftHandCapturerHeader, 2000); } - - public boolean isThumbsScan() { - return isElementDisplayed(thumbsCapturerHeader,2000); + + public boolean isThumbsScan() { + return isElementDisplayed(thumbsCapturerHeader, 2000); } - - public boolean isFaceScan() { - return isElementDisplayed(faceCapturerHeader,2000); + + public boolean isFaceScan() { + return isElementDisplayed(faceCapturerHeader, 2000); } - - public boolean isExceptionScan() { - return isElementDisplayed(exceptionCapturerHeader,2000); + + public boolean isExceptionScan() { + return isElementDisplayed(exceptionCapturerHeader, 2000); } + public boolean isNextButtonDisplyed() { + return isElementDisplayed(nextButton); + } } diff --git a/ui-test/src/main/java/regclient/pages/french/LoginPageFrench.java b/ui-test/src/main/java/regclient/pages/french/LoginPageFrench.java index f2beaa523..300c59b09 100644 --- a/ui-test/src/main/java/regclient/pages/french/LoginPageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/LoginPageFrench.java @@ -9,13 +9,12 @@ import regclient.page.LoginPage; import regclient.page.RegistrationTasksPage; - public class LoginPageFrench extends LoginPage { public LoginPageFrench(AppiumDriver driver) { super(driver); } - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(1)") private WebElement mosipLogo; @@ -61,33 +60,36 @@ public LoginPageFrench(AppiumDriver driver) { @AndroidFindBy(accessibility = "French") private WebElement frenchButton; - public void enterUserName(String username) { - clickAndsendKeysToTextBox(userNameTextBox,username); + @AndroidFindBy(accessibility = "PASSEZ À LA MAISON") + private WebElement skipToHomeButton; + + public void enterUserName(String username) { + clickAndsendKeysToTextBox(userNameTextBox, username); } - public void clickOnNextButton() { + public void clickOnNextButton() { clickOnElement(nextButton); } - public void clickOnBackButton() { + public void clickOnBackButton() { clickOnElement(backButton); } - public void enterPassword(String password) { - retryFindElement(passwordTextBox,Duration.ofSeconds(10)); - clickAndsendKeysToTextBox(passwordTextBox,password); + public void enterPassword(String password) { + retryFindElement(passwordTextBox, Duration.ofSeconds(10)); + clickAndsendKeysToTextBox(passwordTextBox, password); } - public RegistrationTasksPage clickOnloginButton() { + public RegistrationTasksPage clickOnloginButton() { clickOnElement(loginButton); return new RegistrationTasksPageFrench(driver); } - public boolean isNextButtonEnabled() { + public boolean isNextButtonEnabled() { return isElementEnabled(nextButton); } - public boolean isLoginButtonEnabled() { + public boolean isLoginButtonEnabled() { return isElementEnabled(loginButton); } @@ -139,5 +141,7 @@ public void selectLanguage() { clickOnElement(frenchButton); } - + public void clickOnSkipToHomeButton() { + clickOnElement(skipToHomeButton); + } } diff --git a/ui-test/src/main/java/regclient/pages/french/ManageApplicationsPageFrench.java b/ui-test/src/main/java/regclient/pages/french/ManageApplicationsPageFrench.java index c812c2298..f67bff966 100644 --- a/ui-test/src/main/java/regclient/pages/french/ManageApplicationsPageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/ManageApplicationsPageFrench.java @@ -7,7 +7,7 @@ import io.appium.java_client.pagefactory.AndroidFindBy; import regclient.page.ManageApplicationsPage; -public class ManageApplicationsPageFrench extends ManageApplicationsPage{ +public class ManageApplicationsPageFrench extends ManageApplicationsPage { @AndroidFindBy(accessibility = "Manage Applications") private WebElement manageApplicationsTitle; @@ -15,16 +15,16 @@ public class ManageApplicationsPageFrench extends ManageApplicationsPage{ @AndroidFindBy(xpath = "//android.widget.EditText") private WebElement ApplicationIDTextBox; - @AndroidFindBy(accessibility = "UPLOAD") + @AndroidFindBy(accessibility = "TÉLÉVERSER") private WebElement uploadButton; - @AndroidFindBy(accessibility = "Client Status") + @AndroidFindBy(accessibility = "Statut du client") private WebElement clientStatusDropdown; - @AndroidFindBy(accessibility = "Server Status") + @AndroidFindBy(accessibility = "État du serveur") private WebElement serverStatusDropdown; - @AndroidFindBy(accessibility = "EXPORT") + @AndroidFindBy(accessibility = "EXPORTER") private WebElement exportButton; @AndroidFindBy(accessibility = "Created") @@ -44,28 +44,46 @@ public class ManageApplicationsPageFrench extends ManageApplicationsPage{ @AndroidFindBy(accessibility = "Exported") private WebElement exportedsOption; - - @AndroidFindBy(accessibility = "Dismiss") + + @AndroidFindBy(accessibility = "Ignorer") private WebElement dismissButton; - - @AndroidFindBy(accessibility = "Displaying 0 Applications") + + @AndroidFindBy(accessibility = "Affichage de 0 application") private WebElement displayZeroApplication; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.CheckBox\").instance(0)") private WebElement searchCheckBoxButton; - + @AndroidFindBy(accessibility = "Received") private WebElement receivedValueDropdown; - + @AndroidFindBy(accessibility = "Processing") private WebElement processingValueDropdown; - + @AndroidFindBy(accessibility = "Accepted") private WebElement acceptedValueDropdown; - + @AndroidFindBy(accessibility = "Dismiss") private WebElement deletionValueDropdown; + @AndroidFindBy(xpath = "//android.widget.TextView[@text='Documents'][2]") + private WebElement documentsHeader; + + @AndroidFindBy(accessibility = "android:id/button1") + private WebElement useThisFolderButton; + + @AndroidFindBy(accessibility = "android:id/button1") + private WebElement allowButton; + + @AndroidFindBy(xpath = "//android.widget.TextView[@resource-id='android:id/title' and @text='Documents']") + private WebElement documentsFolder; + + @AndroidFindBy(accessibility = "Aucun réseau trouvé !") + private WebElement noNetworkFound; + + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.CheckBox\").instance(1)") + private WebElement latestAidCheckBox; + public ManageApplicationsPageFrench(AppiumDriver driver) { super(driver); } @@ -74,17 +92,18 @@ public boolean isManageApplicationPageDisplayed() { return isElementDisplayed(manageApplicationsTitle); } - public void enterAID(String AID) { - clickAndsendKeysToTextBox(ApplicationIDTextBox,AID); + public void enterAID(String AID) { + clickAndsendKeysToTextBox(ApplicationIDTextBox, AID); } - public void enterWrongAID(String AID) { - clickAndsendKeysToTextBox(ApplicationIDTextBox,AID); - } + public void enterWrongAID(String AID) { + clickAndsendKeysToTextBox(ApplicationIDTextBox, AID); + } public boolean isSearchAIDDisplayed(String AID) { waitTime(2); - return isElementDisplayed(driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'"+AID+"')]"))); + return isElementDisplayed( + driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'" + AID + "')]"))); } public boolean isZeroApplicationDisplayed() { @@ -92,30 +111,29 @@ public boolean isZeroApplicationDisplayed() { return isElementDisplayed(displayZeroApplication); } - public void clickOnUploadButton() { + public void clickOnUploadButton() { clickOnElement(uploadButton); waitTime(10); } public boolean isPacketUploadDone(String AID) { waitTime(2); - WebElement element =driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'"+AID+"')]")); - if(element.getAttribute("contentDescription").contains("NOT UPLOADED")) { + WebElement element = driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'" + AID + "')]")); + if (element.getAttribute("contentDescription").contains("NOT UPLOADED")) { waitTime(10); - element =driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'"+AID+"')]")); - if(element.getAttribute("contentDescription").contains("NOT UPLOADED")) + element = driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'" + AID + "')]")); + if (element.getAttribute("contentDescription").contains("NOT UPLOADED")) return false; else return true; - } - else + } else return true; } public boolean isPacketApproved(String AID) { waitTime(2); - WebElement element =driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'"+AID+"')]")); - if(element.getAttribute("contentDescription").contains("APPROVED")) + WebElement element = driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'" + AID + "')]")); + if (element.getAttribute("contentDescription").contains("APPROVED")) return true; else return false; @@ -123,27 +141,27 @@ public boolean isPacketApproved(String AID) { public boolean isPacketSynned(String AID) { waitTime(2); - WebElement element =driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'"+AID+"')]")); - if(element.getAttribute("contentDescription").contains("SYNCED")) + WebElement element = driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'" + AID + "')]")); + if (element.getAttribute("contentDescription").contains("SYNCED")) return true; else return false; } - + public boolean isPacketRejected(String AID) { waitTime(2); - WebElement element =driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'"+AID+"')]")); - if(element.getAttribute("contentDescription").contains("REJECTED")) + WebElement element = driver.findElement(By.xpath("//android.view.View[contains(@content-desc,'" + AID + "')]")); + if (element.getAttribute("contentDescription").contains("REJECTED")) return true; else return false; } - public void clickClientStatusDropdown() { + public void clickClientStatusDropdown() { clickOnElement(clientStatusDropdown); } - public void clickServerStatusDropdown() { + public void clickServerStatusDropdown() { clickOnElement(serverStatusDropdown); } @@ -171,25 +189,25 @@ public boolean isExportedsDropdownOptionDisplayed() { return isElementDisplayed(exportedsOption); } - public void clickDismissButton() { + public void clickDismissButton() { clickOnElement(dismissButton); } - public void clickOnSearchCheckBox() { + public void clickOnSearchCheckBox() { clickOnElement(searchCheckBoxButton); } - public void selectApprovedValueDropdown() { + public void selectApprovedValueDropdown() { clickOnElement(clientStatusDropdown); clickOnElement(approvedOption); - } + } - public void selectSyncedOptionDropdown() { + public void selectSyncedOptionDropdown() { clickOnElement(clientStatusDropdown); clickOnElement(syncedOption); } - public void selectUploadedOptionDropdown() { + public void selectUploadedOptionDropdown() { clickOnElement(clientStatusDropdown); clickOnElement(uploadedOption); @@ -214,4 +232,35 @@ public boolean isDeletionDropdownOptionDisplayed() { public void clickOnBackButton() { driver.navigate().back(); } + + public void clickOnExportButton() { + clickOnElement(exportButton); + waitTime(10); + } + + public void clickOnUseThisFolderButton() { + if (isElementDisplayed(documentsHeader)) { + clickOnElement(useThisFolderButton); + if (isElementDisplayed(allowButton)) { + clickOnElement(allowButton); + } + } else if (isElementDisplayed(documentsFolder)) { + clickOnElement(documentsFolder); + clickOnElement(useThisFolderButton); + if (isElementDisplayed(allowButton)) { + clickOnElement(allowButton); + } + } else { + throw new RuntimeException("Documents folder or header not found on screen"); + } + } + + public boolean isNoNetworkFoundDisplayed() { + return isElementDisplayed(noNetworkFound); + } + + public void selectLatestAidCheckBox() { + clickOnElement(latestAidCheckBox); + } + } diff --git a/ui-test/src/main/java/regclient/pages/french/OnBoardPageFrench.java b/ui-test/src/main/java/regclient/pages/french/OnBoardPageFrench.java index aef885753..759f1c998 100644 --- a/ui-test/src/main/java/regclient/pages/french/OnBoardPageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/OnBoardPageFrench.java @@ -8,15 +8,15 @@ import regclient.page.RegistrationTasksPage; import regclient.page.SupervisorBiometricVerificationpage; -public class OnBoardPageFrench extends OnBoardPage{ +public class OnBoardPageFrench extends OnBoardPage { @AndroidFindBy(accessibility = "AIDE") private WebElement helpButton; @AndroidFindBy(accessibility = "MONTER À BORD") private WebElement getOnBoardTitle; - - @AndroidFindBy(accessibility ="PASSEZ À LA MAISON") + + @AndroidFindBy(accessibility = "PASSEZ À LA MAISON") private WebElement skipToHomeScreenButton; @AndroidFindBy(accessibility = "Veuillez appuyer sur 'S'INSCRIRE' pour commencer le processus d'intégration.") @@ -33,16 +33,16 @@ public boolean isGetOnBoardTitleDisplayed() { public boolean isHelpButtonDisplayed() { return isElementDisplayed(helpButton); } - + public boolean isOnBoardWelcomeMessageDisplayed() { return isElementDisplayed(onBoardWelcomeMessage); } - + public SupervisorBiometricVerificationpage clickOnGetOnBoardTitle() { clickOnElement(getOnBoardTitle); return new SupervisorBiometricVerificationpageFrench(driver); } - + public RegistrationTasksPage clickOnSkipToHomeScreen() { clickOnElement(skipToHomeScreenButton); return new RegistrationTasksPageFrench(driver); diff --git a/ui-test/src/main/java/regclient/pages/french/OperationalTaskPageFrench.java b/ui-test/src/main/java/regclient/pages/french/OperationalTaskPageFrench.java index 17ce0bbe1..63ce8b186 100644 --- a/ui-test/src/main/java/regclient/pages/french/OperationalTaskPageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/OperationalTaskPageFrench.java @@ -7,30 +7,28 @@ import regclient.page.OperationalTaskPage; import regclient.page.SupervisorBiometricVerificationpage; - -public class OperationalTaskPageFrench extends OperationalTaskPage{ +public class OperationalTaskPageFrench extends OperationalTaskPage { @AndroidFindBy(accessibility = "Mettre à jour les données biométriques de l'opérateur") private WebElement updateOperatorBiometricsButton; - + @AndroidFindBy(accessibility = "System Storage Usage") private WebElement systemStorageUsageTitle; - + @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"Synchroniser les données\")") - private WebElement synchronizeDataButton ; - + private WebElement synchronizeDataButton; + @AndroidFindBy(accessibility = "Téléchargement d'application") private WebElement applicationUploadTitle; - + @AndroidFindBy(accessibility = "En attente de validation") private WebElement pendingApprovalTitle; - public OperationalTaskPageFrench(AppiumDriver driver) { super(driver); } - public SupervisorBiometricVerificationpage clickOnUpdateOperatorBiometricsButton() { + public SupervisorBiometricVerificationpage clickOnUpdateOperatorBiometricsButton() { clickOnElement(updateOperatorBiometricsButton); return new SupervisorBiometricVerificationpageFrench(driver); @@ -40,36 +38,36 @@ public boolean isOperationalTaskPageLoaded() { return isElementDisplayed(systemStorageUsageTitle); } - public void clickSynchronizeDataButton() { + public void clickSynchronizeDataButton() { clickOnElement(synchronizeDataButton); waitTime(50); } - + public boolean checkLastSyncDate() { String contentDesc = synchronizeDataButton.getAttribute("content-desc"); - if(contentDesc.contains("Synchroniser les données\n"+getCurrentDateWord()+",")) + if (contentDesc.contains("Synchroniser les données\n" + getCurrentDateWord() + ",")) return true; else return false; } - - public void clickApplicationUploadTitle() { + + public void clickApplicationUploadTitle() { clickOnElement(applicationUploadTitle); } - + public boolean isApplicationUploadTitleDisplayed() { - if(!isElementDisplayedOnScreen(applicationUploadTitle)) { + if (!isElementDisplayedOnScreen(applicationUploadTitle)) { swipeOrScroll(); } return isElementDisplayed(applicationUploadTitle); } - public void clickPendingApprovalTitle() { + public void clickPendingApprovalTitle() { clickOnElement(pendingApprovalTitle); } - + public boolean isPendingApprovalTitleDisplayed() { - if(!isElementDisplayedOnScreen(pendingApprovalTitle)) { + if (!isElementDisplayedOnScreen(pendingApprovalTitle)) { swipeOrScroll(); } return isElementDisplayed(pendingApprovalTitle); diff --git a/ui-test/src/main/java/regclient/pages/french/PendingApprovalFrench.java b/ui-test/src/main/java/regclient/pages/french/PendingApprovalFrench.java index 3ca8b313f..a2fadfe08 100644 --- a/ui-test/src/main/java/regclient/pages/french/PendingApprovalFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/PendingApprovalFrench.java @@ -1,19 +1,22 @@ -/** - * - */ + package regclient.pages.french; import static org.testng.Assert.assertTrue; +import java.time.Duration; +import java.util.List; + import org.openqa.selenium.By; +import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.ui.WebDriverWait; import io.appium.java_client.AppiumDriver; import io.appium.java_client.MobileBy; import io.appium.java_client.pagefactory.AndroidFindBy; import regclient.page.PendingApproval; -public class PendingApprovalFrench extends PendingApproval{ +public class PendingApprovalFrench extends PendingApproval { @AndroidFindBy(accessibility = "En attente de validation") private WebElement pendingApprovalTitle; @@ -38,44 +41,64 @@ public class PendingApprovalFrench extends PendingApproval{ @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.EditText\").instance(1)") private WebElement passwordTextBox; - + @AndroidFindBy(xpath = "//*[contains(@content-desc,\"En attente de validation\")]//preceding-sibling::android.widget.Button") private WebElement backButton; - - @AndroidFindBy(accessibility = "REJECT") + + @AndroidFindBy(accessibility = "REJETER") private WebElement rejectButton; - - @AndroidFindBy(accessibility = "Sl.no Application ID Reg. Date Client Status Review Status Operator ID") - private WebElement pageAttributes ; - - @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"CREATED\")") + + @AndroidFindBy(accessibility = "N° ID de l’application Date d’inscription Statut du client Statut de l’examen ID de l’opérateur") + private WebElement pageAttributes; + + @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"CRÉÉ\")") private WebElement clientStatus; - - @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"Pending\").instance(1)") + + @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"En attente\").instance(1)") private WebElement reviewStatus; - + @AndroidFindBy(xpath = "//android.widget.EditText") private WebElement applicationIdTextbox; - - @AndroidFindBy(accessibility = "Reject Packet?") + + @AndroidFindBy(accessibility = "Rejeter le paquet ?") private WebElement rejectPacketTitle; - - @AndroidFindBy(accessibility = "Please select a value") + + @AndroidFindBy(accessibility = "Veuillez sélectionner une valeur") private WebElement rejectReasonDropdown; - - @AndroidFindBy(accessibility = "اسم المستخدم غير صالح!") + + @AndroidFindBy(accessibility = "Nom d’utilisateur invalide !") private WebElement invalidUsernameMessage; - @AndroidFindBy(accessibility = "SUBMIT") + @AndroidFindBy(accessibility = "SOUMETTRE") private WebElement invalidUsernameMessageForempty; + + @AndroidFindBy(accessibility = "Affichage de 1 application") + private WebElement displayApplication; + + @AndroidFindBy(accessibility = "Veuillez sélectionner une raison pour le rejet du paquet. Vous pouvez modifier votre avis pour approuver ou réinitialiser le statut de l’examen plus tard.") + private WebElement rejectPacketInfoMessage; + + @AndroidFindBy(uiAutomator = "new UiSelector().text(\"Données biométriques\")") + private WebElement pendingApprovalBiometricsInformation; + + @AndroidFindBy(xpath = "(//android.widget.Button[@content-desc])[1]") + private WebElement latestAid; + + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.CheckBox\").instance(1)") + private WebElement latestAIdCheckBox; + @AndroidFindBy(accessibility = "Aucun réseau trouvé !") + private WebElement noNetworkFound; + @AndroidFindBy(accessibility = "AUTHENTIFIER") + private WebElement authenticateButton; + public PendingApprovalFrench(AppiumDriver driver) { super(driver); } public boolean isPendingApprovalTitleDisplayed() { - return isElementDisplayed(pendingApprovalTitle); + return isElementDisplayed(pendingApprovalTitle); } @SuppressWarnings("deprecation") @@ -100,77 +123,127 @@ public void clickOnSubmitButton() { } public boolean isSupervisorAuthenticationTitleDisplayed() { - return isElementDisplayed(supervisorAuthenticationTitle); + return isElementDisplayed(supervisorAuthenticationTitle); } - public void enterUserName(String username) { - sendKeysToTextBox(userNameTextBox,username); + public void enterUserName(String username) { + sendKeysToTextBox(userNameTextBox, username); } - public void enterPassword(String password) { - sendKeysToTextBox(passwordTextBox,password); + public void enterPassword(String password) { + sendKeysToTextBox(passwordTextBox, password); } - + public void clickOnBackButton() { clickOnElement(backButton); } public boolean isApprovalButtonDisplayed() { - return isElementDisplayed(approveButton); + return isElementDisplayed(approveButton); } - + public boolean isRejectButtonDisplayed() { - return isElementDisplayed(rejectButton); + return isElementDisplayed(rejectButton); } - + public boolean isPageAttributesDisplayed() { - return isElementDisplayed(pageAttributes); + return isElementDisplayed(pageAttributes); } - + public boolean isClientStatusDisplayed() { - return isElementDisplayed(clientStatus); + return isElementDisplayed(clientStatus); } public boolean isReviewStatusDisplayed() { - return isElementDisplayed(reviewStatus); + return isElementDisplayed(reviewStatus); } - - public void enterAID(String AID) { - clickAndsendKeysToTextBox(applicationIdTextbox,AID); + + public void enterAID(String AID) { + clickAndsendKeysToTextBox(applicationIdTextbox, AID); } - + public boolean isInvalidUsernameMessageDisplayed() { - return isElementDisplayed(invalidUsernameMessage); + return isElementDisplayed(invalidUsernameMessage); } - + public void clickOnRejectButton() { clickOnElement(rejectButton); } - + public boolean isRejectPacketTitleDisplayed() { - return isElementDisplayed(rejectPacketTitle); + return isElementDisplayed(rejectPacketTitle); } - + public void selectRejectionReasonDropdown() { - boolean isdisplayed =isElementDisplayed(rejectReasonDropdown); - assertTrue(isdisplayed,"Verify if "+rejectReasonDropdown+" header is displayed"); + boolean isdisplayed = isElementDisplayed(rejectReasonDropdown); + assertTrue(isdisplayed, "Verify if " + rejectReasonDropdown + " header is displayed"); clickOnElement(rejectReasonDropdown); waitTime(2); - if(!isElementDisplayed(rejectReasonDropdown)) { + if (!isElementDisplayed(rejectReasonDropdown)) { clickOnElement(findElement(By.className("android.view.View"))); - }else { + } else { clickOnElement(rejectReasonDropdown); waitTime(2); clickOnElement(findElement(By.className("android.view.View"))); - } + } } - + public boolean isSubmitButtonEnabled() { - return isElementEnabled(submitButton); + return isElementEnabled(submitButton); } - + public boolean isInvalidemptyUsernameSumbitButtonEnbled() { return isElementEnabled(invalidUsernameMessageForempty); } + public boolean isNumberOfApplicationDisplayed() { + waitTime(2); + return isElementDisplayed(displayApplication); + } + + public boolean isRejectPacketInfoMessageDisplayed() { + return isElementDisplayed(rejectPacketInfoMessage); + } + + public boolean isPendingApprovalBiometricsInformationDisplayed() { + swipeOrScroll(); + return isElementDisplayed(pendingApprovalBiometricsInformation); + } + + public void clickOnLatestAid() { + List allButtons = driver.findElements(MobileBy.className("android.widget.Button")); + allButtons.get(2).click(); + } + + public void selectLatestAIdCheckBox() { + clickOnElement(latestAIdCheckBox); + } + + public boolean isNoNetworkFoundDisplayed() { + return isElementEnabled(noNetworkFound); + } + + public void clickOnPendingApprovalSubmitButton(int maxRetries) { + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(3)); + for (int i = 1; i <= maxRetries; i++) { + clickOnSubmitButton(); + try { + boolean popupShown = wait.until(d -> isNoNetworkFoundDisplayed()); + if (popupShown) { + } + } catch (TimeoutException e) { + break; + } + } + System.out.println("Still No Network Found Displayed"); + } + + public void clickOnAuthenticateButton() { + clickOnElement(authenticateButton); + } + + public boolean isAuthenticateButtonEnabled() { + return isElementEnabled(authenticateButton); + } + } diff --git a/ui-test/src/main/java/regclient/pages/french/PreviewPageFrench.java b/ui-test/src/main/java/regclient/pages/french/PreviewPageFrench.java index 433490217..1da448eaf 100644 --- a/ui-test/src/main/java/regclient/pages/french/PreviewPageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/PreviewPageFrench.java @@ -1,10 +1,12 @@ package regclient.pages.french; import org.openqa.selenium.WebElement; +import org.testng.Assert; import io.appium.java_client.AppiumDriver; import io.appium.java_client.MobileBy; import io.appium.java_client.pagefactory.AndroidFindBy; +import regclient.api.AdminTestUtil; import regclient.api.FetchUiSpec; import regclient.page.AuthenticationPage; import regclient.page.DemographicDetailsPage; @@ -12,87 +14,117 @@ import regclient.pages.english.AuthenticationPageEnglish; import regclient.pages.english.DemographicDetailsPageEnglish; +public class PreviewPageFrench extends PreviewPage { -public class PreviewPageFrench extends PreviewPage{ - @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\"Informations démographiques\"))") private WebElement demographicInformationInPreviewPage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\"Application ID\"))") private WebElement applicationIDPreviewPage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\"Documents\"))") private WebElement documentsInformationInPreviewPage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\"Biométrie\"))") private WebElement biometricsInformationInPreviewPage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\"Iris ( 1 )\"))") private WebElement singleIrisImage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\"Iris ( 2 )\"))") private WebElement bothIrisImage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\"Fingers ( 7 )\"))") private WebElement fingerExceptionText; - + @AndroidFindBy(accessibility = "CONTINUER") private WebElement continueButton; + @AndroidFindBy(xpath = "//android.view.View[contains(@text,'Email')]/../following-sibling::android.view.View[1]") + private WebElement emailIdPreviewPage; + + @AndroidFindBy(accessibility = "UIN perdu") + private WebElement lostUinTitle; + public PreviewPageFrench(AppiumDriver driver) { super(driver); } - - public AuthenticationPage clickOnContinueButton() { + + public AuthenticationPage clickOnContinueButton() { clickOnElement(continueButton); return new AuthenticationPageEnglish(driver); } - + public boolean isDemographicInformationInPreviewPageDisplayed() { return isElementDisplayed(demographicInformationInPreviewPage); } - + public boolean isDocumentsInformationInPreviewPageDisplayed() { return isElementDisplayed(documentsInformationInPreviewPage); } - + public boolean isBiometricsInformationInPreviewPagePageDisplayed() { return isElementDisplayed(biometricsInformationInPreviewPage); } - + @SuppressWarnings("deprecation") public boolean isNewRegistrationTitleDisplayed() { - return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getTitleUsingId("NEW") + "\"))"))); + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getTitleUsingId("NEW") + "\"))"))); } - + public boolean updateUINTitleDisplayed() { - return isElementDisplayed (findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getTitleUsingId("UPDATE") + "\"))"))); + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getTitleUsingId("UPDATE") + "\"))"))); } - + public boolean isApplicationIDPreviewPagePageDisplayed() { return isElementDisplayed(applicationIDPreviewPage); } - + @SuppressWarnings("deprecation") public DemographicDetailsPage clickOnDemographicDetailsTitle() { - clickOnElement(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))"))); + clickOnElement(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))"))); return new DemographicDetailsPageEnglish(driver); } - + public boolean isBothIrisImageDisplayed() { return isElementDisplayed(bothIrisImage); } - + public boolean isSingleIrisImageDisplayed() { return isElementDisplayed(singleIrisImage); } - + public boolean isFingerExceptionText() { return isElementDisplayed(fingerExceptionText); } public String getAID() { - String applicationID = getTextFromLocator(applicationIDPreviewPage).replaceAll(".*Application ID (\\d+).*", "$1"); + String applicationID = getTextFromLocator(applicationIDPreviewPage).replaceAll(".*Application ID (\\d+).*", + "$1"); return applicationID; } + + public void validatePreRegAndApplicationIdMatch(String age) { + String preRegId = AdminTestUtil.getPreRegistrationFlow(age); + + String applicationID = getAID(); + + Assert.assertEquals(applicationID, preRegId, "Mismatch between API PreReg ID and UI Application ID!"); + } + + public String getEmailId() { + String emailId = getTextFromLocator(emailIdPreviewPage) + .replaceAll(".*?([A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}).*", "$1"); + return emailId; + } + + public boolean isLostUinTitleDisplayed() { + return isElementDisplayed(lostUinTitle); + } } diff --git a/ui-test/src/main/java/regclient/pages/french/ProfilePageFrench.java b/ui-test/src/main/java/regclient/pages/french/ProfilePageFrench.java index d20bd0c3d..49028fb74 100644 --- a/ui-test/src/main/java/regclient/pages/french/ProfilePageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/ProfilePageFrench.java @@ -8,40 +8,49 @@ import regclient.page.ProfilePage; import regclient.pages.english.LoginPageEnglish; -public class ProfilePageFrench extends ProfilePage{ +public class ProfilePageFrench extends ProfilePage { @AndroidFindBy(accessibility = "Profil") private WebElement profileTitle; - + @AndroidFindBy(accessibility = "DÉCONNEXION") private WebElement logoutButton; - - @AndroidFindBy(accessibility = "There is still some action required!") + + @AndroidFindBy(accessibility = "Il y a encore des actions à faire !") private WebElement logoutPopUpMessage; - + + @AndroidFindBy(accessibility = "Réinitialiser le mot de passe") + private WebElement resetPasswordButton; public ProfilePageFrench(AppiumDriver driver) { super(driver); } - public LoginPage clickOnLogoutButton() { - if(isElementDisplayed(logoutButton)) - clickOnElement(logoutButton); + public LoginPage clickOnLogoutButton() { + if (isElementDisplayed(logoutButton)) + clickOnElement(logoutButton); return new LoginPageEnglish(driver); - } - - public LoginPage clickOnLogoutButtonOnPopUp() { + } + + public LoginPage clickOnLogoutButtonOnPopUp() { clickOnElement(logoutButton); return new LoginPageEnglish(driver); - } - + } + public boolean isProfileTitleDisplayed() { return isElementDisplayed(profileTitle); } - + public boolean isLogoutPopUpMessageDisplayed() { return isElementDisplayed(logoutPopUpMessage); } + public boolean isResetPasswordButtonDisplayed() { + return isElementDisplayed(resetPasswordButton); + } + public LoginPage clickOnResetPasswordButton() { + clickOnElement(resetPasswordButton); + return new LoginPageEnglish(driver); + } } diff --git a/ui-test/src/main/java/regclient/pages/french/RegistrationTasksPageFrench.java b/ui-test/src/main/java/regclient/pages/french/RegistrationTasksPageFrench.java index 9e8f58e1b..6fe419920 100644 --- a/ui-test/src/main/java/regclient/pages/french/RegistrationTasksPageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/RegistrationTasksPageFrench.java @@ -9,8 +9,9 @@ import regclient.page.ProfilePage; import regclient.page.RegistrationTasksPage; import regclient.page.SelectLanguagePage; +import regclient.pages.english.SelectLanguagePageEnglish; -public class RegistrationTasksPageFrench extends RegistrationTasksPage{ +public class RegistrationTasksPageFrench extends RegistrationTasksPage { public RegistrationTasksPageFrench(AppiumDriver driver) { super(driver); @@ -24,40 +25,55 @@ public RegistrationTasksPageFrench(AppiumDriver driver) { @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(2)") private WebElement dashboardButton; - + @AndroidFindBy(accessibility = "Nouvelle inscription") private WebElement newRegistrationButton; @AndroidFindBy(uiAutomator = "new UiSelector().className(\"android.widget.ImageView\").instance(0)") - private WebElement synchronizeDataButton ; + private WebElement synchronizeDataButton; @AndroidFindBy(xpath = "//android.widget.Toast[@text=\"Policy key Sync Completed\"]") - private WebElement policykeySyncCompletedMessage ; + private WebElement policykeySyncCompletedMessage; @AndroidFindBy(xpath = "//*[contains(@text,'Sync Completed')]") - private WebElement masterDataSyncCompletedMessage ; + private WebElement masterDataSyncCompletedMessage; @AndroidFindBy(xpath = "//android.widget.Toast[@text=\"Script Sync Completed\"]") - private WebElement scriptSyncCompletedMessage ; + private WebElement scriptSyncCompletedMessage; @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"Profil\")") private WebElement profileButton; - + @AndroidFindBy(accessibility = "Mettre à jour l'UIN") private WebElement updateUinButton; - + @AndroidFindBy(accessibility = "UIN perdu") private WebElement lostUinButton; - + @AndroidFindBy(accessibility = "Correction biométrique") private WebElement biometricCorrectionButton; + + @AndroidFindBy(accessibility = "Paramètres\nOnglet 2 sur 4") + private WebElement settingsButton; - public SelectLanguagePage clickOnNewRegistrationButton() { + @AndroidFindBy(id = "com.android.permissioncontroller:id/permission_message") + private WebElement locationPermissionMessage; + + @AndroidFindBy(id = "com.android.permissioncontroller:id/permission_allow_foreground_only_button") + private WebElement allowWhileUsingButton; + + @AndroidFindBy(id = "com.android.permissioncontroller:id/permission_allow_one_time_button") + private WebElement allowOnceButton; + + @AndroidFindBy(id = "com.android.permissioncontroller:id/permission_deny_button") + private WebElement dontAllowButton; + + public SelectLanguagePage clickOnNewRegistrationButton() { clickOnElement(newRegistrationButton); return new SelectLanguagePageFrench(driver); } - public void clickOnSynchronizeDataButton() { + public void clickOnSynchronizeDataButton() { clickOnElement(synchronizeDataButton); } @@ -81,52 +97,78 @@ public boolean isScriptSyncCompletedDisplayed() { return isElementDisplayed(scriptSyncCompletedMessage); } - public DashboardPage clickOnDashboardButton() { + public DashboardPage clickOnDashboardButton() { clickOnElement(dashboardButton); return new DashboardPageFrench(driver); } - - public OperationalTaskPage clickOnOperationalTasksTitle() { + + public OperationalTaskPage clickOnOperationalTasksTitle() { clickOnElement(operationalTaskPageTitle); return new OperationalTaskPageFrench(driver); } - + public boolean isProfileTitleDisplayed() { return isElementDisplayed(profileButton); } - - public ProfilePage clickProfileButton() { + + public ProfilePage clickProfileButton() { clickOnElement(profileButton); return new ProfilePageFrench(driver); } - - public SelectLanguagePage clickUpdateMyUINButton() { + + public SelectLanguagePage clickUpdateMyUINButton() { clickOnElement(updateUinButton); return new SelectLanguagePageFrench(driver); } - + public boolean isUpdateUINTitleDisplayed() { return isElementDisplayed(updateUinButton); } - + public boolean isLostUINTitleDisplayed() { return isElementDisplayed(lostUinButton); } - + public boolean isBiometricCorrectionTitleDisplayed() { return isElementDisplayed(biometricCorrectionButton); } - - public void clickSynchronizeDataButton() { + + public void clickSynchronizeDataButton() { clickOnElement(synchronizeDataButton); waitTime(50); } - + public boolean checkLastSyncDate() { String contentDesc = synchronizeDataButton.getAttribute("content-desc"); - if(contentDesc.contains("Synchronize Data\n"+getCurrentDateWord()+",")) + if (contentDesc.contains("Synchronize Data\n" + getCurrentDateWord() + ",")) return true; else return false; } + + public void clickOnLostUinButton() { + clickOnElement(lostUinButton); + } + + public void clickOnSettingsButton() { + clickOnElement(settingsButton); + } + + public SelectLanguagePage clickOnBiometricCorrectionButton() { + clickOnElement(biometricCorrectionButton); + return new SelectLanguagePageEnglish(driver); + } + + public void handleLocationPermission() { + try { + if (isElementDisplayed(locationPermissionMessage)) { + clickOnElement(allowWhileUsingButton); + } + } catch (Exception e) { + } + } + + public void clickOnRegistrationTasksTab() { + clickOnElement(registrationTasksTitle); + } } diff --git a/ui-test/src/main/java/regclient/pages/french/SelectLanguagePageFrench.java b/ui-test/src/main/java/regclient/pages/french/SelectLanguagePageFrench.java index 803f4db42..c516a9a61 100644 --- a/ui-test/src/main/java/regclient/pages/french/SelectLanguagePageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/SelectLanguagePageFrench.java @@ -8,7 +8,7 @@ import regclient.page.SelectLanguagePage; import regclient.utils.TestDataReader; -public class SelectLanguagePageFrench extends SelectLanguagePage{ +public class SelectLanguagePageFrench extends SelectLanguagePage { @AndroidFindBy(accessibility = "Choisir la langue") private WebElement selectLanguageTitle; @@ -16,10 +16,10 @@ public class SelectLanguagePageFrench extends SelectLanguagePage{ @AndroidFindBy(accessibility = "SOUMETTRE") private WebElement submitButton; - @AndroidFindBy(accessibility = "French") + @AndroidFindBy(accessibility = "français") private WebElement frenchLanguageButton; - @AndroidFindBy(accessibility = "Arabic") + @AndroidFindBy(accessibility = "عربي") private WebElement arabicLanguageButton; @AndroidFindBy(xpath = "(//android.view.View[@content-desc=\"ಕನ್ನಡ\"])[1]") @@ -69,12 +69,12 @@ public boolean isSelectLanguagePageLoaded() { return isElementDisplayed(selectLanguageTitle); } - public void clickOnSubmitButtonWithoutSelectingLanguage() { + public void clickOnSubmitButtonWithoutSelectingLanguage() { clickOnElement(submitButton); } - public void selectSecondLanguage() { - if(TestDataReader.readData("defaultlanguage").equalsIgnoreCase("fra")) + public void selectSecondLanguage() { + if (TestDataReader.readData("defaultlanguage").equalsIgnoreCase("fra")) clickOnElement(englishLanguageButton); else clickOnElement(frenchLanguageButton); @@ -109,7 +109,7 @@ public void selectNotificationlanguage(String notificationLanguage) { } } - public void selectAllSecondLanguage() { + public void selectAllSecondLanguage() { clickOnElement(englishLanguageButton); @@ -121,19 +121,18 @@ public void selectAllSecondLanguage() { clickOnElement(hindiLanguageButton); - clickOnElement(tamilLanguageButton); + clickOnElement(tamilLanguageButton); } - - public boolean isArabicLanguageButtonEnabled() { + public boolean isArabicLanguageButtonEnabled() { return isElementEnabled(arabicLanguageButton); } - public boolean isSubmitButtonEnabled() { + public boolean isSubmitButtonEnabled() { return isElementEnabled(submitButton); } - public ConsentPage clickOnSubmitButton() { + public ConsentPage clickOnSubmitButton() { clickOnElement(submitButton); return new ConsentPageFrench(driver); } diff --git a/ui-test/src/main/java/regclient/pages/french/SupervisorBiometricVerificationpageFrench.java b/ui-test/src/main/java/regclient/pages/french/SupervisorBiometricVerificationpageFrench.java index 5cbb8b20a..179c5b9cb 100644 --- a/ui-test/src/main/java/regclient/pages/french/SupervisorBiometricVerificationpageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/SupervisorBiometricVerificationpageFrench.java @@ -6,132 +6,131 @@ import io.appium.java_client.pagefactory.AndroidFindBy; import regclient.page.SupervisorBiometricVerificationpage; -public class SupervisorBiometricVerificationpageFrench extends SupervisorBiometricVerificationpage{ +public class SupervisorBiometricVerificationpageFrench extends SupervisorBiometricVerificationpage { - @AndroidFindBy(accessibility = "Supervisor's Biometric Verification") + @AndroidFindBy(accessibility = "Vérification biométrique du superviseur") private WebElement supervisorBiometricVerificationPageTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Iris\"))") private WebElement irisScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Main droite\"))") private WebElement rightHandScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Main gauche\"))") private WebElement leftHandScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Pouces ANALYSE\"))") private WebElement thumbsScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Visage ANALYSE\"))") private WebElement faceScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Exception\"))") private WebElement exceptionScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Iris ANALYSE\"))") private WebElement irisScanButtonTitle; @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Main droite ANALYSE\"))") private WebElement rightHandScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Main gauche ANALYSE\"))") private WebElement leftHandScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Pouces ANALYSE\"))") private WebElement thumbsScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Visage ANALYSE\"))") private WebElement faceScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Exception ANALYSE\"))") private WebElement exceptionScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().description(\"ANALYSE\"))") private WebElement scanButton; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Iris Capturer')]") private WebElement irisCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'RightHand Capturer')]") private WebElement rightHandCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'LeftHand Capturer')]") private WebElement leftHandCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Thumbs Capturer')]") private WebElement thumbsCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Face Capturer')]") private WebElement faceCapturerHeader; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Seuil \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement irisScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Seuil \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement rightHandScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Seuil \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement leftHandScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Seuil \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement thumbsScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Seuil \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement faceScanQuality; - - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(1)") private WebElement oneEyeException; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(2)") private WebElement firstFingureExceptionImage; - + @AndroidFindBy(accessibility = "Marquage des exceptions sur Visage n'est pas autorisé") private WebElement markingExceptionsOnFaceIsNotAllowedText; - + @AndroidFindBy(xpath = "//android.widget.ScrollView/android.view.View[3]") private WebElement zoomButton; - + @AndroidFindBy(accessibility = "Permanent") private WebElement permanentButton; - + @AndroidFindBy(accessibility = "Temporaire") private WebElement temporaryButton; - + @AndroidFindBy(accessibility = "Marquer l'exception") private WebElement markExceptionButton; - + @AndroidFindBy(accessibility = "Marquer l'exception") private WebElement exceptionTypeTitle; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Commentaires\")]/following-sibling::android.widget.EditText") private WebElement commentsTextBox; - + @AndroidFindBy(className = "android.widget.Button") private WebElement popUpCloseButton; - + @AndroidFindBy(accessibility = "PROCHAINE") private WebElement nextButton; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Commentaires\"))") private WebElement commentsHeader; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Seuil \")]/following-sibling::android.view.View") private WebElement scanQualityText; - + @AndroidFindBy(accessibility = "VÉRIFIER ET ENREGISTRER") private WebElement verifyAndSaveButton; - + @AndroidFindBy(accessibility = "Ignorer") private WebElement dismissPage; - + @AndroidFindBy(accessibility = "Vous avez été intégré avec succès.") private WebElement successPopup; - + @AndroidFindBy(accessibility = "MAISON") private WebElement homeButton; - + public SupervisorBiometricVerificationpageFrench(AppiumDriver driver) { super(driver); } @@ -139,237 +138,234 @@ public SupervisorBiometricVerificationpageFrench(AppiumDriver driver) { public void clickOnIrisScan() { clickOnElement(irisScanIcon); } - + public boolean isSupervisorBiometricVerificationPageLoaded() { return isElementDisplayed(supervisorBiometricVerificationPageTitle); } - + public void clickOnRightHandScanIcon() { clickOnElement(rightHandScanIcon); } - + public void clickOnLeftHandScanIcon() { clickOnElement(leftHandScanIcon); } - + public void clickOnThumbsScanIcon() { clickOnElement(thumbsScanIcon); } - + public void clickOnFaceScanIcon() { clickOnElement(faceScanIcon); } - + public void clickOnExceptionScanIcon() { clickOnElement(exceptionScanIcon); } - + public void clickOnScanButton() { clickOnElement(scanButton); - } - + } + public void clickOnNextButton() { clickOnElement(nextButton); } - + public void closeScanCapturePopUp() { driver.navigate().back(); } - - - public boolean isRightHandScanTitleDisplyed() { + + public boolean isRightHandScanTitleDisplyed() { return isElementDisplayed(rightHandScanTitle); } - - public boolean isLeftHandScanTitleDisplyed() { + + public boolean isLeftHandScanTitleDisplyed() { return isElementDisplayed(leftHandScanTitle); } - - public boolean isThumbsScanTitleDisplyed() { + + public boolean isThumbsScanTitleDisplyed() { return isElementDisplayed(thumbsScanTitle); } - - public boolean isFaceScanTitleDisplyed() { + + public boolean isFaceScanTitleDisplyed() { return isElementDisplayed(faceScanTitle); } - - public boolean isExceptionScanTitleDisplyed() { + + public boolean isExceptionScanTitleDisplyed() { return isElementDisplayed(exceptionScanTitle); } - - public boolean isIrisScan() { - return isElementDisplayed(irisCapturerHeader,2000); + + public boolean isIrisScan() { + return isElementDisplayed(irisCapturerHeader, 2000); } - - public boolean isRightHandScan() { - return isElementDisplayed(rightHandCapturerHeader,2000); + + public boolean isRightHandScan() { + return isElementDisplayed(rightHandCapturerHeader, 2000); } - - public boolean isLeftHandScan() { - return isElementDisplayed(leftHandCapturerHeader,2000); + + public boolean isLeftHandScan() { + return isElementDisplayed(leftHandCapturerHeader, 2000); } - - public boolean isThumbsScan() { - return isElementDisplayed(thumbsCapturerHeader,2000); + + public boolean isThumbsScan() { + return isElementDisplayed(thumbsCapturerHeader, 2000); } - - public boolean isFaceScan() { - return isElementDisplayed(faceCapturerHeader,2000); + + public boolean isFaceScan() { + return isElementDisplayed(faceCapturerHeader, 2000); } - - public boolean isIrisScanQualityDisplyed() { + + public boolean isIrisScanQualityDisplyed() { return isElementDisplayed(irisScanQuality); } - - public boolean isRightHandScanQualityDisplyed() { + + public boolean isRightHandScanQualityDisplyed() { return isElementDisplayed(rightHandScanQuality); } - - public boolean isLeftHandScanQualityDisplyed() { + + public boolean isLeftHandScanQualityDisplyed() { return isElementDisplayed(leftHandScanQuality); } - - public boolean isThumbsScanQualityDisplyed() { + + public boolean isThumbsScanQualityDisplyed() { return isElementDisplayed(thumbsScanQuality); } - - public boolean isFaceScanQualityDisplyed() { + + public boolean isFaceScanQualityDisplyed() { return isElementDisplayed(faceScanQuality); } - + public void clickOnMarkExceptionButton() { clickOnElement(markExceptionButton); } - + public void markOneEyeException() { clickOnElement(oneEyeException); } - + public void markOneFingureException() { clickOnElement(firstFingureExceptionImage); } - - public boolean isExceptionTypeTitleDisplyed() { + + public boolean isExceptionTypeTitleDisplyed() { return isElementDisplayed(exceptionTypeTitle); } - + public void clickOnExceptionTypeTemporaryButton() { - if(!isElementDisplayedOnScreen(temporaryButton)) { + if (!isElementDisplayedOnScreen(temporaryButton)) { swipeOrScroll(); } - clickOnElement(temporaryButton); + clickOnElement(temporaryButton); } - - public boolean isCommentHeaderDisplyed() { + + public boolean isCommentHeaderDisplyed() { return isElementDisplayed(commentsHeader); } - - public void enterCommentsInTextBox(String comments) { - if(!isElementDisplayedOnScreen(commentsTextBox)) { + + public void enterCommentsInTextBox(String comments) { + if (!isElementDisplayedOnScreen(commentsTextBox)) { swipeOrScroll(); } - clickAndsendKeysToTextBox(commentsTextBox,comments); + clickAndsendKeysToTextBox(commentsTextBox, comments); } - + public void clickOnIrisScanTitle() { clickOnElement(irisScanButtonTitle); } - + public void clickOnThumbsScanTitle() { clickOnElement(thumbsScanTitle); } - - public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed() { + + public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed() { return isElementDisplayed(markingExceptionsOnFaceIsNotAllowedText); } - - public boolean isZoomButtonDisplyed() { + + public boolean isZoomButtonDisplyed() { return isElementDisplayed(zoomButton); } - + public void clickOnRightHandScanTitle() { clickOnElement(rightHandScanTitle); } - + public void clickOnleftHandScanTitle() { clickOnElement(leftHandScanTitle); } - + public void clickOnFaceScanTitle() { clickOnElement(faceScanTitle); } - + public boolean checkThresholdValueIris() { - int requiredValue=60; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 60; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueRightHand() { - int requiredValue=40; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 40; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueLeftHand() { - int requiredValue=60; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 60; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueThumbs() { - int requiredValue=40; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 40; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueFace() { - int requiredValue=90; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 90; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean isVerifyAndSaveButtonEnabled() { return isElementDisplayed(verifyAndSaveButton); - - + } @Override public void clickOnVerifyAndSaveButton() { clickOnElement(verifyAndSaveButton); - + } - + public boolean isDismissPageLoaded() { return isElementDisplayed(dismissPage); } - - + public boolean isOperatorOnboardedPopupLoaded() { - return isElementDisplayed(successPopup); + return isElementDisplayed(successPopup); } - + public void clickOnHomeButton() { clickOnElement(homeButton); } diff --git a/ui-test/src/main/java/regclient/pages/french/UpdateOperatorBiometricspageFrench.java b/ui-test/src/main/java/regclient/pages/french/UpdateOperatorBiometricspageFrench.java index ae4322092..d1c0eb6b8 100644 --- a/ui-test/src/main/java/regclient/pages/french/UpdateOperatorBiometricspageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/UpdateOperatorBiometricspageFrench.java @@ -6,372 +6,378 @@ import io.appium.java_client.pagefactory.AndroidFindBy; import regclient.page.UpdateOperatorBiometricspage; -public class UpdateOperatorBiometricspageFrench extends UpdateOperatorBiometricspage{ +public class UpdateOperatorBiometricspageFrench extends UpdateOperatorBiometricspage { public UpdateOperatorBiometricspageFrench(AppiumDriver driver) { super(driver); - + } + @AndroidFindBy(accessibility = "Mise à jour biométrique du superviseur") private WebElement supervisorBiometricUpdatePageTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Iris\"))") private WebElement irisScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Main droite\"))") private WebElement rightHandScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Main gauche\"))") private WebElement leftHandScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Pouces ANALYSE\"))") private WebElement thumbsScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Visage ANALYSE\"))") private WebElement faceScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Exception\"))") private WebElement exceptionScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Iris ANALYSE\"))") private WebElement irisScanButtonTitle; @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Main droite ANALYSE\"))") private WebElement rightHandScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Main gauche ANALYSE\"))") private WebElement leftHandScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Pouces ANALYSE\"))") private WebElement thumbsScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Visage ANALYSE\"))") private WebElement faceScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Exception ANALYSE\"))") private WebElement exceptionScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().description(\"ANALYSE\"))") private WebElement scanButton; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Iris Capturer')]") private WebElement irisCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'RightHand Capturer')]") private WebElement rightHandCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'LeftHand Capturer')]") private WebElement leftHandCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Thumbs Capturer')]") private WebElement thumbsCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Face Capturer')]") private WebElement faceCapturerHeader; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Seuil \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement irisScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Seuil \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement rightHandScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Seuil \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement leftHandScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Seuil \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement thumbsScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Seuil \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement faceScanQuality; - - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(1)") private WebElement oneEyeException; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(2)") private WebElement firstFingureExceptionImage; - + @AndroidFindBy(accessibility = "Marquage des exceptions sur Visage n'est pas autorisé") private WebElement markingExceptionsOnFaceIsNotAllowedText; - + @AndroidFindBy(xpath = "//android.widget.ScrollView/android.view.View[3]") private WebElement zoomButton; - + @AndroidFindBy(accessibility = "Permanent") private WebElement permanentButton; - + @AndroidFindBy(accessibility = "Temporaire") private WebElement temporaryButton; - + @AndroidFindBy(accessibility = "Marquer l'exception") private WebElement markExceptionButton; - + @AndroidFindBy(accessibility = "Marquer l'exception") private WebElement exceptionTypeTitle; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Commentaires\")]/following-sibling::android.widget.EditText") private WebElement commentsTextBox; - + @AndroidFindBy(className = "android.widget.Button") private WebElement popUpCloseButton; - + @AndroidFindBy(accessibility = "PROCHAINE") private WebElement nextButton; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"Commentaires\"))") private WebElement commentsHeader; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Seuil \")]/following-sibling::android.view.View") private WebElement scanQualityText; - + @AndroidFindBy(accessibility = "VÉRIFIER ET ENREGISTRER") private WebElement verifyAndSaveButton; - + @AndroidFindBy(accessibility = "Ignorer") private WebElement dismissPage; - + @AndroidFindBy(accessibility = "Les données biométriques de l'opérateur ont été mises à jour avec succès.") private WebElement successPopup; - + @AndroidFindBy(accessibility = "MAISON") private WebElement homeButton; - + + @AndroidFindBy(accessibility = "Mettre à jour les données biométriques de l'opérateur") + private WebElement updateOperatorBiometrics; + public void clickOnIrisScan() { clickOnElement(irisScanIcon); } - + public boolean isSupervisorBiometricUpdatePageLoaded() { return isElementDisplayed(supervisorBiometricUpdatePageTitle); } - + public void clickOnRightHandScanIcon() { clickOnElement(rightHandScanIcon); } - + public void clickOnLeftHandScanIcon() { clickOnElement(leftHandScanIcon); } - + public void clickOnThumbsScanIcon() { clickOnElement(thumbsScanIcon); } - + public void clickOnFaceScanIcon() { clickOnElement(faceScanIcon); } - + public void clickOnExceptionScanIcon() { clickOnElement(exceptionScanIcon); } - + public void clickOnScanButton() { clickOnElement(scanButton); - } - + } + public void clickOnNextButton() { clickOnElement(nextButton); } - + public void closeScanCapturePopUp() { driver.navigate().back(); } - - - public boolean isRightHandScanTitleDisplyed() { + + public boolean isRightHandScanTitleDisplyed() { return isElementDisplayed(rightHandScanTitle); } - - public boolean isLeftHandScanTitleDisplyed() { + + public boolean isLeftHandScanTitleDisplyed() { return isElementDisplayed(leftHandScanTitle); } - - public boolean isThumbsScanTitleDisplyed() { + + public boolean isThumbsScanTitleDisplyed() { return isElementDisplayed(thumbsScanTitle); } - - public boolean isFaceScanTitleDisplyed() { + + public boolean isFaceScanTitleDisplyed() { return isElementDisplayed(faceScanTitle); } - - public boolean isExceptionScanTitleDisplyed() { + + public boolean isExceptionScanTitleDisplyed() { return isElementDisplayed(exceptionScanTitle); } - - public boolean isIrisScan() { - return isElementDisplayed(irisCapturerHeader,2000); + + public boolean isIrisScan() { + return isElementDisplayed(irisCapturerHeader, 2000); } - - public boolean isRightHandScan() { - return isElementDisplayed(rightHandCapturerHeader,2000); + + public boolean isRightHandScan() { + return isElementDisplayed(rightHandCapturerHeader, 2000); } - - public boolean isLeftHandScan() { - return isElementDisplayed(leftHandCapturerHeader,2000); + + public boolean isLeftHandScan() { + return isElementDisplayed(leftHandCapturerHeader, 2000); } - - public boolean isThumbsScan() { - return isElementDisplayed(thumbsCapturerHeader,2000); + + public boolean isThumbsScan() { + return isElementDisplayed(thumbsCapturerHeader, 2000); } - - public boolean isFaceScan() { - return isElementDisplayed(faceCapturerHeader,2000); + + public boolean isFaceScan() { + return isElementDisplayed(faceCapturerHeader, 2000); } - - public boolean isIrisScanQualityDisplyed() { + + public boolean isIrisScanQualityDisplyed() { return isElementDisplayed(irisScanQuality); } - - public boolean isRightHandScanQualityDisplyed() { + + public boolean isRightHandScanQualityDisplyed() { return isElementDisplayed(rightHandScanQuality); } - - public boolean isLeftHandScanQualityDisplyed() { + + public boolean isLeftHandScanQualityDisplyed() { return isElementDisplayed(leftHandScanQuality); } - - public boolean isThumbsScanQualityDisplyed() { + + public boolean isThumbsScanQualityDisplyed() { return isElementDisplayed(thumbsScanQuality); } - - public boolean isFaceScanQualityDisplyed() { + + public boolean isFaceScanQualityDisplyed() { return isElementDisplayed(faceScanQuality); } - + public void clickOnMarkExceptionButton() { clickOnElement(markExceptionButton); } - + public void markOneEyeException() { clickOnElement(oneEyeException); } - + public void markOneFingureException() { clickOnElement(firstFingureExceptionImage); } - - public boolean isExceptionTypeTitleDisplyed() { + + public boolean isExceptionTypeTitleDisplyed() { return isElementDisplayed(exceptionTypeTitle); } - + public void clickOnExceptionTypeTemporaryButton() { - if(!isElementDisplayedOnScreen(temporaryButton)) { + if (!isElementDisplayedOnScreen(temporaryButton)) { swipeOrScroll(); } - clickOnElement(temporaryButton); + clickOnElement(temporaryButton); } - - public boolean isCommentHeaderDisplyed() { + + public boolean isCommentHeaderDisplyed() { return isElementDisplayed(commentsHeader); } - - public void enterCommentsInTextBox(String comments) { - if(!isElementDisplayedOnScreen(commentsTextBox)) { + + public void enterCommentsInTextBox(String comments) { + if (!isElementDisplayedOnScreen(commentsTextBox)) { swipeOrScroll(); } - clickAndsendKeysToTextBox(commentsTextBox,comments); + clickAndsendKeysToTextBox(commentsTextBox, comments); } - + public void clickOnIrisScanTitle() { clickOnElement(irisScanButtonTitle); } - + public void clickOnThumbsScanTitle() { clickOnElement(thumbsScanTitle); } - - public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed() { + + public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed() { return isElementDisplayed(markingExceptionsOnFaceIsNotAllowedText); } - - public boolean isZoomButtonDisplyed() { + + public boolean isZoomButtonDisplyed() { return isElementDisplayed(zoomButton); } - + public void clickOnRightHandScanTitle() { clickOnElement(rightHandScanTitle); } - + public void clickOnLeftHandScanTitle() { clickOnElement(leftHandScanTitle); } - + public void clickOnFaceScanTitle() { clickOnElement(faceScanTitle); } + public boolean checkThresholdValueIris() { - int requiredValue=60; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 60; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueRightHand() { - int requiredValue=40; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 40; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueLeftHand() { - int requiredValue=60; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 60; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueThumbs() { - int requiredValue=40; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 40; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueFace() { - int requiredValue=90; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 90; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean isVerifyAndSaveButtonEnabled() { return isElementDisplayed(verifyAndSaveButton); } - + public void clickOnVerifyAndSaveButton() { clickOnElement(verifyAndSaveButton); - + } - + public boolean isDismissPageLoaded() { return isElementDisplayed(dismissPage); } - - + public boolean isOperatorBiometricsUpdatedPopupLoaded() { - return isElementDisplayed(successPopup); + return isElementDisplayed(successPopup); } - + public void clickOnHomeButton() { clickOnElement(homeButton); } - + public void clickOnBackButton() { driver.navigate().back(); } + public boolean isUpdateOperatorBiometricsPageLoaded() { + return isElementDisplayed(updateOperatorBiometrics); + } + } diff --git a/ui-test/src/main/java/regclient/pages/french/UpdateUINPageFrench.java b/ui-test/src/main/java/regclient/pages/french/UpdateUINPageFrench.java index da11bb989..65481c06f 100644 --- a/ui-test/src/main/java/regclient/pages/french/UpdateUINPageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/UpdateUINPageFrench.java @@ -1,6 +1,5 @@ package regclient.pages.french; - import static org.testng.Assert.assertTrue; import java.util.List; @@ -15,50 +14,57 @@ import regclient.page.UpdateUINPage; import regclient.pages.english.ConsentPageEnglish; -public class UpdateUINPageFrench extends UpdateUINPage{ - +public class UpdateUINPageFrench extends UpdateUINPage { + @AndroidFindBy(xpath = "//android.widget.EditText") private WebElement UINNumberTextBox; - + @AndroidFindBy(accessibility = "CONTINUER") private WebElement continueButton; - + @AndroidFindBy(accessibility = "Veuillez saisir un UIN valide") private WebElement invalidUINErrorMessage; public UpdateUINPageFrench(AppiumDriver driver) { super(driver); } - + @SuppressWarnings("deprecation") public boolean isUpdateMyUINTitleDisplayed() { - return isElementDisplayed (findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getTitleUsingId("UPDATE") + "\"))"))); + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getTitleUsingId("UPDATE") + "\"))"))); } - public void enterUIN(String UIN) { - clickAndsendKeysToTextBox(UINNumberTextBox,UIN); + + public void enterUIN(String UIN) { + clickAndsendKeysToTextBox(UINNumberTextBox, UIN); } - public ConsentPage clickOnContinueButton() { + public ConsentPage clickOnContinueButton() { clickOnElement(continueButton); return new ConsentPageEnglish(driver); } - + public boolean isInvalidUINErrorMessageDisplayed() { return isElementDisplayed(invalidUINErrorMessage); } - + public void selectUpdateValue(String page) { - List groupLabelList=FetchUiSpec.getAllGroupLabelUsingId(page); - for(String title : groupLabelList) { - WebElement webelement =findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+title+"\")")); - assertTrue(isElementDisplayed(webelement),"Verify if "+title+" title is displayed in update uin page"); - clickOnElement(webelement); - } + List groupLabelList = FetchUiSpec.getAllGroupLabelUsingId(page); + for (String title : groupLabelList) { + WebElement webelement = findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\"" + title + "\")")); + assertTrue(isElementDisplayed(webelement), "Verify if " + title + " title is displayed in update uin page"); + clickOnElement(webelement); + } } - + public void selectUpdateIntroducerDetails() { - WebElement webelement =findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getGroupValueUsingId("introducerName")+"\")")); - assertTrue(isElementDisplayed(webelement),"Verify if "+FetchUiSpec.getGroupValueUsingId("introducerName")+" title is displayed in update uin page"); - clickOnElement(webelement); + WebElement webelement = findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\"" + + FetchUiSpec.getGroupValueUsingId("introducerName") + "\")")); + assertTrue(isElementDisplayed(webelement), "Verify if " + FetchUiSpec.getGroupValueUsingId("introducerName") + + " title is displayed in update uin page"); + clickOnElement(webelement); } } diff --git a/ui-test/src/main/java/regclient/pages/hindi/AcknowledgementPageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/AcknowledgementPageHindi.java index 9e1714b42..7bd7b9f27 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/AcknowledgementPageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/AcknowledgementPageHindi.java @@ -13,69 +13,70 @@ import regclient.pages.english.RegistrationTasksPageEnglish; public class AcknowledgementPageHindi extends AcknowledgementPage { - + @AndroidFindBy(accessibility = "रजिस्ट्रेशन स्वीकृति") private WebElement acknowledgementPageTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\"Application ID\"))") private WebElement applicationID; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.Image\")") private WebElement qrCodeImage; - + @AndroidFindBy(accessibility = "होम पर जाएं") private WebElement goToHomeButton; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\"जनसांख्यिकीय जानकारी\"))") private WebElement demographicInformationInAcknowledgementPage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\"दस्तावेज़\"))") private WebElement documentsInformationInAcknowledgementPage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\"बॉयोमेट्रिक्स\"))") private WebElement biometricsInformationInAcknowledgementPage; - public AcknowledgementPageHindi(AppiumDriver driver) { super(driver); } - + public RegistrationTasksPage clickOnGoToHomeButton() { clickOnElement(goToHomeButton); return new RegistrationTasksPageEnglish(driver); } - + public boolean isAcknowledgementPageDisplayed() { return isElementDisplayed(acknowledgementPageTitle); } - + public boolean isApplicationIDDisplayed() { return isElementDisplayed(applicationID); } - + public boolean isQrCodeImageDisplayed() { return isElementDisplayed(qrCodeImage); } - + public boolean isDemographicInformationInAcknowledgementPageDisplayed() { return isElementDisplayed(demographicInformationInAcknowledgementPage); } - + public boolean isDocumentsInformationInAcknowledgementPageDisplayed() { return isElementDisplayed(documentsInformationInAcknowledgementPage); } - + public boolean isBiometricsInformationInAcknowledgementPageDisplayed() { return isElementDisplayed(biometricsInformationInAcknowledgementPage); } - + @SuppressWarnings("deprecation") public DemographicDetailsPage clickOnDemographicDetailsTitle() { - clickOnElement(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))"))); + clickOnElement(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))"))); return new DemographicDetailsPageEnglish(driver); - } - + } + public String getAID() { return getTextFromLocator(applicationID); } diff --git a/ui-test/src/main/java/regclient/pages/hindi/ApplicantBiometricsPageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/ApplicantBiometricsPageHindi.java index fd6ff6824..12e7c2a70 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/ApplicantBiometricsPageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/ApplicantBiometricsPageHindi.java @@ -10,122 +10,122 @@ import regclient.page.BiometricDetailsPage; import regclient.pages.english.BiometricDetailsPageEnglish; -public class ApplicantBiometricsPageHindi extends ApplicantBiometricsPage{ - +public class ApplicantBiometricsPageHindi extends ApplicantBiometricsPage { + @AndroidFindBy(accessibility = "आईरिस स्कैन") private WebElement irisScanButton; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"आईरिस स्कैन\"))") private WebElement irisScanButtonTitle; - + @AndroidFindBy(accessibility = "स्थायी") private WebElement permanentButton; - + @AndroidFindBy(accessibility = "अस्थायी") private WebElement temporaryButton; - + @AndroidFindBy(accessibility = "अस्तित्व चिह्नित करें") private WebElement markExceptionButton; - + @AndroidFindBy(accessibility = "अस्तित्व चिह्नित करें") private WebElement exceptionTypeTitle; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(1)") private WebElement oneEyeException; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(2)") private WebElement firstFingureExceptionImage; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(1)") private WebElement secondFingureExceptionImage; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(3)") private WebElement thirdFingureExceptionImage; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(4)") private WebElement forthFingureExceptionImage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"दाएं हाथ\"))") private WebElement rightHandScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"बाएं हाथ\"))") private WebElement leftHandScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"अंगूठे स्कैन\"))") private WebElement thumbsScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"चेहरा स्कैन\"))") private WebElement faceScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"अपवाद स्कैन\"))") private WebElement exceptionScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().description(\"स्कैन\"))") private WebElement scanButton; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Iris कब्जा')]") private WebElement irisCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'RightHand कब्जा')]") private WebElement rightHandCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'LeftHand कब्जा')]") private WebElement leftHandCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Thumbs कब्जा')]") private WebElement thumbsCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Face कब्जा')]") private WebElement faceCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Exception कब्जा')]") private WebElement exceptionCapturerHeader; - + @AndroidFindBy(xpath = "//android.widget.ScrollView/android.view.View[3]") private WebElement zoomButton; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"टिप्पणियाँ\")]/following-sibling::android.widget.EditText") private WebElement commentsTextBox; - + @AndroidFindBy(className = "android.widget.Button") private WebElement popUpCloseButton; - + @AndroidFindBy(accessibility = "अगला") private WebElement nextButton; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"टिप्पणियाँ\"))") private WebElement commentsHeader; @AndroidFindBy(xpath = "//android.view.View[@content-desc=\"अस्तित्वाएं\"]/following-sibling::android.view.View[@content-desc=\"1\"]") private WebElement exceptionCount; - + public ApplicantBiometricsPageHindi(AppiumDriver driver) { super(driver); } - - public void enterCommentsInTextBox(String comments) { - if(!isElementDisplayedOnScreen(commentsTextBox)) { + + public void enterCommentsInTextBox(String comments) { + if (!isElementDisplayedOnScreen(commentsTextBox)) { swipeOrScroll(); } - clickAndsendKeysToTextBox(commentsTextBox,comments); + clickAndsendKeysToTextBox(commentsTextBox, comments); } public void clickOnScanButton() { clickOnElement(scanButton); - } + } public void clickOnExceptionTypePermanentButton() { - if(!isElementDisplayedOnScreen(permanentButton)) { + if (!isElementDisplayedOnScreen(permanentButton)) { swipeOrScroll(); } clickOnElement(permanentButton); } public void clickOnExceptionTypeTemporaryButton() { - if(!isElementDisplayedOnScreen(temporaryButton)) { + if (!isElementDisplayedOnScreen(temporaryButton)) { swipeOrScroll(); } - clickOnElement(temporaryButton); + clickOnElement(temporaryButton); } public void markOneEyeException() { @@ -191,69 +191,73 @@ public BiometricDetailsPage clickOnBackButton() { } @SuppressWarnings("deprecation") - public boolean isApplicantBiometricsPageDisplyed() { - return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("individualBiometrics") + "\"))"))); + public boolean isApplicantBiometricsPageDisplyed() { + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getValueUsingId("individualBiometrics") + "\"))"))); } @SuppressWarnings("deprecation") - public boolean isAuthenticationBiometricsPageDisplyed() { - return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("individualAuthBiometrics") + "\"))"))); + public boolean isAuthenticationBiometricsPageDisplyed() { + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getValueUsingId("individualAuthBiometrics") + "\"))"))); } - public boolean isExceptionTypeTitleDisplyed() { + public boolean isExceptionTypeTitleDisplyed() { return isElementDisplayed(exceptionTypeTitle); } - public boolean isRightHandScanTitleDisplyed() { + public boolean isRightHandScanTitleDisplyed() { return isElementDisplayed(rightHandScanTitle); } - public boolean isLeftHandScanTitleDisplyed() { + public boolean isLeftHandScanTitleDisplyed() { return isElementDisplayed(leftHandScanTitle); } - public boolean isThumbsScanTitleDisplyed() { + public boolean isThumbsScanTitleDisplyed() { return isElementDisplayed(thumbsScanTitle); } - public boolean isFaceScanTitleDisplyed() { + public boolean isFaceScanTitleDisplyed() { return isElementDisplayed(faceScanTitle); } - public boolean isExceptionScanTitleDisplyed() { + public boolean isExceptionScanTitleDisplyed() { return isElementDisplayed(exceptionScanTitle); } - public boolean isIrisScan() { - return isElementDisplayed(irisCapturerHeader,2000); + public boolean isIrisScan() { + return isElementDisplayed(irisCapturerHeader, 2000); } - public boolean isRightHandScan() { - return isElementDisplayed(rightHandCapturerHeader,2000); + public boolean isRightHandScan() { + return isElementDisplayed(rightHandCapturerHeader, 2000); } - public boolean isLeftHandScan() { - return isElementDisplayed(leftHandCapturerHeader,2000); + public boolean isLeftHandScan() { + return isElementDisplayed(leftHandCapturerHeader, 2000); } - public boolean isThumbsScan() { - return isElementDisplayed(thumbsCapturerHeader,2000); + public boolean isThumbsScan() { + return isElementDisplayed(thumbsCapturerHeader, 2000); } - public boolean isFaceScan() { - return isElementDisplayed(faceCapturerHeader,2000); + public boolean isFaceScan() { + return isElementDisplayed(faceCapturerHeader, 2000); } - public boolean isExceptionScan() { - return isElementDisplayed(exceptionCapturerHeader,2000); + public boolean isExceptionScan() { + return isElementDisplayed(exceptionCapturerHeader, 2000); } - public boolean isCommentHeaderDisplyed() { + public boolean isCommentHeaderDisplyed() { return isElementDisplayed(commentsHeader); } - public boolean isExceptionCountDisplyed() { - if(!isElementDisplayedOnScreen(exceptionCount)) { + public boolean isExceptionCountDisplyed() { + if (!isElementDisplayedOnScreen(exceptionCount)) { swipeOrScroll(); isElementDisplayed(exceptionCount); } diff --git a/ui-test/src/main/java/regclient/pages/hindi/AuthenticationPageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/AuthenticationPageHindi.java index 5f330419a..ae1f36983 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/AuthenticationPageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/AuthenticationPageHindi.java @@ -7,39 +7,46 @@ import regclient.page.AcknowledgementPage; import regclient.page.AuthenticationPage; -public class AuthenticationPageHindi extends AuthenticationPage{ - +public class AuthenticationPageHindi extends AuthenticationPage { + @AndroidFindBy(accessibility = "पासवर्ड का उपयोग करके प्रमाणीकरण") private WebElement authenticationPageTitle; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.EditText\").instance(0)") private WebElement userNameTextBox; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.EditText\").instance(1)") private WebElement passwordTextBox; - + @AndroidFindBy(accessibility = "प्रमाणित करें") private WebElement authenticateButton; + @AndroidFindBy(xpath = "//android.view.View[@content-desc='Authentication using Password']/preceding-sibling::android.widget.ImageView") + private WebElement authenticationImage; + public AuthenticationPageHindi(AppiumDriver driver) { super(driver); } - - public void enterUserName(String username) { - clickAndsendKeysToTextBox(userNameTextBox,username); + + public void enterUserName(String username) { + clickAndsendKeysToTextBox(userNameTextBox, username); } - - public void enterPassword(String password) { - clickAndsendKeysToTextBox(passwordTextBox,password); + + public void enterPassword(String password) { + clickAndsendKeysToTextBox(passwordTextBox, password); } - + public boolean isAuthenticationPageDisplayed() { return isElementDisplayed(authenticationPageTitle); } - + public AcknowledgementPage clickOnAuthenticatenButton() { clickOnElement(authenticateButton); return new AcknowledgementPageHindi(driver); } + public boolean isAuthenticationImageDisplayed() { + return isElementDisplayed(authenticationImage); + } + } diff --git a/ui-test/src/main/java/regclient/pages/hindi/BiometricDetailsPageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/BiometricDetailsPageHindi.java index 523c572d4..74939aba7 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/BiometricDetailsPageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/BiometricDetailsPageHindi.java @@ -1,123 +1,195 @@ package regclient.pages.hindi; import org.openqa.selenium.By; +import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebElement; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import io.appium.java_client.AppiumDriver; import io.appium.java_client.MobileBy; import io.appium.java_client.pagefactory.AndroidFindBy; +import io.mosip.testrig.apirig.testrunner.OTPListener; import regclient.api.FetchUiSpec; import regclient.page.ApplicantBiometricsPage; import regclient.page.BiometricDetailsPage; import regclient.page.IntroducerBiometricPage; import regclient.page.PreviewPage; import regclient.pages.english.ApplicantBiometricsPageEnglish; +import regclient.pages.english.BiometricDetailsPageEnglish; import regclient.pages.english.IntroducerBiometricPageEnglish; import regclient.pages.english.PreviewPageEnglish; -public class BiometricDetailsPageHindi extends BiometricDetailsPage{ +public class BiometricDetailsPageHindi extends BiometricDetailsPage { @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"आईरिस स्कैन\"))") private WebElement irisScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"दाएं हाथ स्कैन\"))") private WebElement rightHandScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"बाएं हाथ स्कैन\"))") private WebElement leftHandScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"अंगूठे स्कैन\"))") private WebElement thumbsScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"चेहरा स्कैन\"))") private WebElement faceScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"अपवाद स्कैन\"))") private WebElement exceptionScanIcon; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc,\"परिचयकर्ता बायोमेट्रिक्स\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"आईरिस स्कैन\"]") private WebElement introducerIrisScanIcon; - + @AndroidFindBy(accessibility = "जारी रखें") private WebElement continueButton; - + + @AndroidFindBy(xpath = "//android.widget.EditText[contains(@hint, 'अतिरिक्त जानकारी अनुरोध आईडी')]") + private WebElement additionalInfoRequestIdTextbox; + public BiometricDetailsPageHindi(AppiumDriver driver) { super(driver); } - + @SuppressWarnings("deprecation") - public boolean isBiometricDetailsPageDisplayed() { - return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("individualBiometrics") + "\"))"))); + public boolean isBiometricDetailsPageDisplayed() { + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getValueUsingId("individualBiometrics") + "\"))"))); } - + @SuppressWarnings("deprecation") - public boolean isAuthenticationBiometricTitleDisplayed() { - return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("individualAuthBiometrics") + "\"))"))); + public boolean isAuthenticationBiometricTitleDisplayed() { + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getValueUsingId("individualAuthBiometrics") + "\"))"))); } - + public ApplicantBiometricsPage clickOnIrisScan() { clickOnElement(irisScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public ApplicantBiometricsPage clickOnRightHandScanIcon() { clickOnElement(rightHandScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public ApplicantBiometricsPage clickOnLeftHandScanIcon() { clickOnElement(leftHandScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public ApplicantBiometricsPage clickOnThumbsScanIcon() { clickOnElement(thumbsScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public ApplicantBiometricsPage clickOnFaceScanIcon() { clickOnElement(faceScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public ApplicantBiometricsPage clickOnExceptionScanIcon() { clickOnElement(exceptionScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public IntroducerBiometricPage clickOnIntroducerIrisScan() { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Iris Scan\"]"))); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + + FetchUiSpec.getValueUsingId("introducerBiometrics") + + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Iris Scan\"]"))); return new IntroducerBiometricPageEnglish(driver); } - + public IntroducerBiometricPage clickOnIntroducerRightHandScan() { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Right\"]"))); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + + FetchUiSpec.getValueUsingId("introducerBiometrics") + + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Right\"]"))); return new IntroducerBiometricPageEnglish(driver); } - + public IntroducerBiometricPage clickOnIntroducerLeftHandScan() { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Left\"]"))); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + + FetchUiSpec.getValueUsingId("introducerBiometrics") + + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Left\"]"))); return new IntroducerBiometricPageEnglish(driver); } - + public IntroducerBiometricPage clickOnIntroducerThumbScan() { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Thumbs\"]"))); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + + FetchUiSpec.getValueUsingId("introducerBiometrics") + + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Thumbs\"]"))); return new IntroducerBiometricPageEnglish(driver); } - + public IntroducerBiometricPage clickOnIntroducerFaceScan() { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Face\"]"))); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + + FetchUiSpec.getValueUsingId("introducerBiometrics") + + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Face\"]"))); return new IntroducerBiometricPageEnglish(driver); } - - public PreviewPage clickOnContinueButton() { + + public PreviewPage clickOnContinueButton() { clickOnElement(continueButton); return new PreviewPageEnglish(driver); } + + public boolean isAdditionalInfoRequestIdTextboxDisplayed() { + return isElementDisplayed(additionalInfoRequestIdTextbox); + } + + public void enterAdditionalInfoUsingEmail(String emailId) { + int retries = 20, waitSeconds = 10; + final String SUFFIX = "-BIOMETRIC_CORRECTION-1"; + + for (int i = 1; i <= retries; i++) { + String id = OTPListener.getAdditionalReqId(emailId); + if (id != null && !id.isEmpty() && !id.equals("{Failed}")) { + String sanitized = id.trim().replaceAll("\\p{C}", ""); + String finalId = sanitized.endsWith(SUFFIX) ? sanitized : sanitized + SUFFIX; + + try { + WebElement el = additionalInfoRequestIdTextbox; + try { + el.clear(); + el.sendKeys(finalId); + } catch (Exception ignored) { + } + if (finalId.equals(el.getAttribute("value"))) + return; + + ((JavascriptExecutor) driver).executeScript( + "arguments[0].value=arguments[1];arguments[0].dispatchEvent(new Event('input',{bubbles:true}));", + el, finalId); + if (finalId.equals(el.getAttribute("value"))) + return; + } catch (Exception e) { + logger.error("Enter ID failed: ", e); + } + throw new RuntimeException("Textbox not accepting: " + finalId); + } + sleepSeconds(waitSeconds); + } + throw new RuntimeException("AdditionalInfoReqId not found after wait."); + } + + private void sleepSeconds(int s) { + try { + Thread.sleep(s * 1000L); + } catch (InterruptedException ignored) { + Thread.currentThread().interrupt(); + } + } + + private static final Logger logger = LoggerFactory.getLogger(BiometricDetailsPageEnglish.class); + } diff --git a/ui-test/src/main/java/regclient/pages/hindi/ConsentPageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/ConsentPageHindi.java index 80b18ffef..b925c05b0 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/ConsentPageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/ConsentPageHindi.java @@ -12,8 +12,7 @@ import regclient.pages.english.DemographicDetailsPageEnglish; import regclient.pages.english.RegistrationTasksPageEnglish; - -public class ConsentPageHindi extends ConsentPage{ +public class ConsentPageHindi extends ConsentPage { @AndroidFindBy(accessibility = "सूचित") private WebElement informedButton; @@ -26,33 +25,47 @@ public ConsentPageHindi(AppiumDriver driver) { } @SuppressWarnings("deprecation") - public boolean isConsentPageDisplayed() { - return isElementDisplayed(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("consentdet") + "\"))")); + public boolean isPageDisplayed(String pageKey) { + try { + String screenTitle = FetchUiSpec.getScreenTitle(pageKey); + + WebElement pageElement = findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0))" + + ".scrollIntoView(new UiSelector().descriptionContains(\"" + screenTitle + "\"))")); + + return isElementDisplayed(pageElement); + + } catch (Exception e) { + return false; // page not found or not visible + } } @SuppressWarnings("deprecation") public boolean isCheckBoxReadable() { - return isElementDisplayed (findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("consent") + "\"))"))); + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getValueUsingId("consent") + "\"))"))); } - public boolean isInformedButtonEnabled() { + public boolean isInformedButtonEnabled() { return isElementEnabled(informedButton); } - public DemographicDetailsPage clickOnInformedButton() { + public DemographicDetailsPage clickOnInformedButton() { clickOnElement(informedButton); return new DemographicDetailsPageEnglish(driver); } - public RegistrationTasksPage clickOnCancelButton() { clickOnElement(cancelButton); - return new RegistrationTasksPageEnglish(driver); + return new RegistrationTasksPageEnglish(driver); } @SuppressWarnings("deprecation") public boolean updateUINTitleDisplayed() { - return isElementDisplayed (findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getTitleUsingId("UPDATE") + "\"))"))); + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getTitleUsingId("UPDATE") + "\"))"))); } } diff --git a/ui-test/src/main/java/regclient/pages/hindi/DashboardPageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/DashboardPageHindi.java index 609f26fd7..f3b540182 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/DashboardPageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/DashboardPageHindi.java @@ -6,30 +6,30 @@ import io.appium.java_client.pagefactory.AndroidFindBy; import regclient.page.DashboardPage; -public class DashboardPageHindi extends DashboardPage{ +public class DashboardPageHindi extends DashboardPage { @AndroidFindBy(xpath = "//android.view.View[@content-desc=\"Dashboard\"]/following-sibling::android.view.View[3]") private WebElement packetUploadedNumber; - + @AndroidFindBy(xpath = "//android.view.View[@content-desc=\"Dashboard\"]/following-sibling::android.view.View[2]") private WebElement packetSyncedNumber; - - @AndroidFindBy(accessibility = "Dashboard") + + @AndroidFindBy(accessibility = "Tableau de bord") private WebElement dashboardPageTitle; - - @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"User ID\")]") + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Identifiant utilisateur\")]") private WebElement userIDTitle; - - @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"User Name\")]") + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Nom d’utilisateur\")]") private WebElement userNameTitle; - - @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Status\")]") + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Statut\")]") private WebElement statusTitle; - + public DashboardPageHindi(AppiumDriver driver) { super(driver); } - + public boolean isDashboardTitleDisplayed() { return isElementDisplayed(dashboardPageTitle); } @@ -37,19 +37,19 @@ public boolean isDashboardTitleDisplayed() { public boolean isPacketsUploadedValueDisplayed() { return isElementDisplayed(packetUploadedNumber); } - + public boolean isPacketsSyncedValueDisplayed() { return isElementDisplayed(packetSyncedNumber); } - + public boolean isUserIDDisplayed() { return isElementDisplayed(userIDTitle); } - + public boolean isUserNameDisplayed() { return isElementDisplayed(userNameTitle); } - + public boolean isStatusTitleDisplayed() { return isElementDisplayed(statusTitle); } diff --git a/ui-test/src/main/java/regclient/pages/hindi/DemographicDetailsPageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/DemographicDetailsPageHindi.java index fc932ef08..02c6e8f24 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/DemographicDetailsPageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/DemographicDetailsPageHindi.java @@ -2,7 +2,10 @@ import static org.testng.Assert.assertTrue; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.List; +import java.util.regex.Pattern; import org.openqa.selenium.By; import org.openqa.selenium.WebElement; @@ -10,6 +13,7 @@ import io.appium.java_client.AppiumDriver; import io.appium.java_client.MobileBy; import io.appium.java_client.pagefactory.AndroidFindBy; +import regclient.api.AdminTestUtil; import regclient.api.FetchUiSpec; import regclient.page.BasePage; import regclient.page.ConsentPage; @@ -19,7 +23,7 @@ import regclient.pages.english.DocumentuploadPageEnglish; import regclient.utils.TestDataReader; -public class DemographicDetailsPageHindi extends DemographicDetailsPage{ +public class DemographicDetailsPageHindi extends DemographicDetailsPage { @AndroidFindBy(accessibility = "नर") private WebElement maleButton; @@ -29,24 +33,43 @@ public class DemographicDetailsPageHindi extends DemographicDetailsPage{ @AndroidFindBy(accessibility = "जारी रखें") private WebElement continueButton; - + @AndroidFindBy(accessibility = "अमान्य निवेश") private WebElement errorMessageInvalidInputText; - + @AndroidFindBy(accessibility = "स्क्रिम") private WebElement backgroundScreen; - + @AndroidFindBy(accessibility = "FETCH DATA") private WebElement fetchDataButton; - + + @AndroidFindBy(xpath = "//android.widget.ScrollView/android.widget.EditText[1]") + private WebElement applicationIdTextBox; + + @AndroidFindBy(xpath = "//android.widget.Button[@content-desc='FETCH DATA']/following-sibling::android.widget.Button") + private WebElement scanButton; + + @AndroidFindBy(accessibility = "Postal/ بريدي") + private WebElement postalHeader; + public DemographicDetailsPageHindi(AppiumDriver driver) { super(driver); } - + @SuppressWarnings("deprecation") - public boolean isDemographicDetailsPageDisplayed() { - WebElement demographicDetailspage = findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))")); - return isElementDisplayed(demographicDetailspage); + public boolean isPageDisplayed(String pageKey) { + try { + String screenTitle = FetchUiSpec.getScreenTitle(pageKey); + + WebElement pageElement = findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0))" + + ".scrollIntoView(new UiSelector().descriptionContains(\"" + screenTitle + "\"))")); + + return isElementDisplayed(pageElement); + + } catch (Exception e) { + return false; // element not found or not visible + } } public boolean isErrorMessageInvalidInputTextDisplayed() { @@ -54,19 +77,22 @@ public boolean isErrorMessageInvalidInputTextDisplayed() { } @SuppressWarnings("deprecation") - public ConsentPage clickOnConsentPageTitle() { - WebElement consentTitle = findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("consentdet") + "\"))")); + public ConsentPage clickOnPageTitle(String pageKey) { + String screenTitle = FetchUiSpec.getScreenTitle(pageKey); + WebElement consentTitle = findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0))" + + ".scrollIntoView(new UiSelector().descriptionContains(\"" + screenTitle + "\"))")); clickOnElement(consentTitle); return new ConsentPageEnglish(driver); } - public DocumentUploadPage clickOnContinueButton() { + public DocumentUploadPage clickOnContinueButton() { clickOnElement(continueButton); return new DocumentuploadPageEnglish(driver); } - - public boolean isContinueButtonEnable() { + + public boolean isContinueButtonEnable() { return isElementEnabled(continueButton); } @@ -76,112 +102,159 @@ public boolean isPreRegFetchDataTextBoxDisplay() { } public void fillDemographicDetailsPage(String age) { - List idList=FetchUiSpec.getAllIds("DemographicDetails"); - for(String id : idList) { - if(FetchUiSpec.getRequiredTypeUsingId(id)) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + List idList = FetchUiSpec.getAllIds("DemographicDetails"); + for (String id : idList) { + if (FetchUiSpec.getRequiredTypeUsingId(id)) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); - } - else if(FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") && FetchUiSpec.getFormatUsingId(id).equals("none")){ + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); + } else if (FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") + && FetchUiSpec.getFormatUsingId(id).equals("none")) { waitTime(3); - while(!isElementDisplayed(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))) { + while (!isElementDisplayed(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))) { swipeOrScroll(); } - boolean isdisplayed =isElementDisplayed(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")")); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - WebElement dropdownElement=findElement(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.widget.Button")); + boolean isdisplayed = isElementDisplayed(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")")); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + WebElement dropdownElement = findElement( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.widget.Button")); clickOnElement(dropdownElement); waitTime(3); - if(!isElementDisplayed(dropdownElement)) { + if (!isElementDisplayed(dropdownElement)) { clickOnElement(findElement(By.className("android.view.View"))); - }else if(isElementDisplayed(dropdownElement)) { + } else if (isElementDisplayed(dropdownElement)) { swipeOrScroll(); clickOnElement(dropdownElement); waitTime(2); clickOnElement(findElement(By.className("android.view.View"))); } waitTime(2); - if(isElementDisplayed(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, \"Select Option\")]"))) { + if (isElementDisplayed(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, \"Select Option\")]"))) { clickOnElement(dropdownElement); waitTime(2); clickOnElement(findElement(By.className("android.view.View"))); } - }else if(FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") && FetchUiSpec.getFormatUsingId(id).equals("")){ - if(!isElementDisplayed(maleButton)) { + } else if (FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") + && FetchUiSpec.getFormatUsingId(id).equals("")) { + if (!isElementDisplayed(maleButton)) { swipeOrScroll(); - clickOnElement(maleButton); - }else - clickOnElement(maleButton); + clickOnElement(maleButton); + } else + clickOnElement(maleButton); - }else if(FetchUiSpec.getControlTypeUsingId(id).equals("ageDate")){ + } else if (FetchUiSpec.getControlTypeUsingId(id).equals("ageDate")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - if(age.equals("adult")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"20"); - else if(age.equals("minor")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"12"); - else if(age.equals("infant")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"4"); - else if(age.equals("currentCalenderDate")) { + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + if (age.equals("adult")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "20"); + else if (age.equals("minor")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "12"); + else if (age.equals("infant")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "4"); + else if (age.equals("currentCalenderDate")) { waitTime(1); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.view.View"))); + clickOnElement(findElementWithRetry(By.xpath( + "//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View"))); waitTime(1); clickOnElement(backgroundScreen); waitTime(1); - assertTrue(checkDateFormatAndCurrectDate(id),"Verify date format and current date and time while selecting age date"); + assertTrue(checkDateFormatAndCurrectDate(id), + "Verify date format and current date and time while selecting age date"); } } - } - else if(id.equals("residenceStatus")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") && FetchUiSpec.getFormatUsingId(id).equals("none")){ + } else if (id.equals("residenceStatus")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") + && FetchUiSpec.getFormatUsingId(id).equals("none")) { waitTime(2); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - WebElement dropdownElement=findElement(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.widget.Button")); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + WebElement dropdownElement = findElement( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.widget.Button")); clickOnElement(dropdownElement); waitTime(2); - if(!isElementDisplayed(dropdownElement)) { + if (!isElementDisplayed(dropdownElement)) { clickOnElement(findElement(By.className("android.view.View"))); - }else if(isElementDisplayed(dropdownElement)) { + } else if (isElementDisplayed(dropdownElement)) { swipeOrScroll(); clickOnElement(dropdownElement); waitTime(2); clickOnElement(findElement(By.className("android.view.View"))); } waitTime(2); - if(isElementDisplayed(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, \"Select Option\")]"))) { + if (isElementDisplayed(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, \"Select Option\")]"))) { clickOnElement(dropdownElement); waitTime(2); clickOnElement(findElement(By.className("android.view.View"))); } } } - if(id.equals("introducerName") && FetchUiSpec.getFlowType().equals("newProcess")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + if (id.equals("introducerName") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } - }if(id.equals("introducerRID") && FetchUiSpec.getFlowType().equals("newProcess")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + } + if (id.equals("introducerRID") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),TestDataReader.readData("RID")); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + TestDataReader.readData("RID")); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } } @@ -189,56 +262,91 @@ else if(id.equals("residenceStatus")) { } public void editDemographicDetailsPage(String age) { - List idList=FetchUiSpec.getAllIds("DemographicDetails"); - for(String id : idList) { - if(FetchUiSpec.getRequiredTypeUsingId(id)) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + List idList = FetchUiSpec.getAllIds("DemographicDetails"); + for (String id : idList) { + if (FetchUiSpec.getRequiredTypeUsingId(id)) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); - }else if(FetchUiSpec.getControlTypeUsingId(id).equals("ageDate")){ + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); + } else if (FetchUiSpec.getControlTypeUsingId(id).equals("ageDate")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - if(age.equals("adult")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"20"); - else if(age.equals("minor")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"12"); - else if(age.equals("infant")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"4"); - else if(age.equals("currentCalenderDate")) { + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + if (age.equals("adult")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "20"); + else if (age.equals("minor")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "12"); + else if (age.equals("infant")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "4"); + else if (age.equals("currentCalenderDate")) { waitTime(1); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.view.View"))); + clickOnElement(findElementWithRetry(By.xpath( + "//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View"))); waitTime(1); clickOnElement(backgroundScreen); waitTime(1); - assertTrue(checkDateFormatAndCurrectDate(id),"Verify date format and current date and time while selecting age date"); + assertTrue(checkDateFormatAndCurrectDate(id), + "Verify date format and current date and time while selecting age date"); } } } - if(id.equals("introducerName") && FetchUiSpec.getFlowType().equals("newProcess")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + if (id.equals("introducerName") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } - }if(id.equals("introducerRID") && FetchUiSpec.getFlowType().equals("newProcess")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + } + if (id.equals("introducerRID") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),TestDataReader.readData("RID")); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + TestDataReader.readData("RID")); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } } @@ -246,45 +354,412 @@ else if(age.equals("currentCalenderDate")) { } public boolean checkSecondLanguageTextBoxNotNull(String id) { - if(getTextFromLocator(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[2]")))==null || getTextFromLocator(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[2]")))=="" ) - return false; + if (getTextFromLocator(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[2]"))) == null + || getTextFromLocator(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[2]"))) == "") + return false; else - return true; + return true; } - public boolean checkDateFormatAndCurrectDate(String id) { - if(getTextFromLocator(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.view.View"))).equalsIgnoreCase(getCurrentDate())) - return true; + public boolean checkDateFormatAndCurrectDate(String id) { + if (getTextFromLocator(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View"))) + .equalsIgnoreCase(getCurrentDate())) + return true; else return false; } - + public void fillIntroducerDetailsInDemographicDetailsPage(String age) { - List idList=FetchUiSpec.getAllIds("DemographicDetails"); - for(String id : idList) { - if(id.equals("introducerName")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + List idList = FetchUiSpec.getAllIds("DemographicDetails"); + for (String id : idList) { + if (id.equals("introducerName")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } - }if(id.equals("introducerUIN")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + } + if (id.equals("introducerUIN")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),TestDataReader.readData("UINminor")); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + TestDataReader.readData("UINminor")); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } } } } + + public void fetchPreregApplicationId(String age) { + By appIdLabel = By.xpath("//android.widget.EditText[contains(@hint,'Application ID')]"); + By appIdTextbox = By.xpath("//android.widget.EditText[contains(@hint,'Please Enter Application ID')]"); + + // Verify label is displayed + boolean isDisplayed = isElementDisplayed(appIdLabel); + assertTrue(isDisplayed, "Verify if Application ID label is displayed"); + + // Enter prereg ID + applicationIdTextBox = findElementWithRetry(appIdTextbox); + clickAndsendKeysToTextBox(applicationIdTextBox, AdminTestUtil.getPreRegistrationFlow(age)); + clickOnElement(fetchDataButton); + } + + public void validateFetchedDemographicData() { + Pattern genderPattern = Pattern.compile("(?i)\\b(male|female|other|others|m|f|o)\\b"); + String[] dateFormats = { "yyyy-MM-dd", "dd/MM/yyyy", "dd-MM-yyyy" }; + + List idList = FetchUiSpec.getAllIds("DemographicDetails"); + for (String id : idList) { + if (!FetchUiSpec.getRequiredTypeUsingId(id)) + continue; + + String label = FetchUiSpec.getValueUsingId(id); + String controlType = FetchUiSpec.getControlTypeUsingId(id); + String lowerLabel = label == null ? "" : label.toLowerCase(); + + // common candidate element (immediate following control) + WebElement el = null; + try { + el = findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc,'" + label + "') or contains(@text,'" + + label + "')]" + "/parent::android.view.View/following-sibling::*[1]")); + } catch (Exception ignored) { + } + + // NAME + if (lowerLabel.contains("name")) { + // make visible like fill method + try { + int tries = 0; + while (tries < 6 && !isElementDisplayed(findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\"" + label + "\")")))) { + swipeOrScroll(); + tries++; + } + } catch (Exception ignored) { + } + + // prefer the same EditText locator used when filling + if (el == null) { + try { + el = findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,'" + label + + "') or contains(@text,'" + label + "')]" + + "/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")); + } catch (Exception ignored) { + } + } + assertTrue(el != null, "Name field element not found for: " + label); + String name = extract(el).trim(); + assertTrue(!name.isEmpty(), "Verify name is not empty for: " + label); + assertTrue(name.matches(".*[A-Za-z].*"), "Verify name contains letters: " + name); + continue; + } + + // DOB / ageDate + if ("ageDate".equals(controlType) || lowerLabel.contains("dob") || lowerLabel.contains("date of birth")) { + String raw = el == null ? "" : extract(el).trim(); + assertTrue(!raw.isEmpty(), "Verify DOB/AgeDate is not empty for: " + label); + boolean ok = false; + for (String fmt : dateFormats) { + try { + SimpleDateFormat sdf = new SimpleDateFormat(fmt); + sdf.setLenient(false); + if (sdf.parse(raw) != null) { + ok = true; + break; + } + } catch (ParseException ignored) { + } + } + ok = ok || raw.replaceAll("\\D+", "").length() > 0; + assertTrue(ok, "Verify DOB/AgeDate has valid date/digits for " + label + ": '" + raw + "'"); + continue; + } + + // PHONE - simple, robust version + if (lowerLabel.contains("phone") || lowerLabel.contains("mobile") || lowerLabel.contains("هاتف")) { + // make label visible (same approach as fillDemographicDetailsPage) + try { + int tries = 0; + while (tries < 6 && !isElementDisplayed(findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\"" + label + "\")")))) { + swipeOrScroll(); + tries++; + } + } catch (Exception ignored) { + } + + // primary locator (same as fill) + WebElement phoneEl = null; + try { + phoneEl = findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + label + + "\") or contains(@text, \"" + label + "\")]" + + "/parent::android.view.View/following-sibling::android.view.View//android.widget.EditText[1]")); + } catch (Exception ignored) { + } + + // fallback to ancestor search + if (phoneEl == null) { + try { + phoneEl = findElementIfExists(By.xpath("//android.view.View[contains(@content-desc, \"" + label + + "\") or contains(@text, \"" + label + "\")]" + + "/ancestor::android.view.View[1]//android.widget.EditText[1]")); + } catch (Exception ignored) { + } + } + + // if still null, provide short diagnostic and fail + if (phoneEl == null) { + StringBuilder diag = new StringBuilder(); + try { + WebElement labelEl = findElementIfExists( + By.xpath("//android.view.View[contains(@content-desc, \"" + label + + "\") or contains(@text, \"" + label + "\")]")); + if (labelEl != null) { + List sibs = labelEl + .findElements(By.xpath("parent::android.view.View/following-sibling::*")); + for (int i = 0; i < Math.min(sibs.size(), 6); i++) { + WebElement s = sibs.get(i); + String t = ""; + try { + t = s.getText(); + } catch (Exception ignored) { + } + String cd = ""; + try { + cd = s.getAttribute("content-desc"); + } catch (Exception ignored) { + } + diag.append("sib[").append(i).append("]={text=").append(t).append(",cd=").append(cd) + .append("}; "); + } + } + } catch (Exception ignored) { + } + assertTrue(false, "Phone field element not found for: " + label + ". Nearby: " + diag.toString()); + } + + // extract and validate + String phone = extract(phoneEl); + phone = phone == null ? "" : phone.trim(); + assertTrue(!phone.isEmpty(), "Verify phone is not empty for: " + label); + String digits = phone.replaceAll("\\D+", ""); + assertTrue(digits.length() >= 7 && digits.length() <= 15, + "Verify phone has 7-15 digits for " + label + ": " + phone); + } + + // EMAIL + if (lowerLabel.contains("email") || lowerLabel.contains("e-mail") || lowerLabel.contains("البريد")) { + // make label visible (same approach as fill) + try { + int tries = 0; + while (tries < 6 && !isElementDisplayed(findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\"" + label + "\")")))) { + swipeOrScroll(); + tries++; + } + } catch (Exception ignored) { + } + + // primary locator (same style as fill) + WebElement emailEl = null; + try { + emailEl = findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + label + + "\") or contains(@text, \"" + label + "\")]" + + "/parent::android.view.View/following-sibling::android.view.View//android.widget.EditText[1]")); + } catch (Exception ignored) { + } + + // fallback: any EditText under the same ancestor + if (emailEl == null) { + try { + emailEl = findElementIfExists(By.xpath("//android.view.View[contains(@content-desc, \"" + label + + "\") or contains(@text, \"" + label + "\")]" + + "/ancestor::android.view.View[1]//android.widget.EditText[1]")); + } catch (Exception ignored) { + } + } + + // if still null, show short diagnostic and fail + if (emailEl == null) { + StringBuilder diag = new StringBuilder(); + try { + WebElement labelEl = findElementIfExists( + By.xpath("//android.view.View[contains(@content-desc, \"" + label + + "\") or contains(@text, \"" + label + "\")]")); + if (labelEl != null) { + List sibs = labelEl + .findElements(By.xpath("parent::android.view.View/following-sibling::*")); + for (int i = 0; i < Math.min(sibs.size(), 6); i++) { + WebElement s = sibs.get(i); + String t = ""; + try { + t = s.getText(); + } catch (Exception ignored) { + } + String cd = ""; + try { + cd = s.getAttribute("content-desc"); + } catch (Exception ignored) { + } + diag.append("sib[").append(i).append("]={text=").append(t).append(",cd=").append(cd) + .append("}; "); + } + } + } catch (Exception ignored) { + } + assertTrue(false, "Email field element not found for: " + label + ". Nearby: " + diag.toString()); + } + + // extract and validate + String email = extract(emailEl); + email = email == null ? "" : email.trim(); + assertTrue(!email.isEmpty(), "Verify email is not empty for: " + label); + + // simple regex good for tests + boolean emailOk = email.matches("^[A-Za-z0-9._%+\\-]+@[A-Za-z0-9.\\-]+\\.[A-Za-z]{2,}$"); + assertTrue(emailOk, "Verify email format is valid for " + label + ": " + email); + } + } + } + + public void fillRemainDemographicDetailsPage(String age) { + + List idList = FetchUiSpec.getAllIds("DemographicDetails"); + for (String id : idList) { + if (FetchUiSpec.getRequiredTypeUsingId(id) && !id.equals("Postal")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") + && FetchUiSpec.getFormatUsingId(id).equals("none")) { + waitTime(3); + while (!isElementDisplayed(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))) { + swipeOrScroll(); + } + boolean isdisplayed = isElementDisplayed(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")")); +// assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + WebElement dropdownElement = findElement( + By.xpath("//android.widget.Button[.//android.view.View[contains(@content-desc,'" + + FetchUiSpec.getValueUsingId(id) + "')]]")); + clickOnElement(dropdownElement); + waitTime(3); + if (!isElementDisplayed(dropdownElement)) { + clickOnElement(findElement(By.className("android.view.View"))); + } else if (isElementDisplayed(dropdownElement)) { + swipeOrScroll(); + clickOnElement(dropdownElement); + waitTime(2); + clickOnElement(findElement(By.className("android.view.View"))); + } + waitTime(2); + if (isElementDisplayed(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, \"Select Option\")]"))) { + clickOnElement(dropdownElement); + waitTime(2); + clickOnElement(findElement(By.className("android.view.View"))); + } + } + } else if (FetchUiSpec.getRequiredTypeUsingId(id) && id.equals("Postal")) { + By postalDropdown = By.xpath("//android.view.View[contains(@content-desc, 'Postal')]" + + "/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, 'Select Option')]"); + + int attempts = 0; + while (attempts < 3) { + try { + if (isElementDisplayed(postalDropdown)) { + WebElement dropdownElement = findElement(postalDropdown); + clickOnElement(dropdownElement); + waitTime(3); // increased wait for Postal data load + + if (isElementDisplayed(By.className("android.view.View"))) { + clickOnElement(findElement(By.className("android.view.View"))); + System.out.println("✅ Postal dropdown handled successfully"); + break; // success + } else { + System.out.println("⏳ Postal options not visible yet, retrying..."); + } + } else { + swipeOrScroll(); + } + } catch (org.openqa.selenium.StaleElementReferenceException e) { + System.out.println("🔄 Postal element went stale, retrying..."); + } + waitTime(2); + attempts++; + } + } + if (id.equals("introducerName") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + waitTime(3); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); + } + } + } + if (id.equals("introducerRID") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + waitTime(3); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + TestDataReader.readData("RID")); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); + } + } + } + } + } + + public boolean isApplicationIdTextBoxDisplay() { + return isElementDisplayed(applicationIdTextBox); + } + + public void clickOnScanButton() { + clickOnElement(scanButton); + } } diff --git a/ui-test/src/main/java/regclient/pages/hindi/IntroducerBiometricPageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/IntroducerBiometricPageHindi.java index 7123d48ed..ce1a0ed89 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/IntroducerBiometricPageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/IntroducerBiometricPageHindi.java @@ -183,5 +183,9 @@ public boolean isFaceScan() { public boolean isExceptionScan() { return isElementDisplayed(exceptionCapturerHeader,2000); } + + public boolean isNextButtonDisplyed() { + return isElementDisplayed(nextButton); + } } diff --git a/ui-test/src/main/java/regclient/pages/hindi/LoginPageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/LoginPageHindi.java index 705c05a18..da36e4dfc 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/LoginPageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/LoginPageHindi.java @@ -55,39 +55,41 @@ public class LoginPageHindi extends LoginPage { @AndroidFindBy(accessibility = "हिन्दी") private WebElement hindiButton; + + @AndroidFindBy(accessibility = "होम पेज पर जाएं") + private WebElement skipToHomeButton; public LoginPageHindi(AppiumDriver driver) { super(driver); } - - public void enterUserName(String username) { - clickAndsendKeysToTextBox(userNameTextBox,username); + public void enterUserName(String username) { + clickAndsendKeysToTextBox(userNameTextBox, username); } - public void clickOnNextButton() { + public void clickOnNextButton() { clickOnElement(nextButton); } - public void clickOnBackButton() { + public void clickOnBackButton() { clickOnElement(backButton); } - public void enterPassword(String password) { - retryFindElement(passwordTextBox,Duration.ofSeconds(10)); - clickAndsendKeysToTextBox(passwordTextBox,password); + public void enterPassword(String password) { + retryFindElement(passwordTextBox, Duration.ofSeconds(10)); + clickAndsendKeysToTextBox(passwordTextBox, password); } - public RegistrationTasksPage clickOnloginButton() { + public RegistrationTasksPage clickOnloginButton() { clickOnElement(loginButton); return new RegistrationTasksPageHindi(driver); } - public boolean isNextButtonEnabled() { + public boolean isNextButtonEnabled() { return isElementEnabled(nextButton); } - public boolean isLoginButtonEnabled() { + public boolean isLoginButtonEnabled() { return isElementEnabled(loginButton); } @@ -139,5 +141,7 @@ public void selectLanguage() { clickOnElement(hindiButton); } - + public void clickOnSkipToHomeButton() { + clickOnElement(skipToHomeButton); + } } diff --git a/ui-test/src/main/java/regclient/pages/hindi/ManageApplicationsPageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/ManageApplicationsPageHindi.java index 256917572..8924bc20f 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/ManageApplicationsPageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/ManageApplicationsPageHindi.java @@ -65,6 +65,24 @@ public class ManageApplicationsPageHindi extends ManageApplicationsPage{ @AndroidFindBy(accessibility = "Dismiss") private WebElement deletionValueDropdown; + + @AndroidFindBy(xpath = "//android.widget.TextView[@text='Documents'][2]") + private WebElement documentsHeader; + + @AndroidFindBy(accessibility = "android:id/button1") + private WebElement useThisFolderButton; + + @AndroidFindBy(accessibility = "android:id/button1") + private WebElement allowButton; + + @AndroidFindBy(xpath = "//android.widget.TextView[@resource-id='android:id/title' and @text='Documents']") + private WebElement documentsFolder; + + @AndroidFindBy(accessibility = "No network found!") + private WebElement noNetworkFound; + + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.CheckBox\").instance(1)") + private WebElement latestAidCheckBox; public ManageApplicationsPageHindi(AppiumDriver driver) { super(driver); @@ -214,5 +232,35 @@ public boolean isDeletionDropdownOptionDisplayed() { public void clickOnBackButton() { driver.navigate().back(); } + + public void clickOnExportButton() { + clickOnElement(exportButton); + waitTime(10); + } + + public void clickOnUseThisFolderButton() { + if (isElementDisplayed(documentsHeader)) { + clickOnElement(useThisFolderButton); + if (isElementDisplayed(allowButton)) { + clickOnElement(allowButton); + } + } else if (isElementDisplayed(documentsFolder)) { + clickOnElement(documentsFolder); + clickOnElement(useThisFolderButton); + if (isElementDisplayed(allowButton)) { + clickOnElement(allowButton); + } + } else { + throw new RuntimeException("Documents folder or header not found on screen"); + } + } + + public boolean isNoNetworkFoundDisplayed() { + return isElementDisplayed(noNetworkFound); + } + + public void selectLatestAidCheckBox() { + clickOnElement(latestAidCheckBox); + } } diff --git a/ui-test/src/main/java/regclient/pages/hindi/PendingApprovalHindi.java b/ui-test/src/main/java/regclient/pages/hindi/PendingApprovalHindi.java index 5570bc5e2..56835ebf2 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/PendingApprovalHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/PendingApprovalHindi.java @@ -1,10 +1,10 @@ -/** - * - */ + package regclient.pages.hindi; import static org.testng.Assert.assertTrue; +import java.util.List; + import org.openqa.selenium.By; import org.openqa.selenium.WebElement; @@ -13,7 +13,7 @@ import io.appium.java_client.pagefactory.AndroidFindBy; import regclient.page.PendingApproval; -public class PendingApprovalHindi extends PendingApproval{ +public class PendingApprovalHindi extends PendingApproval { @AndroidFindBy(accessibility = "लंबित अनुमोदन") private WebElement pendingApprovalTitle; @@ -23,7 +23,7 @@ public class PendingApprovalHindi extends PendingApproval{ @AndroidFindBy(accessibility = "स्क्रिम") private WebElement backGroundScreen; - + @AndroidFindBy(accessibility = "उपयोगकर्ता नाम अमान्य!") private WebElement invalidUsernameMessage; @@ -41,41 +41,61 @@ public class PendingApprovalHindi extends PendingApproval{ @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.EditText\").instance(1)") private WebElement passwordTextBox; - + @AndroidFindBy(xpath = "//*[contains(@content-desc,\"लंबित अनुमोदन\")]//preceding-sibling::android.widget.Button") private WebElement backButton; - + @AndroidFindBy(accessibility = "REJECT") private WebElement rejectButton; - + @AndroidFindBy(accessibility = "Sl.no Application ID Reg. Date Client Status Review Status Operator ID") - private WebElement pageAttributes ; - + private WebElement pageAttributes; + @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"CREATED\")") private WebElement clientStatus; - + @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"Pending\").instance(1)") private WebElement reviewStatus; - + @AndroidFindBy(xpath = "//android.widget.EditText") private WebElement applicationIdTextbox; - + @AndroidFindBy(accessibility = "Reject Packet?") private WebElement rejectPacketTitle; - + @AndroidFindBy(accessibility = "Please select a value") private WebElement rejectReasonDropdown; + @AndroidFindBy(accessibility = "Displaying 1 Applications") + private WebElement displayApplication; + + @AndroidFindBy(accessibility = "Please select a reason for packet rejection. You can change your review to approve or reset the review status later.") + private WebElement rejectPacketInfoMessage; + + @AndroidFindBy(uiAutomator = "new UiSelector().text(\"Biometrics\")") + private WebElement pendingApprovalBiometricsInformation; + + @AndroidFindBy(xpath = "(//android.widget.Button[@content-desc])[1]") + private WebElement latestAid; + + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.CheckBox\").instance(1)") + private WebElement latestAIdCheckBox; @AndroidFindBy(accessibility = "SUBMIT") private WebElement invalidUsernameMessageForempty; - + + @AndroidFindBy(accessibility = "कोई नेटवर्क नहीं मिला!") + private WebElement noNetworkFound; + + @AndroidFindBy(accessibility = "सत्यापित करें") + private WebElement authenticateButton; + public PendingApprovalHindi(AppiumDriver driver) { super(driver); } public boolean isPendingApprovalTitleDisplayed() { - return isElementDisplayed(pendingApprovalTitle); + return isElementDisplayed(pendingApprovalTitle); } @SuppressWarnings("deprecation") @@ -100,77 +120,120 @@ public void clickOnSubmitButton() { } public boolean isSupervisorAuthenticationTitleDisplayed() { - return isElementDisplayed(supervisorAuthenticationTitle); + return isElementDisplayed(supervisorAuthenticationTitle); } - public void enterUserName(String username) { - sendKeysToTextBox(userNameTextBox,username); + public void enterUserName(String username) { + sendKeysToTextBox(userNameTextBox, username); } - public void enterPassword(String password) { - sendKeysToTextBox(passwordTextBox,password); + public void enterPassword(String password) { + sendKeysToTextBox(passwordTextBox, password); } - + public void clickOnBackButton() { clickOnElement(backButton); } public boolean isApprovalButtonDisplayed() { - return isElementDisplayed(approveButton); + return isElementDisplayed(approveButton); } - + public boolean isInvalidUsernameMessageDisplayed() { - return isElementDisplayed(invalidUsernameMessage); + return isElementDisplayed(invalidUsernameMessage); } - + public boolean isInvalidemptyUsernameSumbitButtonEnbled() { return isElementEnabled(invalidUsernameMessageForempty); } - + public boolean isRejectButtonDisplayed() { - return isElementDisplayed(rejectButton); + return isElementDisplayed(rejectButton); } - + public boolean isPageAttributesDisplayed() { - return isElementDisplayed(pageAttributes); + return isElementDisplayed(pageAttributes); } - + public boolean isClientStatusDisplayed() { - return isElementDisplayed(clientStatus); + return isElementDisplayed(clientStatus); } public boolean isReviewStatusDisplayed() { - return isElementDisplayed(reviewStatus); + return isElementDisplayed(reviewStatus); } - - public void enterAID(String AID) { - clickAndsendKeysToTextBox(applicationIdTextbox,AID); + + public void enterAID(String AID) { + clickAndsendKeysToTextBox(applicationIdTextbox, AID); } - + public void clickOnRejectButton() { clickOnElement(rejectButton); } - + public boolean isRejectPacketTitleDisplayed() { - return isElementDisplayed(rejectPacketTitle); + return isElementDisplayed(rejectPacketTitle); } - + public void selectRejectionReasonDropdown() { - boolean isdisplayed =isElementDisplayed(rejectReasonDropdown); - assertTrue(isdisplayed,"Verify if "+rejectReasonDropdown+" header is displayed"); + boolean isdisplayed = isElementDisplayed(rejectReasonDropdown); + assertTrue(isdisplayed, "Verify if " + rejectReasonDropdown + " header is displayed"); clickOnElement(rejectReasonDropdown); waitTime(2); - if(!isElementDisplayed(rejectReasonDropdown)) { + if (!isElementDisplayed(rejectReasonDropdown)) { clickOnElement(findElement(By.className("android.view.View"))); - }else { + } else { clickOnElement(rejectReasonDropdown); waitTime(2); clickOnElement(findElement(By.className("android.view.View"))); - } + } } - + public boolean isSubmitButtonEnabled() { - return isElementEnabled(submitButton); + return isElementEnabled(submitButton); + } + + public boolean isNumberOfApplicationDisplayed() { + waitTime(2); + return isElementDisplayed(displayApplication); + } + + public boolean isRejectPacketInfoMessageDisplayed() { + return isElementDisplayed(rejectPacketInfoMessage); + } + + public boolean isPendingApprovalBiometricsInformationDisplayed() { + swipeOrScroll(); + return isElementDisplayed(pendingApprovalBiometricsInformation); + } + + public void clickOnLatestAid() { + List allButtons = driver.findElements(MobileBy.className("android.widget.Button")); + allButtons.get(2).click(); + } + + public void selectLatestAIdCheckBox() { + clickOnElement(latestAIdCheckBox); + } + + @Override + public boolean isNoNetworkFoundDisplayed() { + // TODO Auto-generated method stub + return false; + } + + @Override + public void clickOnPendingApprovalSubmitButton(int maxRetries) { + // TODO Auto-generated method stub + + } + + public void clickOnAuthenticateButton() { + clickOnElement(authenticateButton); + } + + public boolean isAuthenticateButtonEnabled() { + return isElementEnabled(authenticateButton); } } diff --git a/ui-test/src/main/java/regclient/pages/hindi/PreviewPageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/PreviewPageHindi.java index 4e77f687c..7a719021d 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/PreviewPageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/PreviewPageHindi.java @@ -1,10 +1,12 @@ package regclient.pages.hindi; import org.openqa.selenium.WebElement; +import org.testng.Assert; import io.appium.java_client.AppiumDriver; import io.appium.java_client.MobileBy; import io.appium.java_client.pagefactory.AndroidFindBy; +import regclient.api.AdminTestUtil; import regclient.api.FetchUiSpec; import regclient.page.AuthenticationPage; import regclient.page.DemographicDetailsPage; @@ -12,86 +14,117 @@ import regclient.pages.english.AuthenticationPageEnglish; import regclient.pages.english.DemographicDetailsPageEnglish; -public class PreviewPageHindi extends PreviewPage{ - +public class PreviewPageHindi extends PreviewPage { + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\"जनसांख्यिकीय जानकारी\"))") private WebElement demographicInformationInPreviewPage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\"Application ID\"))") private WebElement applicationIDPreviewPage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\"दस्तावेज़\"))") private WebElement documentsInformationInPreviewPage; @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\"बॉयोमेट्रिक्स\"))") private WebElement biometricsInformationInPreviewPage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\"Iris ( 1 )\"))") private WebElement singleIrisImage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\"Iris ( 2 )\"))") private WebElement bothIrisImage; @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\"Fingers ( 7 )\"))") private WebElement fingerExceptionText; - + @AndroidFindBy(accessibility = "जारी रखें") private WebElement continueButton; - + + @AndroidFindBy(xpath = "//android.view.View[contains(@text,'Email')]/../following-sibling::android.view.View[1]") + private WebElement emailIdPreviewPage; + + @AndroidFindBy(accessibility = "खोया हुआ UIN") + private WebElement lostUinTitle; + public PreviewPageHindi(AppiumDriver driver) { super(driver); } - - public AuthenticationPage clickOnContinueButton() { + + public AuthenticationPage clickOnContinueButton() { clickOnElement(continueButton); return new AuthenticationPageEnglish(driver); } - + public boolean isDemographicInformationInPreviewPageDisplayed() { return isElementDisplayed(demographicInformationInPreviewPage); } - + public boolean isDocumentsInformationInPreviewPageDisplayed() { return isElementDisplayed(documentsInformationInPreviewPage); } - + public boolean isBiometricsInformationInPreviewPagePageDisplayed() { return isElementDisplayed(biometricsInformationInPreviewPage); } - + @SuppressWarnings("deprecation") public boolean isNewRegistrationTitleDisplayed() { - return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getTitleUsingId("NEW") + "\"))"))); + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getTitleUsingId("NEW") + "\"))"))); } - + public boolean updateUINTitleDisplayed() { - return isElementDisplayed (findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getTitleUsingId("UPDATE") + "\"))"))); + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getTitleUsingId("UPDATE") + "\"))"))); } - + public boolean isApplicationIDPreviewPagePageDisplayed() { return isElementDisplayed(applicationIDPreviewPage); } - + @SuppressWarnings("deprecation") public DemographicDetailsPage clickOnDemographicDetailsTitle() { - clickOnElement(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))"))); + clickOnElement(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))"))); return new DemographicDetailsPageEnglish(driver); } - + public boolean isBothIrisImageDisplayed() { return isElementDisplayed(bothIrisImage); } - + public boolean isSingleIrisImageDisplayed() { return isElementDisplayed(singleIrisImage); } - + public boolean isFingerExceptionText() { return isElementDisplayed(fingerExceptionText); } public String getAID() { - String applicationID = getTextFromLocator(applicationIDPreviewPage).replaceAll(".*Application ID (\\d+).*", "$1"); + String applicationID = getTextFromLocator(applicationIDPreviewPage).replaceAll(".*Application ID (\\d+).*", + "$1"); return applicationID; } + + public void validatePreRegAndApplicationIdMatch(String age) { + String preRegId = AdminTestUtil.getPreRegistrationFlow(age); + + String applicationID = getAID(); + + Assert.assertEquals(applicationID, preRegId, "Mismatch between API PreReg ID and UI Application ID!"); + } + + public String getEmailId() { + String emailId = getTextFromLocator(emailIdPreviewPage) + .replaceAll(".*?([A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}).*", "$1"); + return emailId; + } + + public boolean isLostUinTitleDisplayed() { + return isElementDisplayed(lostUinTitle); + } } diff --git a/ui-test/src/main/java/regclient/pages/hindi/ProfilePageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/ProfilePageHindi.java index cace7d860..48c13873f 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/ProfilePageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/ProfilePageHindi.java @@ -19,6 +19,8 @@ public class ProfilePageHindi extends ProfilePage{ @AndroidFindBy(accessibility = "There is still some action required!") private WebElement logoutPopUpMessage; + @AndroidFindBy(accessibility = "पासवर्ड रीसेट") + private WebElement resetPasswordButton; public ProfilePageHindi(AppiumDriver driver) { super(driver); @@ -43,5 +45,13 @@ public boolean isLogoutPopUpMessageDisplayed() { return isElementDisplayed(logoutPopUpMessage); } + public boolean isResetPasswordButtonDisplayed() { + return isElementDisplayed(resetPasswordButton); + } + + public LoginPage clickOnResetPasswordButton() { + clickOnElement(resetPasswordButton); + return new LoginPageEnglish(driver); + } } diff --git a/ui-test/src/main/java/regclient/pages/hindi/RegistrationTasksPageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/RegistrationTasksPageHindi.java index 74f252e2a..71100c967 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/RegistrationTasksPageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/RegistrationTasksPageHindi.java @@ -9,9 +9,9 @@ import regclient.page.ProfilePage; import regclient.page.RegistrationTasksPage; import regclient.page.SelectLanguagePage; +import regclient.pages.english.SelectLanguagePageEnglish; - -public class RegistrationTasksPageHindi extends RegistrationTasksPage{ +public class RegistrationTasksPageHindi extends RegistrationTasksPage { @AndroidFindBy(accessibility = "पंजीकरण कार्य") private WebElement registrationTasksTitle; @@ -23,42 +23,57 @@ public class RegistrationTasksPageHindi extends RegistrationTasksPage{ private WebElement newRegistrationButton; @AndroidFindBy(uiAutomator = "new UiSelector().className(\"android.widget.ImageView\").instance(0)") - private WebElement synchronizeDataButton ; + private WebElement synchronizeDataButton; @AndroidFindBy(xpath = "//android.widget.Toast[@text=\"Policy key Sync Completed\"]") - private WebElement policykeySyncCompletedMessage ; + private WebElement policykeySyncCompletedMessage; @AndroidFindBy(xpath = "//*[contains(@text,'Sync Completed')]") - private WebElement masterDataSyncCompletedMessage ; + private WebElement masterDataSyncCompletedMessage; @AndroidFindBy(xpath = "//android.widget.Toast[@text=\"Script Sync Completed\"]") - private WebElement scriptSyncCompletedMessage ; - + private WebElement scriptSyncCompletedMessage; + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(2)") private WebElement dashboardButton; - + @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"प्रोफ़ाइल\")") private WebElement profileButton; - + @AndroidFindBy(accessibility = "UIN अपडेट करें") private WebElement updateUinButton; - + @AndroidFindBy(accessibility = "खोया यूआईएन") private WebElement lostUinButton; - + @AndroidFindBy(accessibility = "Biometric correction") private WebElement biometricCorrectionButton; + @AndroidFindBy(accessibility = "Settings\nTab 2 of 4") + private WebElement settingsButton; + + @AndroidFindBy(id = "com.android.permissioncontroller:id/permission_message") + private WebElement locationPermissionMessage; + + @AndroidFindBy(id = "com.android.permissioncontroller:id/permission_allow_foreground_only_button") + private WebElement allowWhileUsingButton; + + @AndroidFindBy(id = "com.android.permissioncontroller:id/permission_allow_one_time_button") + private WebElement allowOnceButton; + + @AndroidFindBy(id = "com.android.permissioncontroller:id/permission_deny_button") + private WebElement dontAllowButton; + public RegistrationTasksPageHindi(AppiumDriver driver) { super(driver); } - public SelectLanguagePage clickOnNewRegistrationButton() { + public SelectLanguagePage clickOnNewRegistrationButton() { clickOnElement(newRegistrationButton); return new SelectLanguagePageHindi(driver); } - public void clickOnSynchronizeDataButton() { + public void clickOnSynchronizeDataButton() { clickOnElement(synchronizeDataButton); } @@ -81,54 +96,80 @@ public boolean isMasterDataSyncCompletedDisplayed() { public boolean isScriptSyncCompletedDisplayed() { return isElementDisplayed(scriptSyncCompletedMessage); } - - public DashboardPage clickOnDashboardButton() { + + public DashboardPage clickOnDashboardButton() { clickOnElement(dashboardButton); return new DashboardPageHindi(driver); } - public OperationalTaskPage clickOnOperationalTasksTitle() { + public OperationalTaskPage clickOnOperationalTasksTitle() { clickOnElement(operationalTaskPageTitle); return new OperationalTaskPageHindi(driver); } - + public boolean isProfileTitleDisplayed() { return isElementDisplayed(profileButton); } - - public ProfilePage clickProfileButton() { + + public ProfilePage clickProfileButton() { clickOnElement(profileButton); return new ProfilePageHindi(driver); } - - public SelectLanguagePage clickUpdateMyUINButton() { + + public SelectLanguagePage clickUpdateMyUINButton() { clickOnElement(updateUinButton); return new SelectLanguagePageHindi(driver); - } - + } + public boolean isUpdateUINTitleDisplayed() { return isElementDisplayed(updateUinButton); } - + public boolean isLostUINTitleDisplayed() { return isElementDisplayed(lostUinButton); } - + public boolean isBiometricCorrectionTitleDisplayed() { return isElementDisplayed(biometricCorrectionButton); } - - public void clickSynchronizeDataButton() { + + public void clickSynchronizeDataButton() { clickOnElement(synchronizeDataButton); waitTime(50); } - + public boolean checkLastSyncDate() { String contentDesc = synchronizeDataButton.getAttribute("content-desc"); - if(contentDesc.contains("Synchronize Data\n"+getCurrentDateWord()+",")) + if (contentDesc.contains("Synchronize Data\n" + getCurrentDateWord() + ",")) return true; else return false; } + public void clickOnLostUinButton() { + clickOnElement(lostUinButton); + } + + public void clickOnSettingsButton() { + clickOnElement(settingsButton); + } + + public SelectLanguagePage clickOnBiometricCorrectionButton() { + clickOnElement(biometricCorrectionButton); + return new SelectLanguagePageEnglish(driver); + } + + public void handleLocationPermission() { + try { + if (isElementDisplayed(locationPermissionMessage)) { + clickOnElement(allowWhileUsingButton); + } + } catch (Exception e) { + } + } + + public void clickOnRegistrationTasksTab() { + clickOnElement(registrationTasksTitle); + } + } diff --git a/ui-test/src/main/java/regclient/pages/hindi/UpdateOperatorBiometricspageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/UpdateOperatorBiometricspageHindi.java index e44eb0f02..bc6174333 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/UpdateOperatorBiometricspageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/UpdateOperatorBiometricspageHindi.java @@ -6,386 +6,392 @@ import io.appium.java_client.pagefactory.AndroidFindBy; import regclient.page.UpdateOperatorBiometricspage; -public class UpdateOperatorBiometricspageHindi extends UpdateOperatorBiometricspage{ +public class UpdateOperatorBiometricspageHindi extends UpdateOperatorBiometricspage { public UpdateOperatorBiometricspageHindi(AppiumDriver driver) { super(driver); - } + @AndroidFindBy(accessibility = "पर्यवेक्षक का बायोमेट्रिक अपडेट") private WebElement supervisorBiometricUpdatePageTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"आईरिस स्कैन\"))") private WebElement irisScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"दाएं हाथ स्कैन\"))") private WebElement rightHandScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"बाएं हाथ स्कैन\"))") private WebElement leftHandScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"अंगूठे स्कैन\"))") private WebElement thumbsScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"चेहरा स्कैन\"))") private WebElement faceScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"अपवाद स्कैन\"))") private WebElement exceptionScanIcon; - + @AndroidFindBy(accessibility = "आईरिस स्कैन") private WebElement irisScanButton; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"आईरिस स्कैन\"))") private WebElement irisScanButtonTitle; - + @AndroidFindBy(accessibility = "स्थायी") private WebElement permanentButton; - + @AndroidFindBy(accessibility = "अस्थायी") private WebElement temporaryButton; - + @AndroidFindBy(accessibility = "अस्तित्व चिह्नित करें") private WebElement markExceptionButton; - + @AndroidFindBy(accessibility = "अस्तित्व चिह्नित करें") private WebElement exceptionTypeTitle; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(1)") private WebElement oneEyeException; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(2)") private WebElement firstFingureExceptionImage; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(1)") private WebElement secondFingureExceptionImage; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(3)") private WebElement thirdFingureExceptionImage; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(4)") private WebElement forthFingureExceptionImage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"दाएं हाथ\"))") private WebElement rightHandScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"बाएं हाथ\"))") private WebElement leftHandScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"अंगूठे स्कैन\"))") private WebElement thumbsScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"चेहरा स्कैन\"))") private WebElement faceScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"अपवाद स्कैन\"))") private WebElement exceptionScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().description(\"स्कैन\"))") private WebElement scanButton; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Iris कब्जा')]") private WebElement irisCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'RightHand कब्जा')]") private WebElement rightHandCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'LeftHand कब्जा')]") private WebElement leftHandCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Thumbs कब्जा')]") private WebElement thumbsCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Face कब्जा')]") private WebElement faceCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Exception कब्जा')]") private WebElement exceptionCapturerHeader; - + @AndroidFindBy(xpath = "//android.widget.ScrollView/android.view.View[3]") private WebElement zoomButton; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"टिप्पणियाँ\")]/following-sibling::android.widget.EditText") private WebElement commentsTextBox; - + @AndroidFindBy(className = "android.widget.Button") private WebElement popUpCloseButton; - + @AndroidFindBy(accessibility = "अगला") private WebElement nextButton; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"टिप्पणियाँ\"))") private WebElement commentsHeader; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"सीमा \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement irisScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"सीमा \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement rightHandScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"सीमा \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement leftHandScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"सीमा \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement thumbsScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"सीमा \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement faceScanQuality; - + @AndroidFindBy(accessibility = "अपवादों को चिह्नित करना चेहरा अनुमति नहीं है") private WebElement markingExceptionsOnFaceIsNotAllowedText; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"सीमा \")]/following-sibling::android.view.View") private WebElement scanQualityText; - + @AndroidFindBy(accessibility = "सत्यापित करें और सहेजें") private WebElement verifyAndSaveButton; - + @AndroidFindBy(accessibility = "खारिज करें") private WebElement dismissPage; - + @AndroidFindBy(accessibility = "ऑपरेटर बायोमेट्रिक्स सफलतापूर्वक अपडेट किया गया।") private WebElement successPopup; - + @AndroidFindBy(accessibility = "घर") private WebElement homeButton; - + + @AndroidFindBy(accessibility = "ऑपरेटर बायोमेट्रिक अपडेट करें") + private WebElement updateOperatorBiometrics; + public void clickOnIrisScan() { clickOnElement(irisScanIcon); } - + public boolean isSupervisorBiometricUpdatePageLoaded() { return isElementDisplayed(supervisorBiometricUpdatePageTitle); } - + public void clickOnRightHandScanIcon() { clickOnElement(rightHandScanIcon); } - + public void clickOnLeftHandScanIcon() { clickOnElement(leftHandScanIcon); } - + public void clickOnThumbsScanIcon() { clickOnElement(thumbsScanIcon); } - + public void clickOnFaceScanIcon() { clickOnElement(faceScanIcon); } - + public void clickOnExceptionScanIcon() { clickOnElement(exceptionScanIcon); } - + public void clickOnScanButton() { clickOnElement(scanButton); - } - + } + public void clickOnNextButton() { clickOnElement(nextButton); } - + public void closeScanCapturePopUp() { driver.navigate().back(); } - - - public boolean isRightHandScanTitleDisplyed() { + + public boolean isRightHandScanTitleDisplyed() { return isElementDisplayed(rightHandScanTitle); } - - public boolean isLeftHandScanTitleDisplyed() { + + public boolean isLeftHandScanTitleDisplyed() { return isElementDisplayed(leftHandScanTitle); } - - public boolean isThumbsScanTitleDisplyed() { + + public boolean isThumbsScanTitleDisplyed() { return isElementDisplayed(thumbsScanTitle); } - - public boolean isFaceScanTitleDisplyed() { + + public boolean isFaceScanTitleDisplyed() { return isElementDisplayed(faceScanTitle); } - - public boolean isExceptionScanTitleDisplyed() { + + public boolean isExceptionScanTitleDisplyed() { return isElementDisplayed(exceptionScanTitle); } - - public boolean isIrisScan() { - return isElementDisplayed(irisCapturerHeader,2000); + + public boolean isIrisScan() { + return isElementDisplayed(irisCapturerHeader, 2000); } - - public boolean isRightHandScan() { - return isElementDisplayed(rightHandCapturerHeader,2000); + + public boolean isRightHandScan() { + return isElementDisplayed(rightHandCapturerHeader, 2000); } - - public boolean isLeftHandScan() { - return isElementDisplayed(leftHandCapturerHeader,2000); + + public boolean isLeftHandScan() { + return isElementDisplayed(leftHandCapturerHeader, 2000); } - - public boolean isThumbsScan() { - return isElementDisplayed(thumbsCapturerHeader,2000); + + public boolean isThumbsScan() { + return isElementDisplayed(thumbsCapturerHeader, 2000); } - - public boolean isFaceScan() { - return isElementDisplayed(faceCapturerHeader,2000); + + public boolean isFaceScan() { + return isElementDisplayed(faceCapturerHeader, 2000); } - - public boolean isIrisScanQualityDisplyed() { + + public boolean isIrisScanQualityDisplyed() { return isElementDisplayed(irisScanQuality); } - - public boolean isRightHandScanQualityDisplyed() { + + public boolean isRightHandScanQualityDisplyed() { return isElementDisplayed(rightHandScanQuality); } - - public boolean isLeftHandScanQualityDisplyed() { + + public boolean isLeftHandScanQualityDisplyed() { return isElementDisplayed(leftHandScanQuality); } - - public boolean isThumbsScanQualityDisplyed() { + + public boolean isThumbsScanQualityDisplyed() { return isElementDisplayed(thumbsScanQuality); } - - public boolean isFaceScanQualityDisplyed() { + + public boolean isFaceScanQualityDisplyed() { return isElementDisplayed(faceScanQuality); } - + public void clickOnMarkExceptionButton() { clickOnElement(markExceptionButton); } - + public void markOneEyeException() { clickOnElement(oneEyeException); } - + public void markOneFingureException() { clickOnElement(firstFingureExceptionImage); } - - public boolean isExceptionTypeTitleDisplyed() { + + public boolean isExceptionTypeTitleDisplyed() { return isElementDisplayed(exceptionTypeTitle); } - + public void clickOnExceptionTypeTemporaryButton() { - if(!isElementDisplayedOnScreen(temporaryButton)) { + if (!isElementDisplayedOnScreen(temporaryButton)) { swipeOrScroll(); } - clickOnElement(temporaryButton); + clickOnElement(temporaryButton); } - - public boolean isCommentHeaderDisplyed() { + + public boolean isCommentHeaderDisplyed() { return isElementDisplayed(commentsHeader); } - - public void enterCommentsInTextBox(String comments) { - if(!isElementDisplayedOnScreen(commentsTextBox)) { + + public void enterCommentsInTextBox(String comments) { + if (!isElementDisplayedOnScreen(commentsTextBox)) { swipeOrScroll(); } - clickAndsendKeysToTextBox(commentsTextBox,comments); + clickAndsendKeysToTextBox(commentsTextBox, comments); } - + public void clickOnIrisScanTitle() { clickOnElement(irisScanButtonTitle); } - + public void clickOnThumbsScanTitle() { clickOnElement(thumbsScanTitle); } - - public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed() { + + public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed() { return isElementDisplayed(markingExceptionsOnFaceIsNotAllowedText); } - - public boolean isZoomButtonDisplyed() { + + public boolean isZoomButtonDisplyed() { return isElementDisplayed(zoomButton); } - + public void clickOnRightHandScanTitle() { clickOnElement(rightHandScanTitle); } - + public void clickOnLeftHandScanTitle() { clickOnElement(leftHandScanTitle); } - + public void clickOnFaceScanTitle() { clickOnElement(faceScanTitle); } + public boolean checkThresholdValueIris() { - int requiredValue=60; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 60; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueRightHand() { - int requiredValue=40; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 40; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueLeftHand() { - int requiredValue=60; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 60; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueThumbs() { - int requiredValue=40; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 40; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueFace() { - int requiredValue=90; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 90; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean isVerifyAndSaveButtonEnabled() { return isElementDisplayed(verifyAndSaveButton); } - + public void clickOnVerifyAndSaveButton() { clickOnElement(verifyAndSaveButton); - + } - + public boolean isDismissPageLoaded() { return isElementDisplayed(dismissPage); } - - + public boolean isOperatorBiometricsUpdatedPopupLoaded() { - return isElementDisplayed(successPopup); + return isElementDisplayed(successPopup); } - + public void clickOnHomeButton() { clickOnElement(homeButton); } - + public void clickOnBackButton() { driver.navigate().back(); } - + + public boolean isUpdateOperatorBiometricsPageLoaded() { + return isElementDisplayed(updateOperatorBiometrics); + } + } diff --git a/ui-test/src/main/java/regclient/pages/kannada/AuthenticationPageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/AuthenticationPageKannada.java index cd34b6ec1..e7ccf4136 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/AuthenticationPageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/AuthenticationPageKannada.java @@ -22,6 +22,9 @@ public class AuthenticationPageKannada extends AuthenticationPage { @AndroidFindBy(accessibility = "ಪ್ರಮಾಣಿತಗೊಳಿಸಿ") private WebElement authenticateButton; + @AndroidFindBy(xpath = "//android.view.View[@content-desc='Authentication using Password']/preceding-sibling::android.widget.ImageView") + private WebElement authenticationImage; + public AuthenticationPageKannada(AppiumDriver driver) { super(driver); } @@ -42,5 +45,9 @@ public AcknowledgementPage clickOnAuthenticatenButton() { clickOnElement(authenticateButton); return new AcknowledgementPageKannada(driver); } + + public boolean isAuthenticationImageDisplayed() { + return isElementDisplayed(authenticationImage); + } } diff --git a/ui-test/src/main/java/regclient/pages/kannada/BiometricDetailsPageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/BiometricDetailsPageKannada.java index 3a1effdaa..c1dedf3a4 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/BiometricDetailsPageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/BiometricDetailsPageKannada.java @@ -1,17 +1,22 @@ package regclient.pages.kannada; import org.openqa.selenium.By; +import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebElement; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import io.appium.java_client.AppiumDriver; import io.appium.java_client.MobileBy; import io.appium.java_client.pagefactory.AndroidFindBy; +import io.mosip.testrig.apirig.testrunner.OTPListener; import regclient.api.FetchUiSpec; import regclient.page.ApplicantBiometricsPage; import regclient.page.BiometricDetailsPage; import regclient.page.IntroducerBiometricPage; import regclient.page.PreviewPage; import regclient.pages.english.ApplicantBiometricsPageEnglish; +import regclient.pages.english.BiometricDetailsPageEnglish; import regclient.pages.english.IntroducerBiometricPageEnglish; import regclient.pages.english.PreviewPageEnglish; @@ -19,105 +24,172 @@ public class BiometricDetailsPageKannada extends BiometricDetailsPage { @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"ಐರಿಸ್ ಸ್ಕ್ಯಾನ್\"))") private WebElement irisScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"ಬಲ ಕೈ ಸ್ಕ್ಯಾನ್\"))") private WebElement rightHandScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"ಎಡ ಕೈ ಸ್ಕ್ಯಾನ್\"))") private WebElement leftHandScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"ಬೆರಳುಗಳು ಸ್ಕ್ಯಾನ್\"))") private WebElement thumbsScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"ಮುಖ ಸ್ಕ್ಯಾನ್\"))") private WebElement faceScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"ವಿನಾಯಿತಿ ಸ್ಕ್ಯಾನ್\"))") private WebElement exceptionScanIcon; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc,\"ಪರಿಚಯಕಾರ ಬಯೋಮೆಟ್ರಿಕ್ಸ್\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"ಐರಿಸ್ ಸ್ಕ್ಯಾನ್\"]") private WebElement introducerIrisScanIcon; - + @AndroidFindBy(accessibility = "ಮುಂದುವರಿಸಿ") private WebElement continueButton; + @AndroidFindBy(xpath = "//android.widget.EditText[contains(@hint, 'ಹೆಚ್ಚುವರಿ ಮಾಹಿತಿ ವಿನಂತಿ ಐಡಿ')]") + private WebElement additionalInfoRequestIdTextbox; + public BiometricDetailsPageKannada(AppiumDriver driver) { super(driver); } @SuppressWarnings("deprecation") - public boolean isBiometricDetailsPageDisplayed() { - return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("individualBiometrics") + "\"))"))); + public boolean isBiometricDetailsPageDisplayed() { + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getValueUsingId("individualBiometrics") + "\"))"))); } - + @SuppressWarnings("deprecation") - public boolean isAuthenticationBiometricTitleDisplayed() { - return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("individualAuthBiometrics") + "\"))"))); + public boolean isAuthenticationBiometricTitleDisplayed() { + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getValueUsingId("individualAuthBiometrics") + "\"))"))); } - + public ApplicantBiometricsPage clickOnIrisScan() { clickOnElement(irisScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public ApplicantBiometricsPage clickOnRightHandScanIcon() { clickOnElement(rightHandScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public ApplicantBiometricsPage clickOnLeftHandScanIcon() { clickOnElement(leftHandScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public ApplicantBiometricsPage clickOnThumbsScanIcon() { clickOnElement(thumbsScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public ApplicantBiometricsPage clickOnFaceScanIcon() { clickOnElement(faceScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public ApplicantBiometricsPage clickOnExceptionScanIcon() { clickOnElement(exceptionScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public IntroducerBiometricPage clickOnIntroducerIrisScan() { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Iris Scan\"]"))); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + + FetchUiSpec.getValueUsingId("introducerBiometrics") + + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Iris Scan\"]"))); return new IntroducerBiometricPageEnglish(driver); } - + public IntroducerBiometricPage clickOnIntroducerRightHandScan() { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Right\"]"))); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + + FetchUiSpec.getValueUsingId("introducerBiometrics") + + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Right\"]"))); return new IntroducerBiometricPageEnglish(driver); } - + public IntroducerBiometricPage clickOnIntroducerLeftHandScan() { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Left\"]"))); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + + FetchUiSpec.getValueUsingId("introducerBiometrics") + + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Left\"]"))); return new IntroducerBiometricPageEnglish(driver); } - + public IntroducerBiometricPage clickOnIntroducerThumbScan() { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Thumbs\"]"))); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + + FetchUiSpec.getValueUsingId("introducerBiometrics") + + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Thumbs\"]"))); return new IntroducerBiometricPageEnglish(driver); } - + public IntroducerBiometricPage clickOnIntroducerFaceScan() { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Face\"]"))); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + + FetchUiSpec.getValueUsingId("introducerBiometrics") + + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Face\"]"))); return new IntroducerBiometricPageEnglish(driver); } - - public PreviewPage clickOnContinueButton() { + + public PreviewPage clickOnContinueButton() { clickOnElement(continueButton); return new PreviewPageEnglish(driver); } + + public boolean isAdditionalInfoRequestIdTextboxDisplayed() { + return isElementDisplayed(additionalInfoRequestIdTextbox); + } + + public void enterAdditionalInfoUsingEmail(String emailId) { + int retries = 20, waitSeconds = 10; + final String SUFFIX = "-BIOMETRIC_CORRECTION-1"; + + for (int i = 1; i <= retries; i++) { + String id = OTPListener.getAdditionalReqId(emailId); + if (id != null && !id.isEmpty() && !id.equals("{Failed}")) { + String sanitized = id.trim().replaceAll("\\p{C}", ""); + String finalId = sanitized.endsWith(SUFFIX) ? sanitized : sanitized + SUFFIX; + + try { + WebElement el = additionalInfoRequestIdTextbox; + try { + el.clear(); + el.sendKeys(finalId); + } catch (Exception ignored) { + } + if (finalId.equals(el.getAttribute("value"))) + return; + + ((JavascriptExecutor) driver).executeScript( + "arguments[0].value=arguments[1];arguments[0].dispatchEvent(new Event('input',{bubbles:true}));", + el, finalId); + if (finalId.equals(el.getAttribute("value"))) + return; + } catch (Exception e) { + logger.error("Enter ID failed: ", e); + } + throw new RuntimeException("Textbox not accepting: " + finalId); + } + sleepSeconds(waitSeconds); + } + throw new RuntimeException("AdditionalInfoReqId not found after wait."); + } + + private void sleepSeconds(int s) { + try { + Thread.sleep(s * 1000L); + } catch (InterruptedException ignored) { + Thread.currentThread().interrupt(); + } + } + + private static final Logger logger = LoggerFactory.getLogger(BiometricDetailsPageEnglish.class); + } diff --git a/ui-test/src/main/java/regclient/pages/kannada/ConsentPageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/ConsentPageKannada.java index ab260147a..78e01db91 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/ConsentPageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/ConsentPageKannada.java @@ -12,47 +12,60 @@ import regclient.pages.english.DemographicDetailsPageEnglish; import regclient.pages.english.RegistrationTasksPageEnglish; - -public class ConsentPageKannada extends ConsentPage{ +public class ConsentPageKannada extends ConsentPage { @AndroidFindBy(accessibility = "ಮಾಹಿತಿ ನೀಡಲಾಗಿದೆ") private WebElement informedButton; @AndroidFindBy(accessibility = "ರದ್ದುಮಾಡು") private WebElement cancelButton; - + public ConsentPageKannada(AppiumDriver driver) { super(driver); } @SuppressWarnings("deprecation") - public boolean isConsentPageDisplayed() { - return isElementDisplayed(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("consentdet") + "\"))")); + public boolean isPageDisplayed(String pageKey) { + try { + String screenTitle = FetchUiSpec.getScreenTitle(pageKey); + + WebElement pageElement = findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0))" + + ".scrollIntoView(new UiSelector().descriptionContains(\"" + screenTitle + "\"))")); + + return isElementDisplayed(pageElement); + + } catch (Exception e) { + return false; // page not found or not visible + } } @SuppressWarnings("deprecation") public boolean isCheckBoxReadable() { - return isElementDisplayed (findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("consent") + "\"))"))); + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getValueUsingId("consent") + "\"))"))); } - - public boolean isInformedButtonEnabled() { + + public boolean isInformedButtonEnabled() { return isElementEnabled(informedButton); } - public DemographicDetailsPage clickOnInformedButton() { + public DemographicDetailsPage clickOnInformedButton() { clickOnElement(informedButton); return new DemographicDetailsPageEnglish(driver); } - public RegistrationTasksPage clickOnCancelButton() { clickOnElement(cancelButton); - return new RegistrationTasksPageEnglish(driver); + return new RegistrationTasksPageEnglish(driver); } - + @SuppressWarnings("deprecation") public boolean updateUINTitleDisplayed() { - return isElementDisplayed (findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getTitleUsingId("UPDATE") + "\"))"))); + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getTitleUsingId("UPDATE") + "\"))"))); } - + } diff --git a/ui-test/src/main/java/regclient/pages/kannada/DemographicDetailsPageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/DemographicDetailsPageKannada.java index 637501bf7..5a0585f24 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/DemographicDetailsPageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/DemographicDetailsPageKannada.java @@ -2,7 +2,10 @@ import static org.testng.Assert.assertTrue; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.List; +import java.util.regex.Pattern; import org.openqa.selenium.By; import org.openqa.selenium.WebElement; @@ -10,6 +13,7 @@ import io.appium.java_client.AppiumDriver; import io.appium.java_client.MobileBy; import io.appium.java_client.pagefactory.AndroidFindBy; +import regclient.api.AdminTestUtil; import regclient.api.FetchUiSpec; import regclient.page.BasePage; import regclient.page.ConsentPage; @@ -19,36 +23,51 @@ import regclient.pages.english.DocumentuploadPageEnglish; import regclient.utils.TestDataReader; -public class DemographicDetailsPageKannada extends DemographicDetailsPage{ +public class DemographicDetailsPageKannada extends DemographicDetailsPage { - @AndroidFindBy(accessibility = "ಪುರುಷ") + @AndroidFindBy(accessibility = "ಪುರುಷ") private WebElement maleButton; @AndroidFindBy(accessibility = "ಹೆಣ್ಣು") private WebElement femaleButton; - + @AndroidFindBy(accessibility = "ಮುಂದುವರಿಸಿ") private WebElement continueButton; - + @AndroidFindBy(accessibility = "ಅಮಾನ್ಯ ಇನ್‌ಪುಟ್") private WebElement errorMessageInvalidInputText; - + @AndroidFindBy(accessibility = "ಸ್ಕ್ರಿಮ್") private WebElement backgroundScreen; - + @AndroidFindBy(accessibility = "FETCH DATA") private WebElement fetchDataButton; + + @AndroidFindBy(xpath = "//android.widget.ScrollView/android.widget.EditText[1]") + private WebElement applicationIdTextBox; + @AndroidFindBy(xpath = "//android.widget.Button[@content-desc='FETCH DATA']/following-sibling::android.widget.Button") + private WebElement scanButton; + + @AndroidFindBy(accessibility = "Postal/ بريدي") + private WebElement postalHeader; public DemographicDetailsPageKannada(AppiumDriver driver) { super(driver); } - @SuppressWarnings("deprecation") - public boolean isDemographicDetailsPageDisplayed() { - WebElement demographicDetailspage = findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))")); - return isElementDisplayed(demographicDetailspage); + public boolean isPageDisplayed(String pageKey) { + try { + String screenTitle = FetchUiSpec.getScreenTitle(pageKey); + + WebElement pageElement = findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0))" + + ".scrollIntoView(new UiSelector().descriptionContains(\"" + screenTitle + "\"))")); + return isElementDisplayed(pageElement); + } catch (Exception e) { + return false; // element not found or not visible + } } public boolean isErrorMessageInvalidInputTextDisplayed() { @@ -56,19 +75,22 @@ public boolean isErrorMessageInvalidInputTextDisplayed() { } @SuppressWarnings("deprecation") - public ConsentPage clickOnConsentPageTitle() { - WebElement consentTitle = findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("consentdet") + "\"))")); + public ConsentPage clickOnPageTitle(String pageKey) { + String screenTitle = FetchUiSpec.getScreenTitle(pageKey); + WebElement consentTitle = findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0))" + + ".scrollIntoView(new UiSelector().descriptionContains(\"" + screenTitle + "\"))")); clickOnElement(consentTitle); return new ConsentPageEnglish(driver); } - public DocumentUploadPage clickOnContinueButton() { + public DocumentUploadPage clickOnContinueButton() { clickOnElement(continueButton); return new DocumentuploadPageEnglish(driver); } - - public boolean isContinueButtonEnable() { + + public boolean isContinueButtonEnable() { return isElementEnabled(continueButton); } @@ -78,112 +100,159 @@ public boolean isPreRegFetchDataTextBoxDisplay() { } public void fillDemographicDetailsPage(String age) { - List idList=FetchUiSpec.getAllIds("DemographicDetails"); - for(String id : idList) { - if(FetchUiSpec.getRequiredTypeUsingId(id)) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + List idList = FetchUiSpec.getAllIds("DemographicDetails"); + for (String id : idList) { + if (FetchUiSpec.getRequiredTypeUsingId(id)) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); - } - else if(FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") && FetchUiSpec.getFormatUsingId(id).equals("none")){ + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); + } else if (FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") + && FetchUiSpec.getFormatUsingId(id).equals("none")) { waitTime(3); - while(!isElementDisplayed(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))) { + while (!isElementDisplayed(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))) { swipeOrScroll(); } - boolean isdisplayed =isElementDisplayed(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")")); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - WebElement dropdownElement=findElement(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.widget.Button")); + boolean isdisplayed = isElementDisplayed(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")")); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + WebElement dropdownElement = findElement( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.widget.Button")); clickOnElement(dropdownElement); waitTime(3); - if(!isElementDisplayed(dropdownElement)) { + if (!isElementDisplayed(dropdownElement)) { clickOnElement(findElement(By.className("android.view.View"))); - }else if(isElementDisplayed(dropdownElement)) { + } else if (isElementDisplayed(dropdownElement)) { swipeOrScroll(); clickOnElement(dropdownElement); waitTime(2); clickOnElement(findElement(By.className("android.view.View"))); } waitTime(2); - if(isElementDisplayed(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, \"Select Option\")]"))) { + if (isElementDisplayed(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, \"Select Option\")]"))) { clickOnElement(dropdownElement); waitTime(2); clickOnElement(findElement(By.className("android.view.View"))); } - }else if(FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") && FetchUiSpec.getFormatUsingId(id).equals("")){ - if(!isElementDisplayed(maleButton)) { + } else if (FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") + && FetchUiSpec.getFormatUsingId(id).equals("")) { + if (!isElementDisplayed(maleButton)) { swipeOrScroll(); - clickOnElement(maleButton); - }else - clickOnElement(maleButton); + clickOnElement(maleButton); + } else + clickOnElement(maleButton); - }else if(FetchUiSpec.getControlTypeUsingId(id).equals("ageDate")){ + } else if (FetchUiSpec.getControlTypeUsingId(id).equals("ageDate")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - if(age.equals("adult")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"20"); - else if(age.equals("minor")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"12"); - else if(age.equals("infant")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"4"); - else if(age.equals("currentCalenderDate")) { + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + if (age.equals("adult")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "20"); + else if (age.equals("minor")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "12"); + else if (age.equals("infant")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "4"); + else if (age.equals("currentCalenderDate")) { waitTime(1); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.view.View"))); + clickOnElement(findElementWithRetry(By.xpath( + "//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View"))); waitTime(1); clickOnElement(backgroundScreen); waitTime(1); - assertTrue(checkDateFormatAndCurrectDate(id),"Verify date format and current date and time while selecting age date"); + assertTrue(checkDateFormatAndCurrectDate(id), + "Verify date format and current date and time while selecting age date"); } } - } - else if(id.equals("residenceStatus")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") && FetchUiSpec.getFormatUsingId(id).equals("none")){ + } else if (id.equals("residenceStatus")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") + && FetchUiSpec.getFormatUsingId(id).equals("none")) { waitTime(2); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - WebElement dropdownElement=findElement(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.widget.Button")); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + WebElement dropdownElement = findElement( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.widget.Button")); clickOnElement(dropdownElement); waitTime(2); - if(!isElementDisplayed(dropdownElement)) { + if (!isElementDisplayed(dropdownElement)) { clickOnElement(findElement(By.className("android.view.View"))); - }else if(isElementDisplayed(dropdownElement)) { + } else if (isElementDisplayed(dropdownElement)) { swipeOrScroll(); clickOnElement(dropdownElement); waitTime(2); clickOnElement(findElement(By.className("android.view.View"))); } waitTime(2); - if(isElementDisplayed(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, \"Select Option\")]"))) { + if (isElementDisplayed(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, \"Select Option\")]"))) { clickOnElement(dropdownElement); waitTime(2); clickOnElement(findElement(By.className("android.view.View"))); } } } - if(id.equals("introducerName") && FetchUiSpec.getFlowType().equals("newProcess")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + if (id.equals("introducerName") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } - }if(id.equals("introducerRID") && FetchUiSpec.getFlowType().equals("newProcess")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + } + if (id.equals("introducerRID") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),TestDataReader.readData("RID")); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + TestDataReader.readData("RID")); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } } @@ -191,56 +260,91 @@ else if(id.equals("residenceStatus")) { } public void editDemographicDetailsPage(String age) { - List idList=FetchUiSpec.getAllIds("DemographicDetails"); - for(String id : idList) { - if(FetchUiSpec.getRequiredTypeUsingId(id)) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + List idList = FetchUiSpec.getAllIds("DemographicDetails"); + for (String id : idList) { + if (FetchUiSpec.getRequiredTypeUsingId(id)) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); - }else if(FetchUiSpec.getControlTypeUsingId(id).equals("ageDate")){ + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); + } else if (FetchUiSpec.getControlTypeUsingId(id).equals("ageDate")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - if(age.equals("adult")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"20"); - else if(age.equals("minor")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"12"); - else if(age.equals("infant")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"4"); - else if(age.equals("currentCalenderDate")) { + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + if (age.equals("adult")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "20"); + else if (age.equals("minor")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "12"); + else if (age.equals("infant")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "4"); + else if (age.equals("currentCalenderDate")) { waitTime(1); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.view.View"))); + clickOnElement(findElementWithRetry(By.xpath( + "//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View"))); waitTime(1); clickOnElement(backgroundScreen); waitTime(1); - assertTrue(checkDateFormatAndCurrectDate(id),"Verify date format and current date and time while selecting age date"); + assertTrue(checkDateFormatAndCurrectDate(id), + "Verify date format and current date and time while selecting age date"); } } } - if(id.equals("introducerName") && FetchUiSpec.getFlowType().equals("newProcess")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + if (id.equals("introducerName") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } - }if(id.equals("introducerRID") && FetchUiSpec.getFlowType().equals("newProcess")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + } + if (id.equals("introducerRID") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),TestDataReader.readData("RID")); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + TestDataReader.readData("RID")); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } } @@ -248,45 +352,411 @@ else if(age.equals("currentCalenderDate")) { } public boolean checkSecondLanguageTextBoxNotNull(String id) { - if(getTextFromLocator(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[2]")))==null || getTextFromLocator(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[2]")))=="" ) - return false; + if (getTextFromLocator(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[2]"))) == null + || getTextFromLocator(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[2]"))) == "") + return false; else - return true; + return true; } - public boolean checkDateFormatAndCurrectDate(String id) { - if(getTextFromLocator(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.view.View"))).equalsIgnoreCase(getCurrentDate())) - return true; + public boolean checkDateFormatAndCurrectDate(String id) { + if (getTextFromLocator(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View"))) + .equalsIgnoreCase(getCurrentDate())) + return true; else return false; } - + public void fillIntroducerDetailsInDemographicDetailsPage(String age) { - List idList=FetchUiSpec.getAllIds("DemographicDetails"); - for(String id : idList) { - if(id.equals("introducerName")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + List idList = FetchUiSpec.getAllIds("DemographicDetails"); + for (String id : idList) { + if (id.equals("introducerName")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + waitTime(3); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); + } + } + } + if (id.equals("introducerUIN")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + waitTime(3); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + TestDataReader.readData("UINminor")); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); + } + } + } + } + } + + public void fetchPreregApplicationId(String age) { + By appIdLabel = By.xpath("//android.widget.EditText[contains(@hint,'Application ID')]"); + By appIdTextbox = By.xpath("//android.widget.EditText[contains(@hint,'Please Enter Application ID')]"); + + // Verify label is displayed + boolean isDisplayed = isElementDisplayed(appIdLabel); + assertTrue(isDisplayed, "Verify if Application ID label is displayed"); + + // Enter prereg ID + applicationIdTextBox = findElementWithRetry(appIdTextbox); + clickAndsendKeysToTextBox(applicationIdTextBox,AdminTestUtil.getPreRegistrationFlow(age)); + clickOnElement(fetchDataButton); + } + + public void validateFetchedDemographicData() { + Pattern genderPattern = Pattern.compile("(?i)\\b(male|female|other|others|m|f|o)\\b"); + String[] dateFormats = { "yyyy-MM-dd", "dd/MM/yyyy", "dd-MM-yyyy" }; + + List idList = FetchUiSpec.getAllIds("DemographicDetails"); + for (String id : idList) { + if (!FetchUiSpec.getRequiredTypeUsingId(id)) + continue; + + String label = FetchUiSpec.getValueUsingId(id); + String controlType = FetchUiSpec.getControlTypeUsingId(id); + String lowerLabel = label == null ? "" : label.toLowerCase(); + + // common candidate element (immediate following control) + WebElement el = null; + try { + el = findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc,'" + label + "') or contains(@text,'" + + label + "')]" + "/parent::android.view.View/following-sibling::*[1]")); + } catch (Exception ignored) { + } + + // NAME + if (lowerLabel.contains("name")) { + // make visible like fill method + try { + int tries = 0; + while (tries < 6 && !isElementDisplayed(findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\"" + label + "\")")))) { + swipeOrScroll(); + tries++; + } + } catch (Exception ignored) { + } + + // prefer the same EditText locator used when filling + if (el == null) { + try { + el = findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,'" + label + + "') or contains(@text,'" + label + "')]" + + "/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")); + } catch (Exception ignored) { + } + } + assertTrue(el != null, "Name field element not found for: " + label); + String name = extract(el).trim(); + assertTrue(!name.isEmpty(), "Verify name is not empty for: " + label); + assertTrue(name.matches(".*[A-Za-z].*"), "Verify name contains letters: " + name); + continue; + } + + // DOB / ageDate + if ("ageDate".equals(controlType) || lowerLabel.contains("dob") || lowerLabel.contains("date of birth")) { + String raw = el == null ? "" : extract(el).trim(); + assertTrue(!raw.isEmpty(), "Verify DOB/AgeDate is not empty for: " + label); + boolean ok = false; + for (String fmt : dateFormats) { + try { + SimpleDateFormat sdf = new SimpleDateFormat(fmt); + sdf.setLenient(false); + if (sdf.parse(raw) != null) { + ok = true; + break; + } + } catch (ParseException ignored) { + } + } + ok = ok || raw.replaceAll("\\D+", "").length() > 0; + assertTrue(ok, "Verify DOB/AgeDate has valid date/digits for " + label + ": '" + raw + "'"); + continue; + } + + // PHONE - simple, robust version + if (lowerLabel.contains("phone") || lowerLabel.contains("mobile") || lowerLabel.contains("هاتف")) { + // make label visible (same approach as fillDemographicDetailsPage) + try { + int tries = 0; + while (tries < 6 && !isElementDisplayed(findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\"" + label + "\")")))) { + swipeOrScroll(); + tries++; + } + } catch (Exception ignored) { + } + + // primary locator (same as fill) + WebElement phoneEl = null; + try { + phoneEl = findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + label + + "\") or contains(@text, \"" + label + "\")]" + + "/parent::android.view.View/following-sibling::android.view.View//android.widget.EditText[1]")); + } catch (Exception ignored) { + } + + // fallback to ancestor search + if (phoneEl == null) { + try { + phoneEl = findElementIfExists(By.xpath("//android.view.View[contains(@content-desc, \"" + label + + "\") or contains(@text, \"" + label + "\")]" + + "/ancestor::android.view.View[1]//android.widget.EditText[1]")); + } catch (Exception ignored) { + } + } + + // if still null, provide short diagnostic and fail + if (phoneEl == null) { + StringBuilder diag = new StringBuilder(); + try { + WebElement labelEl = findElementIfExists( + By.xpath("//android.view.View[contains(@content-desc, \"" + label + + "\") or contains(@text, \"" + label + "\")]")); + if (labelEl != null) { + List sibs = labelEl + .findElements(By.xpath("parent::android.view.View/following-sibling::*")); + for (int i = 0; i < Math.min(sibs.size(), 6); i++) { + WebElement s = sibs.get(i); + String t = ""; + try { + t = s.getText(); + } catch (Exception ignored) { + } + String cd = ""; + try { + cd = s.getAttribute("content-desc"); + } catch (Exception ignored) { + } + diag.append("sib[").append(i).append("]={text=").append(t).append(",cd=").append(cd) + .append("}; "); + } + } + } catch (Exception ignored) { + } + assertTrue(false, "Phone field element not found for: " + label + ". Nearby: " + diag.toString()); + } + + // extract and validate + String phone = extract(phoneEl); + phone = phone == null ? "" : phone.trim(); + assertTrue(!phone.isEmpty(), "Verify phone is not empty for: " + label); + String digits = phone.replaceAll("\\D+", ""); + assertTrue(digits.length() >= 7 && digits.length() <= 15, + "Verify phone has 7-15 digits for " + label + ": " + phone); + } + + // EMAIL + if (lowerLabel.contains("email") || lowerLabel.contains("e-mail") || lowerLabel.contains("البريد")) { + // make label visible (same approach as fill) + try { + int tries = 0; + while (tries < 6 && !isElementDisplayed(findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\"" + label + "\")")))) { + swipeOrScroll(); + tries++; + } + } catch (Exception ignored) { + } + + // primary locator (same style as fill) + WebElement emailEl = null; + try { + emailEl = findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + label + + "\") or contains(@text, \"" + label + "\")]" + + "/parent::android.view.View/following-sibling::android.view.View//android.widget.EditText[1]")); + } catch (Exception ignored) { + } + + // fallback: any EditText under the same ancestor + if (emailEl == null) { + try { + emailEl = findElementIfExists(By.xpath("//android.view.View[contains(@content-desc, \"" + label + + "\") or contains(@text, \"" + label + "\")]" + + "/ancestor::android.view.View[1]//android.widget.EditText[1]")); + } catch (Exception ignored) { + } + } + + // if still null, show short diagnostic and fail + if (emailEl == null) { + StringBuilder diag = new StringBuilder(); + try { + WebElement labelEl = findElementIfExists( + By.xpath("//android.view.View[contains(@content-desc, \"" + label + + "\") or contains(@text, \"" + label + "\")]")); + if (labelEl != null) { + List sibs = labelEl + .findElements(By.xpath("parent::android.view.View/following-sibling::*")); + for (int i = 0; i < Math.min(sibs.size(), 6); i++) { + WebElement s = sibs.get(i); + String t = ""; + try { + t = s.getText(); + } catch (Exception ignored) { + } + String cd = ""; + try { + cd = s.getAttribute("content-desc"); + } catch (Exception ignored) { + } + diag.append("sib[").append(i).append("]={text=").append(t).append(",cd=").append(cd) + .append("}; "); + } + } + } catch (Exception ignored) { + } + assertTrue(false, "Email field element not found for: " + label + ". Nearby: " + diag.toString()); + } + + // extract and validate + String email = extract(emailEl); + email = email == null ? "" : email.trim(); + assertTrue(!email.isEmpty(), "Verify email is not empty for: " + label); + + // simple regex good for tests + boolean emailOk = email.matches("^[A-Za-z0-9._%+\\-]+@[A-Za-z0-9.\\-]+\\.[A-Za-z]{2,}$"); + assertTrue(emailOk, "Verify email format is valid for " + label + ": " + email); + } + } + } + + public void fillRemainDemographicDetailsPage(String age) { + + List idList = FetchUiSpec.getAllIds("DemographicDetails"); + for (String id : idList){ + if (FetchUiSpec.getRequiredTypeUsingId(id) && !id.equals("Postal")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") + && FetchUiSpec.getFormatUsingId(id).equals("none")) { + waitTime(3); + while (!isElementDisplayed(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))) { + swipeOrScroll(); + } + boolean isdisplayed = isElementDisplayed(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")")); +// assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + WebElement dropdownElement = findElement( + By.xpath("//android.widget.Button[.//android.view.View[contains(@content-desc,'" + + FetchUiSpec.getValueUsingId(id) + "')]]")); + clickOnElement(dropdownElement); + waitTime(3); + if (!isElementDisplayed(dropdownElement)) { + clickOnElement(findElement(By.className("android.view.View"))); + } else if (isElementDisplayed(dropdownElement)) { + swipeOrScroll(); + clickOnElement(dropdownElement); + waitTime(2); + clickOnElement(findElement(By.className("android.view.View"))); + } + waitTime(2); + if (isElementDisplayed(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, \"Select Option\")]"))) { + clickOnElement(dropdownElement); + waitTime(2); + clickOnElement(findElement(By.className("android.view.View"))); + } + } + }else if (FetchUiSpec.getRequiredTypeUsingId(id) && id.equals("Postal")) { + By postalDropdown = By.xpath("//android.view.View[contains(@content-desc, 'Postal')]" + + "/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, 'Select Option')]"); + + int attempts = 0; + while (attempts < 3) { + try { + if (isElementDisplayed(postalDropdown)) { + WebElement dropdownElement = findElement(postalDropdown); + clickOnElement(dropdownElement); + waitTime(3); // increased wait for Postal data load + + if (isElementDisplayed(By.className("android.view.View"))) { + clickOnElement(findElement(By.className("android.view.View"))); + System.out.println("✅ Postal dropdown handled successfully"); + break; // success + } else { + System.out.println("⏳ Postal options not visible yet, retrying..."); + } + } else { + swipeOrScroll(); + } + } catch (org.openqa.selenium.StaleElementReferenceException e) { + System.out.println("🔄 Postal element went stale, retrying..."); + } + waitTime(2); + attempts++; + } + } if (id.equals("introducerName") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } - }if(id.equals("introducerUIN")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + } + if (id.equals("introducerRID") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),TestDataReader.readData("UINminor")); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + TestDataReader.readData("RID")); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } } } } + + public boolean isApplicationIdTextBoxDisplay() { + return isElementDisplayed(applicationIdTextBox); + } + + public void clickOnScanButton() { + clickOnElement(scanButton); + } } diff --git a/ui-test/src/main/java/regclient/pages/kannada/IntroducerBiometricPageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/IntroducerBiometricPageKannada.java index c034f9f78..98ea0c77e 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/IntroducerBiometricPageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/IntroducerBiometricPageKannada.java @@ -182,5 +182,9 @@ public boolean isFaceScan() { public boolean isExceptionScan() { return isElementDisplayed(exceptionCapturerHeader,2000); } + + public boolean isNextButtonDisplyed() { + return isElementDisplayed(nextButton); + } } diff --git a/ui-test/src/main/java/regclient/pages/kannada/LoginPageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/LoginPageKannada.java index 8bf1de61a..eab4c3cf6 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/LoginPageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/LoginPageKannada.java @@ -9,10 +9,8 @@ import regclient.page.LoginPage; import regclient.page.RegistrationTasksPage; - public class LoginPageKannada extends LoginPage { - - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(1)") private WebElement mosipLogo; @@ -57,38 +55,41 @@ public class LoginPageKannada extends LoginPage { @AndroidFindBy(accessibility = "ಕನ್ನಡ") private WebElement kannadaButton; - + + @AndroidFindBy(accessibility = "ಮನೆಗೆ ತೆರಳಿ") + private WebElement skipToHomeButton; + public LoginPageKannada(AppiumDriver driver) { super(driver); } - public void enterUserName(String username) { - clickAndsendKeysToTextBox(userNameTextBox,username); + public void enterUserName(String username) { + clickAndsendKeysToTextBox(userNameTextBox, username); } - public void clickOnNextButton() { + public void clickOnNextButton() { clickOnElement(nextButton); } - public void clickOnBackButton() { + public void clickOnBackButton() { clickOnElement(backButton); } - public void enterPassword(String password) { - retryFindElement(passwordTextBox,Duration.ofSeconds(10)); - clickAndsendKeysToTextBox(passwordTextBox,password); + public void enterPassword(String password) { + retryFindElement(passwordTextBox, Duration.ofSeconds(10)); + clickAndsendKeysToTextBox(passwordTextBox, password); } - public RegistrationTasksPage clickOnloginButton() { + public RegistrationTasksPage clickOnloginButton() { clickOnElement(loginButton); return new RegistrationTasksPageKannada(driver); } - public boolean isNextButtonEnabled() { + public boolean isNextButtonEnabled() { return isElementEnabled(nextButton); } - public boolean isLoginButtonEnabled() { + public boolean isLoginButtonEnabled() { return isElementEnabled(loginButton); } @@ -140,4 +141,8 @@ public void selectLanguage() { clickOnElement(kannadaButton); } + public void clickOnSkipToHomeButton() { + clickOnElement(skipToHomeButton); + } + } diff --git a/ui-test/src/main/java/regclient/pages/kannada/ManageApplicationsPageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/ManageApplicationsPageKannada.java index f44550bb8..9652ec2e6 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/ManageApplicationsPageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/ManageApplicationsPageKannada.java @@ -65,6 +65,24 @@ public class ManageApplicationsPageKannada extends ManageApplicationsPage{ @AndroidFindBy(accessibility = "Dismiss") private WebElement deletionValueDropdown; + + @AndroidFindBy(xpath = "//android.widget.TextView[@text='Documents'][2]") + private WebElement documentsHeader; + + @AndroidFindBy(accessibility = "android:id/button1") + private WebElement useThisFolderButton; + + @AndroidFindBy(accessibility = "android:id/button1") + private WebElement allowButton; + + @AndroidFindBy(xpath = "//android.widget.TextView[@resource-id='android:id/title' and @text='Documents']") + private WebElement documentsFolder; + + @AndroidFindBy(accessibility = "No network found!") + private WebElement noNetworkFound; + + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.CheckBox\").instance(1)") + private WebElement latestAidCheckBox; public ManageApplicationsPageKannada(AppiumDriver driver) { super(driver); @@ -214,5 +232,35 @@ public boolean isDeletionDropdownOptionDisplayed() { public void clickOnBackButton() { driver.navigate().back(); } + + public void clickOnExportButton() { + clickOnElement(exportButton); + waitTime(10); + } + + public void clickOnUseThisFolderButton() { + if (isElementDisplayed(documentsHeader)) { + clickOnElement(useThisFolderButton); + if (isElementDisplayed(allowButton)) { + clickOnElement(allowButton); + } + } else if (isElementDisplayed(documentsFolder)) { + clickOnElement(documentsFolder); + clickOnElement(useThisFolderButton); + if (isElementDisplayed(allowButton)) { + clickOnElement(allowButton); + } + } else { + throw new RuntimeException("Documents folder or header not found on screen"); + } + } + + public boolean isNoNetworkFoundDisplayed() { + return isElementDisplayed(noNetworkFound); + } + + public void selectLatestAidCheckBox() { + clickOnElement(latestAidCheckBox); + } } diff --git a/ui-test/src/main/java/regclient/pages/kannada/PendingApprovalKannada.java b/ui-test/src/main/java/regclient/pages/kannada/PendingApprovalKannada.java index 1e5427e60..7b992a26e 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/PendingApprovalKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/PendingApprovalKannada.java @@ -5,15 +5,20 @@ import static org.testng.Assert.assertTrue; +import java.time.Duration; +import java.util.List; + import org.openqa.selenium.By; +import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.ui.WebDriverWait; import io.appium.java_client.AppiumDriver; import io.appium.java_client.MobileBy; import io.appium.java_client.pagefactory.AndroidFindBy; import regclient.page.PendingApproval; -public class PendingApprovalKannada extends PendingApproval{ +public class PendingApprovalKannada extends PendingApproval { @AndroidFindBy(accessibility = "ಒಪ್ಪಿಗೆಗಾಗಿ ಕಾದಿರುವ") private WebElement pendingApprovalTitle; @@ -40,40 +45,61 @@ public class PendingApprovalKannada extends PendingApproval{ @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.EditText\").instance(1)") private WebElement passwordTextBox; - + @AndroidFindBy(xpath = "//*[contains(@content-desc,\"ಒಪ್ಪಿಗೆಗಾಗಿ ಕಾದಿರುವ\")]//preceding-sibling::android.widget.Button") private WebElement backButton; @AndroidFindBy(accessibility = "REJECT") private WebElement rejectButton; - + @AndroidFindBy(accessibility = "Sl.no Application ID Reg. Date Client Status Review Status Operator ID") - private WebElement pageAttributes ; - + private WebElement pageAttributes; + @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"CREATED\")") private WebElement clientStatus; - + @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"Pending\").instance(1)") private WebElement reviewStatus; - + @AndroidFindBy(xpath = "//android.widget.EditText") private WebElement applicationIdTextbox; - + @AndroidFindBy(accessibility = "Reject Packet?") private WebElement rejectPacketTitle; - + @AndroidFindBy(accessibility = "Please select a value") private WebElement rejectReasonDropdown; - + @AndroidFindBy(accessibility = "SUBMIT") private WebElement invalidUsernameMessageForempty; - + + @AndroidFindBy(accessibility = "Displaying 1 Applications") + private WebElement displayApplication; + + @AndroidFindBy(accessibility = "Please select a reason for packet rejection. You can change your review to approve or reset the review status later.") + private WebElement rejectPacketInfoMessage; + + @AndroidFindBy(uiAutomator = "new UiSelector().text(\"Biometrics\")") + private WebElement pendingApprovalBiometricsInformation; + + @AndroidFindBy(xpath = "(//android.widget.Button[@content-desc])[1]") + private WebElement latestAid; + + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.CheckBox\").instance(1)") + private WebElement latestAIdCheckBox; + + @AndroidFindBy(accessibility = "ಜಾಲ ಕಂಡುಬಂದಿಲ್ಲ!") + private WebElement noNetworkFound; + + @AndroidFindBy(accessibility = "ದೃಢೀಕರಿಸಿ") + private WebElement authenticateButton; + public PendingApprovalKannada(AppiumDriver driver) { super(driver); } public boolean isPendingApprovalTitleDisplayed() { - return isElementDisplayed(pendingApprovalTitle); + return isElementDisplayed(pendingApprovalTitle); } @SuppressWarnings("deprecation") @@ -98,77 +124,127 @@ public void clickOnSubmitButton() { } public boolean isSupervisorAuthenticationTitleDisplayed() { - return isElementDisplayed(supervisorAuthenticationTitle); + return isElementDisplayed(supervisorAuthenticationTitle); } - public void enterUserName(String username) { - sendKeysToTextBox(userNameTextBox,username); + public void enterUserName(String username) { + sendKeysToTextBox(userNameTextBox, username); } - public void enterPassword(String password) { - sendKeysToTextBox(passwordTextBox,password); + public void enterPassword(String password) { + sendKeysToTextBox(passwordTextBox, password); } - + public void clickOnBackButton() { clickOnElement(backButton); } public boolean isApprovalButtonDisplayed() { - return isElementDisplayed(approveButton); + return isElementDisplayed(approveButton); } - + public boolean isRejectButtonDisplayed() { - return isElementDisplayed(rejectButton); + return isElementDisplayed(rejectButton); } - - + public boolean isPageAttributesDisplayed() { - return isElementDisplayed(pageAttributes); + return isElementDisplayed(pageAttributes); } - + public boolean isClientStatusDisplayed() { - return isElementDisplayed(clientStatus); + return isElementDisplayed(clientStatus); } public boolean isReviewStatusDisplayed() { - return isElementDisplayed(reviewStatus); + return isElementDisplayed(reviewStatus); } - - public void enterAID(String AID) { - clickAndsendKeysToTextBox(applicationIdTextbox,AID); + + public void enterAID(String AID) { + clickAndsendKeysToTextBox(applicationIdTextbox, AID); } - + public void clickOnRejectButton() { clickOnElement(rejectButton); } + public boolean isInvalidUsernameMessageDisplayed() { - return isElementDisplayed(invalidUsernameMessage); + return isElementDisplayed(invalidUsernameMessage); } - + public boolean isRejectPacketTitleDisplayed() { - return isElementDisplayed(rejectPacketTitle); + return isElementDisplayed(rejectPacketTitle); } - - + public void selectRejectionReasonDropdown() { - boolean isdisplayed =isElementDisplayed(rejectReasonDropdown); - assertTrue(isdisplayed,"Verify if "+rejectReasonDropdown+" header is displayed"); + boolean isdisplayed = isElementDisplayed(rejectReasonDropdown); + assertTrue(isdisplayed, "Verify if " + rejectReasonDropdown + " header is displayed"); clickOnElement(rejectReasonDropdown); waitTime(2); - if(!isElementDisplayed(rejectReasonDropdown)) { + if (!isElementDisplayed(rejectReasonDropdown)) { clickOnElement(findElement(By.className("android.view.View"))); - }else { + } else { clickOnElement(rejectReasonDropdown); waitTime(2); clickOnElement(findElement(By.className("android.view.View"))); - } + } } - + public boolean isSubmitButtonEnabled() { - return isElementEnabled(submitButton); + return isElementEnabled(submitButton); } - + public boolean isInvalidemptyUsernameSumbitButtonEnbled() { return isElementEnabled(invalidUsernameMessageForempty); } + + public boolean isNumberOfApplicationDisplayed() { + waitTime(2); + return isElementDisplayed(displayApplication); + } + + public boolean isRejectPacketInfoMessageDisplayed() { + return isElementDisplayed(rejectPacketInfoMessage); + } + + public boolean isPendingApprovalBiometricsInformationDisplayed() { + swipeOrScroll(); + return isElementDisplayed(pendingApprovalBiometricsInformation); + } + + public void clickOnLatestAid() { + List allButtons = driver.findElements(MobileBy.className("android.widget.Button")); + allButtons.get(2).click(); + } + + public void selectLatestAIdCheckBox() { + clickOnElement(latestAIdCheckBox); + } + + public boolean isNoNetworkFoundDisplayed() { + return isElementEnabled(noNetworkFound); + } + + public void clickOnPendingApprovalSubmitButton(int maxRetries) { + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(3)); + + for (int i = 1; i <= maxRetries; i++) { + clickOnSubmitButton(); + try { + boolean popupShown = wait.until(d -> isNoNetworkFoundDisplayed()); + if (popupShown) { + } + } catch (TimeoutException e) { + break; + } + } + System.out.println("Still No Network Found Displayed"); + } + + public void clickOnAuthenticateButton() { + clickOnElement(authenticateButton); + } + + public boolean isAuthenticateButtonEnabled() { + return isElementEnabled(authenticateButton); + } } diff --git a/ui-test/src/main/java/regclient/pages/kannada/PreviewPageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/PreviewPageKannada.java index cbba6f6dc..2570422e2 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/PreviewPageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/PreviewPageKannada.java @@ -1,10 +1,12 @@ package regclient.pages.kannada; import org.openqa.selenium.WebElement; +import org.testng.Assert; import io.appium.java_client.AppiumDriver; import io.appium.java_client.MobileBy; import io.appium.java_client.pagefactory.AndroidFindBy; +import regclient.api.AdminTestUtil; import regclient.api.FetchUiSpec; import regclient.page.AuthenticationPage; import regclient.page.DemographicDetailsPage; @@ -13,86 +15,117 @@ import regclient.pages.english.DemographicDetailsPageEnglish; public class PreviewPageKannada extends PreviewPage { - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\"ಜನಸಂಖ್ಯಾ ಮಾಹಿತಿ\"))") private WebElement demographicInformationInPreviewPage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\"Application ID\"))") private WebElement applicationIDPreviewPage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\"ದಾಖಲೆಗಳು\"))") private WebElement documentsInformationInPreviewPage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\"ಬಯೋಮೆಟ್ರಿಕ್ಸ್\"))") private WebElement biometricsInformationInPreviewPage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\"Iris ( 1 )\"))") private WebElement singleIrisImage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\"Iris ( 2 )\"))") private WebElement bothIrisImage; - + @AndroidFindBy(accessibility = "ಮುಂದುವರಿಸಿ") private WebElement continueButton; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\"Fingers ( 7 )\"))") private WebElement fingerExceptionText; - + + @AndroidFindBy(xpath = "//android.view.View[contains(@text,'Email')]/../following-sibling::android.view.View[1]") + private WebElement emailIdPreviewPage; + + @AndroidFindBy(accessibility = "ಕಳೆದುಹೋದ UIN") + private WebElement lostUinTitle; + public PreviewPageKannada(AppiumDriver driver) { super(driver); } - - public AuthenticationPage clickOnContinueButton() { + + public AuthenticationPage clickOnContinueButton() { clickOnElement(continueButton); return new AuthenticationPageEnglish(driver); } - + public boolean isDemographicInformationInPreviewPageDisplayed() { return isElementDisplayed(demographicInformationInPreviewPage); } - + public boolean isDocumentsInformationInPreviewPageDisplayed() { return isElementDisplayed(documentsInformationInPreviewPage); } - + public boolean isBiometricsInformationInPreviewPagePageDisplayed() { return isElementDisplayed(biometricsInformationInPreviewPage); } - + @SuppressWarnings("deprecation") public boolean isNewRegistrationTitleDisplayed() { - return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getTitleUsingId("NEW") + "\"))"))); + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getTitleUsingId("NEW") + "\"))"))); } - + public boolean updateUINTitleDisplayed() { - return isElementDisplayed (findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getTitleUsingId("UPDATE") + "\"))"))); + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getTitleUsingId("UPDATE") + "\"))"))); } - + public boolean isApplicationIDPreviewPagePageDisplayed() { return isElementDisplayed(applicationIDPreviewPage); } - + @SuppressWarnings("deprecation") public DemographicDetailsPage clickOnDemographicDetailsTitle() { - clickOnElement(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))"))); + clickOnElement(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))"))); return new DemographicDetailsPageEnglish(driver); } - + public boolean isBothIrisImageDisplayed() { return isElementDisplayed(bothIrisImage); } - + public boolean isSingleIrisImageDisplayed() { return isElementDisplayed(singleIrisImage); } - + public boolean isFingerExceptionText() { return isElementDisplayed(fingerExceptionText); } public String getAID() { - String applicationID = getTextFromLocator(applicationIDPreviewPage).replaceAll(".*Application ID (\\d+).*", "$1"); + String applicationID = getTextFromLocator(applicationIDPreviewPage).replaceAll(".*Application ID (\\d+).*", + "$1"); return applicationID; } + public void validatePreRegAndApplicationIdMatch(String age) { + String preRegId = AdminTestUtil.getPreRegistrationFlow(age); + + String applicationID = getAID(); + + Assert.assertEquals(applicationID, preRegId, "Mismatch between API PreReg ID and UI Application ID!"); + } + + public String getEmailId() { + String emailId = getTextFromLocator(emailIdPreviewPage) + .replaceAll(".*?([A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}).*", "$1"); + return emailId; + } + + public boolean isLostUinTitleDisplayed() { + return isElementDisplayed(lostUinTitle); + } + } diff --git a/ui-test/src/main/java/regclient/pages/kannada/ProfilePageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/ProfilePageKannada.java index 266479ad2..27a9144fa 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/ProfilePageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/ProfilePageKannada.java @@ -8,40 +8,50 @@ import regclient.page.ProfilePage; import regclient.pages.english.LoginPageEnglish; -public class ProfilePageKannada extends ProfilePage{ +public class ProfilePageKannada extends ProfilePage { @AndroidFindBy(accessibility = "ಪ್ರೊಫೈಲ್") private WebElement profileTitle; - + @AndroidFindBy(accessibility = "ಲಾಗ್ ಔಟ್") private WebElement logoutButton; - + @AndroidFindBy(accessibility = "There is still some action required!") private WebElement logoutPopUpMessage; - + + @AndroidFindBy(accessibility = "ಪಾಸ್ವರ್ಡ್ ಮರುಹೊಂದಿಸಿ") + private WebElement resetPasswordButton; public ProfilePageKannada(AppiumDriver driver) { super(driver); } - public LoginPage clickOnLogoutButton() { - if(isElementDisplayed(logoutButton)) - clickOnElement(logoutButton); + public LoginPage clickOnLogoutButton() { + if (isElementDisplayed(logoutButton)) + clickOnElement(logoutButton); return new LoginPageEnglish(driver); - } - - public LoginPage clickOnLogoutButtonOnPopUp() { + } + + public LoginPage clickOnLogoutButtonOnPopUp() { clickOnElement(logoutButton); return new LoginPageEnglish(driver); - } - + } + public boolean isProfileTitleDisplayed() { return isElementDisplayed(profileTitle); } - + public boolean isLogoutPopUpMessageDisplayed() { return isElementDisplayed(logoutPopUpMessage); } + public boolean isResetPasswordButtonDisplayed() { + return isElementDisplayed(resetPasswordButton); + } + + public LoginPage clickOnResetPasswordButton() { + clickOnElement(resetPasswordButton); + return new LoginPageEnglish(driver); + } } diff --git a/ui-test/src/main/java/regclient/pages/kannada/RegistrationTasksPageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/RegistrationTasksPageKannada.java index 0c7bc90d1..ef1a73148 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/RegistrationTasksPageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/RegistrationTasksPageKannada.java @@ -9,16 +9,16 @@ import regclient.page.ProfilePage; import regclient.page.RegistrationTasksPage; import regclient.page.SelectLanguagePage; +import regclient.pages.english.SelectLanguagePageEnglish; - -public class RegistrationTasksPageKannada extends RegistrationTasksPage{ +public class RegistrationTasksPageKannada extends RegistrationTasksPage { @AndroidFindBy(accessibility = "ನೋಂದಣಿ ಕಾರ್ಯಗಳು") private WebElement registrationTasksTitle; @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(2)") private WebElement dashboardButton; - + @AndroidFindBy(accessibility = "ಕಾರ್ಯಾಚರಣೆಯ ಕಾರ್ಯಗಳು") private WebElement operationalTaskPageTitle; @@ -26,39 +26,54 @@ public class RegistrationTasksPageKannada extends RegistrationTasksPage{ private WebElement newRegistrationButton; @AndroidFindBy(uiAutomator = "new UiSelector().className(\"android.widget.ImageView\").instance(0)") - private WebElement synchronizeDataButton ; + private WebElement synchronizeDataButton; @AndroidFindBy(xpath = "//android.widget.Toast[@text=\"Policy key Sync Completed\"]") - private WebElement policykeySyncCompletedMessage ; + private WebElement policykeySyncCompletedMessage; @AndroidFindBy(xpath = "//*[contains(@text,'Sync Completed')]") - private WebElement masterDataSyncCompletedMessage ; + private WebElement masterDataSyncCompletedMessage; @AndroidFindBy(xpath = "//android.widget.Toast[@text=\"Script Sync Completed\"]") - private WebElement scriptSyncCompletedMessage ; - + private WebElement scriptSyncCompletedMessage; + @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"ಪ್ರೊಫೈಲ್\")") private WebElement profileButton; - + @AndroidFindBy(accessibility = "UIN ನವೀಕರಿಸಿ") private WebElement updateUinButton; - + @AndroidFindBy(accessibility = "UIN ಕಳೆದುಕೊಂಡಿದೆ") private WebElement lostUinButton; - + @AndroidFindBy(accessibility = "Biometric correction") private WebElement biometricCorrectionButton; - + + @AndroidFindBy(accessibility = "Settings\nTab 2 of 4") + private WebElement settingsButton; + + @AndroidFindBy(id = "com.android.permissioncontroller:id/permission_message") + private WebElement locationPermissionMessage; + + @AndroidFindBy(id = "com.android.permissioncontroller:id/permission_allow_foreground_only_button") + private WebElement allowWhileUsingButton; + + @AndroidFindBy(id = "com.android.permissioncontroller:id/permission_allow_one_time_button") + private WebElement allowOnceButton; + + @AndroidFindBy(id = "com.android.permissioncontroller:id/permission_deny_button") + private WebElement dontAllowButton; + public RegistrationTasksPageKannada(AppiumDriver driver) { super(driver); } - public SelectLanguagePage clickOnNewRegistrationButton() { + public SelectLanguagePage clickOnNewRegistrationButton() { clickOnElement(newRegistrationButton); return new SelectLanguagePageKannada(driver); } - public void clickOnSynchronizeDataButton() { + public void clickOnSynchronizeDataButton() { clickOnElement(synchronizeDataButton); } @@ -81,54 +96,80 @@ public boolean isMasterDataSyncCompletedDisplayed() { public boolean isScriptSyncCompletedDisplayed() { return isElementDisplayed(scriptSyncCompletedMessage); } - - public DashboardPage clickOnDashboardButton() { + + public DashboardPage clickOnDashboardButton() { clickOnElement(dashboardButton); return new DashboardPageKannada(driver); } - public OperationalTaskPage clickOnOperationalTasksTitle() { + public OperationalTaskPage clickOnOperationalTasksTitle() { clickOnElement(operationalTaskPageTitle); return new OperationalTaskPageKannada(driver); } - + public boolean isProfileTitleDisplayed() { return isElementDisplayed(profileButton); } - - public ProfilePage clickProfileButton() { + + public ProfilePage clickProfileButton() { clickOnElement(profileButton); return new ProfilePageKannada(driver); } - - public SelectLanguagePage clickUpdateMyUINButton() { + + public SelectLanguagePage clickUpdateMyUINButton() { clickOnElement(updateUinButton); return new SelectLanguagePageKannada(driver); } - + public boolean isUpdateUINTitleDisplayed() { return isElementDisplayed(updateUinButton); } - + public boolean isLostUINTitleDisplayed() { return isElementDisplayed(lostUinButton); } - + public boolean isBiometricCorrectionTitleDisplayed() { return isElementDisplayed(biometricCorrectionButton); } - - public void clickSynchronizeDataButton() { + + public void clickSynchronizeDataButton() { clickOnElement(synchronizeDataButton); waitTime(50); } - + public boolean checkLastSyncDate() { String contentDesc = synchronizeDataButton.getAttribute("content-desc"); - if(contentDesc.contains("Synchronize Data\n"+getCurrentDateWord()+",")) + if (contentDesc.contains("Synchronize Data\n" + getCurrentDateWord() + ",")) return true; else return false; } + public void clickOnLostUinButton() { + clickOnElement(lostUinButton); + } + + public void clickOnSettingsButton() { + clickOnElement(settingsButton); + } + + public SelectLanguagePage clickOnBiometricCorrectionButton() { + clickOnElement(biometricCorrectionButton); + return new SelectLanguagePageEnglish(driver); + } + + public void handleLocationPermission() { + try { + if (isElementDisplayed(locationPermissionMessage)) { + clickOnElement(allowWhileUsingButton); + } + } catch (Exception e) { + } + } + + public void clickOnRegistrationTasksTab() { + clickOnElement(registrationTasksTitle); + } + } diff --git a/ui-test/src/main/java/regclient/pages/kannada/UpdateOperatorBiometricspageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/UpdateOperatorBiometricspageKannada.java index 015862470..5e41e863f 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/UpdateOperatorBiometricspageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/UpdateOperatorBiometricspageKannada.java @@ -6,381 +6,383 @@ import io.appium.java_client.pagefactory.AndroidFindBy; import regclient.page.UpdateOperatorBiometricspage; -public class UpdateOperatorBiometricspageKannada extends UpdateOperatorBiometricspage{ +public class UpdateOperatorBiometricspageKannada extends UpdateOperatorBiometricspage { public UpdateOperatorBiometricspageKannada(AppiumDriver driver) { super(driver); - + } - + @AndroidFindBy(accessibility = "ನಿರೀಕ್ಷಕರ ಬಯೋಮೆಟ್ರಿಕ್ ನವೀಕರಣ") private WebElement supervisorBiometricUpdatePageTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"ಐರಿಸ್ ಸ್ಕ್ಯಾನ್\"))") private WebElement irisScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"ಬಲ ಕೈ ಸ್ಕ್ಯಾನ್\"))") private WebElement rightHandScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"ಎಡ ಕೈ ಸ್ಕ್ಯಾನ್\"))") private WebElement leftHandScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"ಬೆರಳುಗಳು ಸ್ಕ್ಯಾನ್\"))") private WebElement thumbsScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"ಮುಖ ಸ್ಕ್ಯಾನ್\"))") private WebElement faceScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"ವಿನಾಯಿತಿ ಸ್ಕ್ಯಾನ್\"))") private WebElement exceptionScanIcon; - + @AndroidFindBy(accessibility = "ಐರಿಸ್ ಸ್ಕ್ಯಾನ್") private WebElement irisScanButton; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"ಐರಿಸ್ ಸ್ಕ್ಯಾನ್\"))") private WebElement irisScanButtonTitle; - + @AndroidFindBy(accessibility = "ಸ್ಥಾಯಿ") private WebElement permanentButton; - + @AndroidFindBy(accessibility = "ಕ್ಷಣಿಕ") private WebElement temporaryButton; - + @AndroidFindBy(accessibility = "ಅಂಶಗೊಳಿಸಲು ಅನುಮತಿಸಿ") private WebElement markExceptionButton; - + @AndroidFindBy(accessibility = "ಅಂಶಗೊಳಿಸಲು ಅನುಮತಿಸಿ") private WebElement exceptionTypeTitle; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(1)") private WebElement oneEyeException; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(2)") private WebElement firstFingureExceptionImage; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(1)") private WebElement secondFingureExceptionImage; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(3)") private WebElement thirdFingureExceptionImage; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(4)") private WebElement forthFingureExceptionImage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"ಬಲ ಕೈ ಸ್ಕ್ಯಾನ್\"))") private WebElement rightHandScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"ಎಡ ಕೈ ಸ್ಕ್ಯಾನ್\"))") private WebElement leftHandScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"ಬೆರಳುಗಳು ಸ್ಕ್ಯಾನ್\"))") private WebElement thumbsScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"ಮುಖ ಸ್ಕ್ಯಾನ್\"))") private WebElement faceScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"ವಿನಾಯಿತಿ ಸ್ಕ್ಯಾನ್\"))") private WebElement exceptionScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().description(\"ಸ್ಕ್ಯಾನ್\"))") private WebElement scanButton; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Iris ಸೆರೆಹಿಡಿಯಿರಿ')]") private WebElement irisCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'RightHand ಸೆರೆಹಿಡಿಯಿರಿ')]") private WebElement rightHandCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'LeftHand ಸೆರೆಹಿಡಿಯಿರಿ')]") private WebElement leftHandCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Thumbs ಸೆರೆಹಿಡಿಯಿರಿ')]") private WebElement thumbsCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Face ಸೆರೆಹಿಡಿಯಿರಿ')]") private WebElement faceCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Exception ಸೆರೆಹಿಡಿಯಿರಿ')]") private WebElement exceptionCapturerHeader; - + @AndroidFindBy(xpath = "//android.widget.ScrollView/android.view.View[3]") private WebElement zoomButton; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"ಕೊರಗುಗಳು\")]/following-sibling::android.widget.EditText") private WebElement commentsTextBox; - + @AndroidFindBy(className = "android.widget.Button") private WebElement popUpCloseButton; - + @AndroidFindBy(accessibility = "ಮುಂದೆ") private WebElement nextButton; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"ಕೊರಗುಗಳು\"))") private WebElement commentsHeader; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"ಸೀಮಾಂಕ \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement irisScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"ಸೀಮಾಂಕ \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement rightHandScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"ಸೀಮಾಂಕ \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement leftHandScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"ಸೀಮಾಂಕ \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement thumbsScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"ಸೀಮಾಂಕ \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement faceScanQuality; - + @AndroidFindBy(accessibility = "ವಿನಾಯಿತಿಗಳನ್ನು ಗುರುತಿಸಲಾಗುತ್ತಿದೆ ಮುಖ ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ") private WebElement markingExceptionsOnFaceIsNotAllowedText; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"ಸೀಮಾಂಕ \")]/following-sibling::android.view.View") private WebElement scanQualityText; - + @AndroidFindBy(accessibility = "ಪರಿಶೀಲಿಸಿ ಮತ್ತು ಉಳಿಸಿ") private WebElement verifyAndSaveButton; - + @AndroidFindBy(accessibility = "ವಜಾಗೊಳಿಸಿ") private WebElement dismissPage; - + @AndroidFindBy(accessibility = "ಆಪರೇಟರ್ ಬಯೋಮೆಟ್ರಿಕ್ಸ್ ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ನವೀಕರಿಸಲಾಗಿದೆ.") private WebElement successPopup; - + @AndroidFindBy(accessibility = "ಮನೆ") private WebElement homeButton; - + + @AndroidFindBy(accessibility = "ಆಪರೇಟರ್ ಬಯೋಮೆಟ್ರಿಕ್ಸ್ ನವೀಕರಿಸಿ") + private WebElement updateOperatorBiometrics; + public void clickOnIrisScan() { clickOnElement(irisScanIcon); } - + public boolean isSupervisorBiometricUpdatePageLoaded() { return isElementDisplayed(supervisorBiometricUpdatePageTitle); } - + public void clickOnRightHandScanIcon() { clickOnElement(rightHandScanIcon); } - + public void clickOnLeftHandScanIcon() { clickOnElement(leftHandScanIcon); } - + public void clickOnThumbsScanIcon() { clickOnElement(thumbsScanIcon); } - + public void clickOnFaceScanIcon() { clickOnElement(faceScanIcon); } - + public void clickOnExceptionScanIcon() { clickOnElement(exceptionScanIcon); } - + public void clickOnScanButton() { clickOnElement(scanButton); - } - + } + public void clickOnNextButton() { clickOnElement(nextButton); } - + public void closeScanCapturePopUp() { driver.navigate().back(); } - - - public boolean isRightHandScanTitleDisplyed() { + + public boolean isRightHandScanTitleDisplyed() { return isElementDisplayed(rightHandScanTitle); } - - public boolean isLeftHandScanTitleDisplyed() { + + public boolean isLeftHandScanTitleDisplyed() { return isElementDisplayed(leftHandScanTitle); } - - public boolean isThumbsScanTitleDisplyed() { + + public boolean isThumbsScanTitleDisplyed() { return isElementDisplayed(thumbsScanTitle); } - - public boolean isFaceScanTitleDisplyed() { + + public boolean isFaceScanTitleDisplyed() { return isElementDisplayed(faceScanTitle); } - - public boolean isExceptionScanTitleDisplyed() { + + public boolean isExceptionScanTitleDisplyed() { return isElementDisplayed(exceptionScanTitle); } - - public boolean isIrisScan() { - return isElementDisplayed(irisCapturerHeader,2000); + + public boolean isIrisScan() { + return isElementDisplayed(irisCapturerHeader, 2000); } - - public boolean isRightHandScan() { - return isElementDisplayed(rightHandCapturerHeader,2000); + + public boolean isRightHandScan() { + return isElementDisplayed(rightHandCapturerHeader, 2000); } - - public boolean isLeftHandScan() { - return isElementDisplayed(leftHandCapturerHeader,2000); + + public boolean isLeftHandScan() { + return isElementDisplayed(leftHandCapturerHeader, 2000); } - - public boolean isThumbsScan() { - return isElementDisplayed(thumbsCapturerHeader,2000); + + public boolean isThumbsScan() { + return isElementDisplayed(thumbsCapturerHeader, 2000); } - - public boolean isFaceScan() { - return isElementDisplayed(faceCapturerHeader,2000); + + public boolean isFaceScan() { + return isElementDisplayed(faceCapturerHeader, 2000); } - - public boolean isIrisScanQualityDisplyed() { + + public boolean isIrisScanQualityDisplyed() { return isElementDisplayed(irisScanQuality); } - - public boolean isRightHandScanQualityDisplyed() { + + public boolean isRightHandScanQualityDisplyed() { return isElementDisplayed(rightHandScanQuality); } - - public boolean isLeftHandScanQualityDisplyed() { + + public boolean isLeftHandScanQualityDisplyed() { return isElementDisplayed(leftHandScanQuality); } - - public boolean isThumbsScanQualityDisplyed() { + + public boolean isThumbsScanQualityDisplyed() { return isElementDisplayed(thumbsScanQuality); } - - public boolean isFaceScanQualityDisplyed() { + + public boolean isFaceScanQualityDisplyed() { return isElementDisplayed(faceScanQuality); } - + public void clickOnMarkExceptionButton() { clickOnElement(markExceptionButton); } - + public void markOneEyeException() { clickOnElement(oneEyeException); } - + public void markOneFingureException() { clickOnElement(firstFingureExceptionImage); } - - public boolean isExceptionTypeTitleDisplyed() { + + public boolean isExceptionTypeTitleDisplyed() { return isElementDisplayed(exceptionTypeTitle); } - + public void clickOnExceptionTypeTemporaryButton() { - if(!isElementDisplayedOnScreen(temporaryButton)) { + if (!isElementDisplayedOnScreen(temporaryButton)) { swipeOrScroll(); } - clickOnElement(temporaryButton); + clickOnElement(temporaryButton); } - - public boolean isCommentHeaderDisplyed() { + + public boolean isCommentHeaderDisplyed() { return isElementDisplayed(commentsHeader); } - - public void enterCommentsInTextBox(String comments) { - if(!isElementDisplayedOnScreen(commentsTextBox)) { + + public void enterCommentsInTextBox(String comments) { + if (!isElementDisplayedOnScreen(commentsTextBox)) { swipeOrScroll(); } - clickAndsendKeysToTextBox(commentsTextBox,comments); + clickAndsendKeysToTextBox(commentsTextBox, comments); } - + public void clickOnIrisScanTitle() { clickOnElement(irisScanButtonTitle); } - + public void clickOnThumbsScanTitle() { clickOnElement(thumbsScanTitle); } - - public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed() { + + public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed() { return isElementDisplayed(markingExceptionsOnFaceIsNotAllowedText); } - - public boolean isZoomButtonDisplyed() { + + public boolean isZoomButtonDisplyed() { return isElementDisplayed(zoomButton); } - + public void clickOnRightHandScanTitle() { clickOnElement(rightHandScanTitle); } - + public void clickOnLeftHandScanTitle() { clickOnElement(leftHandScanTitle); } - + public void clickOnFaceScanTitle() { clickOnElement(faceScanTitle); } + public boolean checkThresholdValueIris() { - int requiredValue=60; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 60; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueRightHand() { - int requiredValue=40; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 40; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueLeftHand() { - int requiredValue=60; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 60; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueThumbs() { - int requiredValue=40; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 40; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueFace() { - int requiredValue=90; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 90; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean isVerifyAndSaveButtonEnabled() { return isElementDisplayed(verifyAndSaveButton); } - + public void clickOnVerifyAndSaveButton() { clickOnElement(verifyAndSaveButton); - + } - + public boolean isDismissPageLoaded() { return isElementDisplayed(dismissPage); } - - + public boolean isOperatorBiometricsUpdatedPopupLoaded() { - return isElementDisplayed(successPopup); + return isElementDisplayed(successPopup); } - + public void clickOnHomeButton() { clickOnElement(homeButton); } @@ -389,4 +391,8 @@ public void clickOnBackButton() { driver.navigate().back(); } + public boolean isUpdateOperatorBiometricsPageLoaded() { + return isElementDisplayed(updateOperatorBiometrics); + } + } diff --git a/ui-test/src/main/java/regclient/pages/tamil/AuthenticationPageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/AuthenticationPageTamil.java index c6d4757ce..0c93e2873 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/AuthenticationPageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/AuthenticationPageTamil.java @@ -21,6 +21,9 @@ public class AuthenticationPageTamil extends AuthenticationPage { @AndroidFindBy(accessibility = "அங்கீகரிக்க") private WebElement authenticateButton; + @AndroidFindBy(xpath = "//android.view.View[@content-desc='Authentication using Password']/preceding-sibling::android.widget.ImageView") + private WebElement authenticationImage; + public AuthenticationPageTamil(AppiumDriver driver) { super(driver); } @@ -41,5 +44,9 @@ public AcknowledgementPage clickOnAuthenticatenButton() { clickOnElement(authenticateButton); return new AcknowledgementPageTamil(driver); } + + public boolean isAuthenticationImageDisplayed() { + return isElementDisplayed(authenticationImage); + } } diff --git a/ui-test/src/main/java/regclient/pages/tamil/BiometricDetailsPageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/BiometricDetailsPageTamil.java index 7202fa203..d57c06644 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/BiometricDetailsPageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/BiometricDetailsPageTamil.java @@ -1,17 +1,22 @@ package regclient.pages.tamil; import org.openqa.selenium.By; +import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebElement; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import io.appium.java_client.AppiumDriver; import io.appium.java_client.MobileBy; import io.appium.java_client.pagefactory.AndroidFindBy; +import io.mosip.testrig.apirig.testrunner.OTPListener; import regclient.api.FetchUiSpec; import regclient.page.ApplicantBiometricsPage; import regclient.page.BiometricDetailsPage; import regclient.page.IntroducerBiometricPage; import regclient.page.PreviewPage; import regclient.pages.english.ApplicantBiometricsPageEnglish; +import regclient.pages.english.BiometricDetailsPageEnglish; import regclient.pages.english.IntroducerBiometricPageEnglish; import regclient.pages.english.PreviewPageEnglish; @@ -19,106 +24,172 @@ public class BiometricDetailsPageTamil extends BiometricDetailsPage { @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"ஐரிஸ் ஊடுகதிர்\"))") private WebElement irisScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"வலது கை ஊடுகதிர்\"))") private WebElement rightHandScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"இடது கை ஊடுகதிர்\"))") private WebElement leftHandScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"முழுகுமதி ஊடுகதிர்\"))") private WebElement thumbsScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"முகம் ஊடுகதிர்\"))") private WebElement faceScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"விதிவிலக்கு ஊடுகதிர்\"))") private WebElement exceptionScanIcon; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc,\"அறிமுகம் பயோமெட்ரிக்ஸ்\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"ஐரிஸ் ஊடுகதிர்\"]") private WebElement introducerIrisScanIcon; - + @AndroidFindBy(accessibility = "தொடர்க") private WebElement continueButton; + @AndroidFindBy(xpath = "//android.widget.EditText[contains(@hint, 'கூடுதல் தகவல் கோரிக்கை அடையாள எண்')]") + private WebElement additionalInfoRequestIdTextbox; public BiometricDetailsPageTamil(AppiumDriver driver) { super(driver); } @SuppressWarnings("deprecation") - public boolean isBiometricDetailsPageDisplayed() { - return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("individualBiometrics") + "\"))"))); + public boolean isBiometricDetailsPageDisplayed() { + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getValueUsingId("individualBiometrics") + "\"))"))); } - + @SuppressWarnings("deprecation") - public boolean isAuthenticationBiometricTitleDisplayed() { - return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("individualAuthBiometrics") + "\"))"))); + public boolean isAuthenticationBiometricTitleDisplayed() { + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getValueUsingId("individualAuthBiometrics") + "\"))"))); } - + public ApplicantBiometricsPage clickOnIrisScan() { clickOnElement(irisScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public ApplicantBiometricsPage clickOnRightHandScanIcon() { clickOnElement(rightHandScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public ApplicantBiometricsPage clickOnLeftHandScanIcon() { clickOnElement(leftHandScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public ApplicantBiometricsPage clickOnThumbsScanIcon() { clickOnElement(thumbsScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public ApplicantBiometricsPage clickOnFaceScanIcon() { clickOnElement(faceScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public ApplicantBiometricsPage clickOnExceptionScanIcon() { clickOnElement(exceptionScanIcon); return new ApplicantBiometricsPageEnglish(driver); } - + public IntroducerBiometricPage clickOnIntroducerIrisScan() { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Iris Scan\"]"))); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + + FetchUiSpec.getValueUsingId("introducerBiometrics") + + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Iris Scan\"]"))); return new IntroducerBiometricPageEnglish(driver); } - + public IntroducerBiometricPage clickOnIntroducerRightHandScan() { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Right\"]"))); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + + FetchUiSpec.getValueUsingId("introducerBiometrics") + + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Right\"]"))); return new IntroducerBiometricPageEnglish(driver); } - + public IntroducerBiometricPage clickOnIntroducerLeftHandScan() { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Left\"]"))); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + + FetchUiSpec.getValueUsingId("introducerBiometrics") + + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Left\"]"))); return new IntroducerBiometricPageEnglish(driver); } - + public IntroducerBiometricPage clickOnIntroducerThumbScan() { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Thumbs\"]"))); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + + FetchUiSpec.getValueUsingId("introducerBiometrics") + + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Thumbs\"]"))); return new IntroducerBiometricPageEnglish(driver); } - + public IntroducerBiometricPage clickOnIntroducerFaceScan() { - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Face\"]"))); + clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + + FetchUiSpec.getValueUsingId("introducerBiometrics") + + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Face\"]"))); return new IntroducerBiometricPageEnglish(driver); } - - public PreviewPage clickOnContinueButton() { + + public PreviewPage clickOnContinueButton() { clickOnElement(continueButton); return new PreviewPageEnglish(driver); } + + public boolean isAdditionalInfoRequestIdTextboxDisplayed() { + return isElementDisplayed(additionalInfoRequestIdTextbox); + } + + public void enterAdditionalInfoUsingEmail(String emailId) { + int retries = 20, waitSeconds = 10; + final String SUFFIX = "-BIOMETRIC_CORRECTION-1"; + + for (int i = 1; i <= retries; i++) { + String id = OTPListener.getAdditionalReqId(emailId); + if (id != null && !id.isEmpty() && !id.equals("{Failed}")) { + String sanitized = id.trim().replaceAll("\\p{C}", ""); + String finalId = sanitized.endsWith(SUFFIX) ? sanitized : sanitized + SUFFIX; + + try { + WebElement el = additionalInfoRequestIdTextbox; + try { + el.clear(); + el.sendKeys(finalId); + } catch (Exception ignored) { + } + if (finalId.equals(el.getAttribute("value"))) + return; + + ((JavascriptExecutor) driver).executeScript( + "arguments[0].value=arguments[1];arguments[0].dispatchEvent(new Event('input',{bubbles:true}));", + el, finalId); + if (finalId.equals(el.getAttribute("value"))) + return; + } catch (Exception e) { + logger.error("Enter ID failed: ", e); + } + throw new RuntimeException("Textbox not accepting: " + finalId); + } + sleepSeconds(waitSeconds); + } + throw new RuntimeException("AdditionalInfoReqId not found after wait."); + } + + private void sleepSeconds(int s) { + try { + Thread.sleep(s * 1000L); + } catch (InterruptedException ignored) { + Thread.currentThread().interrupt(); + } + } + + private static final Logger logger = LoggerFactory.getLogger(BiometricDetailsPageEnglish.class); + } diff --git a/ui-test/src/main/java/regclient/pages/tamil/ConsentPageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/ConsentPageTamil.java index d53a4c085..180b593cc 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/ConsentPageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/ConsentPageTamil.java @@ -12,12 +12,11 @@ import regclient.pages.english.DemographicDetailsPageEnglish; import regclient.pages.english.RegistrationTasksPageEnglish; - -public class ConsentPageTamil extends ConsentPage{ +public class ConsentPageTamil extends ConsentPage { @AndroidFindBy(accessibility = "அறிந்தவர்") private WebElement informedButton; - + @AndroidFindBy(accessibility = "ரத்துசெய்") private WebElement cancelButton; @@ -26,33 +25,47 @@ public ConsentPageTamil(AppiumDriver driver) { } @SuppressWarnings("deprecation") - public boolean isConsentPageDisplayed() { - return isElementDisplayed(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("consentdet") + "\"))")); + public boolean isPageDisplayed(String pageKey) { + try { + String screenTitle = FetchUiSpec.getScreenTitle(pageKey); + + WebElement pageElement = findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0))" + + ".scrollIntoView(new UiSelector().descriptionContains(\"" + screenTitle + "\"))")); + + return isElementDisplayed(pageElement); + + } catch (Exception e) { + return false; // page not found or not visible + } } @SuppressWarnings("deprecation") public boolean isCheckBoxReadable() { - return isElementDisplayed (findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("consent") + "\"))"))); + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getValueUsingId("consent") + "\"))"))); } - - public boolean isInformedButtonEnabled() { + + public boolean isInformedButtonEnabled() { return isElementEnabled(informedButton); } - public DemographicDetailsPage clickOnInformedButton() { + public DemographicDetailsPage clickOnInformedButton() { clickOnElement(informedButton); return new DemographicDetailsPageEnglish(driver); } - public RegistrationTasksPage clickOnCancelButton() { clickOnElement(cancelButton); - return new RegistrationTasksPageEnglish(driver); + return new RegistrationTasksPageEnglish(driver); } - + @SuppressWarnings("deprecation") public boolean updateUINTitleDisplayed() { - return isElementDisplayed (findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getTitleUsingId("UPDATE") + "\"))"))); + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getTitleUsingId("UPDATE") + "\"))"))); } - + } diff --git a/ui-test/src/main/java/regclient/pages/tamil/DemographicDetailsPageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/DemographicDetailsPageTamil.java index b90d0396f..42b2de24c 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/DemographicDetailsPageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/DemographicDetailsPageTamil.java @@ -2,7 +2,10 @@ import static org.testng.Assert.assertTrue; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.List; +import java.util.regex.Pattern; import org.openqa.selenium.By; import org.openqa.selenium.WebElement; @@ -10,6 +13,7 @@ import io.appium.java_client.AppiumDriver; import io.appium.java_client.MobileBy; import io.appium.java_client.pagefactory.AndroidFindBy; +import regclient.api.AdminTestUtil; import regclient.api.FetchUiSpec; import regclient.page.BasePage; import regclient.page.ConsentPage; @@ -19,8 +23,7 @@ import regclient.pages.english.DocumentuploadPageEnglish; import regclient.utils.TestDataReader; - -public class DemographicDetailsPageTamil extends DemographicDetailsPage{ +public class DemographicDetailsPageTamil extends DemographicDetailsPage { @AndroidFindBy(accessibility = "ஆண்") private WebElement maleButton; @@ -30,44 +33,66 @@ public class DemographicDetailsPageTamil extends DemographicDetailsPage{ @AndroidFindBy(accessibility = "தொடர்க") private WebElement continueButton; - + @AndroidFindBy(accessibility = "ಅಮಾನ್ಯ ಇನ್‌ಪುಟ್") private WebElement errorMessageInvalidInputText; @AndroidFindBy(accessibility = "ஸ்க்ரிம்") private WebElement backgroundScreen; - + @AndroidFindBy(accessibility = "FETCH DATA") private WebElement fetchDataButton; + + @AndroidFindBy(xpath = "//android.widget.ScrollView/android.widget.EditText[1]") + private WebElement applicationIdTextBox; + + @AndroidFindBy(xpath = "//android.widget.Button[@content-desc='FETCH DATA']/following-sibling::android.widget.Button") + private WebElement scanButton; + + @AndroidFindBy(accessibility = "Postal/ بريدي") + private WebElement postalHeader; public DemographicDetailsPageTamil(AppiumDriver driver) { super(driver); } @SuppressWarnings("deprecation") - public boolean isDemographicDetailsPageDisplayed() { - WebElement demographicDetailspage = findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))")); - return isElementDisplayed(demographicDetailspage); - } + public boolean isPageDisplayed(String pageKey) { + try { + String screenTitle = FetchUiSpec.getScreenTitle(pageKey); - public boolean isErrorMessageInvalidInputTextDisplayed() { - return isElementDisplayed(errorMessageInvalidInputText); - } + WebElement pageElement = findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0))" + + ".scrollIntoView(new UiSelector().descriptionContains(\"" + screenTitle + "\"))")); + return isElementDisplayed(pageElement); + + } catch (Exception e) { + return false; // element not found or not visible + } + } + @SuppressWarnings("deprecation") - public ConsentPage clickOnConsentPageTitle() { - WebElement consentTitle = findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("consentdet") + "\"))")); + public ConsentPage clickOnPageTitle(String pageKey) { + String screenTitle = FetchUiSpec.getScreenTitle(pageKey); + WebElement consentTitle = findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0))" + + ".scrollIntoView(new UiSelector().descriptionContains(\"" + screenTitle + "\"))")); clickOnElement(consentTitle); return new ConsentPageEnglish(driver); } - public DocumentUploadPage clickOnContinueButton() { + public boolean isErrorMessageInvalidInputTextDisplayed() { + return isElementDisplayed(errorMessageInvalidInputText); + } + + public DocumentUploadPage clickOnContinueButton() { clickOnElement(continueButton); return new DocumentuploadPageEnglish(driver); } - - public boolean isContinueButtonEnable() { + + public boolean isContinueButtonEnable() { return isElementEnabled(continueButton); } @@ -77,112 +102,159 @@ public boolean isPreRegFetchDataTextBoxDisplay() { } public void fillDemographicDetailsPage(String age) { - List idList=FetchUiSpec.getAllIds("DemographicDetails"); - for(String id : idList) { - if(FetchUiSpec.getRequiredTypeUsingId(id)) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + List idList = FetchUiSpec.getAllIds("DemographicDetails"); + for (String id : idList) { + if (FetchUiSpec.getRequiredTypeUsingId(id)) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); - } - else if(FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") && FetchUiSpec.getFormatUsingId(id).equals("none")){ + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); + } else if (FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") + && FetchUiSpec.getFormatUsingId(id).equals("none")) { waitTime(3); - while(!isElementDisplayed(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))) { + while (!isElementDisplayed(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))) { swipeOrScroll(); } - boolean isdisplayed =isElementDisplayed(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")")); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - WebElement dropdownElement=findElement(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.widget.Button")); + boolean isdisplayed = isElementDisplayed(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")")); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + WebElement dropdownElement = findElement( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.widget.Button")); clickOnElement(dropdownElement); waitTime(3); - if(!isElementDisplayed(dropdownElement)) { + if (!isElementDisplayed(dropdownElement)) { clickOnElement(findElement(By.className("android.view.View"))); - }else if(isElementDisplayed(dropdownElement)) { + } else if (isElementDisplayed(dropdownElement)) { swipeOrScroll(); clickOnElement(dropdownElement); waitTime(2); clickOnElement(findElement(By.className("android.view.View"))); } waitTime(2); - if(isElementDisplayed(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, \"Select Option\")]"))) { + if (isElementDisplayed(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, \"Select Option\")]"))) { clickOnElement(dropdownElement); waitTime(2); clickOnElement(findElement(By.className("android.view.View"))); } - }else if(FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") && FetchUiSpec.getFormatUsingId(id).equals("")){ - if(!isElementDisplayed(maleButton)) { + } else if (FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") + && FetchUiSpec.getFormatUsingId(id).equals("")) { + if (!isElementDisplayed(maleButton)) { swipeOrScroll(); - clickOnElement(maleButton); - }else - clickOnElement(maleButton); + clickOnElement(maleButton); + } else + clickOnElement(maleButton); - }else if(FetchUiSpec.getControlTypeUsingId(id).equals("ageDate")){ + } else if (FetchUiSpec.getControlTypeUsingId(id).equals("ageDate")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - if(age.equals("adult")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"20"); - else if(age.equals("minor")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"12"); - else if(age.equals("infant")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"4"); - else if(age.equals("currentCalenderDate")) { + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + if (age.equals("adult")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "20"); + else if (age.equals("minor")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "12"); + else if (age.equals("infant")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "4"); + else if (age.equals("currentCalenderDate")) { waitTime(1); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.view.View"))); + clickOnElement(findElementWithRetry(By.xpath( + "//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View"))); waitTime(1); clickOnElement(backgroundScreen); waitTime(1); - assertTrue(checkDateFormatAndCurrectDate(id),"Verify date format and current date and time while selecting age date"); + assertTrue(checkDateFormatAndCurrectDate(id), + "Verify date format and current date and time while selecting age date"); } } - } - else if(id.equals("residenceStatus")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") && FetchUiSpec.getFormatUsingId(id).equals("none")){ + } else if (id.equals("residenceStatus")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") + && FetchUiSpec.getFormatUsingId(id).equals("none")) { waitTime(2); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - WebElement dropdownElement=findElement(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.widget.Button")); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + WebElement dropdownElement = findElement( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.widget.Button")); clickOnElement(dropdownElement); waitTime(2); - if(!isElementDisplayed(dropdownElement)) { + if (!isElementDisplayed(dropdownElement)) { clickOnElement(findElement(By.className("android.view.View"))); - }else if(isElementDisplayed(dropdownElement)) { + } else if (isElementDisplayed(dropdownElement)) { swipeOrScroll(); clickOnElement(dropdownElement); waitTime(2); clickOnElement(findElement(By.className("android.view.View"))); } waitTime(2); - if(isElementDisplayed(By.xpath("//android.view.View[contains(@content-desc, \""+FetchUiSpec.getValueUsingId(id)+"\")]/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, \"Select Option\")]"))) { + if (isElementDisplayed(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, \"Select Option\")]"))) { clickOnElement(dropdownElement); waitTime(2); clickOnElement(findElement(By.className("android.view.View"))); } } } - if(id.equals("introducerName") && FetchUiSpec.getFlowType().equals("newProcess")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + if (id.equals("introducerName") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } - }if(id.equals("introducerRID") && FetchUiSpec.getFlowType().equals("newProcess")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + } + if (id.equals("introducerRID") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),TestDataReader.readData("RID")); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + TestDataReader.readData("RID")); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } } @@ -190,56 +262,91 @@ else if(id.equals("residenceStatus")) { } public void editDemographicDetailsPage(String age) { - List idList=FetchUiSpec.getAllIds("DemographicDetails"); - for(String id : idList) { - if(FetchUiSpec.getRequiredTypeUsingId(id)) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + List idList = FetchUiSpec.getAllIds("DemographicDetails"); + for (String id : idList) { + if (FetchUiSpec.getRequiredTypeUsingId(id)) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); - }else if(FetchUiSpec.getControlTypeUsingId(id).equals("ageDate")){ + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); + } else if (FetchUiSpec.getControlTypeUsingId(id).equals("ageDate")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - if(age.equals("adult")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"20"); - else if(age.equals("minor")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"12"); - else if(age.equals("infant")) - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")),"4"); - else if(age.equals("currentCalenderDate")) { + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + if (age.equals("adult")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "20"); + else if (age.equals("minor")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "12"); + else if (age.equals("infant")) + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.widget.EditText[1]")), + "4"); + else if (age.equals("currentCalenderDate")) { waitTime(1); - clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.view.View"))); + clickOnElement(findElementWithRetry(By.xpath( + "//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View"))); waitTime(1); clickOnElement(backgroundScreen); waitTime(1); - assertTrue(checkDateFormatAndCurrectDate(id),"Verify date format and current date and time while selecting age date"); + assertTrue(checkDateFormatAndCurrectDate(id), + "Verify date format and current date and time while selecting age date"); } } } - if(id.equals("introducerName") && FetchUiSpec.getFlowType().equals("newProcess")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + if (id.equals("introducerName") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } - }if(id.equals("introducerRID") && FetchUiSpec.getFlowType().equals("newProcess")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + } + if (id.equals("introducerRID") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),TestDataReader.readData("RID")); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + TestDataReader.readData("RID")); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } } @@ -247,45 +354,411 @@ else if(age.equals("currentCalenderDate")) { } public boolean checkSecondLanguageTextBoxNotNull(String id) { - if(getTextFromLocator(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[2]")))==null || getTextFromLocator(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[2]")))=="" ) - return false; + if (getTextFromLocator(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[2]"))) == null + || getTextFromLocator(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[2]"))) == "") + return false; else - return true; + return true; } - public boolean checkDateFormatAndCurrectDate(String id) { - if(getTextFromLocator(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \""+ FetchUiSpec.getValueUsingId(id) +"\")]/parent::android.view.View/following-sibling::android.view.View"))).equalsIgnoreCase(getCurrentDate())) - return true; + public boolean checkDateFormatAndCurrectDate(String id) { + if (getTextFromLocator(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View"))) + .equalsIgnoreCase(getCurrentDate())) + return true; else return false; } - + public void fillIntroducerDetailsInDemographicDetailsPage(String age) { - List idList=FetchUiSpec.getAllIds("DemographicDetails"); - for(String id : idList) { - if(id.equals("introducerName")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + List idList = FetchUiSpec.getAllIds("DemographicDetails"); + for (String id : idList) { + if (id.equals("introducerName")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } - }if(id.equals("introducerUIN")) { - if(age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { - if(FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + } + if (id.equals("introducerUIN")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { waitTime(3); - boolean isdisplayed =isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId(id)+"\")"))); - assertTrue(isdisplayed,"Verify if "+id+" header is displayed"); - clickAndsendKeysToTextBox(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")),TestDataReader.readData("UINminor")); - if(FetchUiSpec.getTransliterateTypeUsingId(id)) - assertTrue(checkSecondLanguageTextBoxNotNull(id),"Verify if "+id+" is enter in second language text box"); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + TestDataReader.readData("UINminor")); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); } } } } } + + public void fetchPreregApplicationId(String age) { + By appIdLabel = By.xpath("//android.widget.EditText[contains(@hint,'Application ID')]"); + By appIdTextbox = By.xpath("//android.widget.EditText[contains(@hint,'Please Enter Application ID')]"); + + // Verify label is displayed + boolean isDisplayed = isElementDisplayed(appIdLabel); + assertTrue(isDisplayed, "Verify if Application ID label is displayed"); + + // Enter prereg ID + applicationIdTextBox = findElementWithRetry(appIdTextbox); + clickAndsendKeysToTextBox(applicationIdTextBox,AdminTestUtil.getPreRegistrationFlow(age)); + clickOnElement(fetchDataButton); + } + + public void validateFetchedDemographicData() { + Pattern genderPattern = Pattern.compile("(?i)\\b(male|female|other|others|m|f|o)\\b"); + String[] dateFormats = { "yyyy-MM-dd", "dd/MM/yyyy", "dd-MM-yyyy" }; + + List idList = FetchUiSpec.getAllIds("DemographicDetails"); + for (String id : idList) { + if (!FetchUiSpec.getRequiredTypeUsingId(id)) + continue; + + String label = FetchUiSpec.getValueUsingId(id); + String controlType = FetchUiSpec.getControlTypeUsingId(id); + String lowerLabel = label == null ? "" : label.toLowerCase(); + + // common candidate element (immediate following control) + WebElement el = null; + try { + el = findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc,'" + label + "') or contains(@text,'" + + label + "')]" + "/parent::android.view.View/following-sibling::*[1]")); + } catch (Exception ignored) { + } + + // NAME + if (lowerLabel.contains("name")) { + // make visible like fill method + try { + int tries = 0; + while (tries < 6 && !isElementDisplayed(findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\"" + label + "\")")))) { + swipeOrScroll(); + tries++; + } + } catch (Exception ignored) { + } + + // prefer the same EditText locator used when filling + if (el == null) { + try { + el = findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,'" + label + + "') or contains(@text,'" + label + "')]" + + "/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")); + } catch (Exception ignored) { + } + } + assertTrue(el != null, "Name field element not found for: " + label); + String name = extract(el).trim(); + assertTrue(!name.isEmpty(), "Verify name is not empty for: " + label); + assertTrue(name.matches(".*[A-Za-z].*"), "Verify name contains letters: " + name); + continue; + } + + // DOB / ageDate + if ("ageDate".equals(controlType) || lowerLabel.contains("dob") || lowerLabel.contains("date of birth")) { + String raw = el == null ? "" : extract(el).trim(); + assertTrue(!raw.isEmpty(), "Verify DOB/AgeDate is not empty for: " + label); + boolean ok = false; + for (String fmt : dateFormats) { + try { + SimpleDateFormat sdf = new SimpleDateFormat(fmt); + sdf.setLenient(false); + if (sdf.parse(raw) != null) { + ok = true; + break; + } + } catch (ParseException ignored) { + } + } + ok = ok || raw.replaceAll("\\D+", "").length() > 0; + assertTrue(ok, "Verify DOB/AgeDate has valid date/digits for " + label + ": '" + raw + "'"); + continue; + } + + // PHONE - simple, robust version + if (lowerLabel.contains("phone") || lowerLabel.contains("mobile") || lowerLabel.contains("هاتف")) { + // make label visible (same approach as fillDemographicDetailsPage) + try { + int tries = 0; + while (tries < 6 && !isElementDisplayed(findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\"" + label + "\")")))) { + swipeOrScroll(); + tries++; + } + } catch (Exception ignored) { + } + + // primary locator (same as fill) + WebElement phoneEl = null; + try { + phoneEl = findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + label + + "\") or contains(@text, \"" + label + "\")]" + + "/parent::android.view.View/following-sibling::android.view.View//android.widget.EditText[1]")); + } catch (Exception ignored) { + } + + // fallback to ancestor search + if (phoneEl == null) { + try { + phoneEl = findElementIfExists(By.xpath("//android.view.View[contains(@content-desc, \"" + label + + "\") or contains(@text, \"" + label + "\")]" + + "/ancestor::android.view.View[1]//android.widget.EditText[1]")); + } catch (Exception ignored) { + } + } + + // if still null, provide short diagnostic and fail + if (phoneEl == null) { + StringBuilder diag = new StringBuilder(); + try { + WebElement labelEl = findElementIfExists( + By.xpath("//android.view.View[contains(@content-desc, \"" + label + + "\") or contains(@text, \"" + label + "\")]")); + if (labelEl != null) { + List sibs = labelEl + .findElements(By.xpath("parent::android.view.View/following-sibling::*")); + for (int i = 0; i < Math.min(sibs.size(), 6); i++) { + WebElement s = sibs.get(i); + String t = ""; + try { + t = s.getText(); + } catch (Exception ignored) { + } + String cd = ""; + try { + cd = s.getAttribute("content-desc"); + } catch (Exception ignored) { + } + diag.append("sib[").append(i).append("]={text=").append(t).append(",cd=").append(cd) + .append("}; "); + } + } + } catch (Exception ignored) { + } + assertTrue(false, "Phone field element not found for: " + label + ". Nearby: " + diag.toString()); + } + + // extract and validate + String phone = extract(phoneEl); + phone = phone == null ? "" : phone.trim(); + assertTrue(!phone.isEmpty(), "Verify phone is not empty for: " + label); + String digits = phone.replaceAll("\\D+", ""); + assertTrue(digits.length() >= 7 && digits.length() <= 15, + "Verify phone has 7-15 digits for " + label + ": " + phone); + } + + // EMAIL + if (lowerLabel.contains("email") || lowerLabel.contains("e-mail") || lowerLabel.contains("البريد")) { + // make label visible (same approach as fill) + try { + int tries = 0; + while (tries < 6 && !isElementDisplayed(findElementWithRetry( + MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\"" + label + "\")")))) { + swipeOrScroll(); + tries++; + } + } catch (Exception ignored) { + } + + // primary locator (same style as fill) + WebElement emailEl = null; + try { + emailEl = findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + label + + "\") or contains(@text, \"" + label + "\")]" + + "/parent::android.view.View/following-sibling::android.view.View//android.widget.EditText[1]")); + } catch (Exception ignored) { + } + + // fallback: any EditText under the same ancestor + if (emailEl == null) { + try { + emailEl = findElementIfExists(By.xpath("//android.view.View[contains(@content-desc, \"" + label + + "\") or contains(@text, \"" + label + "\")]" + + "/ancestor::android.view.View[1]//android.widget.EditText[1]")); + } catch (Exception ignored) { + } + } + + // if still null, show short diagnostic and fail + if (emailEl == null) { + StringBuilder diag = new StringBuilder(); + try { + WebElement labelEl = findElementIfExists( + By.xpath("//android.view.View[contains(@content-desc, \"" + label + + "\") or contains(@text, \"" + label + "\")]")); + if (labelEl != null) { + List sibs = labelEl + .findElements(By.xpath("parent::android.view.View/following-sibling::*")); + for (int i = 0; i < Math.min(sibs.size(), 6); i++) { + WebElement s = sibs.get(i); + String t = ""; + try { + t = s.getText(); + } catch (Exception ignored) { + } + String cd = ""; + try { + cd = s.getAttribute("content-desc"); + } catch (Exception ignored) { + } + diag.append("sib[").append(i).append("]={text=").append(t).append(",cd=").append(cd) + .append("}; "); + } + } + } catch (Exception ignored) { + } + assertTrue(false, "Email field element not found for: " + label + ". Nearby: " + diag.toString()); + } + + // extract and validate + String email = extract(emailEl); + email = email == null ? "" : email.trim(); + assertTrue(!email.isEmpty(), "Verify email is not empty for: " + label); + + // simple regex good for tests + boolean emailOk = email.matches("^[A-Za-z0-9._%+\\-]+@[A-Za-z0-9.\\-]+\\.[A-Za-z]{2,}$"); + assertTrue(emailOk, "Verify email format is valid for " + label + ": " + email); + } + } + } + + public void fillRemainDemographicDetailsPage(String age) { + + List idList = FetchUiSpec.getAllIds("DemographicDetails"); + for (String id : idList){ + if (FetchUiSpec.getRequiredTypeUsingId(id) && !id.equals("Postal")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("dropdown") + && FetchUiSpec.getFormatUsingId(id).equals("none")) { + waitTime(3); + while (!isElementDisplayed(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))) { + swipeOrScroll(); + } + boolean isdisplayed = isElementDisplayed(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")")); +// assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + WebElement dropdownElement = findElement( + By.xpath("//android.widget.Button[.//android.view.View[contains(@content-desc,'" + + FetchUiSpec.getValueUsingId(id) + "')]]")); + clickOnElement(dropdownElement); + waitTime(3); + if (!isElementDisplayed(dropdownElement)) { + clickOnElement(findElement(By.className("android.view.View"))); + } else if (isElementDisplayed(dropdownElement)) { + swipeOrScroll(); + clickOnElement(dropdownElement); + waitTime(2); + clickOnElement(findElement(By.className("android.view.View"))); + } + waitTime(2); + if (isElementDisplayed(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, \"Select Option\")]"))) { + clickOnElement(dropdownElement); + waitTime(2); + clickOnElement(findElement(By.className("android.view.View"))); + } + } + }else if (FetchUiSpec.getRequiredTypeUsingId(id) && id.equals("Postal")) { + By postalDropdown = By.xpath("//android.view.View[contains(@content-desc, 'Postal')]" + + "/parent::android.view.View/parent::android.widget.Button[contains(@content-desc, 'Select Option')]"); + + int attempts = 0; + while (attempts < 3) { + try { + if (isElementDisplayed(postalDropdown)) { + WebElement dropdownElement = findElement(postalDropdown); + clickOnElement(dropdownElement); + waitTime(3); // increased wait for Postal data load + + if (isElementDisplayed(By.className("android.view.View"))) { + clickOnElement(findElement(By.className("android.view.View"))); + System.out.println("✅ Postal dropdown handled successfully"); + break; // success + } else { + System.out.println("⏳ Postal options not visible yet, retrying..."); + } + } else { + swipeOrScroll(); + } + } catch (org.openqa.selenium.StaleElementReferenceException e) { + System.out.println("🔄 Postal element went stale, retrying..."); + } + waitTime(2); + attempts++; + } + } if (id.equals("introducerName") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + waitTime(3); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + BasePage.generateData(FetchUiSpec.getTextBoxUsingId(id))); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); + } + } + } + if (id.equals("introducerRID") && FetchUiSpec.getFlowType().equals("newProcess")) { + if (age.equals("minor") || age.equals("infant") || age.equals("currentCalenderDate")) { + if (FetchUiSpec.getControlTypeUsingId(id).equals("textbox")) { + waitTime(3); + boolean isdisplayed = isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId(id) + "\")"))); + assertTrue(isdisplayed, "Verify if " + id + " header is displayed"); + clickAndsendKeysToTextBox( + findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" + + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[1]")), + TestDataReader.readData("RID")); + if (FetchUiSpec.getTransliterateTypeUsingId(id)) + assertTrue(checkSecondLanguageTextBoxNotNull(id), + "Verify if " + id + " is enter in second language text box"); + } + } + } + } + } + + public boolean isApplicationIdTextBoxDisplay() { + return isElementDisplayed(applicationIdTextBox); + } + + public void clickOnScanButton() { + clickOnElement(scanButton); + } } diff --git a/ui-test/src/main/java/regclient/pages/tamil/IntroducerBiometricPageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/IntroducerBiometricPageTamil.java index 5c113d43f..f312722ed 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/IntroducerBiometricPageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/IntroducerBiometricPageTamil.java @@ -182,5 +182,9 @@ public boolean isFaceScan() { public boolean isExceptionScan() { return isElementDisplayed(exceptionCapturerHeader,2000); } + + public boolean isNextButtonDisplyed() { + return isElementDisplayed(nextButton); + } } diff --git a/ui-test/src/main/java/regclient/pages/tamil/LoginPageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/LoginPageTamil.java index f23c4446e..fdf3bfaf9 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/LoginPageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/LoginPageTamil.java @@ -9,7 +9,7 @@ import regclient.page.LoginPage; import regclient.page.RegistrationTasksPage; -public class LoginPageTamil extends LoginPage{ +public class LoginPageTamil extends LoginPage { @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(1)") private WebElement mosipLogo; @@ -55,38 +55,41 @@ public class LoginPageTamil extends LoginPage{ @AndroidFindBy(accessibility = "தமிழ்") private WebElement tamilButton; - + + @AndroidFindBy(accessibility = "வீட்டிற்கு செல்க") + private WebElement skipToHomeButton; + public LoginPageTamil(AppiumDriver driver) { super(driver); } - - public void enterUserName(String username) { - clickAndsendKeysToTextBox(userNameTextBox,username); + + public void enterUserName(String username) { + clickAndsendKeysToTextBox(userNameTextBox, username); } - public void clickOnNextButton() { + public void clickOnNextButton() { clickOnElement(nextButton); } - public void clickOnBackButton() { + public void clickOnBackButton() { clickOnElement(backButton); } - public void enterPassword(String password) { - retryFindElement(passwordTextBox,Duration.ofSeconds(10)); - clickAndsendKeysToTextBox(passwordTextBox,password); + public void enterPassword(String password) { + retryFindElement(passwordTextBox, Duration.ofSeconds(10)); + clickAndsendKeysToTextBox(passwordTextBox, password); } - public RegistrationTasksPage clickOnloginButton() { + public RegistrationTasksPage clickOnloginButton() { clickOnElement(loginButton); return new RegistrationTasksPageTamil(driver); } - public boolean isNextButtonEnabled() { + public boolean isNextButtonEnabled() { return isElementEnabled(nextButton); } - public boolean isLoginButtonEnabled() { + public boolean isLoginButtonEnabled() { return isElementEnabled(loginButton); } @@ -138,4 +141,8 @@ public void selectLanguage() { clickOnElement(tamilButton); } + public void clickOnSkipToHomeButton() { + clickOnElement(skipToHomeButton); + } + } diff --git a/ui-test/src/main/java/regclient/pages/tamil/ManageApplicationsPageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/ManageApplicationsPageTamil.java index e46bdedf8..b01b813c9 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/ManageApplicationsPageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/ManageApplicationsPageTamil.java @@ -65,6 +65,24 @@ public class ManageApplicationsPageTamil extends ManageApplicationsPage{ @AndroidFindBy(accessibility = "Dismiss") private WebElement deletionValueDropdown; + + @AndroidFindBy(xpath = "//android.widget.TextView[@text='Documents'][2]") + private WebElement documentsHeader; + + @AndroidFindBy(accessibility = "android:id/button1") + private WebElement useThisFolderButton; + + @AndroidFindBy(accessibility = "android:id/button1") + private WebElement allowButton; + + @AndroidFindBy(xpath = "//android.widget.TextView[@resource-id='android:id/title' and @text='Documents']") + private WebElement documentsFolder; + + @AndroidFindBy(accessibility = "No network found!") + private WebElement noNetworkFound; + + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.CheckBox\").instance(1)") + private WebElement latestAidCheckBox; public ManageApplicationsPageTamil(AppiumDriver driver) { super(driver); @@ -214,4 +232,34 @@ public boolean isDeletionDropdownOptionDisplayed() { public void clickOnBackButton() { driver.navigate().back(); } + + public void clickOnExportButton() { + clickOnElement(exportButton); + waitTime(10); + } + + public void clickOnUseThisFolderButton() { + if (isElementDisplayed(documentsHeader)) { + clickOnElement(useThisFolderButton); + if (isElementDisplayed(allowButton)) { + clickOnElement(allowButton); + } + } else if (isElementDisplayed(documentsFolder)) { + clickOnElement(documentsFolder); + clickOnElement(useThisFolderButton); + if (isElementDisplayed(allowButton)) { + clickOnElement(allowButton); + } + } else { + throw new RuntimeException("Documents folder or header not found on screen"); + } + } + + public boolean isNoNetworkFoundDisplayed() { + return isElementDisplayed(noNetworkFound); + } + + public void selectLatestAidCheckBox() { + clickOnElement(latestAidCheckBox); + } } diff --git a/ui-test/src/main/java/regclient/pages/tamil/PendingApprovalTamil.java b/ui-test/src/main/java/regclient/pages/tamil/PendingApprovalTamil.java index f1f7db29e..d742c4a34 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/PendingApprovalTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/PendingApprovalTamil.java @@ -5,15 +5,20 @@ import static org.testng.Assert.assertTrue; +import java.time.Duration; +import java.util.List; + import org.openqa.selenium.By; +import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.ui.WebDriverWait; import io.appium.java_client.AppiumDriver; import io.appium.java_client.MobileBy; import io.appium.java_client.pagefactory.AndroidFindBy; import regclient.page.PendingApproval; -public class PendingApprovalTamil extends PendingApproval{ +public class PendingApprovalTamil extends PendingApproval { @AndroidFindBy(accessibility = "நிலுவையிலுள்ள ஒப்புதல்") private WebElement pendingApprovalTitle; @@ -40,43 +45,65 @@ public class PendingApprovalTamil extends PendingApproval{ @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.EditText\").instance(1)") private WebElement passwordTextBox; - + @AndroidFindBy(xpath = "//*[contains(@content-desc,\"நிலுவையிலுள்ள ஒப்புதல்\")]//preceding-sibling::android.widget.Button") private WebElement backButton; - + @AndroidFindBy(accessibility = "REJECT") private WebElement rejectButton; - + @AndroidFindBy(accessibility = "Sl.no Application ID Reg. Date Client Status Review Status Operator ID") - private WebElement pageAttributes ; - + private WebElement pageAttributes; + @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"CREATED\")") private WebElement clientStatus; - + @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"Pending\").instance(1)") private WebElement reviewStatus; - + @AndroidFindBy(xpath = "//android.widget.EditText") private WebElement applicationIdTextbox; - + @AndroidFindBy(accessibility = "Reject Packet?") private WebElement rejectPacketTitle; - + @AndroidFindBy(accessibility = "Please select a value") private WebElement rejectReasonDropdown; @AndroidFindBy(accessibility = "SUBMIT") private WebElement invalidUsernameMessageForempty; - + + @AndroidFindBy(accessibility = "Displaying 1 Applications") + private WebElement displayApplication; + + @AndroidFindBy(accessibility = "Please select a reason for packet rejection. You can change your review to approve or reset the review status later.") + private WebElement rejectPacketInfoMessage; + + @AndroidFindBy(uiAutomator = "new UiSelector().text(\"Biometrics\")") + private WebElement pendingApprovalBiometricsInformation; + + @AndroidFindBy(xpath = "(//android.widget.Button[@content-desc])[1]") + private WebElement latestAid; + + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.CheckBox\").instance(1)") + private WebElement latestAIdCheckBox; + + @AndroidFindBy(accessibility = "பிணையம் கிடைக்கவில்லை!") + private WebElement noNetworkFound; + + @AndroidFindBy(accessibility = "உறுதிப்படுத்தவும்") + private WebElement authenticateButton; + public PendingApprovalTamil(AppiumDriver driver) { super(driver); } public boolean isPendingApprovalTitleDisplayed() { - return isElementDisplayed(pendingApprovalTitle); + return isElementDisplayed(pendingApprovalTitle); } + public boolean isInvalidUsernameMessageDisplayed() { - return isElementDisplayed(invalidUsernameMessage); + return isElementDisplayed(invalidUsernameMessage); } @SuppressWarnings("deprecation") @@ -101,73 +128,124 @@ public void clickOnSubmitButton() { } public boolean isSupervisorAuthenticationTitleDisplayed() { - return isElementDisplayed(supervisorAuthenticationTitle); + return isElementDisplayed(supervisorAuthenticationTitle); } - public void enterUserName(String username) { - sendKeysToTextBox(userNameTextBox,username); + public void enterUserName(String username) { + sendKeysToTextBox(userNameTextBox, username); } - public void enterPassword(String password) { - sendKeysToTextBox(passwordTextBox,password); + public void enterPassword(String password) { + sendKeysToTextBox(passwordTextBox, password); } - + public void clickOnBackButton() { clickOnElement(backButton); } public boolean isApprovalButtonDisplayed() { - return isElementDisplayed(approveButton); + return isElementDisplayed(approveButton); } - + public boolean isRejectButtonDisplayed() { - return isElementDisplayed(rejectButton); + return isElementDisplayed(rejectButton); } - + public boolean isPageAttributesDisplayed() { - return isElementDisplayed(pageAttributes); + return isElementDisplayed(pageAttributes); } - + public boolean isClientStatusDisplayed() { - return isElementDisplayed(clientStatus); + return isElementDisplayed(clientStatus); } public boolean isReviewStatusDisplayed() { - return isElementDisplayed(reviewStatus); + return isElementDisplayed(reviewStatus); } - - public void enterAID(String AID) { - clickAndsendKeysToTextBox(applicationIdTextbox,AID); + + public void enterAID(String AID) { + clickAndsendKeysToTextBox(applicationIdTextbox, AID); } - + public void clickOnRejectButton() { clickOnElement(rejectButton); } - + public boolean isRejectPacketTitleDisplayed() { - return isElementDisplayed(rejectPacketTitle); + return isElementDisplayed(rejectPacketTitle); } - + public void selectRejectionReasonDropdown() { - boolean isdisplayed =isElementDisplayed(rejectReasonDropdown); - assertTrue(isdisplayed,"Verify if "+rejectReasonDropdown+" header is displayed"); + boolean isdisplayed = isElementDisplayed(rejectReasonDropdown); + assertTrue(isdisplayed, "Verify if " + rejectReasonDropdown + " header is displayed"); clickOnElement(rejectReasonDropdown); waitTime(2); - if(!isElementDisplayed(rejectReasonDropdown)) { + if (!isElementDisplayed(rejectReasonDropdown)) { clickOnElement(findElement(By.className("android.view.View"))); - }else { + } else { clickOnElement(rejectReasonDropdown); waitTime(2); clickOnElement(findElement(By.className("android.view.View"))); - } + } } - + public boolean isSubmitButtonEnabled() { - return isElementEnabled(submitButton); + return isElementEnabled(submitButton); } - + public boolean isInvalidemptyUsernameSumbitButtonEnbled() { return isElementEnabled(invalidUsernameMessageForempty); } + public boolean isNumberOfApplicationDisplayed() { + waitTime(2); + return isElementDisplayed(displayApplication); + } + + public boolean isRejectPacketInfoMessageDisplayed() { + return isElementDisplayed(rejectPacketInfoMessage); + } + + public boolean isPendingApprovalBiometricsInformationDisplayed() { + swipeOrScroll(); + return isElementDisplayed(pendingApprovalBiometricsInformation); + } + + public void clickOnLatestAid() { + List allButtons = driver.findElements(MobileBy.className("android.widget.Button")); + allButtons.get(2).click(); + } + + public void selectLatestAIdCheckBox() { + clickOnElement(latestAIdCheckBox); + } + + public boolean isNoNetworkFoundDisplayed() { + return isElementEnabled(noNetworkFound); + } + + public void clickOnPendingApprovalSubmitButton(int maxRetries) { + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(3)); + + for (int i = 1; i <= maxRetries; i++) { + clickOnSubmitButton(); + try { + boolean popupShown = wait.until(d -> isNoNetworkFoundDisplayed()); + if (popupShown) { + } + } catch (TimeoutException e) { + break; + } + } + System.out.println("Still No Network Found Displayed"); + } + + public void clickOnAuthenticateButton() { + clickOnElement(authenticateButton); + } + + public boolean isAuthenticateButtonEnabled() { + return isElementEnabled(authenticateButton); + } + } diff --git a/ui-test/src/main/java/regclient/pages/tamil/PreviewPageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/PreviewPageTamil.java index bbd253aef..5f4647ed8 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/PreviewPageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/PreviewPageTamil.java @@ -1,10 +1,12 @@ package regclient.pages.tamil; import org.openqa.selenium.WebElement; +import org.testng.Assert; import io.appium.java_client.AppiumDriver; import io.appium.java_client.MobileBy; import io.appium.java_client.pagefactory.AndroidFindBy; +import regclient.api.AdminTestUtil; import regclient.api.FetchUiSpec; import regclient.page.AuthenticationPage; import regclient.page.DemographicDetailsPage; @@ -12,87 +14,117 @@ import regclient.pages.english.AuthenticationPageEnglish; import regclient.pages.english.DemographicDetailsPageEnglish; - public class PreviewPageTamil extends PreviewPage { - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\"மக்கள்தொகை தகவல்\"))") private WebElement demographicInformationInPreviewPage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\"Application ID\"))") private WebElement applicationIDPreviewPage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\"ஆவணங்கள்\"))") private WebElement documentsInformationInPreviewPage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\"பயோமெட்ரிக்ஸ்\"))") private WebElement biometricsInformationInPreviewPage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\"Iris ( 1 )\"))") private WebElement singleIrisImage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\"Iris ( 2 )\"))") private WebElement bothIrisImage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\"Fingers ( 7 )\"))") private WebElement fingerExceptionText; - + @AndroidFindBy(accessibility = "தொடர்க") private WebElement continueButton; - + + @AndroidFindBy(xpath = "//android.view.View[contains(@text,'Email')]/../following-sibling::android.view.View[1]") + private WebElement emailIdPreviewPage; + + @AndroidFindBy(accessibility = "இழந்த UIN") + private WebElement lostUinTitle; + public PreviewPageTamil(AppiumDriver driver) { super(driver); } - - public AuthenticationPage clickOnContinueButton() { + + public AuthenticationPage clickOnContinueButton() { clickOnElement(continueButton); return new AuthenticationPageEnglish(driver); } - + public boolean isDemographicInformationInPreviewPageDisplayed() { return isElementDisplayed(demographicInformationInPreviewPage); } - + public boolean isDocumentsInformationInPreviewPageDisplayed() { return isElementDisplayed(documentsInformationInPreviewPage); } - + public boolean isBiometricsInformationInPreviewPagePageDisplayed() { return isElementDisplayed(biometricsInformationInPreviewPage); } - + @SuppressWarnings("deprecation") public boolean isNewRegistrationTitleDisplayed() { - return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getTitleUsingId("NEW") + "\"))"))); + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getTitleUsingId("NEW") + "\"))"))); } - + public boolean updateUINTitleDisplayed() { - return isElementDisplayed (findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getTitleUsingId("UPDATE") + "\"))"))); + return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getTitleUsingId("UPDATE") + "\"))"))); } - + public boolean isApplicationIDPreviewPagePageDisplayed() { return isElementDisplayed(applicationIDPreviewPage); } - + @SuppressWarnings("deprecation") public DemographicDetailsPage clickOnDemographicDetailsTitle() { - clickOnElement(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))"))); + clickOnElement(findElementWithRetry(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))"))); return new DemographicDetailsPageEnglish(driver); } - + public boolean isBothIrisImageDisplayed() { return isElementDisplayed(bothIrisImage); } - + public boolean isSingleIrisImageDisplayed() { return isElementDisplayed(singleIrisImage); } - + public boolean isFingerExceptionText() { return isElementDisplayed(fingerExceptionText); } public String getAID() { - String applicationID = getTextFromLocator(applicationIDPreviewPage).replaceAll(".*Application ID (\\d+).*", "$1"); + String applicationID = getTextFromLocator(applicationIDPreviewPage).replaceAll(".*Application ID (\\d+).*", + "$1"); return applicationID; } + + public void validatePreRegAndApplicationIdMatch(String age) { + String preRegId = AdminTestUtil.getPreRegistrationFlow(age); + + String applicationID = getAID(); + + Assert.assertEquals(applicationID, preRegId, "Mismatch between API PreReg ID and UI Application ID!"); + } + + public String getEmailId() { + String emailId = getTextFromLocator(emailIdPreviewPage) + .replaceAll(".*?([A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}).*", "$1"); + return emailId; + } + + public boolean isLostUinTitleDisplayed() { + return isElementDisplayed(lostUinTitle); + } } diff --git a/ui-test/src/main/java/regclient/pages/tamil/ProfilePageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/ProfilePageTamil.java index f1658b33a..8fa6bc241 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/ProfilePageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/ProfilePageTamil.java @@ -8,40 +8,50 @@ import regclient.page.ProfilePage; import regclient.pages.english.LoginPageEnglish; -public class ProfilePageTamil extends ProfilePage{ +public class ProfilePageTamil extends ProfilePage { @AndroidFindBy(accessibility = "சுயவிவரம்") private WebElement profileTitle; - + @AndroidFindBy(accessibility = "உள்நுழைவு") private WebElement logoutButton; - + @AndroidFindBy(accessibility = "There is still some action required!") private WebElement logoutPopUpMessage; - + + @AndroidFindBy(accessibility = "கடவுச்சொல்லை மீட்டமைக்கவும்") + private WebElement resetPasswordButton; public ProfilePageTamil(AppiumDriver driver) { super(driver); } - public LoginPage clickOnLogoutButton() { - if(isElementDisplayed(logoutButton)) - clickOnElement(logoutButton); + public LoginPage clickOnLogoutButton() { + if (isElementDisplayed(logoutButton)) + clickOnElement(logoutButton); return new LoginPageEnglish(driver); - } - - public LoginPage clickOnLogoutButtonOnPopUp() { + } + + public LoginPage clickOnLogoutButtonOnPopUp() { clickOnElement(logoutButton); return new LoginPageEnglish(driver); - } - + } + public boolean isProfileTitleDisplayed() { return isElementDisplayed(profileTitle); } - + public boolean isLogoutPopUpMessageDisplayed() { return isElementDisplayed(logoutPopUpMessage); } + public boolean isResetPasswordButtonDisplayed() { + return isElementDisplayed(resetPasswordButton); + } + + public LoginPage clickOnResetPasswordButton() { + clickOnElement(resetPasswordButton); + return new LoginPageEnglish(driver); + } } diff --git a/ui-test/src/main/java/regclient/pages/tamil/RegistrationTasksPageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/RegistrationTasksPageTamil.java index faad72cf6..d94d9e15a 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/RegistrationTasksPageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/RegistrationTasksPageTamil.java @@ -9,13 +9,13 @@ import regclient.page.ProfilePage; import regclient.page.RegistrationTasksPage; import regclient.page.SelectLanguagePage; +import regclient.pages.english.SelectLanguagePageEnglish; - -public class RegistrationTasksPageTamil extends RegistrationTasksPage{ +public class RegistrationTasksPageTamil extends RegistrationTasksPage { @AndroidFindBy(accessibility = "பதிவு பணிகள்") private WebElement registrationTasksTitle; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(2)") private WebElement dashboardButton; @@ -26,39 +26,54 @@ public class RegistrationTasksPageTamil extends RegistrationTasksPage{ private WebElement newRegistrationButton; @AndroidFindBy(uiAutomator = "new UiSelector().className(\"android.widget.ImageView\").instance(0)") - private WebElement synchronizeDataButton ; + private WebElement synchronizeDataButton; @AndroidFindBy(xpath = "//android.widget.Toast[@text=\"Policy key Sync Completed\"]") - private WebElement policykeySyncCompletedMessage ; + private WebElement policykeySyncCompletedMessage; @AndroidFindBy(xpath = "//*[contains(@text,'Sync Completed')]") - private WebElement masterDataSyncCompletedMessage ; + private WebElement masterDataSyncCompletedMessage; @AndroidFindBy(xpath = "//android.widget.Toast[@text=\"Script Sync Completed\"]") - private WebElement scriptSyncCompletedMessage ; - + private WebElement scriptSyncCompletedMessage; + @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"சுயவிவரம்\")") private WebElement profileButton; - + @AndroidFindBy(accessibility = "UIN ஐப் புதுப்பிக்கவும்") private WebElement updateUinButton; - + @AndroidFindBy(accessibility = "தொலைந்த UIN") private WebElement lostUinButton; - + @AndroidFindBy(accessibility = "Biometric correction") private WebElement biometricCorrectionButton; + @AndroidFindBy(accessibility = "Settings\nTab 2 of 4") + private WebElement settingsButton; + + @AndroidFindBy(id = "com.android.permissioncontroller:id/permission_message") + private WebElement locationPermissionMessage; + + @AndroidFindBy(id = "com.android.permissioncontroller:id/permission_allow_foreground_only_button") + private WebElement allowWhileUsingButton; + + @AndroidFindBy(id = "com.android.permissioncontroller:id/permission_allow_one_time_button") + private WebElement allowOnceButton; + + @AndroidFindBy(id = "com.android.permissioncontroller:id/permission_deny_button") + private WebElement dontAllowButton; + public RegistrationTasksPageTamil(AppiumDriver driver) { super(driver); } - public SelectLanguagePage clickOnNewRegistrationButton() { + public SelectLanguagePage clickOnNewRegistrationButton() { clickOnElement(newRegistrationButton); return new SelectLanguagePageTamil(driver); } - public void clickOnSynchronizeDataButton() { + public void clickOnSynchronizeDataButton() { clickOnElement(synchronizeDataButton); } @@ -82,12 +97,12 @@ public boolean isScriptSyncCompletedDisplayed() { return isElementDisplayed(scriptSyncCompletedMessage); } - public DashboardPage clickOnDashboardButton() { + public DashboardPage clickOnDashboardButton() { clickOnElement(dashboardButton); return new DashboardPageTamil(driver); } - - public OperationalTaskPage clickOnOperationalTasksTitle() { + + public OperationalTaskPage clickOnOperationalTasksTitle() { clickOnElement(operationalTaskPageTitle); return new OperationalTaskPageTamil(driver); } @@ -95,39 +110,65 @@ public OperationalTaskPage clickOnOperationalTasksTitle() { public boolean isProfileTitleDisplayed() { return isElementDisplayed(profileButton); } - - public ProfilePage clickProfileButton() { + + public ProfilePage clickProfileButton() { clickOnElement(profileButton); return new ProfilePageTamil(driver); } - - public SelectLanguagePage clickUpdateMyUINButton() { + + public SelectLanguagePage clickUpdateMyUINButton() { clickOnElement(updateUinButton); return new SelectLanguagePageTamil(driver); } - + public boolean isUpdateUINTitleDisplayed() { return isElementDisplayed(updateUinButton); } - + public boolean isLostUINTitleDisplayed() { return isElementDisplayed(lostUinButton); } - + public boolean isBiometricCorrectionTitleDisplayed() { return isElementDisplayed(biometricCorrectionButton); } - - public void clickSynchronizeDataButton() { + + public void clickSynchronizeDataButton() { clickOnElement(synchronizeDataButton); waitTime(50); } - + public boolean checkLastSyncDate() { String contentDesc = synchronizeDataButton.getAttribute("content-desc"); - if(contentDesc.contains("Synchronize Data\n"+getCurrentDateWord()+",")) + if (contentDesc.contains("Synchronize Data\n" + getCurrentDateWord() + ",")) return true; else return false; } + + public void clickOnLostUinButton() { + clickOnElement(lostUinButton); + } + + public void clickOnSettingsButton() { + clickOnElement(settingsButton); + } + + public SelectLanguagePage clickOnBiometricCorrectionButton() { + clickOnElement(biometricCorrectionButton); + return new SelectLanguagePageEnglish(driver); + } + + public void handleLocationPermission() { + try { + if (isElementDisplayed(locationPermissionMessage)) { + clickOnElement(allowWhileUsingButton); + } + } catch (Exception e) { + } + } + + public void clickOnRegistrationTasksTab() { + clickOnElement(registrationTasksTitle); + } } diff --git a/ui-test/src/main/java/regclient/pages/tamil/UpdateOperatorBiometricspageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/UpdateOperatorBiometricspageTamil.java index ac1078bc2..8182c38c9 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/UpdateOperatorBiometricspageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/UpdateOperatorBiometricspageTamil.java @@ -6,386 +6,392 @@ import io.appium.java_client.pagefactory.AndroidFindBy; import regclient.page.UpdateOperatorBiometricspage; -public class UpdateOperatorBiometricspageTamil extends UpdateOperatorBiometricspage{ +public class UpdateOperatorBiometricspageTamil extends UpdateOperatorBiometricspage { public UpdateOperatorBiometricspageTamil(AppiumDriver driver) { super(driver); - + } @AndroidFindBy(accessibility = "மேற்பார்வையாளர் பயோமேட்ரிக் புதுப்பிப்பு") private WebElement supervisorBiometricUpdatePageTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"ஐரிஸ் ஊடுகதிர்\"))") private WebElement irisScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"வலது கை ஊடுகதிர்\"))") private WebElement rightHandScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"இடது கை ஊடுகதிர்\"))") private WebElement leftHandScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"முழுகுமதி ஊடுகதிர்\"))") private WebElement thumbsScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"முகம் ஊடுகதிர்\"))") private WebElement faceScanIcon; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"விதிவிலக்கு ஊடுகதிர்\"))") private WebElement exceptionScanIcon; - + @AndroidFindBy(accessibility = "ஐரிஸ் ஊடுகதிர்") private WebElement irisScanButton; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"ஐரிஸ் ஊடுகதிர்\"))") private WebElement irisScanButtonTitle; - + @AndroidFindBy(accessibility = "நிரந்தர") private WebElement permanentButton; - + @AndroidFindBy(accessibility = "குறிப்பிடுக") private WebElement temporaryButton; - + @AndroidFindBy(accessibility = "விசாரிக்கப்பட்ட விதிவிலக்கு") private WebElement markExceptionButton; - + @AndroidFindBy(accessibility = "விசாரிக்கப்பட்ட விதிவிலக்கு") private WebElement exceptionTypeTitle; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(1)") private WebElement oneEyeException; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(2)") private WebElement firstFingureExceptionImage; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(1)") private WebElement secondFingureExceptionImage; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(3)") private WebElement thirdFingureExceptionImage; - + @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(4)") private WebElement forthFingureExceptionImage; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"வலது கை ஊடுகதிர்\"))") private WebElement rightHandScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"இடது கை ஊடுகதிர்\"))") private WebElement leftHandScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"முழுகுமதி ஊடுகதிர்\"))") private WebElement thumbsScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"முகம் ஊடுகதிர்\"))") private WebElement faceScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"விதிவிலக்கு ஊடுகதிர்\"))") private WebElement exceptionScanTitle; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().description(\"ஊடுகதிர்\"))") private WebElement scanButton; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Iris பிடிப்பு')]") private WebElement irisCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'RightHand பிடிப்பு')]") private WebElement rightHandCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'LeftHand பிடிப்பு')]") private WebElement leftHandCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Thumbs பிடிப்பு')]") private WebElement thumbsCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Face பிடிப்பு')]") private WebElement faceCapturerHeader; - + @AndroidFindBy(xpath = "//*[contains(@content-desc, 'Exception பிடிப்பு')]") private WebElement exceptionCapturerHeader; - + @AndroidFindBy(xpath = "//android.widget.ScrollView/android.view.View[3]") private WebElement zoomButton; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"கருத்துகள்\")]/following-sibling::android.widget.EditText") private WebElement commentsTextBox; - + @AndroidFindBy(className = "android.widget.Button") private WebElement popUpCloseButton; - + @AndroidFindBy(accessibility = "அடுத்தவர்") private WebElement nextButton; - + @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"கருத்துகள்\"))") private WebElement commentsHeader; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"அளவுக்கு \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement irisScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"அளவுக்கு \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement rightHandScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"அளவுக்கு \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement leftHandScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"அளவுக்கு \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement thumbsScanQuality; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"அளவுக்கு \")]/following-sibling::android.view.View[contains(@content-desc, \"%\")]") private WebElement faceScanQuality; - + @AndroidFindBy(accessibility = "விதிவிலக்குகளைக் குறிப்பது இயக்கத்தில் உள்ளது முகம் அனுமதிக்கப்படவில்லை") private WebElement markingExceptionsOnFaceIsNotAllowedText; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"அளவுக்கு \")]/following-sibling::android.view.View") private WebElement scanQualityText; - + @AndroidFindBy(accessibility = "சரிபார்த்து சேமிக்கவும்") private WebElement verifyAndSaveButton; - + @AndroidFindBy(accessibility = "நிராகரிக்கும்") private WebElement dismissPage; - + @AndroidFindBy(accessibility = "ஆபரேட்டர் பயோமெட்ரிக்ஸ் வெற்றிகரமாக புதுப்பிக்கப்பட்டது.") private WebElement successPopup; - + @AndroidFindBy(accessibility = "வீடு") private WebElement homeButton; - + + @AndroidFindBy(accessibility = "ஆபரேட்டர் பயோமேட்ரிக்ஸ் புதுப்பிக்க") + private WebElement updateOperatorBiometrics; + public void clickOnIrisScan() { clickOnElement(irisScanIcon); } - + public boolean isSupervisorBiometricUpdatePageLoaded() { return isElementDisplayed(supervisorBiometricUpdatePageTitle); } - + public void clickOnRightHandScanIcon() { clickOnElement(rightHandScanIcon); } - + public void clickOnLeftHandScanIcon() { clickOnElement(leftHandScanIcon); } - + public void clickOnThumbsScanIcon() { clickOnElement(thumbsScanIcon); } - + public void clickOnFaceScanIcon() { clickOnElement(faceScanIcon); } - + public void clickOnExceptionScanIcon() { clickOnElement(exceptionScanIcon); } - + public void clickOnScanButton() { clickOnElement(scanButton); - } - + } + public void clickOnNextButton() { clickOnElement(nextButton); } - + public void closeScanCapturePopUp() { driver.navigate().back(); } - - - public boolean isRightHandScanTitleDisplyed() { + + public boolean isRightHandScanTitleDisplyed() { return isElementDisplayed(rightHandScanTitle); } - - public boolean isLeftHandScanTitleDisplyed() { + + public boolean isLeftHandScanTitleDisplyed() { return isElementDisplayed(leftHandScanTitle); } - - public boolean isThumbsScanTitleDisplyed() { + + public boolean isThumbsScanTitleDisplyed() { return isElementDisplayed(thumbsScanTitle); } - - public boolean isFaceScanTitleDisplyed() { + + public boolean isFaceScanTitleDisplyed() { return isElementDisplayed(faceScanTitle); } - - public boolean isExceptionScanTitleDisplyed() { + + public boolean isExceptionScanTitleDisplyed() { return isElementDisplayed(exceptionScanTitle); } - - public boolean isIrisScan() { - return isElementDisplayed(irisCapturerHeader,2000); + + public boolean isIrisScan() { + return isElementDisplayed(irisCapturerHeader, 2000); } - - public boolean isRightHandScan() { - return isElementDisplayed(rightHandCapturerHeader,2000); + + public boolean isRightHandScan() { + return isElementDisplayed(rightHandCapturerHeader, 2000); } - - public boolean isLeftHandScan() { - return isElementDisplayed(leftHandCapturerHeader,2000); + + public boolean isLeftHandScan() { + return isElementDisplayed(leftHandCapturerHeader, 2000); } - - public boolean isThumbsScan() { - return isElementDisplayed(thumbsCapturerHeader,2000); + + public boolean isThumbsScan() { + return isElementDisplayed(thumbsCapturerHeader, 2000); } - - public boolean isFaceScan() { - return isElementDisplayed(faceCapturerHeader,2000); + + public boolean isFaceScan() { + return isElementDisplayed(faceCapturerHeader, 2000); } - - public boolean isIrisScanQualityDisplyed() { + + public boolean isIrisScanQualityDisplyed() { return isElementDisplayed(irisScanQuality); } - - public boolean isRightHandScanQualityDisplyed() { + + public boolean isRightHandScanQualityDisplyed() { return isElementDisplayed(rightHandScanQuality); } - - public boolean isLeftHandScanQualityDisplyed() { + + public boolean isLeftHandScanQualityDisplyed() { return isElementDisplayed(leftHandScanQuality); } - - public boolean isThumbsScanQualityDisplyed() { + + public boolean isThumbsScanQualityDisplyed() { return isElementDisplayed(thumbsScanQuality); } - - public boolean isFaceScanQualityDisplyed() { + + public boolean isFaceScanQualityDisplyed() { return isElementDisplayed(faceScanQuality); } - + public void clickOnMarkExceptionButton() { clickOnElement(markExceptionButton); } - + public void markOneEyeException() { clickOnElement(oneEyeException); } - + public void markOneFingureException() { clickOnElement(firstFingureExceptionImage); } - - public boolean isExceptionTypeTitleDisplyed() { + + public boolean isExceptionTypeTitleDisplyed() { return isElementDisplayed(exceptionTypeTitle); } - + public void clickOnExceptionTypeTemporaryButton() { - if(!isElementDisplayedOnScreen(temporaryButton)) { + if (!isElementDisplayedOnScreen(temporaryButton)) { swipeOrScroll(); } - clickOnElement(temporaryButton); + clickOnElement(temporaryButton); } - - public boolean isCommentHeaderDisplyed() { + + public boolean isCommentHeaderDisplyed() { return isElementDisplayed(commentsHeader); } - - public void enterCommentsInTextBox(String comments) { - if(!isElementDisplayedOnScreen(commentsTextBox)) { + + public void enterCommentsInTextBox(String comments) { + if (!isElementDisplayedOnScreen(commentsTextBox)) { swipeOrScroll(); } - clickAndsendKeysToTextBox(commentsTextBox,comments); + clickAndsendKeysToTextBox(commentsTextBox, comments); } - + public void clickOnIrisScanTitle() { clickOnElement(irisScanButtonTitle); } - + public void clickOnThumbsScanTitle() { clickOnElement(thumbsScanTitle); } - - public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed() { + + public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed() { return isElementDisplayed(markingExceptionsOnFaceIsNotAllowedText); } - - public boolean isZoomButtonDisplyed() { + + public boolean isZoomButtonDisplyed() { return isElementDisplayed(zoomButton); } - + public void clickOnRightHandScanTitle() { clickOnElement(rightHandScanTitle); } - + public void clickOnLeftHandScanTitle() { clickOnElement(leftHandScanTitle); } - + public void clickOnFaceScanTitle() { clickOnElement(faceScanTitle); } + public boolean checkThresholdValueIris() { - int requiredValue=60; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 60; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueRightHand() { - int requiredValue=40; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 40; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueLeftHand() { - int requiredValue=60; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 60; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueThumbs() { - int requiredValue=40; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 40; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean checkThresholdValueFace() { - int requiredValue=90; - String scanValue =scanQualityText.getAttribute("contentDescription"); - int value=Integer.valueOf(scanValue.replace("%", "")); - if(value>=requiredValue) + int requiredValue = 90; + String scanValue = scanQualityText.getAttribute("contentDescription"); + int value = Integer.valueOf(scanValue.replace("%", "")); + if (value >= requiredValue) return true; else return false; } - + public boolean isVerifyAndSaveButtonEnabled() { return isElementDisplayed(verifyAndSaveButton); } - + public void clickOnVerifyAndSaveButton() { clickOnElement(verifyAndSaveButton); - + } - + public boolean isDismissPageLoaded() { return isElementDisplayed(dismissPage); } - - + public boolean isOperatorBiometricsUpdatedPopupLoaded() { - return isElementDisplayed(successPopup); + return isElementDisplayed(successPopup); } - + public void clickOnHomeButton() { clickOnElement(homeButton); } - + public void clickOnBackButton() { driver.navigate().back(); } + + public boolean isUpdateOperatorBiometricsPageLoaded() { + return isElementDisplayed(updateOperatorBiometrics); + } } diff --git a/ui-test/src/main/java/regclient/utils/TestDataReader.java b/ui-test/src/main/java/regclient/utils/TestDataReader.java index 8364cd3ba..f571a02a0 100644 --- a/ui-test/src/main/java/regclient/utils/TestDataReader.java +++ b/ui-test/src/main/java/regclient/utils/TestDataReader.java @@ -33,4 +33,14 @@ public static String getValueFromJson(String value) { return (String) jsonObject.get(value); } + + public static String readData(String key, String defaultValue) { + try { + String val = readData(key); // existing method + return (val == null || val.trim().isEmpty()) ? defaultValue : val; + } catch (Exception e) { + // Log optionally, then return default + return defaultValue; + } + } } diff --git a/ui-test/src/main/java/regclient/utils/TestRunner.java b/ui-test/src/main/java/regclient/utils/TestRunner.java index 050facd24..dbe97b9f4 100644 --- a/ui-test/src/main/java/regclient/utils/TestRunner.java +++ b/ui-test/src/main/java/regclient/utils/TestRunner.java @@ -16,85 +16,102 @@ import regclient.api.FetchUiSpec; public class TestRunner { - + public static String jarUrl = TestRunner.class.getProtectionDomain().getCodeSource().getLocation().getPath(); - - public static void main(String[] args) { + + public static void main(String[] args) { io.mosip.testrig.apirig.testrunner.BaseTestCase.currentModule = "androidregclient"; AdminTestUtil.initialize(); BaseTestCase.ApplnURI = ArcConfigManager.getiam_apiinternalendpoint(); OTPListener otpListener = new OTPListener(); - otpListener.run(); + otpListener.run(); FetchUiSpec.getUiSpec("newProcess"); io.mosip.testrig.apirig.testrunner.BaseTestCase.setRunContext(checkRunType(), jarUrl); io.mosip.testrig.apirig.testrunner.BaseTestCase.copymoduleSpecificAndConfigFile("config"); io.mosip.testrig.apirig.utils.AdminTestUtil.init(); FetchUiSpec.getBiometricDetails("individualBiometrics"); System.out.println("BaseTestCase.ApplnURI : " + BaseTestCase.ApplnURI); - AdminTestUtil.getPreRegistrationFlow(); - + AdminTestUtil.getPreRegistrationFlow("adult"); + AdminTestUtil.getPreRegistrationFlow("minor"); + AdminTestUtil.getPreRegistrationFlow("infant"); + File homeDir = null; TestNG runner = new TestNG(); - if(!ArcConfigManager.gettestcases().equals("")) { + if (!ArcConfigManager.gettestcases().equals("")) { XmlSuite suite = new XmlSuite(); suite.setName("MySuite"); suite.addListener("regclient.utils.EmailableReport"); XmlClass addMachineDetails = new XmlClass("regclient.androidTestCases.AddMachineDetails"); - XmlClass initallLaunch = new XmlClass("regclient.androidTestCases.IntialLunch"); + XmlClass initialLaunch = new XmlClass("regclient.androidTestCases.InitialLaunch"); XmlClass logintest = new XmlClass("regclient.androidTestCases.logintest"); XmlClass newRegistrationAdult = new XmlClass("regclient.androidTestCases.NewRegistrationAdult"); - XmlClass newRegistrationAdultException = new XmlClass("regclient.androidTestCases.NewRegistrationAdultException"); + XmlClass newRegistrationAdultException = new XmlClass( + "regclient.androidTestCases.NewRegistrationAdultException"); XmlClass newRegistrationInfant = new XmlClass("regclient.androidTestCases.NewRegistrationInfant"); XmlClass newRegistrationMinor = new XmlClass("regclient.androidTestCases.NewRegistrationMinor"); - XmlClass newRegistrationMinorException = new XmlClass("regclient.androidTestCases.NewRegistrationMinorException"); + XmlClass newRegistrationMinorException = new XmlClass( + "regclient.androidTestCases.NewRegistrationMinorException"); XmlClass updateMyUinInfant = new XmlClass("regclient.androidTestCases.UpdateMyUinInfant"); XmlClass updateMyUinMinor = new XmlClass("regclient.androidTestCases.UpdateMyUinMinor"); - XmlClass updateMyUINUpdatebiometrics = new XmlClass("regclient.androidTestCases.UpdateMyUinUpdateBiometrics"); - XmlClass updateMyUINUpdateDemographicDetails = new XmlClass("regclient.androidTestCases.UpdateMyUINUpdateDemographicDetails"); - + XmlClass updateMyUINUpdatebiometrics = new XmlClass( + "regclient.androidTestCases.UpdateMyUinUpdateBiometrics"); + XmlClass updateMyUINUpdateDemographicDetails = new XmlClass( + "regclient.androidTestCases.UpdateMyUINUpdateDemographicDetails"); + XmlClass updateMyUinUpdateDocuments = new XmlClass("regclient.androidTestCases.UpdateMyUinUpdateDocuments"); + XmlClass lostUin = new XmlClass("regclient.androidTestCases.LostUin"); + XmlClass settings = new XmlClass("regclient.androidTestCases.Settings"); List classes = new ArrayList<>(); - String[] Scenarionames=ArcConfigManager.gettestcases().split(","); - for(String test:Scenarionames) { - String Scenarioname=test.toLowerCase(); + String[] Scenarionames = ArcConfigManager.gettestcases().split(","); + for (String test : Scenarionames) { + String Scenarioname = test.toLowerCase(); - if(Scenarioname.equalsIgnoreCase("addMachineDetails")) + if (Scenarioname.equalsIgnoreCase("addMachineDetails")) classes.add(addMachineDetails); - if(Scenarioname.equalsIgnoreCase("initallLaunch")) - classes.add(initallLaunch); - - if(Scenarioname.equalsIgnoreCase("logintest")) + if (Scenarioname.equalsIgnoreCase("initialLaunch")) + classes.add(initialLaunch); + + if (Scenarioname.equalsIgnoreCase("logintest")) classes.add(logintest); - - if(Scenarioname.equalsIgnoreCase("newRegistrationAdult")) + + if (Scenarioname.equalsIgnoreCase("newRegistrationAdult")) classes.add(newRegistrationAdult); - if(Scenarioname.equalsIgnoreCase("newRegistrationAdultException")) + if (Scenarioname.equalsIgnoreCase("newRegistrationAdultException")) classes.add(newRegistrationAdultException); - if(Scenarioname.equalsIgnoreCase("newRegistrationInfant")) + if (Scenarioname.equalsIgnoreCase("newRegistrationInfant")) classes.add(newRegistrationInfant); - if(Scenarioname.equalsIgnoreCase("newRegistrationMinor")) + if (Scenarioname.equalsIgnoreCase("newRegistrationMinor")) classes.add(newRegistrationMinor); - if(Scenarioname.equalsIgnoreCase("newRegistrationMinorException")) + if (Scenarioname.equalsIgnoreCase("newRegistrationMinorException")) classes.add(newRegistrationMinorException); - if(Scenarioname.equalsIgnoreCase("updateMyUinInfant")) + if (Scenarioname.equalsIgnoreCase("updateMyUinInfant")) classes.add(updateMyUinInfant); - if(Scenarioname.equalsIgnoreCase("updateMyUinMinor")) + if (Scenarioname.equalsIgnoreCase("updateMyUinMinor")) classes.add(updateMyUinMinor); - if(Scenarioname.equalsIgnoreCase("updateMyUINUpdatebiometrics")) + if (Scenarioname.equalsIgnoreCase("updateMyUINUpdatebiometrics")) classes.add(updateMyUINUpdatebiometrics); - if(Scenarioname.equalsIgnoreCase("updateMyUINUpdateDemographicDetails")) + if (Scenarioname.equalsIgnoreCase("updateMyUINUpdateDemographicDetails")) classes.add(updateMyUINUpdateDemographicDetails); + if (Scenarioname.equalsIgnoreCase("updateMyUinUpdateDocuments")) + classes.add(updateMyUinUpdateDocuments); + + if (Scenarioname.equalsIgnoreCase("lostUin")) + classes.add(lostUin); + + if (Scenarioname.equalsIgnoreCase("settings")) + classes.add(settings); + } XmlTest test = new XmlTest(suite); test.setName("MyTest"); @@ -105,34 +122,34 @@ public static void main(String[] args) { runner.setXmlSuites(suites); - }else { + } else { List suitefiles = new ArrayList(); - homeDir = new File("testng.xml"); + homeDir = new File("testng.xml"); suitefiles.add(homeDir.getAbsolutePath()); runner.setTestSuites(suitefiles); } System.getProperties().setProperty("testng.outpur.dir", "testng-report"); runner.setOutputDirectory("testng-report"); - System.getProperties().setProperty("emailable.report2.name", "AndroidRegClient-" + BaseTestCase.environment + - "-run-" + System.currentTimeMillis() + "-report.html"); + System.getProperties().setProperty("emailable.report2.name", + "AndroidRegClient-" + BaseTestCase.environment + "-run-" + System.currentTimeMillis() + "-report.html"); runner.run(); - otpListener.bTerminate=true; + otpListener.bTerminate = true; System.exit(0); } - + public static String getResourcePath() { if (checkRunType().equalsIgnoreCase("JAR")) { - return new File(jarUrl).getParentFile().getAbsolutePath().toString()+"/resources/"; + return new File(jarUrl).getParentFile().getAbsolutePath().toString() + "/resources/"; } else if (checkRunType().equalsIgnoreCase("IDE")) { - String path = System.getProperty("user.dir") + "//src//main//resources"; + String path = System.getProperty("user.dir") + "//src//main//resources"; if (path.contains("test-classes")) path = path.replace("test-classes", "classes"); return path; } return "Global Resource File Path Not Found"; } - + public static String checkRunType() { if (TestRunner.class.getResource("TestRunner.class").getPath().toString().contains(".jar")) return "JAR"; diff --git a/ui-test/src/main/resources/DesiredCapabilities.json b/ui-test/src/main/resources/DesiredCapabilities.json index 64e978cf8..feb8aca2b 100644 --- a/ui-test/src/main/resources/DesiredCapabilities.json +++ b/ui-test/src/main/resources/DesiredCapabilities.json @@ -2,16 +2,26 @@ { "name": "androidDevice", "caps": { - "appium:udid": "HA1TB4W4", + "appium:udid": "ADNKCP3523400513", "appium:automationName": "UiAutomator2", - "appium:app": "E:\app-release.apk", + "appium:app": "D:/ARC/qa-base/apk-output/app-release.apk", "platformName": "android", "appium:appPackage": "io.mosip.registration_client", "appium:appActivity": "io.mosip.registration_client.MainActivity", "appium:noReset": true, "appium:autoGrantPermissions": true, "appium:shouldTerminateApp": true, - "appium:noSign": true + "appium:noSign": true, + "appium:newCommandTimeout": 600, + "appium:dontStopAppOnReset": true, + "appium:appWaitForLaunch": false, + + "appium:adbExecTimeout": 300000, + "appium:uiautomator2ServerInstallTimeout": 200000, + "appium:uiautomator2ServerLaunchTimeout": 200000, + + "appium:settings[waitForIdleTimeout]": 100, + "appium:settings[ignoreUnimportantViews]": true } } -] \ No newline at end of file +] diff --git a/ui-test/src/main/resources/config.properties b/ui-test/src/main/resources/config.properties index 38f26270a..19d177e72 100644 --- a/ui-test/src/main/resources/config.properties +++ b/ui-test/src/main/resources/config.properties @@ -1,5 +1,5 @@ ipAddress=127.0.0.1 nodePath=C:/Program Files/nodejs/node -appiumServerExecutable=C:/Users/famuda.m/AppData/Roaming/npm/node_modules/appium/build/lib/main.js +appiumServerExecutable=C:/Users/Damodar Guru/AppData/Roaming/npm/node_modules/appium/build/lib/main.js appiumLogFilePath=report/appiumLogs.txt startAppiumServer=true \ No newline at end of file diff --git a/ui-test/src/main/resources/config/Kernel.properties b/ui-test/src/main/resources/config/Kernel.properties index 025e61b6e..416c21c39 100644 --- a/ui-test/src/main/resources/config/Kernel.properties +++ b/ui-test/src/main/resources/config/Kernel.properties @@ -20,7 +20,7 @@ attempt = 10 ConfigParameters=mosip.kernel.rid.length,mosip.kernel.uin.length,mosip.kernel.sms.country.code,mosip.kernel.sms.number.length,mosip.kernel.otp.default-length,mosip.kernel.otp.expiry-time,mosip.kernel.otp.key-freeze-time,mosip.kernel.otp.validation-attempt-threshold,mosip.kernel.otp.min-key-length,mosip.kernel.otp.max-key-length,mosip.kernel.licensekey.length,mosip.supported-languages #Below users are used for authentication #PARTNER -#Dont change the partner id +#Dont change the partner id pmsAuthInternal=true mosip_pms_app_id=partner partner_password=mosip123 @@ -32,33 +32,29 @@ policytest_userName=111998 #IDREPO mosip_idrepo_app_id=idrepo mosip_idrepo_client_id=mosip-idrepo-client -mosip_idrepo_client_secret=uUkMdHwBecS5en6c +mosip_idrepo_client_secret=7vwZeyseYgqqw8z7 #admin mosip_admin_app_id=admin admin_password=mosip123 admin_userName=32 mosip_admin_client_id=mosip-admin-client -mosip_admin_client_secret=p92bDbUVEqrs7Kkz +mosip_admin_client_secret=uTHNbr8eFO0fxU42 #admin admin_zone_password=mosip123 admin_zone_userName=globaladmin mosip_regclient_app_id=registrationclient mosip_reg_client_id=mosip-reg-client -mosip_reg_client_secret=KZEbBA8009jvkQBj +mosip_reg_client_secret=dfT3rPsm1jK2jI3x #This credentials are used to execute auth demo service new_Resident_User=111995 new_Resident_Password=mosip123 new_Resident_Role=default-roles-mosip,PARTNER_ADMIN roles.111995=PARTNER_ADMIN,default-roles-mosip - - keycloak_UserName = admin -keycloak_Password = DGQfHAEayB - -keycloak-external-url=https://iam.qa-platform1.mosip.net +keycloak_Password = zT57m8jzRM +keycloak-external-url=https://iam.qa-base.mosip.net mosip_testrig_client_id=mosip-testrig-client -mosip_testrig_client_secret=PPAuJADf3JM1Umdn - +mosip_testrig_client_secret=zwNlQC8fWg62RRqB keycloak-realm-id=mosip iam-users-to-create=32 #iam-users-to-create=111997,220005,111992 @@ -74,9 +70,9 @@ current_session_context_class=thread #ida-partner details DB_PORT= installation-domain= -partner_url=jdbc:postgresql://qa-platform1.mosip.net:5432/mosip_ida +partner_url=jdbc:postgresql://qa-base.mosip.net:5432/mosip_ida partner_username=postgres -partner_password=fWflIjaezy +partner_password=cNIE2mC7Wf partner_default_schema=partner reportLogPath=automationLogAndReport #--------minio proprties---------------- @@ -96,47 +92,39 @@ langselect=0 #----------------------------------Database properties----------------------------------------------------------# postgresqlUser=postgresql db-port=5432 -db-server=qa-platform1.mosip.net +db-server=qa-base.mosip.net hibernate.connection.driver_class=org.postgresql.Driver hibernate.connection.pool_size=1 hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect hibernate.show_sql=true hibernate.current_session_context_class=thread db-su-user=postgres -postgresql-password=fWflIjaezy +postgresql-password=cNIE2mC7Wf pms_db_schema=pms km_db_schema=keymgr master_db_schema=master audit_db_schema=audit ida_db_schema=ida - #----------------------------------AuthDemoService Host properties----------------------------------------------------------# #To run locally authDemoServiceBaseURL=http://localhost authDemoServicePort=8082 - #To run in Docker #authDemoServiceBaseURL=http://authdemo.apitestrig #authDemoServicePort=80 - - #----------------------------------IdP properties----------------------------------------------------------# - actuatorEndpoint=/resident/v1/actuator/env actuatorIDAEndpoint=/idauthentication/v1/actuator/env tokenEndpoint=/v1/esignet/oauth/token - #To run in Docker #authCertsPath=/home/mosip/authcerts - #To run locally authCertsPath= preconfiguredOtp=111111 usePreConfiguredOtp=true - -regCenterId=16075 -zone=1000 - -apiEnvUser=api-internal.qa-platform1 -apiInternalEndPoint=https://api-internal.qa-platform1.mosip.net -regclientScenariosToExecute= \ No newline at end of file +regCenterId=10004 +zone=MOR +apiEnvUser=api-internal.qa-base +apiInternalEndPoint=https://api-internal.qa-base.mosip.net +regclientScenariosToExecute=NewRegistrationInfant +#PreRegFetchingPacket,NewRegistrationAdult,NewRegistrationAdultException,NewRegistrationInfant,NewRegistrationMinor,NewRegistrationMinorException,ResetPassword,Settings,UpdateMyUinInfant,UpdateMyUinMinor,UpdateMyUinUpdateBiometrics,UpdateMyUINUpdateDemographicDetails,UpdateMyUinUpdateDocuments,LostUin,AddMachineDetails,IntialLunch,logintest,BiometricCorrection,ResetPassword \ No newline at end of file diff --git a/ui-test/src/main/resources/idaData/createPrereg/createPrereg.yml b/ui-test/src/main/resources/idaData/createPrereg/createPrereg.yml new file mode 100644 index 000000000..049caf97b --- /dev/null +++ b/ui-test/src/main/resources/idaData/createPrereg/createPrereg.yml @@ -0,0 +1,23 @@ +CreatePrereg: + Prereg_CreatePrereg_All_Valid_Smoke_sid: + endPoint: /preregistration/v1/applications/prereg + uniqueIdentifier: TC_Prereg_CreatePrereg_01 + description: Creating demographic details with valid data + role: batch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/createPrereg/createPrereg + outputTemplate: preReg/createPrereg/createPreregResult + input: '{ + "postalCode": "14022", + "phone": "8249742850", + "email": "goku@technoforte.co.in", + "IDSchemaVersion": $SCHEMAVERSION$, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "$TIMESTAMP$", + "id": "mosip.pre-registration.demographic.create" +}' + output: '{ +}' \ No newline at end of file diff --git a/ui-test/src/main/resources/testdata.json b/ui-test/src/main/resources/testdata.json index 259011bd1..1b4e8907b 100644 --- a/ui-test/src/main/resources/testdata.json +++ b/ui-test/src/main/resources/testdata.json @@ -1,11 +1,11 @@ { - "UIN": "3054097528", - "UINinfant": "5074162518", - "UINminor": "2312798573", - "language": "eng", - "defaultlanguage": "eng", - "notificationLanguage": "eng", - "RID": "10001105671003120240215071549", - "id": "com.motorola.camera3:id/capture_bar_shutter_button" - -} \ No newline at end of file + "UIN": "3054097528", + "UINinfant": "5074162518", + "UINminor": "2312798573", + "language": "eng", + "defaultlanguage": "eng", + "notificationLanguage": "eng", + "RID": "10001105671003120240215071549", + "id": "com.motorola.camera3:id/capture_bar_shutter_button", + "fingerprint_threshold": "45" +} diff --git a/ui-test/testng.xml b/ui-test/testng.xml index 4632a3d3f..54931fd7a 100644 --- a/ui-test/testng.xml +++ b/ui-test/testng.xml @@ -56,6 +56,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + From 721b9fc911682578b4ab6e7b88e10adbad902fcc Mon Sep 17 00:00:00 2001 From: damodar Date: Fri, 14 Nov 2025 12:10:58 +0530 Subject: [PATCH 02/21] MOSIP-42652: ARC UI automation Signed-off-by: damodar --- ui-test/src/main/resources/config/Kernel.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui-test/src/main/resources/config/Kernel.properties b/ui-test/src/main/resources/config/Kernel.properties index 416c21c39..61a9357fc 100644 --- a/ui-test/src/main/resources/config/Kernel.properties +++ b/ui-test/src/main/resources/config/Kernel.properties @@ -126,5 +126,5 @@ regCenterId=10004 zone=MOR apiEnvUser=api-internal.qa-base apiInternalEndPoint=https://api-internal.qa-base.mosip.net -regclientScenariosToExecute=NewRegistrationInfant +regclientScenariosToExecute= #PreRegFetchingPacket,NewRegistrationAdult,NewRegistrationAdultException,NewRegistrationInfant,NewRegistrationMinor,NewRegistrationMinorException,ResetPassword,Settings,UpdateMyUinInfant,UpdateMyUinMinor,UpdateMyUinUpdateBiometrics,UpdateMyUINUpdateDemographicDetails,UpdateMyUinUpdateDocuments,LostUin,AddMachineDetails,IntialLunch,logintest,BiometricCorrection,ResetPassword \ No newline at end of file From 3a1214655b0442a24787f9fe98b995af11e304f0 Mon Sep 17 00:00:00 2001 From: damodar Date: Fri, 14 Nov 2025 12:46:56 +0530 Subject: [PATCH 03/21] MOSIP-42652: ARC UI automation Signed-off-by: damodar --- .../main/resources/config/Kernel.properties | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/ui-test/src/main/resources/config/Kernel.properties b/ui-test/src/main/resources/config/Kernel.properties index 61a9357fc..9982350bc 100644 --- a/ui-test/src/main/resources/config/Kernel.properties +++ b/ui-test/src/main/resources/config/Kernel.properties @@ -32,29 +32,29 @@ policytest_userName=111998 #IDREPO mosip_idrepo_app_id=idrepo mosip_idrepo_client_id=mosip-idrepo-client -mosip_idrepo_client_secret=7vwZeyseYgqqw8z7 +mosip_idrepo_client_secret= #admin mosip_admin_app_id=admin admin_password=mosip123 admin_userName=32 mosip_admin_client_id=mosip-admin-client -mosip_admin_client_secret=uTHNbr8eFO0fxU42 +mosip_admin_client_secret= #admin admin_zone_password=mosip123 admin_zone_userName=globaladmin mosip_regclient_app_id=registrationclient mosip_reg_client_id=mosip-reg-client -mosip_reg_client_secret=dfT3rPsm1jK2jI3x +mosip_reg_client_secret= #This credentials are used to execute auth demo service new_Resident_User=111995 new_Resident_Password=mosip123 new_Resident_Role=default-roles-mosip,PARTNER_ADMIN roles.111995=PARTNER_ADMIN,default-roles-mosip keycloak_UserName = admin -keycloak_Password = zT57m8jzRM -keycloak-external-url=https://iam.qa-base.mosip.net +keycloak_Password = +keycloak-external-url= mosip_testrig_client_id=mosip-testrig-client -mosip_testrig_client_secret=zwNlQC8fWg62RRqB +mosip_testrig_client_secret= keycloak-realm-id=mosip iam-users-to-create=32 #iam-users-to-create=111997,220005,111992 @@ -72,7 +72,7 @@ DB_PORT= installation-domain= partner_url=jdbc:postgresql://qa-base.mosip.net:5432/mosip_ida partner_username=postgres -partner_password=cNIE2mC7Wf +partner_password= partner_default_schema=partner reportLogPath=automationLogAndReport #--------minio proprties---------------- @@ -91,15 +91,15 @@ threadCount=1 langselect=0 #----------------------------------Database properties----------------------------------------------------------# postgresqlUser=postgresql -db-port=5432 -db-server=qa-base.mosip.net +db-port= +db-server= hibernate.connection.driver_class=org.postgresql.Driver hibernate.connection.pool_size=1 hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect hibernate.show_sql=true hibernate.current_session_context_class=thread db-su-user=postgres -postgresql-password=cNIE2mC7Wf +postgresql-password= pms_db_schema=pms km_db_schema=keymgr master_db_schema=master @@ -125,6 +125,6 @@ usePreConfiguredOtp=true regCenterId=10004 zone=MOR apiEnvUser=api-internal.qa-base -apiInternalEndPoint=https://api-internal.qa-base.mosip.net +apiInternalEndPoint= regclientScenariosToExecute= #PreRegFetchingPacket,NewRegistrationAdult,NewRegistrationAdultException,NewRegistrationInfant,NewRegistrationMinor,NewRegistrationMinorException,ResetPassword,Settings,UpdateMyUinInfant,UpdateMyUinMinor,UpdateMyUinUpdateBiometrics,UpdateMyUINUpdateDemographicDetails,UpdateMyUinUpdateDocuments,LostUin,AddMachineDetails,IntialLunch,logintest,BiometricCorrection,ResetPassword \ No newline at end of file From 59b055126a932c60ed9bcf73ceb5d657aa80132f Mon Sep 17 00:00:00 2001 From: damodar Date: Fri, 14 Nov 2025 18:41:24 +0530 Subject: [PATCH 04/21] MOSIP-42652: ARC UI automation Signed-off-by: damodar --- ui-test/pom.xml | 502 +++++++++--------- .../androidTestCases/BiometricCorrection.java | 10 +- .../regclient/androidTestCases/LostUin.java | 4 +- .../NewRegistrationAdult.java | 4 +- .../NewRegistrationAdultException.java | 7 +- .../NewRegistrationInfant.java | 41 +- .../NewRegistrationMinor.java | 23 +- .../NewRegistrationMinorException.java | 26 +- .../PreRegFetchingPacket.java | 44 +- .../androidTestCases/ResetPassword.java | 6 +- .../regclient/androidTestCases/Settings.java | 24 +- .../UpdateMyUINUpdateDemographicDetails.java | 8 +- .../androidTestCases/UpdateMyUinInfant.java | 5 +- .../androidTestCases/UpdateMyUinMinor.java | 28 +- .../UpdateMyUinUpdateBiometrics.java | 4 +- .../UpdateMyUinUpdateDocuments.java | 7 +- .../java/regclient/api/AdminTestUtil.java | 32 +- .../regclient/api/KeycloakUserManager.java | 77 +-- .../main/java/regclient/page/BasePage.java | 4 +- .../page/IntroducerBiometricPage.java | 16 +- .../java/regclient/page/KeycloakPage.java | 131 ++++- .../SupervisorBiometricVerificationpage.java | 32 +- .../arabic/AuthenticationPageArabic.java | 2 +- .../arabic/BiometricDetailsPageArabic.java | 51 +- .../pages/arabic/ConsentPageArabic.java | 4 +- .../pages/arabic/DashboardPageArabic.java | 4 +- .../arabic/DemographicDetailsPageArabic.java | 20 +- ...bic.java => DocumentUploadPageArabic.java} | 10 +- .../pages/arabic/IdentityProofPageArabic.java | 2 +- .../arabic/IntroducerBiometricPageArabic.java | 24 +- .../arabic/ManageApplicationsPageArabic.java | 4 +- .../pages/arabic/SettingsPageArabic.java | 176 ++++++ ...rvisorBiometricVerificationpageArabic.java | 32 +- .../IntroducerBiometricPageEnglish.java | 16 +- .../pages/english/KeycloakPageEnglish.java | 152 ------ .../ManageApplicationsPageEnglish.java | 4 +- ...visorBiometricVerificationpageEnglish.java | 32 +- .../french/IntroducerBiometricPageFrench.java | 16 +- .../french/ManageApplicationsPageFrench.java | 4 +- .../pages/french/SettingsPageFrench.java | 177 ++++++ ...rvisorBiometricVerificationpageFrench.java | 32 +- .../hindi/IntroducerBiometricPageHindi.java | 17 +- .../hindi/ManageApplicationsPageHindi.java | 6 +- .../pages/hindi/SettingsPageHindi.java | 177 ++++++ ...ervisorBiometricVerificationpageHindi.java | 32 +- .../IntroducerBiometricPageKannada.java | 16 +- .../ManageApplicationsPageKannada.java | 6 +- .../pages/kannada/SettingsPageKannada.java | 177 ++++++ ...visorBiometricVerificationpageKannada.java | 32 +- .../tamil/IntroducerBiometricPageTamil.java | 20 +- .../tamil/ManageApplicationsPageTamil.java | 6 +- .../pages/tamil/SettingsPageTamil.java | 177 ++++++ ...ervisorBiometricVerificationpageTamil.java | 33 +- 53 files changed, 1665 insertions(+), 831 deletions(-) rename ui-test/src/main/java/regclient/pages/arabic/{DocumentuploadPageArabic.java => DocumentUploadPageArabic.java} (96%) create mode 100644 ui-test/src/main/java/regclient/pages/arabic/SettingsPageArabic.java delete mode 100644 ui-test/src/main/java/regclient/pages/english/KeycloakPageEnglish.java create mode 100644 ui-test/src/main/java/regclient/pages/french/SettingsPageFrench.java create mode 100644 ui-test/src/main/java/regclient/pages/hindi/SettingsPageHindi.java create mode 100644 ui-test/src/main/java/regclient/pages/kannada/SettingsPageKannada.java create mode 100644 ui-test/src/main/java/regclient/pages/tamil/SettingsPageTamil.java diff --git a/ui-test/pom.xml b/ui-test/pom.xml index ed8d827b0..ccc8d0339 100644 --- a/ui-test/pom.xml +++ b/ui-test/pom.xml @@ -1,241 +1,265 @@ - 4.0.0 - io.mosip.regclient - uitest-regclient - 1.0.0-SNAPSHOT - jar - uitest-regclient - Parent project of MOSIP regclient mobile automation - https://github.com/mosip/android-registration-client - - - 21 - 21 - UTF-8 - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.10.1 - - ${maven.compiler.source} - ${maven.compiler.target} - - - - org.apache.maven.plugins - maven-jar-plugin - 3.2.0 - - - - regclient.utils.TestRunner - - - - - - - org.apache.maven.plugins - maven-shade-plugin - 3.3.0 - - - package - - shade - - - - - *:* - - META-INF/*.SF - META-INF/*.DSA - META-INF/*.RSA - - - - - - regclient.utils.TestRunner - - - - - - - - - - - io.appium - java-client - 8.6.0 - - - org.asynchttpclient - async-http-client - 2.12.4 - - - org.apache.commons - commons-lang3 - 3.18.0 - - - io.netty - netty-codec-http - 4.1.125.Final - - - com.googlecode.json-simple - json-simple - 1.1.1 - - - com.github.javafaker - javafaker - 1.0.2 - - - - org.testng - testng - 7.7.1 - - - com.fasterxml.jackson.core - jackson-databind - 2.13.4.1 - - - org.keycloak - keycloak-admin-client - 23.0.4 - - - com.fasterxml.jackson.core - jackson-core - 2.15.2 - - - org.jboss.resteasy - resteasy-jaxrs - 3.15.0.Final - - - org.json - json - 20231013 - - - commons-io - commons-io - 2.14.0 - - - com.aventstack - extentreports - 5.1.0 - - - io.rest-assured - rest-assured - 5.3.0 - - - org.apache.logging.log4j - log4j-api - 2.23.1 - - - org.slf4j - slf4j-api - 2.0.13 - - - org.apache.logging.log4j - log4j-slf4j2-impl - 2.23.1 - - - org.yaml - snakeyaml - 2.0 - - - commons-beanutils - commons-beanutils - 1.11.0 - - - org.apache.logging.log4j - log4j-core - 2.23.1 - - - org.jboss.resteasy - resteasy-multipart-provider - 4.7.8.Final - - - com.sun.mail - jakarta.mail - 2.0.2 - - - - org.jboss.resteasy - resteasy-client - 4.5.8.SP1 - - - org.jboss.resteasy - resteasy-client-microprofile - 4.5.8.SP1 - - - org.jboss.resteasy - resteasy-jackson2-provider - 3.15.0.Final - - - io.mosip.preregistration - apitest-prereg - 1.3.0-beta.1 - - - com.google.guava - guava - 32.0.0-jre - - - org.jboss.resteasy - resteasy-jaxb-provider - 3.15.0.Final - - - io.mosip.testrig.apitest.commons - apitest-commons - 1.3.4 - - - org.slf4j - slf4j-api - - - com.google.guava - guava - - - - - + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 + http://maven.apache.org/xsd/maven-4.0.0.xsd"> + 4.0.0 + + io.mosip.regclient + uitest-regclient + 1.0.0-SNAPSHOT + jar + uitest-regclient + Parent project of MOSIP regclient mobile automation + https://github.com/mosip/android-registration-client + + + 21 + 21 + UTF-8 + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.10.1 + + ${maven.compiler.source} + ${maven.compiler.target} + + + + + org.apache.maven.plugins + maven-jar-plugin + 3.2.0 + + + + regclient.utils.TestRunner + + + + + + + org.apache.maven.plugins + maven-shade-plugin + 3.3.0 + + + package + shade + + + *:* + + META-INF/*.SF + META-INF/*.DSA + META-INF/*.RSA + + + + + + regclient.utils.TestRunner + + + + + + + + + + + + + io.appium + java-client + 8.6.0 + + + + org.asynchttpclient + async-http-client + 2.12.4 + + + + org.apache.commons + commons-lang3 + 3.18.0 + + + + io.netty + netty-codec-http + 4.1.125.Final + + + + com.googlecode.json-simple + json-simple + 1.1.1 + + + + com.github.javafaker + javafaker + 1.0.2 + + + + org.testng + testng + 7.7.1 + + + + com.fasterxml.jackson.core + jackson-databind + 2.13.4.1 + + + + org.keycloak + keycloak-admin-client + 23.0.4 + + + + com.fasterxml.jackson.core + jackson-core + 2.15.2 + + + + + + + org.jboss.resteasy + resteasy-client + 6.2.4.Final + + + org.jboss.resteasy + resteasy-jackson2-provider + 6.2.4.Final + + + + org.jboss.resteasy + resteasy-jaxb-provider + 6.2.4.Final + + + + org.json + json + 20231013 + + + + commons-io + commons-io + 2.14.0 + + + + com.aventstack + extentreports + 5.1.0 + + + + io.rest-assured + rest-assured + 5.3.0 + + + + org.apache.logging.log4j + log4j-api + 2.23.1 + + + + org.slf4j + slf4j-api + 2.0.13 + + + + org.apache.logging.log4j + log4j-slf4j2-impl + 2.23.1 + + + + org.yaml + snakeyaml + 2.0 + + + + commons-beanutils + commons-beanutils + 1.11.0 + + + + org.apache.logging.log4j + log4j-core + 2.23.1 + + + + org.jboss.resteasy + resteasy-multipart-provider + 6.2.4.Final + + + + com.sun.mail + jakarta.mail + 2.0.2 + + + + io.mosip.preregistration + apitest-prereg + 1.3.0-beta.1 + + + + com.google.guava + guava + 32.0.0-jre + + + + io.mosip.testrig.apitest.commons + apitest-commons + 1.3.5-SNAPSHOT + + + org.slf4j + slf4j-api + + + com.google.guava + guava + + + + + + io.mosip.testrig.adminui + uitest-admin + 1.2.1-SNAPSHOT + + + diff --git a/ui-test/src/main/java/regclient/androidTestCases/BiometricCorrection.java b/ui-test/src/main/java/regclient/androidTestCases/BiometricCorrection.java index 041d8a78b..5c9db9575 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/BiometricCorrection.java +++ b/ui-test/src/main/java/regclient/androidTestCases/BiometricCorrection.java @@ -38,7 +38,7 @@ import regclient.pages.arabic.BiometricDetailsPageArabic; import regclient.pages.arabic.ConsentPageArabic; import regclient.pages.arabic.DemographicDetailsPageArabic; -import regclient.pages.arabic.DocumentuploadPageArabic; +import regclient.pages.arabic.DocumentUploadPageArabic; import regclient.pages.arabic.LoginPageArabic; import regclient.pages.arabic.ManageApplicationsPageArabic; import regclient.pages.arabic.OperationalTaskPageArabic; @@ -130,6 +130,8 @@ public class BiometricCorrection extends AndroidBaseTest { public void biometricCorrection() throws InterruptedException { BasePage.disableAutoRotation(); + FetchUiSpec.getUiSpec("newProcess"); + FetchUiSpec.getBiometricDetails("individualBiometrics"); List screenOrder = FetchUiSpec.getAllScreenOrder(); LoginPage loginPage = null; RegistrationTasksPage registrationTasksPage = null; @@ -270,7 +272,7 @@ public void biometricCorrection() throws InterruptedException { } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { documentuploadPage = new DocumentuploadPageTamil(driver); } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { - documentuploadPage = new DocumentuploadPageArabic(driver); + documentuploadPage = new DocumentUploadPageArabic(driver); } assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(), "Verify if doccumentupload page is displayed"); @@ -655,8 +657,8 @@ public void biometricCorrection() throws InterruptedException { assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), "Verify if biometric details page is displayed"); - biometricDetailsPage.isAdditionalInfoRequestIdTextboxDisplayed(); - + assertTrue(biometricDetailsPage.isAdditionalInfoRequestIdTextboxDisplayed(), + "Additional info Request ID textbox should be displayed"); biometricDetailsPage.enterAdditionalInfoUsingEmail(emailId); if (FetchUiSpec.eye.equals("yes")) { diff --git a/ui-test/src/main/java/regclient/androidTestCases/LostUin.java b/ui-test/src/main/java/regclient/androidTestCases/LostUin.java index 035c1f16e..03b724ef9 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/LostUin.java +++ b/ui-test/src/main/java/regclient/androidTestCases/LostUin.java @@ -32,7 +32,7 @@ import regclient.pages.arabic.BiometricDetailsPageArabic; import regclient.pages.arabic.ConsentPageArabic; import regclient.pages.arabic.DemographicDetailsPageArabic; -import regclient.pages.arabic.DocumentuploadPageArabic; +import regclient.pages.arabic.DocumentUploadPageArabic; import regclient.pages.arabic.LoginPageArabic; import regclient.pages.arabic.ManageApplicationsPageArabic; import regclient.pages.arabic.OperationalTaskPageArabic; @@ -262,7 +262,7 @@ public void lostUinAdult() { } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { documentuploadPage = new DocumentuploadPageTamil(driver); } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { - documentuploadPage = new DocumentuploadPageArabic(driver); + documentuploadPage = new DocumentUploadPageArabic(driver); } assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(), "Verify if doccumentupload page is displayed"); diff --git a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdult.java b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdult.java index e61737a65..3ae53be42 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdult.java +++ b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdult.java @@ -35,7 +35,7 @@ import regclient.pages.arabic.BiometricDetailsPageArabic; import regclient.pages.arabic.ConsentPageArabic; import regclient.pages.arabic.DemographicDetailsPageArabic; -import regclient.pages.arabic.DocumentuploadPageArabic; +import regclient.pages.arabic.DocumentUploadPageArabic; import regclient.pages.arabic.IntroducerBiometricPageArabic; import regclient.pages.arabic.LoginPageArabic; import regclient.pages.arabic.ManageApplicationsPageArabic; @@ -278,7 +278,7 @@ else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { documentuploadPage = new DocumentuploadPageTamil(driver); } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { - documentuploadPage = new DocumentuploadPageArabic(driver); + documentuploadPage = new DocumentUploadPageArabic(driver); } assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(), "Verify if doccumentupload page is displayed"); diff --git a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdultException.java b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdultException.java index ac8700de5..396e4bed0 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdultException.java +++ b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdultException.java @@ -32,7 +32,7 @@ import regclient.pages.arabic.BiometricDetailsPageArabic; import regclient.pages.arabic.ConsentPageArabic; import regclient.pages.arabic.DemographicDetailsPageArabic; -import regclient.pages.arabic.DocumentuploadPageArabic; +import regclient.pages.arabic.DocumentUploadPageArabic; import regclient.pages.arabic.LoginPageArabic; import regclient.pages.arabic.ManageApplicationsPageArabic; import regclient.pages.arabic.OperationalTaskPageArabic; @@ -242,7 +242,7 @@ public void newRegistrationAdultException() throws InterruptedException { } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { documentuploadPage = new DocumentuploadPageTamil(driver); } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { - documentuploadPage = new DocumentuploadPageArabic(driver); + documentuploadPage = new DocumentUploadPageArabic(driver); } assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(), "Verify if doccumentupload page is displayed"); @@ -556,13 +556,12 @@ public void newRegistrationAdultException() throws InterruptedException { } assertTrue(pendingApproval.isSupervisorAuthenticationTitleDisplayed(), "Verify if Supervisor Authentication page displayed"); + pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser); pendingApproval.enterPassword(ArcConfigManager.getIAMUsersPassword()); pendingApproval.clickOnSubmitButton(); pendingApproval.clickOnBackButton(); - assertTrue(operationalTaskPage.isApplicationUploadTitleDisplayed(), - "Verify if application upload tite displayed"); assertTrue(operationalTaskPage.isApplicationUploadTitleDisplayed(), "Verify if application upload tite displayed"); diff --git a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationInfant.java b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationInfant.java index 0679af626..7d98267e1 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationInfant.java +++ b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationInfant.java @@ -33,7 +33,7 @@ import regclient.pages.arabic.BiometricDetailsPageArabic; import regclient.pages.arabic.ConsentPageArabic; import regclient.pages.arabic.DemographicDetailsPageArabic; -import regclient.pages.arabic.DocumentuploadPageArabic; +import regclient.pages.arabic.DocumentUploadPageArabic; import regclient.pages.arabic.IntroducerBiometricPageArabic; import regclient.pages.arabic.LoginPageArabic; import regclient.pages.arabic.ManageApplicationsPageArabic; @@ -253,7 +253,7 @@ public void newRegistrationInfant() throws InterruptedException { } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { documentuploadPage = new DocumentuploadPageTamil(driver); } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { - documentuploadPage = new DocumentuploadPageArabic(driver); + documentuploadPage = new DocumentUploadPageArabic(driver); } documentuploadPage.uploadDoccuments("infant", "withoutReferenceNumber"); @@ -314,7 +314,7 @@ public void newRegistrationInfant() throws InterruptedException { FetchUiSpec.getBiometricDetails("introducerBiometrics"); if (FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIntroducerIrisScan(); - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), "Verify if introducer biometric page is displayed"); introducerBiometricPage.clickOnScanButton(); @@ -329,15 +329,14 @@ public void newRegistrationInfant() throws InterruptedException { } // righthand if (FetchUiSpec.rightHand.equals("yes")) { - + introducerBiometricPage.clickOnScanButton(); if (!introducerBiometricPage.isRightHandScan()) { - introducerBiometricPage.clickOnScanButton(); + introducerBiometricPage.clickOnScanButton(); } - assertTrue(introducerBiometricPage.isRightHandScan(), - "Verify if right hand scan 1st attempt"); + assertTrue(introducerBiometricPage.isRightHandScan(), "Verify if right hand scan 1st attempt"); introducerBiometricPage.closeScanCapturePopUp(); introducerBiometricPage.clickOnNextButton(); @@ -345,28 +344,24 @@ public void newRegistrationInfant() throws InterruptedException { // lefthand if (FetchUiSpec.leftHand.equals("yes")) { introducerBiometricPage.clickOnScanButton(); - assertTrue(introducerBiometricPage.isLeftHandScan(), - "Verify if left hand scan 1st attempt"); + assertTrue(introducerBiometricPage.isLeftHandScan(), "Verify if left hand scan 1st attempt"); introducerBiometricPage.closeScanCapturePopUp(); - assertTrue(introducerBiometricPage.isNextButtonDisplyed(), - "Verify if next button displayed"); + assertTrue(introducerBiometricPage.isNextButtonDisplayed(), "Verify if next button displayed"); introducerBiometricPage.clickOnNextButton(); } // thumb if (FetchUiSpec.thumb.equals("yes")) { introducerBiometricPage.clickOnScanButton(); - + if (!introducerBiometricPage.isThumbsScan()) { - introducerBiometricPage.clickOnScanButton(); + introducerBiometricPage.clickOnScanButton(); } - assertTrue(introducerBiometricPage.isThumbsScan(), - "Verify if thumb scan 1st attempt"); - + assertTrue(introducerBiometricPage.isThumbsScan(), "Verify if thumb scan 1st attempt"); + introducerBiometricPage.closeScanCapturePopUp(); - - assertTrue(introducerBiometricPage.isNextButtonDisplyed(), - "Verify if next button displayed"); + + assertTrue(introducerBiometricPage.isNextButtonDisplayed(), "Verify if next button displayed"); introducerBiometricPage.clickOnNextButton(); } // face @@ -374,16 +369,15 @@ public void newRegistrationInfant() throws InterruptedException { introducerBiometricPage.clickOnScanButton(); introducerBiometricPage.closeScanCapturePopUp(); - assertTrue(introducerBiometricPage.isNextButtonDisplyed(), - "Verify if next button displayed"); + assertTrue(introducerBiometricPage.isNextButtonDisplayed(), "Verify if next button displayed"); introducerBiometricPage.clickOnNextButton(); } biometricDetailsPage.clickOnContinueButton(); } - + } - + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { previewPage = new PreviewPageEnglish(driver); } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { @@ -480,6 +474,7 @@ public void newRegistrationInfant() throws InterruptedException { break; } } + assertTrue(isPageDisplayed, "Supervisor Authentication page not displayed after retries"); pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser); pendingApproval.enterPassword(ArcConfigManager.getIAMUsersPassword()); diff --git a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinor.java b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinor.java index fb8a53b0d..2df53832d 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinor.java +++ b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinor.java @@ -40,7 +40,7 @@ import regclient.pages.english.DocumentuploadPageEnglish; import regclient.pages.english.IntroducerBiometricPageEnglish; import regclient.pages.arabic.DemographicDetailsPageArabic; -import regclient.pages.arabic.DocumentuploadPageArabic; +import regclient.pages.arabic.DocumentUploadPageArabic; import regclient.pages.arabic.IntroducerBiometricPageArabic; import regclient.pages.english.LoginPageEnglish; import regclient.pages.english.ManageApplicationsPageEnglish; @@ -251,7 +251,7 @@ public void newRegistrationMinor() throws InterruptedException { } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { documentuploadPage = new DocumentuploadPageTamil(driver); } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { - documentuploadPage = new DocumentuploadPageArabic(driver); + documentuploadPage = new DocumentUploadPageArabic(driver); } documentuploadPage.uploadDoccuments("minor", "withoutReferenceNumber"); @@ -372,7 +372,7 @@ public void newRegistrationMinor() throws InterruptedException { FetchUiSpec.getBiometricDetails("introducerBiometrics"); if (FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIntroducerIrisScan(); - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), "Verify if introducer biometric page is displayed"); introducerBiometricPage.clickOnScanButton(); @@ -385,10 +385,10 @@ public void newRegistrationMinor() throws InterruptedException { if (!FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIntroducerRightHandScan(); } - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isRightHandScanTitleDisplyed(), + assertTrue(introducerBiometricPage.isRightHandScanTitleDisplayed(), "Verify if right hand scan is displayed"); introducerBiometricPage.clickOnScanButton(); @@ -398,10 +398,10 @@ public void newRegistrationMinor() throws InterruptedException { } // lefthand if (FetchUiSpec.leftHand.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isLeftHandScanTitleDisplyed(), + assertTrue(introducerBiometricPage.isLeftHandScanTitleDisplayed(), "Verify if applicant left hand scan title is displayed"); introducerBiometricPage.clickOnScanButton(); @@ -411,10 +411,10 @@ public void newRegistrationMinor() throws InterruptedException { } // thumb if (FetchUiSpec.thumb.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isThumbsScanTitleDisplyed(), + assertTrue(introducerBiometricPage.isThumbsScanTitleDisplayed(), "Verify if thumbs scan page is displayed"); introducerBiometricPage.clickOnScanButton(); @@ -424,10 +424,10 @@ public void newRegistrationMinor() throws InterruptedException { } // face if (FetchUiSpec.face.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isFaceScanTitleDisplyed(), + assertTrue(introducerBiometricPage.isFaceScanTitleDisplayed(), "Verify if face scan page is displayed"); introducerBiometricPage.clickOnScanButton(); @@ -538,6 +538,7 @@ public void newRegistrationMinor() throws InterruptedException { break; } } + assertTrue(isPageDisplayed, "Supervisor Authentication page not displayed after retries"); pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser); pendingApproval.enterPassword(ArcConfigManager.getIAMUsersPassword()); diff --git a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinorException.java b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinorException.java index 907d7d510..ab021565c 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinorException.java +++ b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinorException.java @@ -35,7 +35,7 @@ import regclient.pages.arabic.BiometricDetailsPageArabic; import regclient.pages.arabic.ConsentPageArabic; import regclient.pages.arabic.DemographicDetailsPageArabic; -import regclient.pages.arabic.DocumentuploadPageArabic; +import regclient.pages.arabic.DocumentUploadPageArabic; import regclient.pages.arabic.IntroducerBiometricPageArabic; import regclient.pages.arabic.LoginPageArabic; import regclient.pages.arabic.ManageApplicationsPageArabic; @@ -262,7 +262,7 @@ public void newRegistrationMinorException() throws InterruptedException { } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { documentuploadPage = new DocumentuploadPageTamil(driver); } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { - documentuploadPage = new DocumentuploadPageArabic(driver); + documentuploadPage = new DocumentUploadPageArabic(driver); } assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(), "Verify if doccumentupload page is displayed"); @@ -435,11 +435,11 @@ public void newRegistrationMinorException() throws InterruptedException { FetchUiSpec.getBiometricDetails("introducerBiometrics"); if (FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIntroducerIrisScan(); - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), "Verify if introducer biometric page is displayed"); introducerBiometricPage.clickOnMarkExceptionButton(); - assertTrue(introducerBiometricPage.isExceptionTypeTitleDisplyed(), + assertTrue(introducerBiometricPage.isExceptionTypeTitleDisplayed(), "Verify if applicant biometric mark exception is displayed"); introducerBiometricPage.markOneEyeException(); introducerBiometricPage.clickOnIrisScanButton(); @@ -455,10 +455,10 @@ public void newRegistrationMinorException() throws InterruptedException { if (!FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIntroducerRightHandScan(); } - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isRightHandScanTitleDisplyed(), + assertTrue(introducerBiometricPage.isRightHandScanTitleDisplayed(), "Verify if right hand scan is displayed"); introducerBiometricPage.clickOnScanButton(); @@ -468,10 +468,10 @@ public void newRegistrationMinorException() throws InterruptedException { } // lefthand if (FetchUiSpec.leftHand.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isLeftHandScanTitleDisplyed(), + assertTrue(introducerBiometricPage.isLeftHandScanTitleDisplayed(), "Verify if applicant left hand scan title is displayed"); introducerBiometricPage.clickOnScanButton(); @@ -481,10 +481,10 @@ public void newRegistrationMinorException() throws InterruptedException { } // thumb if (FetchUiSpec.thumb.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isThumbsScanTitleDisplyed(), + assertTrue(introducerBiometricPage.isThumbsScanTitleDisplayed(), "Verify if thumbs scan page is displayed"); introducerBiometricPage.clickOnScanButton(); @@ -494,10 +494,10 @@ public void newRegistrationMinorException() throws InterruptedException { } // face if (FetchUiSpec.face.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isFaceScanTitleDisplyed(), + assertTrue(introducerBiometricPage.isFaceScanTitleDisplayed(), "Verify if face scan page is displayed"); introducerBiometricPage.clickOnScanButton(); @@ -506,7 +506,7 @@ public void newRegistrationMinorException() throws InterruptedException { introducerBiometricPage.clickOnNextButton(); } // Exception - assertTrue(introducerBiometricPage.isExceptionScanTitleDisplyed(), + assertTrue(introducerBiometricPage.isExceptionScanTitleDisplayed(), "Verify if exception scan page is displayed"); introducerBiometricPage.clickOnScanButton(); diff --git a/ui-test/src/main/java/regclient/androidTestCases/PreRegFetchingPacket.java b/ui-test/src/main/java/regclient/androidTestCases/PreRegFetchingPacket.java index f8ab17b87..d3494bb5e 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/PreRegFetchingPacket.java +++ b/ui-test/src/main/java/regclient/androidTestCases/PreRegFetchingPacket.java @@ -35,7 +35,7 @@ import regclient.pages.arabic.BiometricDetailsPageArabic; import regclient.pages.arabic.ConsentPageArabic; import regclient.pages.arabic.DemographicDetailsPageArabic; -import regclient.pages.arabic.DocumentuploadPageArabic; +import regclient.pages.arabic.DocumentUploadPageArabic; import regclient.pages.arabic.IntroducerBiometricPageArabic; import regclient.pages.arabic.LoginPageArabic; import regclient.pages.arabic.ManageApplicationsPageArabic; @@ -268,7 +268,7 @@ public void adultPreRegFetching() throws InterruptedException { } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { documentuploadPage = new DocumentuploadPageTamil(driver); } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { - documentuploadPage = new DocumentuploadPageArabic(driver); + documentuploadPage = new DocumentUploadPageArabic(driver); } assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(), "Verify if doccumentupload page is displayed"); @@ -706,7 +706,7 @@ public void minorPreRegFetching() throws InterruptedException { } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { documentuploadPage = new DocumentuploadPageTamil(driver); } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { - documentuploadPage = new DocumentuploadPageArabic(driver); + documentuploadPage = new DocumentUploadPageArabic(driver); } assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(), "Verify if doccumentupload page is displayed"); @@ -839,7 +839,7 @@ public void minorPreRegFetching() throws InterruptedException { FetchUiSpec.getBiometricDetails("introducerBiometrics"); if (FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIntroducerIrisScan(); - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), "Verify if introducer biometric page is displayed"); introducerBiometricPage.clickOnScanButton(); @@ -852,10 +852,10 @@ public void minorPreRegFetching() throws InterruptedException { if (!FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIntroducerRightHandScan(); } - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isRightHandScanTitleDisplyed(), + assertTrue(introducerBiometricPage.isRightHandScanTitleDisplayed(), "Verify if right hand scan is displayed"); introducerBiometricPage.clickOnScanButton(); @@ -865,10 +865,10 @@ public void minorPreRegFetching() throws InterruptedException { } // lefthand if (FetchUiSpec.leftHand.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isLeftHandScanTitleDisplyed(), + assertTrue(introducerBiometricPage.isLeftHandScanTitleDisplayed(), "Verify if applicant left hand scan title is displayed"); introducerBiometricPage.clickOnScanButton(); @@ -878,10 +878,10 @@ public void minorPreRegFetching() throws InterruptedException { } // thumb if (FetchUiSpec.thumb.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isThumbsScanTitleDisplyed(), + assertTrue(introducerBiometricPage.isThumbsScanTitleDisplayed(), "Verify if thumbs scan page is displayed"); introducerBiometricPage.clickOnScanButton(); @@ -891,10 +891,10 @@ public void minorPreRegFetching() throws InterruptedException { } // face if (FetchUiSpec.face.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isFaceScanTitleDisplyed(), + assertTrue(introducerBiometricPage.isFaceScanTitleDisplayed(), "Verify if face scan page is displayed"); introducerBiometricPage.clickOnScanButton(); @@ -1249,7 +1249,7 @@ public void infantPreRegFetching() throws InterruptedException { } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { documentuploadPage = new DocumentuploadPageTamil(driver); } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { - documentuploadPage = new DocumentuploadPageArabic(driver); + documentuploadPage = new DocumentUploadPageArabic(driver); } assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(), "Verify if doccumentupload page is displayed"); @@ -1314,7 +1314,7 @@ public void infantPreRegFetching() throws InterruptedException { FetchUiSpec.getBiometricDetails("introducerBiometrics"); if (FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIntroducerIrisScan(); - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), "Verify if introducer biometric page is displayed"); introducerBiometricPage.clickOnScanButton(); @@ -1327,10 +1327,10 @@ public void infantPreRegFetching() throws InterruptedException { if (!FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIntroducerRightHandScan(); } - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isRightHandScanTitleDisplyed(), + assertTrue(introducerBiometricPage.isRightHandScanTitleDisplayed(), "Verify if right hand scan is displayed"); introducerBiometricPage.clickOnScanButton(); @@ -1340,10 +1340,10 @@ public void infantPreRegFetching() throws InterruptedException { } // lefthand if (FetchUiSpec.leftHand.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isLeftHandScanTitleDisplyed(), + assertTrue(introducerBiometricPage.isLeftHandScanTitleDisplayed(), "Verify if applicant left hand scan title is displayed"); introducerBiometricPage.clickOnScanButton(); @@ -1353,10 +1353,10 @@ public void infantPreRegFetching() throws InterruptedException { } // thumb if (FetchUiSpec.thumb.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isThumbsScanTitleDisplyed(), + assertTrue(introducerBiometricPage.isThumbsScanTitleDisplayed(), "Verify if thumbs scan page is displayed"); introducerBiometricPage.clickOnScanButton(); @@ -1366,10 +1366,10 @@ public void infantPreRegFetching() throws InterruptedException { } // face if (FetchUiSpec.face.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isFaceScanTitleDisplyed(), + assertTrue(introducerBiometricPage.isFaceScanTitleDisplayed(), "Verify if face scan page is displayed"); introducerBiometricPage.clickOnScanButton(); diff --git a/ui-test/src/main/java/regclient/androidTestCases/ResetPassword.java b/ui-test/src/main/java/regclient/androidTestCases/ResetPassword.java index 2b570d5aa..aec1b8c26 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/ResetPassword.java +++ b/ui-test/src/main/java/regclient/androidTestCases/ResetPassword.java @@ -15,7 +15,6 @@ import regclient.pages.arabic.LoginPageArabic; import regclient.pages.arabic.ProfilePageArabic; import regclient.pages.arabic.RegistrationTasksPageArabic; -import regclient.pages.english.KeycloakPageEnglish; import regclient.pages.english.LoginPageEnglish; import regclient.pages.english.ProfilePageEnglish; import regclient.pages.english.RegistrationTasksPageEnglish; @@ -35,6 +34,7 @@ public class ResetPassword extends AndroidBaseTest { + @SuppressWarnings("null") @Test(priority = 1) public void resetPassword() throws IOException { BasePage.disableAutoRotation(); @@ -117,7 +117,7 @@ public void resetPassword() throws IOException { profilePage.clickOnResetPasswordButton(); if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { - keycloakPage = new KeycloakPageEnglish(driver); + profilePage = new ProfilePageEnglish(driver); } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { profilePage = new ProfilePageHindi(driver); } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { @@ -136,7 +136,7 @@ public void resetPassword() throws IOException { keycloakPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); - keycloakPage.clickOnloginButton(); + keycloakPage.clickOnLoginButton(); assertTrue(keycloakPage.openKeycloakPassword(), "Verify if keycloak login page displayed"); diff --git a/ui-test/src/main/java/regclient/androidTestCases/Settings.java b/ui-test/src/main/java/regclient/androidTestCases/Settings.java index 2facec508..dee9270d3 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/Settings.java +++ b/ui-test/src/main/java/regclient/androidTestCases/Settings.java @@ -1,10 +1,8 @@ package regclient.androidTestCases; -import static org.junit.Assert.assertFalse; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.testng.Assert.assertTrue; -import java.util.List; +import static org.testng.Assert.assertTrue; +import static org.testng.Assert.assertFalse; import org.testng.annotations.Test; @@ -20,16 +18,22 @@ import regclient.page.SettingsPage; import regclient.pages.arabic.LoginPageArabic; import regclient.pages.arabic.RegistrationTasksPageArabic; +import regclient.pages.arabic.SettingsPageArabic; import regclient.pages.english.LoginPageEnglish; import regclient.pages.english.RegistrationTasksPageEnglish; +import regclient.pages.english.SettingsPageEnglish; import regclient.pages.french.LoginPageFrench; import regclient.pages.french.RegistrationTasksPageFrench; +import regclient.pages.french.SettingsPageFrench; import regclient.pages.hindi.LoginPageHindi; import regclient.pages.hindi.RegistrationTasksPageHindi; +import regclient.pages.hindi.SettingsPageHindi; import regclient.pages.kannada.LoginPageKannada; import regclient.pages.kannada.RegistrationTasksPageKannada; +import regclient.pages.kannada.SettingsPageKannada; import regclient.pages.tamil.LoginPageTamil; import regclient.pages.tamil.RegistrationTasksPageTamil; +import regclient.pages.tamil.SettingsPageTamil; import regclient.utils.TestDataReader; public class Settings extends AndroidBaseTest { @@ -86,7 +90,17 @@ public void settings() throws InterruptedException { registrationTasksPage.clickOnSettingsButton(); if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { - settingsPage = new regclient.pages.english.SettingsPageEnglish(driver); + settingsPage = new SettingsPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + settingsPage = new SettingsPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + settingsPage = new SettingsPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + settingsPage = new SettingsPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + settingsPage = new SettingsPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + settingsPage = new SettingsPageArabic(driver); } assertTrue(settingsPage.isScheduledJobsSettingsTabDisplayed(), "Verify if sceduled job settings tab displayed"); diff --git a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUINUpdateDemographicDetails.java b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUINUpdateDemographicDetails.java index 705b33894..7e827c476 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUINUpdateDemographicDetails.java +++ b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUINUpdateDemographicDetails.java @@ -34,7 +34,7 @@ import regclient.pages.arabic.BiometricDetailsPageArabic; import regclient.pages.arabic.ConsentPageArabic; import regclient.pages.arabic.DemographicDetailsPageArabic; -import regclient.pages.arabic.DocumentuploadPageArabic; +import regclient.pages.arabic.DocumentUploadPageArabic; import regclient.pages.arabic.LoginPageArabic; import regclient.pages.arabic.ManageApplicationsPageArabic; import regclient.pages.arabic.OperationalTaskPageArabic; @@ -338,10 +338,10 @@ public void updateMyUINUpdateDemographicDetails() throws InterruptedException { } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { documentuploadPage = new DocumentuploadPageTamil(driver); } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { - documentuploadPage = new DocumentuploadPageArabic(driver); + documentuploadPage = new DocumentUploadPageArabic(driver); } - documentuploadPage.clickOnContinueButton(); - assertTrue(consentPage.updateUINTitleDisplayed(), "Verify if new update uin title is displayed"); + assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(), + "Verify if doccumentupload page is displayed"); documentuploadPage.uploadDoccumentsUpdate("adult", "all"); documentuploadPage.clickOnContinueButton(); } diff --git a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinInfant.java b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinInfant.java index a1f6f6b27..d62ec3b9f 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinInfant.java +++ b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinInfant.java @@ -34,7 +34,7 @@ import regclient.pages.arabic.BiometricDetailsPageArabic; import regclient.pages.arabic.ConsentPageArabic; import regclient.pages.arabic.DemographicDetailsPageArabic; -import regclient.pages.arabic.DocumentuploadPageArabic; +import regclient.pages.arabic.DocumentUploadPageArabic; import regclient.pages.arabic.IntroducerBiometricPageArabic; import regclient.pages.arabic.LoginPageArabic; import regclient.pages.arabic.ManageApplicationsPageArabic; @@ -371,7 +371,7 @@ public void updateMyUinInfant() throws InterruptedException { } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { documentuploadPage = new DocumentuploadPageTamil(driver); } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { - documentuploadPage = new DocumentuploadPageArabic(driver); + documentuploadPage = new DocumentUploadPageArabic(driver); } assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(), "Verify if doccumentupload page is displayed"); @@ -478,6 +478,7 @@ public void updateMyUinInfant() throws InterruptedException { break; } } + assertTrue(isPageDisplayed, "Supervisor Authentication page not displayed after retries"); assertTrue(pendingApproval.isSupervisorAuthenticationTitleDisplayed(), "Verify if error empty username submit button enabled"); diff --git a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinMinor.java b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinMinor.java index c9ce6ef72..c67222461 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinMinor.java +++ b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinMinor.java @@ -34,7 +34,7 @@ import regclient.pages.arabic.BiometricDetailsPageArabic; import regclient.pages.arabic.ConsentPageArabic; import regclient.pages.arabic.DemographicDetailsPageArabic; -import regclient.pages.arabic.DocumentuploadPageArabic; +import regclient.pages.arabic.DocumentUploadPageArabic; import regclient.pages.arabic.IntroducerBiometricPageArabic; import regclient.pages.arabic.LoginPageArabic; import regclient.pages.arabic.ManageApplicationsPageArabic; @@ -411,7 +411,7 @@ public void updateMyUinMinor() throws InterruptedException { FetchUiSpec.getBiometricDetails("introducerBiometrics"); if (FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIntroducerIrisScan(); - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), "Verify if introducer biometric page is displayed"); introducerBiometricPage.clickOnScanButton(); @@ -424,10 +424,10 @@ public void updateMyUinMinor() throws InterruptedException { if (!FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIntroducerRightHandScan(); } - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isRightHandScanTitleDisplyed(), + assertTrue(introducerBiometricPage.isRightHandScanTitleDisplayed(), "Verify if right hand scan is displayed"); introducerBiometricPage.clickOnScanButton(); @@ -437,10 +437,10 @@ public void updateMyUinMinor() throws InterruptedException { } // lefthand if (FetchUiSpec.leftHand.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isLeftHandScanTitleDisplyed(), + assertTrue(introducerBiometricPage.isLeftHandScanTitleDisplayed(), "Verify if applicant left hand scan title is displayed"); introducerBiometricPage.clickOnScanButton(); @@ -450,10 +450,10 @@ public void updateMyUinMinor() throws InterruptedException { } // thumb if (FetchUiSpec.thumb.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isThumbsScanTitleDisplyed(), + assertTrue(introducerBiometricPage.isThumbsScanTitleDisplayed(), "Verify if thumbs scan page is displayed"); introducerBiometricPage.clickOnScanButton(); @@ -463,10 +463,10 @@ public void updateMyUinMinor() throws InterruptedException { } // face if (FetchUiSpec.face.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplyed(), + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isFaceScanTitleDisplyed(), + assertTrue(introducerBiometricPage.isFaceScanTitleDisplayed(), "Verify if face scan page is displayed"); introducerBiometricPage.clickOnScanButton(); @@ -488,12 +488,12 @@ public void updateMyUinMinor() throws InterruptedException { } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { documentuploadPage = new DocumentuploadPageTamil(driver); } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { - documentuploadPage = new DocumentuploadPageArabic(driver); + documentuploadPage = new DocumentUploadPageArabic(driver); } - documentuploadPage.clickOnContinueButton(); - assertTrue(consentPage.updateUINTitleDisplayed(), "Verify if new update uin title is displayed"); - documentuploadPage.uploadDoccumentsUpdate("minor", "all"); + assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(), + "Verify if doccumentupload page is displayed"); + documentuploadPage.uploadDoccumentsUpdate("minor","all"); documentuploadPage.clickOnContinueButton(); } diff --git a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinUpdateBiometrics.java b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinUpdateBiometrics.java index 2f308d91e..e6d00267a 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinUpdateBiometrics.java +++ b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinUpdateBiometrics.java @@ -33,7 +33,7 @@ import regclient.pages.arabic.BiometricDetailsPageArabic; import regclient.pages.arabic.ConsentPageArabic; import regclient.pages.arabic.DemographicDetailsPageArabic; -import regclient.pages.arabic.DocumentuploadPageArabic; +import regclient.pages.arabic.DocumentUploadPageArabic; import regclient.pages.arabic.LoginPageArabic; import regclient.pages.arabic.ManageApplicationsPageArabic; import regclient.pages.arabic.OperationalTaskPageArabic; @@ -371,7 +371,7 @@ public void updateMyUINUpdatebiometrics() throws InterruptedException { } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { documentuploadPage = new DocumentuploadPageTamil(driver); } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { - documentuploadPage = new DocumentuploadPageArabic(driver); + documentuploadPage = new DocumentUploadPageArabic(driver); } documentuploadPage.clickOnContinueButton(); } diff --git a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinUpdateDocuments.java b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinUpdateDocuments.java index e08310a25..0fc8f3124 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinUpdateDocuments.java +++ b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinUpdateDocuments.java @@ -1,6 +1,6 @@ package regclient.androidTestCases; -import static org.testng.Assert.assertFalse; + import static org.testng.Assert.assertTrue; import java.util.List; @@ -34,7 +34,7 @@ import regclient.pages.arabic.BiometricDetailsPageArabic; import regclient.pages.arabic.ConsentPageArabic; import regclient.pages.arabic.DemographicDetailsPageArabic; -import regclient.pages.arabic.DocumentuploadPageArabic; +import regclient.pages.arabic.DocumentUploadPageArabic; import regclient.pages.arabic.LoginPageArabic; import regclient.pages.arabic.ManageApplicationsPageArabic; import regclient.pages.arabic.OperationalTaskPageArabic; @@ -128,7 +128,6 @@ public class UpdateMyUinUpdateDocuments extends AndroidBaseTest { - @SuppressWarnings("null") @Test public void updateMyUinUpdateDocuments() throws InterruptedException { FetchUiSpec.getUiSpec("updateProcess"); @@ -283,7 +282,7 @@ public void updateMyUinUpdateDocuments() throws InterruptedException { } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { documentuploadPage = new DocumentuploadPageTamil(driver); } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { - documentuploadPage = new DocumentuploadPageArabic(driver); + documentuploadPage = new DocumentUploadPageArabic(driver); } documentuploadPage.uploadDoccumentsUpdate("adult", "all"); documentuploadPage.clickOnContinueButton(); diff --git a/ui-test/src/main/java/regclient/api/AdminTestUtil.java b/ui-test/src/main/java/regclient/api/AdminTestUtil.java index 7a185f477..d9e6d3cca 100644 --- a/ui-test/src/main/java/regclient/api/AdminTestUtil.java +++ b/ui-test/src/main/java/regclient/api/AdminTestUtil.java @@ -66,14 +66,15 @@ public static String creteaMachine(String signPublicKey, String publicKey, Strin requestJson.put("metadata", new JSONObject()); requestJson.put("requesttime", AdminTestUtil.generateCurrentUTCTimeStamp()); requestJson.put("version", "string"); - requestJson.put("request", new HashMap<>()); - requestJson.getJSONObject("request").put("id", "123"); - requestJson.getJSONObject("request").put("ipAddress", "192.168.0.424"); - requestJson.getJSONObject("request").put("isActive", true); - requestJson.getJSONObject("request").put("langCode", getLanguageList().get(0)); - requestJson.getJSONObject("request").put("macAddress", "11111111"); - requestJson.getJSONObject("request").put("machineSpecId", machinespecificationsID()); - requestJson.getJSONObject("request").put("name", name); + JSONObject request = new JSONObject(); + request.put("id", "123"); + request.put("ipAddress", "192.168.0.424"); + request.put("isActive", true); + request.put("langCode", getLanguageList().get(0)); + request.put("macAddress", "11111111"); + request.put("machineSpecId", machinespecificationsID()); + request.put("name", name); + requestJson.put("request", request); requestJson.getJSONObject("request").put("serialNum", "FB5962911687"); requestJson.getJSONObject("request").put("regCenterId", propsKernel.getProperty("regCenterId")); requestJson.getJSONObject("request").put("validityDateTime", "2021-12-24T05:52:46.758Z"); @@ -170,13 +171,14 @@ public static void mapUserToCenter(String user, String center) { requestJson.put("metadata", new JSONObject()); requestJson.put("requesttime", AdminTestUtil.generateCurrentUTCTimeStamp()); requestJson.put("version", "string"); - requestJson.put("request", new HashMap<>()); - requestJson.getJSONObject("request").put("id", user); - requestJson.getJSONObject("request").put("name", "automation"); - requestJson.getJSONObject("request").put("isActive", true); - requestJson.getJSONObject("request").put("langCode", getLanguageList().get(0)); - requestJson.getJSONObject("request").put("statusCode", "active"); - requestJson.getJSONObject("request").put("regCenterId", center); + JSONObject request = new JSONObject(); + request.put("id", user); + request.put("name", "automation"); + request.put("isActive", true); + request.put("langCode", getLanguageList().get(0)); + request.put("statusCode", "active"); + request.put("regCenterId", center); + requestJson.put("request", request); response = RestClient.postRequestWithCookie(BaseTestCase.ApplnURI + "/v1/masterdata/usercentermapping", requestJson.toString(), MediaType.APPLICATION_JSON, MediaType.APPLICATION_JSON, BaseTestCase.COOKIENAME, diff --git a/ui-test/src/main/java/regclient/api/KeycloakUserManager.java b/ui-test/src/main/java/regclient/api/KeycloakUserManager.java index 39ea41e51..fa5ed7117 100644 --- a/ui-test/src/main/java/regclient/api/KeycloakUserManager.java +++ b/ui-test/src/main/java/regclient/api/KeycloakUserManager.java @@ -28,7 +28,6 @@ public class KeycloakUserManager { public static String moduleSpecificUser = null; public static String onboardUser = getDateTime(); - public static String onlyOperatorRoleUser = null; private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(KeycloakUserManager.class); @@ -89,7 +88,7 @@ public static void createUsers() { RealmResource realmResource = keycloakInstance.realm(ArcConfigManager.getIAMRealmId()); UsersResource usersRessource = realmResource.users(); // Create user (requires manage-users role) - Response response = null; + jakarta.ws.rs.core.Response response = null; response = usersRessource.create(user); logger.info("Repsonse: %s %s%n" + response.getStatus() + response.getStatusInfo()); if (response.getStatus() == 409) { @@ -143,9 +142,9 @@ public static void createUsersWithOutDefaultRole() { user.setEmail("automation" + onboardUser + "@automationlabs.com"); RealmResource realmResource = keycloakInstance.realm(ArcConfigManager.getIAMRealmId()); UsersResource usersRessource = realmResource.users(); - Response response = null; + jakarta.ws.rs.core.Response response = null; response = usersRessource.create(user); - logger.info("Repsonse: %s %s%n" + response.getStatus() + response.getStatusInfo()); + logger.info("Response: %s %s%n" + response.getStatus() + response.getStatusInfo()); String userId = CreatedResponseUtil.getCreatedId(response); logger.info("User created with userId: %s%n" + userId); @@ -178,76 +177,6 @@ public static void createUsersWithOutDefaultRole() { } } - public static void createUsersOnlyOperatorRole() { - List needsToBeCreatedUsers = List.of(ArcConfigManager.getIAMUsersToCreate().split(",")); - Keycloak keycloakInstance = getKeycloakInstance(); - for (String needsToBeCreatedUser : needsToBeCreatedUsers) { - UserRepresentation user = new UserRepresentation(); - - if (needsToBeCreatedUser.equals("globaladmin")) { - onlyOperatorRoleUser = needsToBeCreatedUser; - } else if (needsToBeCreatedUser.equals("masterdata-220005")) { - onlyOperatorRoleUser = needsToBeCreatedUser; - - } - - else { - onlyOperatorRoleUser = BaseTestCase.currentModule + "-" + needsToBeCreatedUser; - } - - logger.info(onlyOperatorRoleUser); - user.setEnabled(true); - user.setUsername(onlyOperatorRoleUser); - user.setFirstName(onlyOperatorRoleUser); - user.setLastName(onlyOperatorRoleUser); - user.setEmail("automation" + onlyOperatorRoleUser + "@automationlabs.com"); - // Get realm - RealmResource realmResource = keycloakInstance.realm(ArcConfigManager.getIAMRealmId()); - UsersResource usersRessource = realmResource.users(); - // Create user (requires manage-users role) - Response response = null; - response = usersRessource.create(user); - logger.info("Repsonse: %s %s%n" + response.getStatus() + response.getStatusInfo()); - if (response.getStatus() == 409) { - break; - } - - String userId = CreatedResponseUtil.getCreatedId(response); - logger.info("User created with userId: %s%n" + userId); - - // Define password credential - CredentialRepresentation passwordCred = new CredentialRepresentation(); - - passwordCred.setTemporary(false); - passwordCred.setType(CredentialRepresentation.PASSWORD); - - // passwordCred.setValue(userPassword.get(passwordIndex)); - passwordCred.setValue(ArcConfigManager.getIAMUsersPassword()); - - UserResource userResource = usersRessource.get(userId); - - // Set password credential - userResource.resetPassword(passwordCred); - - // Getting all the roles - List allRoles = realmResource.roles().list(); - List availableRoles = new ArrayList<>(); - List toBeAssignedRoles = List.of(ArcConfigManager.getRolesForUser().split(",")); - for (String role : toBeAssignedRoles) { - if (!role.equalsIgnoreCase("Registration_Supervisor")) { - if (allRoles.stream().anyMatch((r -> r.getName().equalsIgnoreCase(role)))) { - availableRoles.add(allRoles.stream().filter(r -> r.getName().equals(role)).findFirst().get()); - } else { - logger.info("Role not found in keycloak: %s%n" + role); - } - } - userResource.roles().realmLevel() // - .add((availableRoles.isEmpty() ? allRoles : availableRoles)); - - } - } - } - public static String getDateTime() { LocalDateTime currentDateTime = LocalDateTime.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); diff --git a/ui-test/src/main/java/regclient/page/BasePage.java b/ui-test/src/main/java/regclient/page/BasePage.java index 21a332f51..5df6777b0 100644 --- a/ui-test/src/main/java/regclient/page/BasePage.java +++ b/ui-test/src/main/java/regclient/page/BasePage.java @@ -626,9 +626,9 @@ public String extract(WebElement e) { protected void scrollToTop() { Dimension size = driver.manage().window().getSize(); int startX = size.getWidth() / 2; - int startY = (int) (size.getHeight() * 0.25); // near top + int startY = (int) (size.getHeight() * 0.75); int endX = startX; - int endY = (int) (size.getHeight() * 0.75); // near bottom + int endY = (int) (size.getHeight() * 0.25); PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger"); Sequence scrollUp = new Sequence(finger, 1) diff --git a/ui-test/src/main/java/regclient/page/IntroducerBiometricPage.java b/ui-test/src/main/java/regclient/page/IntroducerBiometricPage.java index 9832d3efd..16add8439 100644 --- a/ui-test/src/main/java/regclient/page/IntroducerBiometricPage.java +++ b/ui-test/src/main/java/regclient/page/IntroducerBiometricPage.java @@ -34,19 +34,19 @@ public IntroducerBiometricPage(AppiumDriver driver) { public abstract BiometricDetailsPage clickOnBackButton(); - public abstract boolean isIntroducerBiometricsPageDisplyed(); + public abstract boolean isIntroducerBiometricsPageDisplayed(); - public abstract boolean isExceptionTypeTitleDisplyed(); + public abstract boolean isExceptionTypeTitleDisplayed(); - public abstract boolean isRightHandScanTitleDisplyed(); + public abstract boolean isRightHandScanTitleDisplayed(); - public abstract boolean isLeftHandScanTitleDisplyed(); + public abstract boolean isLeftHandScanTitleDisplayed(); - public abstract boolean isThumbsScanTitleDisplyed(); + public abstract boolean isThumbsScanTitleDisplayed(); - public abstract boolean isFaceScanTitleDisplyed(); + public abstract boolean isFaceScanTitleDisplayed(); - public abstract boolean isExceptionScanTitleDisplyed(); + public abstract boolean isExceptionScanTitleDisplayed(); public abstract boolean isIrisScan(); @@ -60,6 +60,6 @@ public IntroducerBiometricPage(AppiumDriver driver) { public abstract boolean isExceptionScan(); - public abstract boolean isNextButtonDisplyed(); + public abstract boolean isNextButtonDisplayed(); } diff --git a/ui-test/src/main/java/regclient/page/KeycloakPage.java b/ui-test/src/main/java/regclient/page/KeycloakPage.java index 13021777a..7e932cd1b 100644 --- a/ui-test/src/main/java/regclient/page/KeycloakPage.java +++ b/ui-test/src/main/java/regclient/page/KeycloakPage.java @@ -1,44 +1,141 @@ package regclient.page; +import java.time.Duration; + +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; +import org.openqa.selenium.support.ui.WebDriverWait; + import io.appium.java_client.AppiumDriver; +import io.appium.java_client.pagefactory.AndroidFindBy; public abstract class KeycloakPage extends BasePage { + private WebDriverWait wait; + public KeycloakPage(AppiumDriver driver) { super(driver); - } - public abstract boolean openKeycloakWebView(); + @FindBy(id = "kc-page-title") + private WebElement keycloakPageTitle; - public abstract String getPageTitle(); + @FindBy(id = "English˅") + private WebElement languageDropdown; - public abstract void clickOnLanguageDropdown(); + @FindBy(id = "English") + private WebElement englishLanguage; - public abstract void clickOnEnglishLanguage(); + @FindBy(id = "username") + private WebElement usernameTextBox; - public abstract void enterUserName(String username); + @FindBy(id = "password") + private WebElement passwordTextBox; - public abstract void enterPassword(String password); + @FindBy(id = "kc-login") + private WebElement loginButton; - public abstract void clickOnloginButton(); + @AndroidFindBy(uiAutomator = "new UiSelector().text(\"Password\")") + private WebElement passwordOption; - public abstract void clickOnPasswordOption(); + @FindBy(id = "password") + private WebElement passwordTextbox; - public abstract void enterExistPassword(String password); + @FindBy(id = "password-new") + private WebElement newPasswordTextbox; - public abstract void enterNewPassword(String password); + @FindBy(id = "password-confirm") + private WebElement confirmPasswordTextbox; - public abstract void enterConfirmPassword(String password); + @FindBy(xpath = "//button[text()='Save']") + private WebElement saveButton; - public abstract void clickOnSaveButton(); + @FindBy(xpath = "//*[contains(text(),'Your password has been updated.')]") + private WebElement passwordUpdatedMessage; - public abstract boolean isPasswordUpdatedMessageDisplayed(); + @FindBy(xpath = "//*[contains(text(),'Sign Out')]") + private WebElement signoutButton; - public abstract void clickOnSignoutButton(); + @AndroidFindBy(accessibility = "LOGOUT") + private WebElement logoutButton; - public abstract boolean openKeycloakPassword(); + public boolean openKeycloakWebView() { + switchContext("WEBVIEW_chrome"); + retryFindElement(keycloakPageTitle, Duration.ofSeconds(10)); + return isElementDisplayed(keycloakPageTitle); + } - public abstract boolean resumeArcApplication(); + public boolean openKeycloakPassword() { + switchContext("NATIVE_APP"); + retryFindElement(passwordOption, Duration.ofSeconds(10)); + return isElementDisplayed(passwordOption); + } + + public String getPageTitle() { + return keycloakPageTitle.getText(); + } + public void clickOnLanguageDropdown() { + clickOnElement(languageDropdown); + } + + public void clickOnEnglishLanguage() { + clickOnElement(englishLanguage); + } + + public void enterUserName(String username) { + clickAndsendKeysToTextBox(usernameTextBox, username); + } + + public void enterPassword(String password) { + retryFindElement(passwordTextBox, Duration.ofSeconds(10)); + clickAndsendKeysToTextBox(passwordTextBox, password); + } + + public void clickOnLoginButton() { + clickOnElement(loginButton); + } + + public void clickOnPasswordOption() { + switchContext("NATIVE_APP"); + clickOnElement(passwordOption); + } + + public void enterExistPassword(String password) { + switchContext("WEBVIEW_chrome"); + retryFindElement(passwordTextbox, Duration.ofSeconds(10)); + clickAndsendKeysToTextBox(passwordTextbox, password); + } + + public void enterNewPassword(String password) { + switchContext("WEBVIEW_chrome"); + retryFindElement(newPasswordTextbox, Duration.ofSeconds(10)); + clickAndsendKeysToTextBox(newPasswordTextbox, password); + } + + public void enterConfirmPassword(String password) { + switchContext("WEBVIEW_chrome"); + retryFindElement(confirmPasswordTextbox, Duration.ofSeconds(10)); + clickAndsendKeysToTextBox(confirmPasswordTextbox, password); + } + + public void clickOnSaveButton() { + switchContext("WEBVIEW_chrome"); + clickOnElement(saveButton); + } + + public boolean isPasswordUpdatedMessageDisplayed() { + switchContext("WEBVIEW_chrome"); + return isElementDisplayed(passwordUpdatedMessage); + } + + public void clickOnSignoutButton() { + switchContext("WEBVIEW_chrome"); + clickOnElement(signoutButton); + } + + public boolean resumeArcApplication() { + openArcApplication("NATIVE_APP"); + return isElementDisplayed(logoutButton); + } } diff --git a/ui-test/src/main/java/regclient/page/SupervisorBiometricVerificationpage.java b/ui-test/src/main/java/regclient/page/SupervisorBiometricVerificationpage.java index 57d5aaa49..70d7855e6 100644 --- a/ui-test/src/main/java/regclient/page/SupervisorBiometricVerificationpage.java +++ b/ui-test/src/main/java/regclient/page/SupervisorBiometricVerificationpage.java @@ -28,15 +28,15 @@ public SupervisorBiometricVerificationpage(AppiumDriver driver) { public abstract void closeScanCapturePopUp(); - public abstract boolean isRightHandScanTitleDisplyed(); + public abstract boolean isRightHandScanTitleDisplayed(); - public abstract boolean isLeftHandScanTitleDisplyed(); + public abstract boolean isLeftHandScanTitleDisplayed(); - public abstract boolean isThumbsScanTitleDisplyed(); + public abstract boolean isThumbsScanTitleDisplayed(); - public abstract boolean isFaceScanTitleDisplyed(); + public abstract boolean isFaceScanTitleDisplayed(); - public abstract boolean isExceptionScanTitleDisplyed(); + public abstract boolean isExceptionScanTitleDisplayed(); public abstract boolean isIrisScan(); @@ -48,27 +48,27 @@ public SupervisorBiometricVerificationpage(AppiumDriver driver) { public abstract boolean isFaceScan(); - public abstract boolean isIrisScanQualityDisplyed(); + public abstract boolean isIrisScanQualityDisplayed(); - public abstract boolean isRightHandScanQualityDisplyed(); + public abstract boolean isRightHandScanQualityDisplayed(); - public abstract boolean isLeftHandScanQualityDisplyed(); + public abstract boolean isLeftHandScanQualityDisplayed(); - public abstract boolean isThumbsScanQualityDisplyed(); + public abstract boolean isThumbsScanQualityDisplayed(); - public abstract boolean isFaceScanQualityDisplyed(); + public abstract boolean isFaceScanQualityDisplayed(); public abstract void clickOnMarkExceptionButton(); public abstract void markOneEyeException(); - public abstract void markOneFingureException(); + public abstract void markOneFingreException(); - public abstract boolean isExceptionTypeTitleDisplyed(); + public abstract boolean isExceptionTypeTitleDisplayed(); public abstract void clickOnExceptionTypeTemporaryButton(); - public abstract boolean isCommentHeaderDisplyed(); + public abstract boolean isCommentHeaderDisplayed(); public abstract void enterCommentsInTextBox(String comments); @@ -76,13 +76,13 @@ public SupervisorBiometricVerificationpage(AppiumDriver driver) { public abstract void clickOnThumbsScanTitle(); - public abstract boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed(); + public abstract boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplayed(); - public abstract boolean isZoomButtonDisplyed(); + public abstract boolean isZoomButtonDisplayed(); public abstract void clickOnRightHandScanTitle(); - public abstract void clickOnleftHandScanTitle(); + public abstract void clickOnLeftHandScanTitle(); public abstract void clickOnFaceScanTitle(); diff --git a/ui-test/src/main/java/regclient/pages/arabic/AuthenticationPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/AuthenticationPageArabic.java index 3fd2d3f5a..bdb4d12f5 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/AuthenticationPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/AuthenticationPageArabic.java @@ -21,7 +21,7 @@ public class AuthenticationPageArabic extends AuthenticationPage { @AndroidFindBy(accessibility = "المصادقة") private WebElement authenticateButton; - @AndroidFindBy(xpath = "//android.view.View[@content-desc='Authentication using Password']/preceding-sibling::android.widget.ImageView") + @AndroidFindBy(xpath = "//android.view.View[@content-desc='content-desc='المصادقة باستخدام كلمة المرور'']/preceding-sibling::android.widget.ImageView") private WebElement authenticationImage; public AuthenticationPageArabic(AppiumDriver driver) { diff --git a/ui-test/src/main/java/regclient/pages/arabic/BiometricDetailsPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/BiometricDetailsPageArabic.java index 936367b7b..7abb8a648 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/BiometricDetailsPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/BiometricDetailsPageArabic.java @@ -1,17 +1,22 @@ package regclient.pages.arabic; import org.openqa.selenium.By; +import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebElement; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import io.appium.java_client.AppiumDriver; import io.appium.java_client.MobileBy; import io.appium.java_client.pagefactory.AndroidFindBy; +import io.mosip.testrig.apirig.testrunner.OTPListener; import regclient.api.FetchUiSpec; import regclient.page.ApplicantBiometricsPage; import regclient.page.BiometricDetailsPage; import regclient.page.IntroducerBiometricPage; import regclient.page.PreviewPage; import regclient.pages.english.ApplicantBiometricsPageEnglish; +import regclient.pages.english.BiometricDetailsPageEnglish; import regclient.pages.english.IntroducerBiometricPageEnglish; import regclient.pages.english.PreviewPageEnglish; @@ -139,9 +144,49 @@ public boolean isAdditionalInfoRequestIdTextboxDisplayed() { return isElementDisplayed(additionalInfoRequestIdTextbox); } - @Override public void enterAdditionalInfoUsingEmail(String emailId) { - // TODO Auto-generated method stub + int retries = 20, waitSeconds = 10; + final String SUFFIX = "-BIOMETRIC_CORRECTION-1"; + + for (int i = 1; i <= retries; i++) { + String id = OTPListener.getAdditionalReqId(emailId); + if (id != null && !id.isEmpty() && !id.equals("{Failed}")) { + String sanitized = id.trim().replaceAll("\\p{C}", ""); + String finalId = sanitized.endsWith(SUFFIX) ? sanitized : sanitized + SUFFIX; + + try { + WebElement el = additionalInfoRequestIdTextbox; + try { + el.clear(); + el.sendKeys(finalId); + } catch (Exception ignored) { + } + if (finalId.equals(el.getAttribute("value"))) + return; + + ((JavascriptExecutor) driver).executeScript( + "arguments[0].value=arguments[1];arguments[0].dispatchEvent(new Event('input',{bubbles:true}));", + el, finalId); + if (finalId.equals(el.getAttribute("value"))) + return; + } catch (Exception e) { + logger.error("Enter ID failed: ", e); + } + throw new RuntimeException("Textbox not accepting: " + finalId); + } + sleepSeconds(waitSeconds); + } + throw new RuntimeException("AdditionalInfoReqId not found after wait."); + } + + private void sleepSeconds(int s) { + try { + Thread.sleep(s * 1000L); + } catch (InterruptedException ignored) { + Thread.currentThread().interrupt(); + } + } + + private static final Logger logger = LoggerFactory.getLogger(BiometricDetailsPageEnglish.class); - } } diff --git a/ui-test/src/main/java/regclient/pages/arabic/ConsentPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/ConsentPageArabic.java index 5293e6cb3..ebbf281d4 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/ConsentPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/ConsentPageArabic.java @@ -53,12 +53,12 @@ public boolean isInformedButtonEnabled() { public DemographicDetailsPage clickOnInformedButton() { clickOnElement(informedButton); - return new DemographicDetailsPageEnglish(driver); + return new DemographicDetailsPageArabic(driver); } public RegistrationTasksPage clickOnCancelButton() { clickOnElement(cancelButton); - return new RegistrationTasksPageEnglish(driver); + return new RegistrationTasksPageArabic(driver); } @SuppressWarnings("deprecation") diff --git a/ui-test/src/main/java/regclient/pages/arabic/DashboardPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/DashboardPageArabic.java index e5b065d21..3867510d6 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/DashboardPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/DashboardPageArabic.java @@ -8,10 +8,10 @@ public class DashboardPageArabic extends DashboardPage { - @AndroidFindBy(xpath = "//android.view.View[@content-desc=\"Dashboard\"]/following-sibling::android.view.View[3]") + @AndroidFindBy(xpath = "//android.view.View[@content-desc=\"لوحة القيادة\"]/following-sibling::android.view.View[3]") private WebElement packetUploadedNumber; - @AndroidFindBy(xpath = "//android.view.View[@content-desc=\"Dashboard\"]/following-sibling::android.view.View[2]") + @AndroidFindBy(xpath = "//android.view.View[@content-desc=\"لوحة القيادة\"]/following-sibling::android.view.View[2]") private WebElement packetSyncedNumber; @AndroidFindBy(accessibility = "لوحة القيادة") diff --git a/ui-test/src/main/java/regclient/pages/arabic/DemographicDetailsPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/DemographicDetailsPageArabic.java index 36236db08..60aef4fc5 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/DemographicDetailsPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/DemographicDetailsPageArabic.java @@ -83,12 +83,12 @@ public ConsentPage clickOnPageTitle(String pageKey) { MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0))" + ".scrollIntoView(new UiSelector().descriptionContains(\"" + screenTitle + "\"))")); clickOnElement(consentTitle); - return new ConsentPageEnglish(driver); + return new ConsentPageArabic(driver); } public DocumentUploadPage clickOnContinueButton() { clickOnElement(continueButton); - return new DocumentuploadPageEnglish(driver); + return new DocumentUploadPageArabic(driver); } @@ -354,15 +354,11 @@ else if (age.equals("currentCalenderDate")) { } public boolean checkSecondLanguageTextBoxNotNull(String id) { - if (getTextFromLocator(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" - + FetchUiSpec.getValueUsingId(id) - + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[2]"))) == null - || getTextFromLocator(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc, \"" - + FetchUiSpec.getValueUsingId(id) - + "\")]/parent::android.view.View/following-sibling::android.view.View/descendant::android.widget.EditText[2]"))) == "") - return false; - else - return true; + String value = getTextFromLocator(findElementWithRetry( + By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + + "\")]/parent::android.view.View/following-sibling::android.view.View" + + "/descendant::android.widget.EditText[2]"))); + return value != null && !value.isEmpty(); } public boolean checkDateFormatAndCurrectDate(String id) { @@ -486,7 +482,7 @@ public void validateFetchedDemographicData() { assertTrue(el != null, "Name field element not found for: " + label); String name = extract(el).trim(); assertTrue(!name.isEmpty(), "Verify name is not empty for: " + label); - assertTrue(name.matches(".*[A-Za-z].*"), "Verify name contains letters: " + name); + assertTrue(name.matches(".*\\p{L}.*"), "Verify name contains letters: " + name); continue; } diff --git a/ui-test/src/main/java/regclient/pages/arabic/DocumentuploadPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/DocumentUploadPageArabic.java similarity index 96% rename from ui-test/src/main/java/regclient/pages/arabic/DocumentuploadPageArabic.java rename to ui-test/src/main/java/regclient/pages/arabic/DocumentUploadPageArabic.java index 2b58bbfc6..8959d7d01 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/DocumentuploadPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/DocumentUploadPageArabic.java @@ -14,10 +14,8 @@ import regclient.page.BiometricDetailsPage; import regclient.page.CameraPage; import regclient.page.DocumentUploadPage; -import regclient.pages.english.BiometricDetailsPageEnglish; -import regclient.pages.english.DocumentuploadPageEnglish; -public class DocumentuploadPageArabic extends DocumentUploadPage { +public class DocumentUploadPageArabic extends DocumentUploadPage { @AndroidFindBy(accessibility = "تمويه") private WebElement PopUpCloseButton; @@ -43,13 +41,13 @@ public class DocumentuploadPageArabic extends DocumentUploadPage { @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.view.View\").instance(8)") private WebElement imageleftCorner; - public DocumentuploadPageArabic(AppiumDriver driver) { + public DocumentUploadPageArabic(AppiumDriver driver) { super(driver); } public BiometricDetailsPage clickOnContinueButton() { clickOnElement(continueButton); - return new BiometricDetailsPageEnglish(driver); + return new BiometricDetailsPageArabic(driver); } @SuppressWarnings("deprecation") @@ -61,7 +59,7 @@ public boolean isDoccumentUploadPageDisplayed() { public DocumentUploadPage clickOnSaveButton() { clickOnElement(saveButton); - return new DocumentuploadPageEnglish(driver); + return new DocumentUploadPageArabic(driver); } public boolean isRetakeButtonDisplayed() { diff --git a/ui-test/src/main/java/regclient/pages/arabic/IdentityProofPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/IdentityProofPageArabic.java index a0ea5526e..800625f8d 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/IdentityProofPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/IdentityProofPageArabic.java @@ -27,7 +27,7 @@ public IdentityProofPageArabic(AppiumDriver driver) { public DocumentUploadPage clickOnSaveButton() { clickOnElement(saveButton); - return new DocumentuploadPageArabic(driver); + return new DocumentUploadPageArabic(driver); } public boolean isRetakeButtonDisplayed() { diff --git a/ui-test/src/main/java/regclient/pages/arabic/IntroducerBiometricPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/IntroducerBiometricPageArabic.java index d7bd87426..26b311352 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/IntroducerBiometricPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/IntroducerBiometricPageArabic.java @@ -8,12 +8,12 @@ import regclient.api.FetchUiSpec; import regclient.page.BiometricDetailsPage; import regclient.page.IntroducerBiometricPage; -import regclient.pages.english.BiometricDetailsPageEnglish; +import regclient.pages.arabic.BiometricDetailsPageArabic; public class IntroducerBiometricPageArabic extends IntroducerBiometricPage { @AndroidFindBy(accessibility = "القزحية مسح") - private WebElement irisScanButton;; + private WebElement irisScanButton; @AndroidFindBy(accessibility = "وضع علامة استثناء") private WebElement markExceptionButton; @@ -102,7 +102,7 @@ public void clickOnIrisScanButton() { public BiometricDetailsPage clickOnNextButton() { clickOnElement(nextButton); - return new BiometricDetailsPageEnglish(driver); + return new BiometricDetailsPageArabic(driver); } public void clickOnZoomButton() { @@ -127,37 +127,37 @@ public void closeScanCapturePopUp() { public BiometricDetailsPage clickOnBackButton() { driver.navigate().back(); - return new BiometricDetailsPageEnglish(driver); + return new BiometricDetailsPageArabic(driver); } @SuppressWarnings("deprecation") - public boolean isIntroducerBiometricsPageDisplyed() { + public boolean isIntroducerBiometricsPageDisplayed() { return isElementDisplayed( findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")"))); } - public boolean isExceptionTypeTitleDisplyed() { + public boolean isExceptionTypeTitleDisplayed() { return isElementDisplayed(exceptionTypeTitle); } - public boolean isRightHandScanTitleDisplyed() { + public boolean isRightHandScanTitleDisplayed() { return isElementDisplayed(rightHandScanTitle); } - public boolean isLeftHandScanTitleDisplyed() { + public boolean isLeftHandScanTitleDisplayed() { return isElementDisplayed(leftHandScanTitle); } - public boolean isThumbsScanTitleDisplyed() { + public boolean isThumbsScanTitleDisplayed() { return isElementDisplayed(thumbsScanTitle); } - public boolean isFaceScanTitleDisplyed() { + public boolean isFaceScanTitleDisplayed() { return isElementDisplayed(faceScanTitle); } - public boolean isExceptionScanTitleDisplyed() { + public boolean isExceptionScanTitleDisplayed() { return isElementDisplayed(exceptionScanTitle); } @@ -185,7 +185,7 @@ public boolean isExceptionScan() { return isElementDisplayed(exceptionCapturerHeader, 2000); } - public boolean isNextButtonDisplyed() { + public boolean isNextButtonDisplayed() { return isElementDisplayed(nextButton); } diff --git a/ui-test/src/main/java/regclient/pages/arabic/ManageApplicationsPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/ManageApplicationsPageArabic.java index 01d66d3c3..673f49027 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/ManageApplicationsPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/ManageApplicationsPageArabic.java @@ -69,10 +69,10 @@ public class ManageApplicationsPageArabic extends ManageApplicationsPage { @AndroidFindBy(xpath = "//android.widget.TextView[@text='Documents'][2]") private WebElement documentsHeader; - @AndroidFindBy(accessibility = "android:id/button1") + @AndroidFindBy(id = "android:id/button1") private WebElement useThisFolderButton; - @AndroidFindBy(accessibility = "android:id/button1") + @AndroidFindBy(id = "android:id/button1") private WebElement allowButton; @AndroidFindBy(xpath = "//android.widget.TextView[@resource-id='android:id/title' and @text='Documents']") diff --git a/ui-test/src/main/java/regclient/pages/arabic/SettingsPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/SettingsPageArabic.java new file mode 100644 index 000000000..ae9a5f5d4 --- /dev/null +++ b/ui-test/src/main/java/regclient/pages/arabic/SettingsPageArabic.java @@ -0,0 +1,176 @@ +package regclient.pages.arabic; + +import static org.testng.Assert.assertTrue; + +import java.time.Duration; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.openqa.selenium.By; +import org.openqa.selenium.TimeoutException; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.PageFactory; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; + +import io.appium.java_client.AppiumDriver; +import io.appium.java_client.pagefactory.AndroidFindBy; +import io.appium.java_client.pagefactory.AppiumFieldDecorator; +import regclient.page.SettingsPage; + +public class SettingsPageArabic extends SettingsPage{ + + private final AppiumDriver driver; + + @AndroidFindBy(accessibility = "Scheduled Jobs Settings\nTab 1 of 3") + private WebElement scheduledJobsSettingsTab; + + @AndroidFindBy(accessibility = "Global Config Settings\nTab 2 of 3") + private WebElement globalConfigSettingsTab; + + @AndroidFindBy(accessibility = "Device Settings\nTab 3 of 3") + private WebElement deviceSettingsTab; + + @AndroidFindBy(accessibility = "Key\nServer Value\nLocal Value") + private WebElement globalConfigSettingsHeader; + + @AndroidFindBy(accessibility = "SUBMIT") + private WebElement submitButton; + + @AndroidFindBy(accessibility = "No changes to save") + private WebElement noChangesToSave; + + @AndroidFindBy(accessibility = "Device Settings") + private WebElement deviceSettingsPage; + + @AndroidFindBy(accessibility = "Scan Now") + private WebElement scanNowButton; + + @AndroidFindBy(accessibility = "ID: e88198714e67562c\nName: io.mosip.mock.sbi.face\nStatus: Ready") + private WebElement faceDeviceCard; + + @AndroidFindBy(accessibility = "ID: e88198714e67562c\nName: io.mosip.mock.sbi.iris\nStatus: Ready") + private WebElement irisDeviceCard; + + @AndroidFindBy(accessibility = "ID: e88198714e67562c\nName: io.mosip.mock.sbi.finger\nStatus: Ready") + private WebElement fingerDeviceCard; + + @AndroidFindBy(accessibility = "No devices found") + private WebElement noDevicesFound; + + @AndroidFindBy(accessibility = "Submit Changes") + private WebElement submitChangesPopup; + + @AndroidFindBy(accessibility = "CONFIRM") + private WebElement changesConfirmButton; + + @AndroidFindBy(accessibility = "CANCEL") + private WebElement changesCancelButton; + + public SettingsPageArabic(AppiumDriver driver) { + super(driver); + this.driver = driver; + PageFactory.initElements(new AppiumFieldDecorator(driver), this); + } + + public boolean isScheduledJobsSettingsTabDisplayed() { + return isElementDisplayed(scheduledJobsSettingsTab); + } + + public boolean isGlobalConfigSettingsTabDisplayed() { + return isElementDisplayed(globalConfigSettingsTab); + } + + public boolean isDeviceSettingsTabDisplayed() { + return isElementDisplayed(deviceSettingsTab); + } + + public void clickOnGlobalConfigSettingsTab() { + clickOnElement(globalConfigSettingsTab); + } + + public boolean isGlobalConfigSettingsHeaderDisplayed() { + return isElementDisplayed(globalConfigSettingsHeader); + } + + public void clickOnSubmitButton() { + clickOnElement(submitButton); + } + + public boolean isNoChangesToSaveDisplayed() { + return isElementDisplayed(noChangesToSave); + } + + public void clickOnDeviceSettingsTab() { + clickOnElement(deviceSettingsTab); + } + + public boolean isScanNowButtonDisplayed() { + return isElementDisplayed(scanNowButton); + } + + public void clickOnScanNowButton() { + clickOnElement(scanNowButton); + } + + public boolean isDeviceSettingsPageDisplayed() { + try { + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(30)); + wait.until(ExpectedConditions.visibilityOf(deviceSettingsPage)); + return isElementDisplayed(deviceSettingsPage); + } catch (TimeoutException e) { + return false; + } + } + + public boolean isFaceDeviceCardDisplayed() { + try { + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(30)); + wait.until(ExpectedConditions.visibilityOf(faceDeviceCard)); + return isElementDisplayed(faceDeviceCard); + } catch (TimeoutException e) { + return false; + } + } + + public boolean isIrisDeviceCardDisplayed() { + return isElementDisplayed(irisDeviceCard); + } + + public boolean isFingerDeviceCardDisplayed() { + return isElementDisplayed(fingerDeviceCard); + } + + public boolean isNoDevicesFoundDisplayed() { + return isElementDisplayed(noDevicesFound); + } + + public void clickOnScheduledJobsSettingsTab() { + clickOnElement(scheduledJobsSettingsTab); + } + + public void validateDeviceCard(String deviceName) { + // Wait a bit for the card to appear (helps if page loads slowly) + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10)); + WebElement card = wait.until(ExpectedConditions + .presenceOfElementLocated(By.xpath("//*[contains(@content-desc,'" + deviceName + "')]"))); + + String desc = card.getAttribute("content-desc"); + System.out.println("Card text: " + desc); + + Pattern p = Pattern.compile("ID:\\s*([a-zA-Z0-9]+)"); + Matcher m = p.matcher(desc); + assertTrue(m.find(), "ID not found or empty"); + + assertTrue(desc.contains("Name: " + deviceName), "Device name mismatch"); + assertTrue(desc.contains("Status: Ready"), "Device status not Ready"); + } + + public boolean isSubmitChangesPopupDisplayed() { + return isElementDisplayed(submitChangesPopup); + } + + public void clickOnChangesConfirmButton() { + clickOnElement(changesConfirmButton); + } +} diff --git a/ui-test/src/main/java/regclient/pages/arabic/SupervisorBiometricVerificationpageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/SupervisorBiometricVerificationpageArabic.java index 4bdb1b466..a0207f08f 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/SupervisorBiometricVerificationpageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/SupervisorBiometricVerificationpageArabic.java @@ -175,23 +175,23 @@ public void closeScanCapturePopUp() { driver.navigate().back(); } - public boolean isRightHandScanTitleDisplyed() { + public boolean isRightHandScanTitleDisplayed() { return isElementDisplayed(rightHandScanTitle); } - public boolean isLeftHandScanTitleDisplyed() { + public boolean isLeftHandScanTitleDisplayed() { return isElementDisplayed(leftHandScanTitle); } - public boolean isThumbsScanTitleDisplyed() { + public boolean isThumbsScanTitleDisplayed() { return isElementDisplayed(thumbsScanTitle); } - public boolean isFaceScanTitleDisplyed() { + public boolean isFaceScanTitleDisplayed() { return isElementDisplayed(faceScanTitle); } - public boolean isExceptionScanTitleDisplyed() { + public boolean isExceptionScanTitleDisplayed() { return isElementDisplayed(exceptionScanTitle); } @@ -215,23 +215,23 @@ public boolean isFaceScan() { return isElementDisplayed(faceCapturerHeader, 2000); } - public boolean isIrisScanQualityDisplyed() { + public boolean isIrisScanQualityDisplayed() { return isElementDisplayed(irisScanQuality); } - public boolean isRightHandScanQualityDisplyed() { + public boolean isRightHandScanQualityDisplayed() { return isElementDisplayed(rightHandScanQuality); } - public boolean isLeftHandScanQualityDisplyed() { + public boolean isLeftHandScanQualityDisplayed() { return isElementDisplayed(leftHandScanQuality); } - public boolean isThumbsScanQualityDisplyed() { + public boolean isThumbsScanQualityDisplayed() { return isElementDisplayed(thumbsScanQuality); } - public boolean isFaceScanQualityDisplyed() { + public boolean isFaceScanQualityDisplayed() { return isElementDisplayed(faceScanQuality); } @@ -243,11 +243,11 @@ public void markOneEyeException() { clickOnElement(oneEyeException); } - public void markOneFingureException() { + public void markOneFingreException() { clickOnElement(firstFingureExceptionImage); } - public boolean isExceptionTypeTitleDisplyed() { + public boolean isExceptionTypeTitleDisplayed() { return isElementDisplayed(exceptionTypeTitle); } @@ -258,7 +258,7 @@ public void clickOnExceptionTypeTemporaryButton() { clickOnElement(temporaryButton); } - public boolean isCommentHeaderDisplyed() { + public boolean isCommentHeaderDisplayed() { return isElementDisplayed(commentsHeader); } @@ -277,11 +277,11 @@ public void clickOnThumbsScanTitle() { clickOnElement(thumbsScanTitle); } - public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed() { + public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplayed() { return isElementDisplayed(markingExceptionsOnFaceIsNotAllowedText); } - public boolean isZoomButtonDisplyed() { + public boolean isZoomButtonDisplayed() { return isElementDisplayed(zoomButton); } @@ -289,7 +289,7 @@ public void clickOnRightHandScanTitle() { clickOnElement(rightHandScanTitle); } - public void clickOnleftHandScanTitle() { + public void clickOnLeftHandScanTitle() { clickOnElement(leftHandScanTitle); } diff --git a/ui-test/src/main/java/regclient/pages/english/IntroducerBiometricPageEnglish.java b/ui-test/src/main/java/regclient/pages/english/IntroducerBiometricPageEnglish.java index 90433700f..c2aec7b08 100644 --- a/ui-test/src/main/java/regclient/pages/english/IntroducerBiometricPageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/IntroducerBiometricPageEnglish.java @@ -130,33 +130,33 @@ public BiometricDetailsPage clickOnBackButton() { } @SuppressWarnings("deprecation") - public boolean isIntroducerBiometricsPageDisplyed() { + public boolean isIntroducerBiometricsPageDisplayed() { return isElementDisplayed( findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")"))); } - public boolean isExceptionTypeTitleDisplyed() { + public boolean isExceptionTypeTitleDisplayed() { return isElementDisplayed(exceptionTypeTitle); } - public boolean isRightHandScanTitleDisplyed() { + public boolean isRightHandScanTitleDisplayed() { return isElementDisplayed(rightHandScanTitle); } - public boolean isLeftHandScanTitleDisplyed() { + public boolean isLeftHandScanTitleDisplayed() { return isElementDisplayed(leftHandScanTitle); } - public boolean isThumbsScanTitleDisplyed() { + public boolean isThumbsScanTitleDisplayed() { return isElementDisplayed(thumbsScanTitle); } - public boolean isFaceScanTitleDisplyed() { + public boolean isFaceScanTitleDisplayed() { return isElementDisplayed(faceScanTitle); } - public boolean isExceptionScanTitleDisplyed() { + public boolean isExceptionScanTitleDisplayed() { return isElementDisplayed(exceptionScanTitle); } @@ -184,7 +184,7 @@ public boolean isExceptionScan() { return isElementDisplayed(exceptionCapturerHeader, 2000); } - public boolean isNextButtonDisplyed() { + public boolean isNextButtonDisplayed() { return isElementDisplayed(nextButton); } diff --git a/ui-test/src/main/java/regclient/pages/english/KeycloakPageEnglish.java b/ui-test/src/main/java/regclient/pages/english/KeycloakPageEnglish.java deleted file mode 100644 index 06093ad66..000000000 --- a/ui-test/src/main/java/regclient/pages/english/KeycloakPageEnglish.java +++ /dev/null @@ -1,152 +0,0 @@ -package regclient.pages.english; - -import java.time.Duration; -import io.appium.java_client.AppiumDriver; -import io.appium.java_client.pagefactory.AndroidFindBy; -import regclient.page.KeycloakPage; - -import org.openqa.selenium.support.ui.ExpectedConditions; -import org.openqa.selenium.support.ui.WebDriverWait; -import org.openqa.selenium.support.FindBy; -import org.openqa.selenium.By; -import org.openqa.selenium.WebElement; - -public class KeycloakPageEnglish extends KeycloakPage { - - private WebDriverWait wait; - - public KeycloakPageEnglish(AppiumDriver driver) { - super(driver); - } - - @FindBy(id = "kc-page-title") - private WebElement keycloakPageTitle; - - @FindBy(id = "English˅") - private WebElement languageDropdown; - - @FindBy(id = "English") - private WebElement englishLanguage; - - @FindBy(id = "username") - private WebElement usernameTextBox; - - @FindBy(id = "password") - private WebElement passwordTextBox; - - @FindBy(id = "kc-login") - private WebElement loginButton; - - @AndroidFindBy(uiAutomator = "new UiSelector().text(\"Password\")") - private WebElement passwordOption; - - @FindBy(id = "password") - private WebElement passwordTextbox; - - @FindBy(id = "password-new") - private WebElement newPasswordTextbox; - - @FindBy(id = "password-confirm") - private WebElement confirmPasswordTextbox; - - @FindBy(xpath = "//button[text()='Save']") - private WebElement saveButton; - - @FindBy(xpath = "//*[contains(text(),'Your password has been updated.')]") - private WebElement passwordUpdatedMessage; - - @FindBy(xpath = "//*[contains(text(),'Sign Out')]") - private WebElement signoutButton; - - @AndroidFindBy(accessibility = "LOGOUT") - private WebElement logoutButton; - - public boolean openKeycloakWebView() { - switchContext("WEBVIEW_chrome"); - retryFindElement(keycloakPageTitle, Duration.ofSeconds(10)); - return isElementDisplayed(keycloakPageTitle); - } - - public boolean openKeycloakPassword() { - switchContext("NATIVE_APP"); - retryFindElement(passwordOption, Duration.ofSeconds(10)); - return isElementDisplayed(passwordOption); - } - - public String getPageTitle() { - return keycloakPageTitle.getText(); - } - - public void clickOnLanguageDropdown() { - clickOnElement(languageDropdown); - } - - public void clickOnEnglishLanguage() { - clickOnElement(englishLanguage); - } - - public void enterUserName(String username) { - clickAndsendKeysToTextBox(usernameTextBox, username); - } - - public void enterPassword(String password) { - retryFindElement(passwordTextBox, Duration.ofSeconds(10)); - clickAndsendKeysToTextBox(passwordTextBox, password); - } - - public void clickOnloginButton() { - clickOnElement(loginButton); - } - -// public boolean isPasswordOptionDisplayed() { -// switchContext("WEBVIEW_chrome"); -// WebElement passwordOption = wait.until( -// ExpectedConditions.visibilityOfElementLocated(By.id("password")) -// ); -// return passwordOption.isDisplayed(); -// } - - public void clickOnPasswordOption() { - switchContext("NATIVE_APP"); - clickOnElement(passwordOption); - } - - public void enterExistPassword(String password) { - switchContext("WEBVIEW_chrome"); - retryFindElement(passwordTextbox, Duration.ofSeconds(10)); - clickAndsendKeysToTextBox(passwordTextbox, password); - } - - public void enterNewPassword(String password) { - switchContext("WEBVIEW_chrome"); - retryFindElement(newPasswordTextbox, Duration.ofSeconds(10)); - clickAndsendKeysToTextBox(newPasswordTextbox, password); - } - - public void enterConfirmPassword(String password) { - switchContext("WEBVIEW_chrome"); - retryFindElement(confirmPasswordTextbox, Duration.ofSeconds(10)); - clickAndsendKeysToTextBox(confirmPasswordTextbox, password); - } - - public void clickOnSaveButton() { - switchContext("WEBVIEW_chrome"); - clickOnElement(saveButton); - } - - public boolean isPasswordUpdatedMessageDisplayed() { - switchContext("WEBVIEW_chrome"); - return isElementDisplayed(passwordUpdatedMessage); - } - - public void clickOnSignoutButton() { - switchContext("WEBVIEW_chrome"); - clickOnElement(signoutButton); - } - - public boolean resumeArcApplication() { - openArcApplication("NATIVE_APP"); - return isElementDisplayed(logoutButton); - } - -} diff --git a/ui-test/src/main/java/regclient/pages/english/ManageApplicationsPageEnglish.java b/ui-test/src/main/java/regclient/pages/english/ManageApplicationsPageEnglish.java index 029cb83e6..0d9db6501 100644 --- a/ui-test/src/main/java/regclient/pages/english/ManageApplicationsPageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/ManageApplicationsPageEnglish.java @@ -69,10 +69,10 @@ public class ManageApplicationsPageEnglish extends ManageApplicationsPage { @AndroidFindBy(xpath = "//android.widget.TextView[@text='Documents'][2]") private WebElement documentsHeader; - @AndroidFindBy(accessibility = "android:id/button1") + @AndroidFindBy(id = "android:id/button1") private WebElement useThisFolderButton; - @AndroidFindBy(accessibility = "android:id/button1") + @AndroidFindBy(id = "android:id/button1") private WebElement allowButton; @AndroidFindBy(xpath = "//android.widget.TextView[@resource-id='android:id/title' and @text='Documents']") diff --git a/ui-test/src/main/java/regclient/pages/english/SupervisorBiometricVerificationpageEnglish.java b/ui-test/src/main/java/regclient/pages/english/SupervisorBiometricVerificationpageEnglish.java index 867c5fec2..847a2a29c 100644 --- a/ui-test/src/main/java/regclient/pages/english/SupervisorBiometricVerificationpageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/SupervisorBiometricVerificationpageEnglish.java @@ -176,23 +176,23 @@ public void closeScanCapturePopUp() { driver.navigate().back(); } - public boolean isRightHandScanTitleDisplyed() { + public boolean isRightHandScanTitleDisplayed() { return isElementDisplayed(rightHandScanTitle); } - public boolean isLeftHandScanTitleDisplyed() { + public boolean isLeftHandScanTitleDisplayed() { return isElementDisplayed(leftHandScanTitle); } - public boolean isThumbsScanTitleDisplyed() { + public boolean isThumbsScanTitleDisplayed() { return isElementDisplayed(thumbsScanTitle); } - public boolean isFaceScanTitleDisplyed() { + public boolean isFaceScanTitleDisplayed() { return isElementDisplayed(faceScanTitle); } - public boolean isExceptionScanTitleDisplyed() { + public boolean isExceptionScanTitleDisplayed() { return isElementDisplayed(exceptionScanTitle); } @@ -220,23 +220,23 @@ public boolean isExceptionScan() { return isElementDisplayed(exceptionCapturerHeader, 2000); } - public boolean isIrisScanQualityDisplyed() { + public boolean isIrisScanQualityDisplayed() { return isElementDisplayed(irisScanQuality); } - public boolean isRightHandScanQualityDisplyed() { + public boolean isRightHandScanQualityDisplayed() { return isElementDisplayed(rightHandScanQuality); } - public boolean isLeftHandScanQualityDisplyed() { + public boolean isLeftHandScanQualityDisplayed() { return isElementDisplayed(leftHandScanQuality); } - public boolean isThumbsScanQualityDisplyed() { + public boolean isThumbsScanQualityDisplayed() { return isElementDisplayed(thumbsScanQuality); } - public boolean isFaceScanQualityDisplyed() { + public boolean isFaceScanQualityDisplayed() { return isElementDisplayed(faceScanQuality); } @@ -248,11 +248,11 @@ public void markOneEyeException() { clickOnElement(oneEyeException); } - public void markOneFingureException() { + public void markOneFingreException() { clickOnElement(firstFingureExceptionImage); } - public boolean isExceptionTypeTitleDisplyed() { + public boolean isExceptionTypeTitleDisplayed() { return isElementDisplayed(exceptionTypeTitle); } @@ -263,7 +263,7 @@ public void clickOnExceptionTypeTemporaryButton() { clickOnElement(temporaryButton); } - public boolean isCommentHeaderDisplyed() { + public boolean isCommentHeaderDisplayed() { return isElementDisplayed(commentsHeader); } @@ -282,11 +282,11 @@ public void clickOnThumbsScanTitle() { clickOnElement(thumbsScanTitle); } - public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed() { + public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplayed() { return isElementDisplayed(markingExceptionsOnFaceIsNotAllowedText); } - public boolean isZoomButtonDisplyed() { + public boolean isZoomButtonDisplayed() { return true; // return isElementDisplayed(zoomButton); } @@ -295,7 +295,7 @@ public void clickOnRightHandScanTitle() { clickOnElement(rightHandScanTitle); } - public void clickOnleftHandScanTitle() { + public void clickOnLeftHandScanTitle() { clickOnElement(leftHandScanTitle); } diff --git a/ui-test/src/main/java/regclient/pages/french/IntroducerBiometricPageFrench.java b/ui-test/src/main/java/regclient/pages/french/IntroducerBiometricPageFrench.java index 92127e687..4fbce6425 100644 --- a/ui-test/src/main/java/regclient/pages/french/IntroducerBiometricPageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/IntroducerBiometricPageFrench.java @@ -140,33 +140,33 @@ public BiometricDetailsPage clickOnBackButton() { } @SuppressWarnings("deprecation") - public boolean isIntroducerBiometricsPageDisplyed() { + public boolean isIntroducerBiometricsPageDisplayed() { return isElementDisplayed( findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")"))); } - public boolean isExceptionTypeTitleDisplyed() { + public boolean isExceptionTypeTitleDisplayed() { return isElementDisplayed(exceptionTypeTitle); } - public boolean isRightHandScanTitleDisplyed() { + public boolean isRightHandScanTitleDisplayed() { return isElementDisplayed(rightHandScanTitle); } - public boolean isLeftHandScanTitleDisplyed() { + public boolean isLeftHandScanTitleDisplayed() { return isElementDisplayed(leftHandScanTitle); } - public boolean isThumbsScanTitleDisplyed() { + public boolean isThumbsScanTitleDisplayed() { return isElementDisplayed(thumbsScanTitle); } - public boolean isFaceScanTitleDisplyed() { + public boolean isFaceScanTitleDisplayed() { return isElementDisplayed(faceScanTitle); } - public boolean isExceptionScanTitleDisplyed() { + public boolean isExceptionScanTitleDisplayed() { return isElementDisplayed(exceptionScanTitle); } @@ -194,7 +194,7 @@ public boolean isExceptionScan() { return isElementDisplayed(exceptionCapturerHeader, 2000); } - public boolean isNextButtonDisplyed() { + public boolean isNextButtonDisplayed() { return isElementDisplayed(nextButton); } diff --git a/ui-test/src/main/java/regclient/pages/french/ManageApplicationsPageFrench.java b/ui-test/src/main/java/regclient/pages/french/ManageApplicationsPageFrench.java index f67bff966..efec3dcd1 100644 --- a/ui-test/src/main/java/regclient/pages/french/ManageApplicationsPageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/ManageApplicationsPageFrench.java @@ -69,10 +69,10 @@ public class ManageApplicationsPageFrench extends ManageApplicationsPage { @AndroidFindBy(xpath = "//android.widget.TextView[@text='Documents'][2]") private WebElement documentsHeader; - @AndroidFindBy(accessibility = "android:id/button1") + @AndroidFindBy(id = "android:id/button1") private WebElement useThisFolderButton; - @AndroidFindBy(accessibility = "android:id/button1") + @AndroidFindBy(id = "android:id/button1") private WebElement allowButton; @AndroidFindBy(xpath = "//android.widget.TextView[@resource-id='android:id/title' and @text='Documents']") diff --git a/ui-test/src/main/java/regclient/pages/french/SettingsPageFrench.java b/ui-test/src/main/java/regclient/pages/french/SettingsPageFrench.java new file mode 100644 index 000000000..9589654a0 --- /dev/null +++ b/ui-test/src/main/java/regclient/pages/french/SettingsPageFrench.java @@ -0,0 +1,177 @@ +package regclient.pages.french; + +import static org.testng.Assert.assertTrue; + +import java.time.Duration; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.openqa.selenium.By; +import org.openqa.selenium.TimeoutException; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.PageFactory; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; + +import io.appium.java_client.AppiumDriver; +import io.appium.java_client.pagefactory.AndroidFindBy; +import io.appium.java_client.pagefactory.AppiumFieldDecorator; +import regclient.page.SettingsPage; + +public class SettingsPageFrench extends SettingsPage { + + private final AppiumDriver driver; + + @AndroidFindBy(accessibility = "Scheduled Jobs Settings\nTab 1 of 3") + private WebElement scheduledJobsSettingsTab; + + @AndroidFindBy(accessibility = "Global Config Settings\nTab 2 of 3") + private WebElement globalConfigSettingsTab; + + @AndroidFindBy(accessibility = "Device Settings\nTab 3 of 3") + private WebElement deviceSettingsTab; + + @AndroidFindBy(accessibility = "Key\nServer Value\nLocal Value") + private WebElement globalConfigSettingsHeader; + + @AndroidFindBy(accessibility = "SUBMIT") + private WebElement submitButton; + + @AndroidFindBy(accessibility = "No changes to save") + private WebElement noChangesToSave; + + @AndroidFindBy(accessibility = "Device Settings") + private WebElement deviceSettingsPage; + + @AndroidFindBy(accessibility = "Scan Now") + private WebElement scanNowButton; + + @AndroidFindBy(accessibility = "ID: e88198714e67562c\nName: io.mosip.mock.sbi.face\nStatus: Ready") + private WebElement faceDeviceCard; + + @AndroidFindBy(accessibility = "ID: e88198714e67562c\nName: io.mosip.mock.sbi.iris\nStatus: Ready") + private WebElement irisDeviceCard; + + @AndroidFindBy(accessibility = "ID: e88198714e67562c\nName: io.mosip.mock.sbi.finger\nStatus: Ready") + private WebElement fingerDeviceCard; + + @AndroidFindBy(accessibility = "No devices found") + private WebElement noDevicesFound; + + @AndroidFindBy(accessibility = "Submit Changes") + private WebElement submitChangesPopup; + + @AndroidFindBy(accessibility = "CONFIRM") + private WebElement changesConfirmButton; + + @AndroidFindBy(accessibility = "CANCEL") + private WebElement changesCancelButton; + + public SettingsPageFrench(AppiumDriver driver) { + super(driver); + this.driver = driver; + PageFactory.initElements(new AppiumFieldDecorator(driver), this); + } + + public boolean isScheduledJobsSettingsTabDisplayed() { + return isElementDisplayed(scheduledJobsSettingsTab); + } + + public boolean isGlobalConfigSettingsTabDisplayed() { + return isElementDisplayed(globalConfigSettingsTab); + } + + public boolean isDeviceSettingsTabDisplayed() { + return isElementDisplayed(deviceSettingsTab); + } + + public void clickOnGlobalConfigSettingsTab() { + clickOnElement(globalConfigSettingsTab); + } + + public boolean isGlobalConfigSettingsHeaderDisplayed() { + return isElementDisplayed(globalConfigSettingsHeader); + } + + public void clickOnSubmitButton() { + clickOnElement(submitButton); + } + + public boolean isNoChangesToSaveDisplayed() { + return isElementDisplayed(noChangesToSave); + } + + public void clickOnDeviceSettingsTab() { + clickOnElement(deviceSettingsTab); + } + + public boolean isScanNowButtonDisplayed() { + return isElementDisplayed(scanNowButton); + } + + public void clickOnScanNowButton() { + clickOnElement(scanNowButton); + } + + public boolean isDeviceSettingsPageDisplayed() { + try { + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(30)); + wait.until(ExpectedConditions.visibilityOf(deviceSettingsPage)); + return isElementDisplayed(deviceSettingsPage); + } catch (TimeoutException e) { + return false; + } + } + + public boolean isFaceDeviceCardDisplayed() { + try { + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(30)); + wait.until(ExpectedConditions.visibilityOf(faceDeviceCard)); + return isElementDisplayed(faceDeviceCard); + } catch (TimeoutException e) { + return false; + } + } + + public boolean isIrisDeviceCardDisplayed() { + return isElementDisplayed(irisDeviceCard); + } + + public boolean isFingerDeviceCardDisplayed() { + return isElementDisplayed(fingerDeviceCard); + } + + public boolean isNoDevicesFoundDisplayed() { + return isElementDisplayed(noDevicesFound); + } + + public void clickOnScheduledJobsSettingsTab() { + clickOnElement(scheduledJobsSettingsTab); + } + + public void validateDeviceCard(String deviceName) { + // Wait a bit for the card to appear (helps if page loads slowly) + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10)); + WebElement card = wait.until(ExpectedConditions + .presenceOfElementLocated(By.xpath("//*[contains(@content-desc,'" + deviceName + "')]"))); + + String desc = card.getAttribute("content-desc"); + System.out.println("Card text: " + desc); + + Pattern p = Pattern.compile("ID:\\s*([a-zA-Z0-9]+)"); + Matcher m = p.matcher(desc); + assertTrue(m.find(), "ID not found or empty"); + + assertTrue(desc.contains("Name: " + deviceName), "Device name mismatch"); + assertTrue(desc.contains("Status: Ready"), "Device status not Ready"); + } + + public boolean isSubmitChangesPopupDisplayed() { + return isElementDisplayed(submitChangesPopup); + } + + public void clickOnChangesConfirmButton() { + clickOnElement(changesConfirmButton); + } + +} diff --git a/ui-test/src/main/java/regclient/pages/french/SupervisorBiometricVerificationpageFrench.java b/ui-test/src/main/java/regclient/pages/french/SupervisorBiometricVerificationpageFrench.java index 179c5b9cb..1aeaec92e 100644 --- a/ui-test/src/main/java/regclient/pages/french/SupervisorBiometricVerificationpageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/SupervisorBiometricVerificationpageFrench.java @@ -175,23 +175,23 @@ public void closeScanCapturePopUp() { driver.navigate().back(); } - public boolean isRightHandScanTitleDisplyed() { + public boolean isRightHandScanTitleDisplayed() { return isElementDisplayed(rightHandScanTitle); } - public boolean isLeftHandScanTitleDisplyed() { + public boolean isLeftHandScanTitleDisplayed() { return isElementDisplayed(leftHandScanTitle); } - public boolean isThumbsScanTitleDisplyed() { + public boolean isThumbsScanTitleDisplayed() { return isElementDisplayed(thumbsScanTitle); } - public boolean isFaceScanTitleDisplyed() { + public boolean isFaceScanTitleDisplayed() { return isElementDisplayed(faceScanTitle); } - public boolean isExceptionScanTitleDisplyed() { + public boolean isExceptionScanTitleDisplayed() { return isElementDisplayed(exceptionScanTitle); } @@ -215,23 +215,23 @@ public boolean isFaceScan() { return isElementDisplayed(faceCapturerHeader, 2000); } - public boolean isIrisScanQualityDisplyed() { + public boolean isIrisScanQualityDisplayed() { return isElementDisplayed(irisScanQuality); } - public boolean isRightHandScanQualityDisplyed() { + public boolean isRightHandScanQualityDisplayed() { return isElementDisplayed(rightHandScanQuality); } - public boolean isLeftHandScanQualityDisplyed() { + public boolean isLeftHandScanQualityDisplayed() { return isElementDisplayed(leftHandScanQuality); } - public boolean isThumbsScanQualityDisplyed() { + public boolean isThumbsScanQualityDisplayed() { return isElementDisplayed(thumbsScanQuality); } - public boolean isFaceScanQualityDisplyed() { + public boolean isFaceScanQualityDisplayed() { return isElementDisplayed(faceScanQuality); } @@ -243,11 +243,11 @@ public void markOneEyeException() { clickOnElement(oneEyeException); } - public void markOneFingureException() { + public void markOneFingreException() { clickOnElement(firstFingureExceptionImage); } - public boolean isExceptionTypeTitleDisplyed() { + public boolean isExceptionTypeTitleDisplayed() { return isElementDisplayed(exceptionTypeTitle); } @@ -258,7 +258,7 @@ public void clickOnExceptionTypeTemporaryButton() { clickOnElement(temporaryButton); } - public boolean isCommentHeaderDisplyed() { + public boolean isCommentHeaderDisplayed() { return isElementDisplayed(commentsHeader); } @@ -277,11 +277,11 @@ public void clickOnThumbsScanTitle() { clickOnElement(thumbsScanTitle); } - public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed() { + public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplayed() { return isElementDisplayed(markingExceptionsOnFaceIsNotAllowedText); } - public boolean isZoomButtonDisplyed() { + public boolean isZoomButtonDisplayed() { return isElementDisplayed(zoomButton); } @@ -289,7 +289,7 @@ public void clickOnRightHandScanTitle() { clickOnElement(rightHandScanTitle); } - public void clickOnleftHandScanTitle() { + public void clickOnLeftHandScanTitle() { clickOnElement(leftHandScanTitle); } diff --git a/ui-test/src/main/java/regclient/pages/hindi/IntroducerBiometricPageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/IntroducerBiometricPageHindi.java index ce1a0ed89..8e5dec461 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/IntroducerBiometricPageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/IntroducerBiometricPageHindi.java @@ -19,7 +19,6 @@ public class IntroducerBiometricPageHindi extends IntroducerBiometricPage{ private WebElement markExceptionButton; @AndroidFindBy(accessibility = "अस्तित्व चिह्नित करें") - private WebElement exceptionTypeTitle; @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(1)") @@ -132,31 +131,31 @@ public BiometricDetailsPage clickOnBackButton() { } @SuppressWarnings("deprecation") - public boolean isIntroducerBiometricsPageDisplyed() { + public boolean isIntroducerBiometricsPageDisplayed() { return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId("introducerBiometrics")+"\")"))); } - public boolean isExceptionTypeTitleDisplyed() { + public boolean isExceptionTypeTitleDisplayed() { return isElementDisplayed(exceptionTypeTitle); } - public boolean isRightHandScanTitleDisplyed() { + public boolean isRightHandScanTitleDisplayed() { return isElementDisplayed(rightHandScanTitle); } - public boolean isLeftHandScanTitleDisplyed() { + public boolean isLeftHandScanTitleDisplayed() { return isElementDisplayed(leftHandScanTitle); } - public boolean isThumbsScanTitleDisplyed() { + public boolean isThumbsScanTitleDisplayed() { return isElementDisplayed(thumbsScanTitle); } - public boolean isFaceScanTitleDisplyed() { + public boolean isFaceScanTitleDisplayed() { return isElementDisplayed(faceScanTitle); } - public boolean isExceptionScanTitleDisplyed() { + public boolean isExceptionScanTitleDisplayed() { return isElementDisplayed(exceptionScanTitle); } @@ -184,7 +183,7 @@ public boolean isExceptionScan() { return isElementDisplayed(exceptionCapturerHeader,2000); } - public boolean isNextButtonDisplyed() { + public boolean isNextButtonDisplayed() { return isElementDisplayed(nextButton); } diff --git a/ui-test/src/main/java/regclient/pages/hindi/ManageApplicationsPageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/ManageApplicationsPageHindi.java index 8924bc20f..02c0b6485 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/ManageApplicationsPageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/ManageApplicationsPageHindi.java @@ -69,10 +69,10 @@ public class ManageApplicationsPageHindi extends ManageApplicationsPage{ @AndroidFindBy(xpath = "//android.widget.TextView[@text='Documents'][2]") private WebElement documentsHeader; - @AndroidFindBy(accessibility = "android:id/button1") + @AndroidFindBy(id = "android:id/button1") private WebElement useThisFolderButton; - - @AndroidFindBy(accessibility = "android:id/button1") + + @AndroidFindBy(id = "android:id/button1") private WebElement allowButton; @AndroidFindBy(xpath = "//android.widget.TextView[@resource-id='android:id/title' and @text='Documents']") diff --git a/ui-test/src/main/java/regclient/pages/hindi/SettingsPageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/SettingsPageHindi.java new file mode 100644 index 000000000..fc5c3adc6 --- /dev/null +++ b/ui-test/src/main/java/regclient/pages/hindi/SettingsPageHindi.java @@ -0,0 +1,177 @@ +package regclient.pages.hindi; + +import static org.testng.Assert.assertTrue; + +import java.time.Duration; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.openqa.selenium.By; +import org.openqa.selenium.TimeoutException; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.PageFactory; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; + +import io.appium.java_client.AppiumDriver; +import io.appium.java_client.pagefactory.AndroidFindBy; +import io.appium.java_client.pagefactory.AppiumFieldDecorator; +import regclient.page.SettingsPage; + +public class SettingsPageHindi extends SettingsPage{ + + private final AppiumDriver driver; + + @AndroidFindBy(accessibility = "Scheduled Jobs Settings\nTab 1 of 3") + private WebElement scheduledJobsSettingsTab; + + @AndroidFindBy(accessibility = "Global Config Settings\nTab 2 of 3") + private WebElement globalConfigSettingsTab; + + @AndroidFindBy(accessibility = "Device Settings\nTab 3 of 3") + private WebElement deviceSettingsTab; + + @AndroidFindBy(accessibility = "Key\nServer Value\nLocal Value") + private WebElement globalConfigSettingsHeader; + + @AndroidFindBy(accessibility = "SUBMIT") + private WebElement submitButton; + + @AndroidFindBy(accessibility = "No changes to save") + private WebElement noChangesToSave; + + @AndroidFindBy(accessibility = "Device Settings") + private WebElement deviceSettingsPage; + + @AndroidFindBy(accessibility = "Scan Now") + private WebElement scanNowButton; + + @AndroidFindBy(accessibility = "ID: e88198714e67562c\nName: io.mosip.mock.sbi.face\nStatus: Ready") + private WebElement faceDeviceCard; + + @AndroidFindBy(accessibility = "ID: e88198714e67562c\nName: io.mosip.mock.sbi.iris\nStatus: Ready") + private WebElement irisDeviceCard; + + @AndroidFindBy(accessibility = "ID: e88198714e67562c\nName: io.mosip.mock.sbi.finger\nStatus: Ready") + private WebElement fingerDeviceCard; + + @AndroidFindBy(accessibility = "No devices found") + private WebElement noDevicesFound; + + @AndroidFindBy(accessibility = "Submit Changes") + private WebElement submitChangesPopup; + + @AndroidFindBy(accessibility = "CONFIRM") + private WebElement changesConfirmButton; + + @AndroidFindBy(accessibility = "CANCEL") + private WebElement changesCancelButton; + + public SettingsPageHindi(AppiumDriver driver) { + super(driver); + this.driver = driver; + PageFactory.initElements(new AppiumFieldDecorator(driver), this); + } + + public boolean isScheduledJobsSettingsTabDisplayed() { + return isElementDisplayed(scheduledJobsSettingsTab); + } + + public boolean isGlobalConfigSettingsTabDisplayed() { + return isElementDisplayed(globalConfigSettingsTab); + } + + public boolean isDeviceSettingsTabDisplayed() { + return isElementDisplayed(deviceSettingsTab); + } + + public void clickOnGlobalConfigSettingsTab() { + clickOnElement(globalConfigSettingsTab); + } + + public boolean isGlobalConfigSettingsHeaderDisplayed() { + return isElementDisplayed(globalConfigSettingsHeader); + } + + public void clickOnSubmitButton() { + clickOnElement(submitButton); + } + + public boolean isNoChangesToSaveDisplayed() { + return isElementDisplayed(noChangesToSave); + } + + public void clickOnDeviceSettingsTab() { + clickOnElement(deviceSettingsTab); + } + + public boolean isScanNowButtonDisplayed() { + return isElementDisplayed(scanNowButton); + } + + public void clickOnScanNowButton() { + clickOnElement(scanNowButton); + } + + public boolean isDeviceSettingsPageDisplayed() { + try { + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(30)); + wait.until(ExpectedConditions.visibilityOf(deviceSettingsPage)); + return isElementDisplayed(deviceSettingsPage); + } catch (TimeoutException e) { + return false; + } + } + + public boolean isFaceDeviceCardDisplayed() { + try { + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(30)); + wait.until(ExpectedConditions.visibilityOf(faceDeviceCard)); + return isElementDisplayed(faceDeviceCard); + } catch (TimeoutException e) { + return false; + } + } + + public boolean isIrisDeviceCardDisplayed() { + return isElementDisplayed(irisDeviceCard); + } + + public boolean isFingerDeviceCardDisplayed() { + return isElementDisplayed(fingerDeviceCard); + } + + public boolean isNoDevicesFoundDisplayed() { + return isElementDisplayed(noDevicesFound); + } + + public void clickOnScheduledJobsSettingsTab() { + clickOnElement(scheduledJobsSettingsTab); + } + + public void validateDeviceCard(String deviceName) { + // Wait a bit for the card to appear (helps if page loads slowly) + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10)); + WebElement card = wait.until(ExpectedConditions + .presenceOfElementLocated(By.xpath("//*[contains(@content-desc,'" + deviceName + "')]"))); + + String desc = card.getAttribute("content-desc"); + System.out.println("Card text: " + desc); + + Pattern p = Pattern.compile("ID:\\s*([a-zA-Z0-9]+)"); + Matcher m = p.matcher(desc); + assertTrue(m.find(), "ID not found or empty"); + + assertTrue(desc.contains("Name: " + deviceName), "Device name mismatch"); + assertTrue(desc.contains("Status: Ready"), "Device status not Ready"); + } + + public boolean isSubmitChangesPopupDisplayed() { + return isElementDisplayed(submitChangesPopup); + } + + public void clickOnChangesConfirmButton() { + clickOnElement(changesConfirmButton); + } + +} diff --git a/ui-test/src/main/java/regclient/pages/hindi/SupervisorBiometricVerificationpageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/SupervisorBiometricVerificationpageHindi.java index 3783c54c7..c1dd882d7 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/SupervisorBiometricVerificationpageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/SupervisorBiometricVerificationpageHindi.java @@ -191,23 +191,23 @@ public void closeScanCapturePopUp() { } - public boolean isRightHandScanTitleDisplyed() { + public boolean isRightHandScanTitleDisplayed() { return isElementDisplayed(rightHandScanTitle); } - public boolean isLeftHandScanTitleDisplyed() { + public boolean isLeftHandScanTitleDisplayed() { return isElementDisplayed(leftHandScanTitle); } - public boolean isThumbsScanTitleDisplyed() { + public boolean isThumbsScanTitleDisplayed() { return isElementDisplayed(thumbsScanTitle); } - public boolean isFaceScanTitleDisplyed() { + public boolean isFaceScanTitleDisplayed() { return isElementDisplayed(faceScanTitle); } - public boolean isExceptionScanTitleDisplyed() { + public boolean isExceptionScanTitleDisplayed() { return isElementDisplayed(exceptionScanTitle); } @@ -231,23 +231,23 @@ public boolean isFaceScan() { return isElementDisplayed(faceCapturerHeader,2000); } - public boolean isIrisScanQualityDisplyed() { + public boolean isIrisScanQualityDisplayed() { return isElementDisplayed(irisScanQuality); } - public boolean isRightHandScanQualityDisplyed() { + public boolean isRightHandScanQualityDisplayed() { return isElementDisplayed(rightHandScanQuality); } - public boolean isLeftHandScanQualityDisplyed() { + public boolean isLeftHandScanQualityDisplayed() { return isElementDisplayed(leftHandScanQuality); } - public boolean isThumbsScanQualityDisplyed() { + public boolean isThumbsScanQualityDisplayed() { return isElementDisplayed(thumbsScanQuality); } - public boolean isFaceScanQualityDisplyed() { + public boolean isFaceScanQualityDisplayed() { return isElementDisplayed(faceScanQuality); } @@ -259,11 +259,11 @@ public void markOneEyeException() { clickOnElement(oneEyeException); } - public void markOneFingureException() { + public void markOneFingreException() { clickOnElement(firstFingureExceptionImage); } - public boolean isExceptionTypeTitleDisplyed() { + public boolean isExceptionTypeTitleDisplayed() { return isElementDisplayed(exceptionTypeTitle); } @@ -274,7 +274,7 @@ public void clickOnExceptionTypeTemporaryButton() { clickOnElement(temporaryButton); } - public boolean isCommentHeaderDisplyed() { + public boolean isCommentHeaderDisplayed() { return isElementDisplayed(commentsHeader); } @@ -293,11 +293,11 @@ public void clickOnThumbsScanTitle() { clickOnElement(thumbsScanTitle); } - public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed() { + public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplayed() { return isElementDisplayed(markingExceptionsOnFaceIsNotAllowedText); } - public boolean isZoomButtonDisplyed() { + public boolean isZoomButtonDisplayed() { return isElementDisplayed(zoomButton); } @@ -305,7 +305,7 @@ public void clickOnRightHandScanTitle() { clickOnElement(rightHandScanTitle); } - public void clickOnleftHandScanTitle() { + public void clickOnLeftHandScanTitle() { clickOnElement(leftHandScanTitle); } diff --git a/ui-test/src/main/java/regclient/pages/kannada/IntroducerBiometricPageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/IntroducerBiometricPageKannada.java index 98ea0c77e..bdc1884a7 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/IntroducerBiometricPageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/IntroducerBiometricPageKannada.java @@ -131,31 +131,31 @@ public BiometricDetailsPage clickOnBackButton() { } @SuppressWarnings("deprecation") - public boolean isIntroducerBiometricsPageDisplyed() { + public boolean isIntroducerBiometricsPageDisplayed() { return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId("introducerBiometrics")+"\")"))); } - public boolean isExceptionTypeTitleDisplyed() { + public boolean isExceptionTypeTitleDisplayed() { return isElementDisplayed(exceptionTypeTitle); } - public boolean isRightHandScanTitleDisplyed() { + public boolean isRightHandScanTitleDisplayed() { return isElementDisplayed(rightHandScanTitle); } - public boolean isLeftHandScanTitleDisplyed() { + public boolean isLeftHandScanTitleDisplayed() { return isElementDisplayed(leftHandScanTitle); } - public boolean isThumbsScanTitleDisplyed() { + public boolean isThumbsScanTitleDisplayed() { return isElementDisplayed(thumbsScanTitle); } - public boolean isFaceScanTitleDisplyed() { + public boolean isFaceScanTitleDisplayed() { return isElementDisplayed(faceScanTitle); } - public boolean isExceptionScanTitleDisplyed() { + public boolean isExceptionScanTitleDisplayed() { return isElementDisplayed(exceptionScanTitle); } @@ -183,7 +183,7 @@ public boolean isExceptionScan() { return isElementDisplayed(exceptionCapturerHeader,2000); } - public boolean isNextButtonDisplyed() { + public boolean isNextButtonDisplayed() { return isElementDisplayed(nextButton); } diff --git a/ui-test/src/main/java/regclient/pages/kannada/ManageApplicationsPageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/ManageApplicationsPageKannada.java index 9652ec2e6..d3bcf968a 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/ManageApplicationsPageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/ManageApplicationsPageKannada.java @@ -69,10 +69,10 @@ public class ManageApplicationsPageKannada extends ManageApplicationsPage{ @AndroidFindBy(xpath = "//android.widget.TextView[@text='Documents'][2]") private WebElement documentsHeader; - @AndroidFindBy(accessibility = "android:id/button1") + @AndroidFindBy(id = "android:id/button1") private WebElement useThisFolderButton; - - @AndroidFindBy(accessibility = "android:id/button1") + + @AndroidFindBy(id = "android:id/button1") private WebElement allowButton; @AndroidFindBy(xpath = "//android.widget.TextView[@resource-id='android:id/title' and @text='Documents']") diff --git a/ui-test/src/main/java/regclient/pages/kannada/SettingsPageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/SettingsPageKannada.java new file mode 100644 index 000000000..4b87ea8b5 --- /dev/null +++ b/ui-test/src/main/java/regclient/pages/kannada/SettingsPageKannada.java @@ -0,0 +1,177 @@ +package regclient.pages.kannada; + +import static org.testng.Assert.assertTrue; + +import java.time.Duration; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.openqa.selenium.By; +import org.openqa.selenium.TimeoutException; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.PageFactory; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; + +import io.appium.java_client.AppiumDriver; +import io.appium.java_client.pagefactory.AndroidFindBy; +import io.appium.java_client.pagefactory.AppiumFieldDecorator; +import regclient.page.SettingsPage; + +public class SettingsPageKannada extends SettingsPage { + + private final AppiumDriver driver; + + @AndroidFindBy(accessibility = "Scheduled Jobs Settings\nTab 1 of 3") + private WebElement scheduledJobsSettingsTab; + + @AndroidFindBy(accessibility = "Global Config Settings\nTab 2 of 3") + private WebElement globalConfigSettingsTab; + + @AndroidFindBy(accessibility = "Device Settings\nTab 3 of 3") + private WebElement deviceSettingsTab; + + @AndroidFindBy(accessibility = "Key\nServer Value\nLocal Value") + private WebElement globalConfigSettingsHeader; + + @AndroidFindBy(accessibility = "SUBMIT") + private WebElement submitButton; + + @AndroidFindBy(accessibility = "No changes to save") + private WebElement noChangesToSave; + + @AndroidFindBy(accessibility = "Device Settings") + private WebElement deviceSettingsPage; + + @AndroidFindBy(accessibility = "Scan Now") + private WebElement scanNowButton; + + @AndroidFindBy(accessibility = "ID: e88198714e67562c\nName: io.mosip.mock.sbi.face\nStatus: Ready") + private WebElement faceDeviceCard; + + @AndroidFindBy(accessibility = "ID: e88198714e67562c\nName: io.mosip.mock.sbi.iris\nStatus: Ready") + private WebElement irisDeviceCard; + + @AndroidFindBy(accessibility = "ID: e88198714e67562c\nName: io.mosip.mock.sbi.finger\nStatus: Ready") + private WebElement fingerDeviceCard; + + @AndroidFindBy(accessibility = "No devices found") + private WebElement noDevicesFound; + + @AndroidFindBy(accessibility = "Submit Changes") + private WebElement submitChangesPopup; + + @AndroidFindBy(accessibility = "CONFIRM") + private WebElement changesConfirmButton; + + @AndroidFindBy(accessibility = "CANCEL") + private WebElement changesCancelButton; + + public SettingsPageKannada(AppiumDriver driver) { + super(driver); + this.driver = driver; + PageFactory.initElements(new AppiumFieldDecorator(driver), this); + } + + public boolean isScheduledJobsSettingsTabDisplayed() { + return isElementDisplayed(scheduledJobsSettingsTab); + } + + public boolean isGlobalConfigSettingsTabDisplayed() { + return isElementDisplayed(globalConfigSettingsTab); + } + + public boolean isDeviceSettingsTabDisplayed() { + return isElementDisplayed(deviceSettingsTab); + } + + public void clickOnGlobalConfigSettingsTab() { + clickOnElement(globalConfigSettingsTab); + } + + public boolean isGlobalConfigSettingsHeaderDisplayed() { + return isElementDisplayed(globalConfigSettingsHeader); + } + + public void clickOnSubmitButton() { + clickOnElement(submitButton); + } + + public boolean isNoChangesToSaveDisplayed() { + return isElementDisplayed(noChangesToSave); + } + + public void clickOnDeviceSettingsTab() { + clickOnElement(deviceSettingsTab); + } + + public boolean isScanNowButtonDisplayed() { + return isElementDisplayed(scanNowButton); + } + + public void clickOnScanNowButton() { + clickOnElement(scanNowButton); + } + + public boolean isDeviceSettingsPageDisplayed() { + try { + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(30)); + wait.until(ExpectedConditions.visibilityOf(deviceSettingsPage)); + return isElementDisplayed(deviceSettingsPage); + } catch (TimeoutException e) { + return false; + } + } + + public boolean isFaceDeviceCardDisplayed() { + try { + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(30)); + wait.until(ExpectedConditions.visibilityOf(faceDeviceCard)); + return isElementDisplayed(faceDeviceCard); + } catch (TimeoutException e) { + return false; + } + } + + public boolean isIrisDeviceCardDisplayed() { + return isElementDisplayed(irisDeviceCard); + } + + public boolean isFingerDeviceCardDisplayed() { + return isElementDisplayed(fingerDeviceCard); + } + + public boolean isNoDevicesFoundDisplayed() { + return isElementDisplayed(noDevicesFound); + } + + public void clickOnScheduledJobsSettingsTab() { + clickOnElement(scheduledJobsSettingsTab); + } + + public void validateDeviceCard(String deviceName) { + // Wait a bit for the card to appear (helps if page loads slowly) + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10)); + WebElement card = wait.until(ExpectedConditions + .presenceOfElementLocated(By.xpath("//*[contains(@content-desc,'" + deviceName + "')]"))); + + String desc = card.getAttribute("content-desc"); + System.out.println("Card text: " + desc); + + Pattern p = Pattern.compile("ID:\\s*([a-zA-Z0-9]+)"); + Matcher m = p.matcher(desc); + assertTrue(m.find(), "ID not found or empty"); + + assertTrue(desc.contains("Name: " + deviceName), "Device name mismatch"); + assertTrue(desc.contains("Status: Ready"), "Device status not Ready"); + } + + public boolean isSubmitChangesPopupDisplayed() { + return isElementDisplayed(submitChangesPopup); + } + + public void clickOnChangesConfirmButton() { + clickOnElement(changesConfirmButton); + } + +} diff --git a/ui-test/src/main/java/regclient/pages/kannada/SupervisorBiometricVerificationpageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/SupervisorBiometricVerificationpageKannada.java index c662d0c6d..b6a00147d 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/SupervisorBiometricVerificationpageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/SupervisorBiometricVerificationpageKannada.java @@ -191,23 +191,23 @@ public void closeScanCapturePopUp() { } - public boolean isRightHandScanTitleDisplyed() { + public boolean isRightHandScanTitleDisplayed() { return isElementDisplayed(rightHandScanTitle); } - public boolean isLeftHandScanTitleDisplyed() { + public boolean isLeftHandScanTitleDisplayed() { return isElementDisplayed(leftHandScanTitle); } - public boolean isThumbsScanTitleDisplyed() { + public boolean isThumbsScanTitleDisplayed() { return isElementDisplayed(thumbsScanTitle); } - public boolean isFaceScanTitleDisplyed() { + public boolean isFaceScanTitleDisplayed() { return isElementDisplayed(faceScanTitle); } - public boolean isExceptionScanTitleDisplyed() { + public boolean isExceptionScanTitleDisplayed() { return isElementDisplayed(exceptionScanTitle); } @@ -231,23 +231,23 @@ public boolean isFaceScan() { return isElementDisplayed(faceCapturerHeader,2000); } - public boolean isIrisScanQualityDisplyed() { + public boolean isIrisScanQualityDisplayed() { return isElementDisplayed(irisScanQuality); } - public boolean isRightHandScanQualityDisplyed() { + public boolean isRightHandScanQualityDisplayed() { return isElementDisplayed(rightHandScanQuality); } - public boolean isLeftHandScanQualityDisplyed() { + public boolean isLeftHandScanQualityDisplayed() { return isElementDisplayed(leftHandScanQuality); } - public boolean isThumbsScanQualityDisplyed() { + public boolean isThumbsScanQualityDisplayed() { return isElementDisplayed(thumbsScanQuality); } - public boolean isFaceScanQualityDisplyed() { + public boolean isFaceScanQualityDisplayed() { return isElementDisplayed(faceScanQuality); } @@ -259,11 +259,11 @@ public void markOneEyeException() { clickOnElement(oneEyeException); } - public void markOneFingureException() { + public void markOneFingreException() { clickOnElement(firstFingureExceptionImage); } - public boolean isExceptionTypeTitleDisplyed() { + public boolean isExceptionTypeTitleDisplayed() { return isElementDisplayed(exceptionTypeTitle); } @@ -274,7 +274,7 @@ public void clickOnExceptionTypeTemporaryButton() { clickOnElement(temporaryButton); } - public boolean isCommentHeaderDisplyed() { + public boolean isCommentHeaderDisplayed() { return isElementDisplayed(commentsHeader); } @@ -293,11 +293,11 @@ public void clickOnThumbsScanTitle() { clickOnElement(thumbsScanTitle); } - public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed() { + public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplayed() { return isElementDisplayed(markingExceptionsOnFaceIsNotAllowedText); } - public boolean isZoomButtonDisplyed() { + public boolean isZoomButtonDisplayed() { return isElementDisplayed(zoomButton); } @@ -305,7 +305,7 @@ public void clickOnRightHandScanTitle() { clickOnElement(rightHandScanTitle); } - public void clickOnleftHandScanTitle() { + public void clickOnLeftHandScanTitle() { clickOnElement(leftHandScanTitle); } diff --git a/ui-test/src/main/java/regclient/pages/tamil/IntroducerBiometricPageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/IntroducerBiometricPageTamil.java index f312722ed..ab123c1c7 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/IntroducerBiometricPageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/IntroducerBiometricPageTamil.java @@ -131,31 +131,31 @@ public BiometricDetailsPage clickOnBackButton() { } @SuppressWarnings("deprecation") - public boolean isIntroducerBiometricsPageDisplyed() { + public boolean isIntroducerBiometricsPageDisplayed() { return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiSelector().descriptionContains(\""+FetchUiSpec.getValueUsingId("introducerBiometrics")+"\")"))); } - public boolean isExceptionTypeTitleDisplyed() { + public boolean isExceptionTypeTitleDisplayed() { return isElementDisplayed(exceptionTypeTitle); } - public boolean isRightHandScanTitleDisplyed() { + public boolean isRightHandScanTitleDisplayed() { return isElementDisplayed(rightHandScanTitle); } - public boolean isLeftHandScanTitleDisplyed() { + public boolean isLeftHandScanTitleDisplayed() { return isElementDisplayed(leftHandScanTitle); } - public boolean isThumbsScanTitleDisplyed() { + public boolean isThumbsScanTitleDisplayed() { return isElementDisplayed(thumbsScanTitle); } - public boolean isFaceScanTitleDisplyed() { + public boolean isFaceScanTitleDisplayed() { return isElementDisplayed(faceScanTitle); } - public boolean isExceptionScanTitleDisplyed() { + public boolean isExceptionScanTitleDisplayed() { return isElementDisplayed(exceptionScanTitle); } @@ -176,14 +176,14 @@ public boolean isThumbsScan() { } public boolean isFaceScan() { - return isElementDisplayed(faceCapturerHeader,2000); + return isElementDisplayed(faceCapturerHeader,2); } public boolean isExceptionScan() { - return isElementDisplayed(exceptionCapturerHeader,2000); + return isElementDisplayed(exceptionCapturerHeader,2); } - public boolean isNextButtonDisplyed() { + public boolean isNextButtonDisplayed() { return isElementDisplayed(nextButton); } diff --git a/ui-test/src/main/java/regclient/pages/tamil/ManageApplicationsPageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/ManageApplicationsPageTamil.java index b01b813c9..bb43b5af2 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/ManageApplicationsPageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/ManageApplicationsPageTamil.java @@ -69,10 +69,10 @@ public class ManageApplicationsPageTamil extends ManageApplicationsPage{ @AndroidFindBy(xpath = "//android.widget.TextView[@text='Documents'][2]") private WebElement documentsHeader; - @AndroidFindBy(accessibility = "android:id/button1") + @AndroidFindBy(id = "android:id/button1") private WebElement useThisFolderButton; - - @AndroidFindBy(accessibility = "android:id/button1") + + @AndroidFindBy(id = "android:id/button1") private WebElement allowButton; @AndroidFindBy(xpath = "//android.widget.TextView[@resource-id='android:id/title' and @text='Documents']") diff --git a/ui-test/src/main/java/regclient/pages/tamil/SettingsPageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/SettingsPageTamil.java new file mode 100644 index 000000000..cb9c6edad --- /dev/null +++ b/ui-test/src/main/java/regclient/pages/tamil/SettingsPageTamil.java @@ -0,0 +1,177 @@ +package regclient.pages.tamil; + +import static org.testng.Assert.assertTrue; + +import java.time.Duration; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.openqa.selenium.By; +import org.openqa.selenium.TimeoutException; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.PageFactory; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; + +import io.appium.java_client.AppiumDriver; +import io.appium.java_client.pagefactory.AndroidFindBy; +import io.appium.java_client.pagefactory.AppiumFieldDecorator; +import regclient.page.SettingsPage; + +public class SettingsPageTamil extends SettingsPage { + + private final AppiumDriver driver; + + @AndroidFindBy(accessibility = "Scheduled Jobs Settings\nTab 1 of 3") + private WebElement scheduledJobsSettingsTab; + + @AndroidFindBy(accessibility = "Global Config Settings\nTab 2 of 3") + private WebElement globalConfigSettingsTab; + + @AndroidFindBy(accessibility = "Device Settings\nTab 3 of 3") + private WebElement deviceSettingsTab; + + @AndroidFindBy(accessibility = "Key\nServer Value\nLocal Value") + private WebElement globalConfigSettingsHeader; + + @AndroidFindBy(accessibility = "SUBMIT") + private WebElement submitButton; + + @AndroidFindBy(accessibility = "No changes to save") + private WebElement noChangesToSave; + + @AndroidFindBy(accessibility = "Device Settings") + private WebElement deviceSettingsPage; + + @AndroidFindBy(accessibility = "Scan Now") + private WebElement scanNowButton; + + @AndroidFindBy(accessibility = "ID: e88198714e67562c\nName: io.mosip.mock.sbi.face\nStatus: Ready") + private WebElement faceDeviceCard; + + @AndroidFindBy(accessibility = "ID: e88198714e67562c\nName: io.mosip.mock.sbi.iris\nStatus: Ready") + private WebElement irisDeviceCard; + + @AndroidFindBy(accessibility = "ID: e88198714e67562c\nName: io.mosip.mock.sbi.finger\nStatus: Ready") + private WebElement fingerDeviceCard; + + @AndroidFindBy(accessibility = "No devices found") + private WebElement noDevicesFound; + + @AndroidFindBy(accessibility = "Submit Changes") + private WebElement submitChangesPopup; + + @AndroidFindBy(accessibility = "CONFIRM") + private WebElement changesConfirmButton; + + @AndroidFindBy(accessibility = "CANCEL") + private WebElement changesCancelButton; + + public SettingsPageTamil(AppiumDriver driver) { + super(driver); + this.driver = driver; + PageFactory.initElements(new AppiumFieldDecorator(driver), this); + } + + public boolean isScheduledJobsSettingsTabDisplayed() { + return isElementDisplayed(scheduledJobsSettingsTab); + } + + public boolean isGlobalConfigSettingsTabDisplayed() { + return isElementDisplayed(globalConfigSettingsTab); + } + + public boolean isDeviceSettingsTabDisplayed() { + return isElementDisplayed(deviceSettingsTab); + } + + public void clickOnGlobalConfigSettingsTab() { + clickOnElement(globalConfigSettingsTab); + } + + public boolean isGlobalConfigSettingsHeaderDisplayed() { + return isElementDisplayed(globalConfigSettingsHeader); + } + + public void clickOnSubmitButton() { + clickOnElement(submitButton); + } + + public boolean isNoChangesToSaveDisplayed() { + return isElementDisplayed(noChangesToSave); + } + + public void clickOnDeviceSettingsTab() { + clickOnElement(deviceSettingsTab); + } + + public boolean isScanNowButtonDisplayed() { + return isElementDisplayed(scanNowButton); + } + + public void clickOnScanNowButton() { + clickOnElement(scanNowButton); + } + + public boolean isDeviceSettingsPageDisplayed() { + try { + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(30)); + wait.until(ExpectedConditions.visibilityOf(deviceSettingsPage)); + return isElementDisplayed(deviceSettingsPage); + } catch (TimeoutException e) { + return false; + } + } + + public boolean isFaceDeviceCardDisplayed() { + try { + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(30)); + wait.until(ExpectedConditions.visibilityOf(faceDeviceCard)); + return isElementDisplayed(faceDeviceCard); + } catch (TimeoutException e) { + return false; + } + } + + public boolean isIrisDeviceCardDisplayed() { + return isElementDisplayed(irisDeviceCard); + } + + public boolean isFingerDeviceCardDisplayed() { + return isElementDisplayed(fingerDeviceCard); + } + + public boolean isNoDevicesFoundDisplayed() { + return isElementDisplayed(noDevicesFound); + } + + public void clickOnScheduledJobsSettingsTab() { + clickOnElement(scheduledJobsSettingsTab); + } + + public void validateDeviceCard(String deviceName) { + // Wait a bit for the card to appear (helps if page loads slowly) + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10)); + WebElement card = wait.until(ExpectedConditions + .presenceOfElementLocated(By.xpath("//*[contains(@content-desc,'" + deviceName + "')]"))); + + String desc = card.getAttribute("content-desc"); + System.out.println("Card text: " + desc); + + Pattern p = Pattern.compile("ID:\\s*([a-zA-Z0-9]+)"); + Matcher m = p.matcher(desc); + assertTrue(m.find(), "ID not found or empty"); + + assertTrue(desc.contains("Name: " + deviceName), "Device name mismatch"); + assertTrue(desc.contains("Status: Ready"), "Device status not Ready"); + } + + public boolean isSubmitChangesPopupDisplayed() { + return isElementDisplayed(submitChangesPopup); + } + + public void clickOnChangesConfirmButton() { + clickOnElement(changesConfirmButton); + } + +} diff --git a/ui-test/src/main/java/regclient/pages/tamil/SupervisorBiometricVerificationpageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/SupervisorBiometricVerificationpageTamil.java index c515e2611..676759af3 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/SupervisorBiometricVerificationpageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/SupervisorBiometricVerificationpageTamil.java @@ -191,23 +191,23 @@ public void closeScanCapturePopUp() { } - public boolean isRightHandScanTitleDisplyed() { + public boolean isRightHandScanTitleDisplayed() { return isElementDisplayed(rightHandScanTitle); } - public boolean isLeftHandScanTitleDisplyed() { + public boolean isLeftHandScanTitleDisplayed() { return isElementDisplayed(leftHandScanTitle); } - public boolean isThumbsScanTitleDisplyed() { + public boolean isThumbsScanTitleDisplayed() { return isElementDisplayed(thumbsScanTitle); } - public boolean isFaceScanTitleDisplyed() { + public boolean isFaceScanTitleDisplayed() { return isElementDisplayed(faceScanTitle); } - public boolean isExceptionScanTitleDisplyed() { + public boolean isExceptionScanTitleDisplayed() { return isElementDisplayed(exceptionScanTitle); } @@ -231,23 +231,23 @@ public boolean isFaceScan() { return isElementDisplayed(faceCapturerHeader,2000); } - public boolean isIrisScanQualityDisplyed() { + public boolean isIrisScanQualityDisplayed() { return isElementDisplayed(irisScanQuality); } - public boolean isRightHandScanQualityDisplyed() { + public boolean isRightHandScanQualityDisplayed() { return isElementDisplayed(rightHandScanQuality); } - public boolean isLeftHandScanQualityDisplyed() { + public boolean isLeftHandScanQualityDisplayed() { return isElementDisplayed(leftHandScanQuality); } - public boolean isThumbsScanQualityDisplyed() { + public boolean isThumbsScanQualityDisplayed() { return isElementDisplayed(thumbsScanQuality); } - public boolean isFaceScanQualityDisplyed() { + public boolean isFaceScanQualityDisplayed() { return isElementDisplayed(faceScanQuality); } @@ -259,11 +259,11 @@ public void markOneEyeException() { clickOnElement(oneEyeException); } - public void markOneFingureException() { + public void markOneFingreException() { clickOnElement(firstFingureExceptionImage); } - public boolean isExceptionTypeTitleDisplyed() { + public boolean isExceptionTypeTitleDisplayed() { return isElementDisplayed(exceptionTypeTitle); } @@ -274,7 +274,7 @@ public void clickOnExceptionTypeTemporaryButton() { clickOnElement(temporaryButton); } - public boolean isCommentHeaderDisplyed() { + public boolean isCommentHeaderDisplayed() { return isElementDisplayed(commentsHeader); } @@ -293,11 +293,11 @@ public void clickOnThumbsScanTitle() { clickOnElement(thumbsScanTitle); } - public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed() { + public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplayed() { return isElementDisplayed(markingExceptionsOnFaceIsNotAllowedText); } - public boolean isZoomButtonDisplyed() { + public boolean isZoomButtonDisplayed() { return isElementDisplayed(zoomButton); } @@ -305,7 +305,7 @@ public void clickOnRightHandScanTitle() { clickOnElement(rightHandScanTitle); } - public void clickOnleftHandScanTitle() { + public void clickOnLeftHandScanTitle() { clickOnElement(leftHandScanTitle); } @@ -390,4 +390,5 @@ public void clickOnHomeButton() { public void clickOnBackButton() { driver.navigate().back(); } + } From 13a5216e123d115ada6befb7bb6a108a17aba2cd Mon Sep 17 00:00:00 2001 From: damodar Date: Mon, 17 Nov 2025 01:31:18 +0530 Subject: [PATCH 05/21] MOSIP-42652: ARC UI automation Signed-off-by: damodar --- ui-test/pom.xml | 472 ++++++------ .../androidTestCases/BiometricCorrection.java | 365 ++++++---- .../regclient/androidTestCases/LostUin.java | 227 +++--- .../NewRegistrationAdult.java | 228 +++--- .../NewRegistrationAdultException.java | 248 ++++--- .../NewRegistrationInfant.java | 231 +++--- .../NewRegistrationMinor.java | 246 ++++--- .../NewRegistrationMinorException.java | 269 ++++--- .../PreRegFetchingPacket.java | 689 ++++++++++-------- .../androidTestCases/ResetPassword.java | 58 +- .../regclient/androidTestCases/Settings.java | 74 +- .../UpdateMyUINUpdateDemographicDetails.java | 236 +++--- .../androidTestCases/UpdateMyUinInfant.java | 248 ++++--- .../androidTestCases/UpdateMyUinMinor.java | 257 ++++--- .../UpdateMyUinUpdateBiometrics.java | 240 +++--- .../UpdateMyUinUpdateDocuments.java | 236 +++--- .../regclient/androidTestCases/logintest.java | 532 +++++++------- .../java/regclient/api/AdminTestUtil.java | 26 +- .../regclient/api/KeycloakUserManager.java | 4 +- .../page/ApplicantBiometricsPage.java | 20 +- .../main/java/regclient/page/BasePage.java | 12 +- .../page/UpdateOperatorBiometricspage.java | 29 +- .../arabic/AcknowledgementPageArabic.java | 4 +- .../arabic/ApplicantBiometricsPageArabic.java | 25 +- .../arabic/BiometricDetailsPageArabic.java | 30 +- .../arabic/DemographicDetailsPageArabic.java | 2 +- .../pages/arabic/PreviewPageArabic.java | 4 +- .../pages/arabic/ProfilePageArabic.java | 6 +- .../arabic/RegistrationTasksPageArabic.java | 2 +- .../UpdateOperatorBiometricspageArabic.java | 30 +- .../ApplicantBiometricsPageEnglish.java | 20 +- .../UpdateOperatorBiometricspageEnglish.java | 29 +- .../french/AcknowledgementPageFrench.java | 4 +- .../french/ApplicantBiometricsPageFrench.java | 22 +- .../french/BiometricDetailsPageFrench.java | 81 +- .../pages/french/ConsentPageFrench.java | 8 +- .../french/DemographicDetailsPageFrench.java | 8 +- .../french/DocumentUploadPageFrench.java | 4 +- .../french/IntroducerBiometricPageFrench.java | 4 +- .../pages/french/PreviewPageFrench.java | 4 +- .../pages/french/ProfilePageFrench.java | 6 +- .../french/RegistrationTasksPageFrench.java | 2 +- .../french/SelectLanguagePageFrench.java | 5 - ...rvisorBiometricVerificationpageFrench.java | 3 - .../UpdateOperatorBiometricspageFrench.java | 29 +- .../pages/french/UpdateUINPageFrench.java | 2 +- .../pages/hindi/AcknowledgementPageHindi.java | 4 +- .../hindi/ApplicantBiometricsPageHindi.java | 24 +- .../hindi/BiometricDetailsPageHindi.java | 26 +- .../pages/hindi/ConsentPageHindi.java | 8 +- .../hindi/DemographicDetailsPageHindi.java | 8 +- .../pages/hindi/DocumentUploadPageHindi.java | 4 +- .../hindi/IntroducerBiometricPageHindi.java | 4 +- .../pages/hindi/OnBoardPageHindi.java | 2 - .../pages/hindi/OperationalTaskPageHindi.java | 2 - .../pages/hindi/PendingApprovalHindi.java | 23 +- .../pages/hindi/PreviewPageHindi.java | 6 +- .../pages/hindi/ProfilePageHindi.java | 6 +- .../hindi/RegistrationTasksPageHindi.java | 2 +- .../pages/hindi/SelectLanguagePageHindi.java | 7 - ...ervisorBiometricVerificationpageHindi.java | 6 - .../UpdateOperatorBiometricspageHindi.java | 28 +- .../pages/hindi/UpdateUINPageHindi.java | 2 +- .../kannada/AcknowledgementPageKannada.java | 5 +- .../ApplicantBiometricsPageKannada.java | 24 +- .../kannada/BiometricDetailsPageKannada.java | 30 +- .../pages/kannada/ConsentPageKannada.java | 8 +- .../pages/kannada/DashboardPageKannada.java | 24 +- .../DemographicDetailsPageKannada.java | 8 +- .../kannada/DocumentuploadPageKannada.java | 4 +- .../IntroducerBiometricPageKannada.java | 4 +- .../kannada/OperationalTaskPageKannada.java | 2 - .../pages/kannada/PreviewPageKannada.java | 4 +- .../pages/kannada/ProfilePageKannada.java | 4 +- .../kannada/RegistrationTasksPageKannada.java | 2 +- .../kannada/SelectLanguagePageKannada.java | 8 - .../pages/kannada/SettingsPageKannada.java | 3 - ...visorBiometricVerificationpageKannada.java | 2 - .../UpdateOperatorBiometricspageKannada.java | 29 +- .../pages/kannada/UpdateUINPageKannada.java | 2 +- .../pages/tamil/AcknowledgementPageTamil.java | 7 +- .../tamil/ApplicantBiometricsPageTamil.java | 24 +- .../tamil/BiometricDetailsPageTamil.java | 29 +- .../tamil/DemographicDetailsPageTamil.java | 14 +- .../pages/tamil/DocumentuploadPageTamil.java | 2 +- .../tamil/IntroducerBiometricPageTamil.java | 4 +- .../pages/tamil/PreviewPageTamil.java | 6 +- .../pages/tamil/ProfilePageTamil.java | 6 +- .../tamil/RegistrationTasksPageTamil.java | 2 +- .../pages/tamil/SelectLanguagePageTamil.java | 7 - ...ervisorBiometricVerificationpageTamil.java | 6 +- .../UpdateOperatorBiometricspageTamil.java | 29 +- .../pages/tamil/UpdateUINPageTamil.java | 2 +- 93 files changed, 3069 insertions(+), 2675 deletions(-) diff --git a/ui-test/pom.xml b/ui-test/pom.xml index ccc8d0339..23c705114 100644 --- a/ui-test/pom.xml +++ b/ui-test/pom.xml @@ -1,265 +1,209 @@ - 4.0.0 - - io.mosip.regclient - uitest-regclient - 1.0.0-SNAPSHOT - jar - uitest-regclient - Parent project of MOSIP regclient mobile automation - https://github.com/mosip/android-registration-client - - - 21 - 21 - UTF-8 - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.10.1 - - ${maven.compiler.source} - ${maven.compiler.target} - - - - - org.apache.maven.plugins - maven-jar-plugin - 3.2.0 - - - - regclient.utils.TestRunner - - - - - - - org.apache.maven.plugins - maven-shade-plugin - 3.3.0 - - - package - shade - - - *:* - - META-INF/*.SF - META-INF/*.DSA - META-INF/*.RSA - - - - - - regclient.utils.TestRunner - - - - - - - - - - - - - io.appium - java-client - 8.6.0 - - - - org.asynchttpclient - async-http-client - 2.12.4 - - - - org.apache.commons - commons-lang3 - 3.18.0 - - - - io.netty - netty-codec-http - 4.1.125.Final - - - - com.googlecode.json-simple - json-simple - 1.1.1 - - - - com.github.javafaker - javafaker - 1.0.2 - - - - org.testng - testng - 7.7.1 - - - - com.fasterxml.jackson.core - jackson-databind - 2.13.4.1 - - - - org.keycloak - keycloak-admin-client - 23.0.4 - - - - com.fasterxml.jackson.core - jackson-core - 2.15.2 - - - - - - - org.jboss.resteasy - resteasy-client - 6.2.4.Final - - - - org.jboss.resteasy - resteasy-jackson2-provider - 6.2.4.Final - - - - org.jboss.resteasy - resteasy-jaxb-provider - 6.2.4.Final - - - - org.json - json - 20231013 - - - - commons-io - commons-io - 2.14.0 - - - - com.aventstack - extentreports - 5.1.0 - - - - io.rest-assured - rest-assured - 5.3.0 - - - - org.apache.logging.log4j - log4j-api - 2.23.1 - - - - org.slf4j - slf4j-api - 2.0.13 - - - - org.apache.logging.log4j - log4j-slf4j2-impl - 2.23.1 - - - - org.yaml - snakeyaml - 2.0 - - - - commons-beanutils - commons-beanutils - 1.11.0 - - - - org.apache.logging.log4j - log4j-core - 2.23.1 - - - - org.jboss.resteasy - resteasy-multipart-provider - 6.2.4.Final - - - - com.sun.mail - jakarta.mail - 2.0.2 - - - - io.mosip.preregistration - apitest-prereg - 1.3.0-beta.1 - - - - com.google.guava - guava - 32.0.0-jre - - - - io.mosip.testrig.apitest.commons - apitest-commons - 1.3.5-SNAPSHOT - - - org.slf4j - slf4j-api - - - com.google.guava - guava - - - - - - io.mosip.testrig.adminui - uitest-admin - 1.2.1-SNAPSHOT - - - + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + 4.0.0 + io.mosip.regclient + uitest-regclient + 1.0.0-SNAPSHOT + jar + uitest-regclient + Parent project of MOSIP regclient mobile automation + https://github.com/mosip/android-registration-client + + + 21 + 21 + UTF-8 + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.10.1 + + ${maven.compiler.source} + ${maven.compiler.target} + + + + org.apache.maven.plugins + maven-jar-plugin + 3.2.0 + + + + regclient.utils.TestRunner + + + + + + + org.apache.maven.plugins + maven-shade-plugin + 3.3.0 + + + package + + shade + + + + + *:* + + META-INF/*.SF + META-INF/*.DSA + META-INF/*.RSA + + + + + + regclient.utils.TestRunner + + + + + + + + + + + io.appium + java-client + 8.6.0 + + + com.googlecode.json-simple + json-simple + 1.1.1 + + + com.github.javafaker + javafaker + 1.0.2 + + + + org.testng + testng + 7.7.1 + + + com.fasterxml.jackson.core + jackson-databind + 2.13.3 + + + org.keycloak + keycloak-admin-client + 17.0.1 + + + com.fasterxml.jackson.core + jackson-core + 2.15.2 + + + org.jboss.resteasy + resteasy-jaxrs + 3.15.0.Final + + + org.json + json + 20230227 + + + commons-io + commons-io + 2.13.0 + + + com.aventstack + extentreports + 5.1.0 + + + io.rest-assured + rest-assured + 5.3.0 + + + org.apache.logging.log4j + log4j-api + 2.11.1 + + + org.slf4j + slf4j-log4j12 + 1.6.2 + + + org.yaml + snakeyaml + 1.29 + + + commons-beanutils + commons-beanutils + 1.9.4 + + + org.apache.logging.log4j + log4j-core + 2.11.1 + + + org.jboss.resteasy + resteasy-multipart-provider + 3.15.0.Final + + + org.jboss.resteasy + resteasy-client + 3.15.0.Final + + + org.jboss.resteasy + resteasy-client-microprofile + 3.15.0.Final + + + org.jboss.resteasy + resteasy-jackson2-provider + 3.15.0.Final + + + io.mosip.preregistration + apitest-prereg + 1.3.0-beta.1 + + + org.jboss.resteasy + resteasy-jaxb-provider + 3.15.0.Final + + + io.mosip.testrig.apitest.commons + apitest-commons + 1.3.4 + + + org.slf4j + slf4j-api + + + com.google.guava + guava + + + + + \ No newline at end of file diff --git a/ui-test/src/main/java/regclient/androidTestCases/BiometricCorrection.java b/ui-test/src/main/java/regclient/androidTestCases/BiometricCorrection.java index 5c9db9575..6816f9da7 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/BiometricCorrection.java +++ b/ui-test/src/main/java/regclient/androidTestCases/BiometricCorrection.java @@ -157,18 +157,22 @@ public void biometricCorrection() throws InterruptedException { // New registration with low biometric score - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + final String language = TestDataReader.readData("language"); + + if ("eng".equalsIgnoreCase(language)) { loginPage = new LoginPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { loginPage = new LoginPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { loginPage = new LoginPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { loginPage = new LoginPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { loginPage = new LoginPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { loginPage = new LoginPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } loginPage.selectLanguage(); @@ -180,35 +184,39 @@ public void biometricCorrection() throws InterruptedException { loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); loginPage.clickOnloginButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnNewRegistrationButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), "Verify if select language page is loaded"); selectLanguagePage.clickOnSubmitButtonWithoutSelectingLanguage(); @@ -225,34 +233,38 @@ public void biometricCorrection() throws InterruptedException { selectLanguagePage.clickOnSubmitButton(); for (String screen : screenOrder) { if (screen.equals("consentdet") || screen.equals("consent")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { consentPage = new ConsentPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { consentPage = new ConsentPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { consentPage = new ConsentPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { consentPage = new ConsentPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { consentPage = new ConsentPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { consentPage = new ConsentPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } consentPage.clickOnInformedButton(); } else if (screen.equals("DemographicDetails")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(demographicPage.isPageDisplayed("DemographicDetails"), "Verify if demographic details page is displayed"); @@ -261,18 +273,20 @@ public void biometricCorrection() throws InterruptedException { demographicPage.clickOnContinueButton(); } else if (screen.equals("Documents")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(), "Verify if doccumentupload page is displayed"); @@ -280,39 +294,42 @@ public void biometricCorrection() throws InterruptedException { documentuploadPage.clickOnContinueButton(); } else if (screen.equals("BiometricDetails")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), "Verify if biometric details page is displayed"); if (FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIrisScan(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -335,7 +352,7 @@ public void biometricCorrection() throws InterruptedException { "Verify if biometric details page is displayed"); applicantBiometricsPage = biometricDetailsPage.clickOnRightHandScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -350,7 +367,7 @@ public void biometricCorrection() throws InterruptedException { "Verify if biometric details page is displayed"); applicantBiometricsPage = biometricDetailsPage.clickOnLeftHandScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -365,7 +382,7 @@ public void biometricCorrection() throws InterruptedException { "Verify if biometric details page is displayed"); applicantBiometricsPage = biometricDetailsPage.clickOnThumbsScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -380,7 +397,7 @@ public void biometricCorrection() throws InterruptedException { "Verify if biometric details page is displayed"); biometricDetailsPage.clickOnFaceScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -402,18 +419,20 @@ public void biometricCorrection() throws InterruptedException { biometricDetailsPage.clickOnContinueButton(); } } - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { previewPage = new PreviewPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { previewPage = new PreviewPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { previewPage = new PreviewPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { previewPage = new PreviewPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { previewPage = new PreviewPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { previewPage = new PreviewPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(previewPage.isNewRegistrationTitleDisplayed(), "Verify if new Registration title is displayed"); @@ -427,36 +446,40 @@ public void biometricCorrection() throws InterruptedException { String Aid = previewPage.getAID(); String emailId = previewPage.getEmailId(); previewPage.clickOnContinueButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(authenticationPage.isAuthenticationPageDisplayed(), "Verify if authentication details page is displayed"); authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); authenticationPage.clickOnAuthenticatenButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(), "Verify if acknowledgement details page is displayed"); @@ -468,36 +491,39 @@ public void biometricCorrection() throws InterruptedException { assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnOperationalTasksTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); assertTrue(operationalTaskPage.isPendingApprovalTitleDisplayed(), "Verify if pending approval tite displayed"); operationalTaskPage.clickPendingApprovalTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed"); pendingApproval.enterAID(Aid); @@ -535,19 +561,20 @@ public void biometricCorrection() throws InterruptedException { "Verify if application upload tite displayed"); operationalTaskPage.clickApplicationUploadTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), "Verify if manage Applications Page displayed"); @@ -582,18 +609,20 @@ public void biometricCorrection() throws InterruptedException { "Verify if biometric correction is displayed"); registrationTasksPage.clickOnBiometricCorrectionButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), "Verify if select language page is loaded"); selectLanguagePage.clickOnSubmitButtonWithoutSelectingLanguage(); @@ -610,49 +639,54 @@ public void biometricCorrection() throws InterruptedException { selectLanguagePage.clickOnSubmitButton(); for (String screen : screenOrder) { if (screen.equals("consentdet") || screen.equals("consent")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { consentPage = new ConsentPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { consentPage = new ConsentPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { consentPage = new ConsentPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { consentPage = new ConsentPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { consentPage = new ConsentPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { consentPage = new ConsentPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(consentPage.isPageDisplayed("consentdet"), "Verify if Consent page is loaded"); consentPage.clickOnInformedButton(); } else if (screen.equals("BiometricDetails")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), "Verify if biometric details page is displayed"); @@ -664,7 +698,7 @@ public void biometricCorrection() throws InterruptedException { if (FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIrisScan(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -687,7 +721,7 @@ public void biometricCorrection() throws InterruptedException { "Verify if biometric details page is displayed"); applicantBiometricsPage = biometricDetailsPage.clickOnRightHandScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -701,7 +735,7 @@ public void biometricCorrection() throws InterruptedException { "Verify if biometric details page is displayed"); applicantBiometricsPage = biometricDetailsPage.clickOnLeftHandScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -715,7 +749,7 @@ public void biometricCorrection() throws InterruptedException { "Verify if biometric details page is displayed"); applicantBiometricsPage = biometricDetailsPage.clickOnThumbsScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -729,7 +763,7 @@ public void biometricCorrection() throws InterruptedException { "Verify if biometric details page is displayed"); biometricDetailsPage.clickOnFaceScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -741,18 +775,21 @@ public void biometricCorrection() throws InterruptedException { "Verify if biometric details page is displayed"); biometricDetailsPage.clickOnContinueButton(); } - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + + if ("eng".equalsIgnoreCase(language)) { previewPage = new PreviewPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { previewPage = new PreviewPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { previewPage = new PreviewPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { previewPage = new PreviewPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { previewPage = new PreviewPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { previewPage = new PreviewPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } } @@ -765,36 +802,40 @@ public void biometricCorrection() throws InterruptedException { "Verify if Documents Information In PreviewPage is displayed"); // assertTrue(previewPage.isBiometricsInformationInPreviewPagePageDisplayed(),"Verify if Biometrics Information In PreviewPage is displayed"); previewPage.clickOnContinueButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(authenticationPage.isAuthenticationPageDisplayed(), "Verify if authentication details page is displayed"); authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); authenticationPage.clickOnAuthenticatenButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(), "Verify if acknowledgement details page is displayed"); @@ -806,36 +847,39 @@ public void biometricCorrection() throws InterruptedException { assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnOperationalTasksTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); assertTrue(operationalTaskPage.isPendingApprovalTitleDisplayed(), "Verify if pending approval tite displayed"); operationalTaskPage.clickPendingApprovalTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed"); pendingApproval.enterAID(Aid); @@ -874,19 +918,20 @@ public void biometricCorrection() throws InterruptedException { "Verify if application upload tite displayed"); operationalTaskPage.clickApplicationUploadTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), "Verify if manage Applications Page displayed"); diff --git a/ui-test/src/main/java/regclient/androidTestCases/LostUin.java b/ui-test/src/main/java/regclient/androidTestCases/LostUin.java index 03b724ef9..31f699574 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/LostUin.java +++ b/ui-test/src/main/java/regclient/androidTestCases/LostUin.java @@ -142,18 +142,22 @@ public void lostUinAdult() { ManageApplicationsPage manageApplicationsPage = null; ProfilePage profilePage = null; - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + final String language = TestDataReader.readData("language"); + + if ("eng".equalsIgnoreCase(language)) { loginPage = new LoginPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { loginPage = new LoginPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { loginPage = new LoginPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { loginPage = new LoginPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { loginPage = new LoginPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { loginPage = new LoginPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } loginPage.selectLanguage(); @@ -165,36 +169,39 @@ public void lostUinAdult() { loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); loginPage.clickOnloginButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnLostUinButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), "Verify if select language page is loaded"); selectLanguagePage.clickOnSubmitButtonWithoutSelectingLanguage(); @@ -211,18 +218,20 @@ public void lostUinAdult() { selectLanguagePage.clickOnSubmitButton(); for (String screen : screenOrder) { if (screen.equals("consentdet") || screen.equals("consent")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { consentPage = new ConsentPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { consentPage = new ConsentPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { consentPage = new ConsentPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { consentPage = new ConsentPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { consentPage = new ConsentPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { consentPage = new ConsentPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(consentPage.isPageDisplayed("consentdet"), "Verify if Consent page is loaded"); // assertTrue(consentPage.isCheckBoxReadable(), "Verify if the check box in readable"); @@ -232,69 +241,75 @@ public void lostUinAdult() { } else if (screen.equals("DemographicDetails")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(demographicPage.isPageDisplayed("DemographicDetails"), "Verify if demographic details page is displayed"); demographicPage.clickOnContinueButton(); } else if (screen.equals("Documents")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(), "Verify if doccumentupload page is displayed"); documentuploadPage.clickOnContinueButton(); } else if (screen.equals("BiometricDetails")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), "Verify if biometric details page is displayed"); @@ -305,7 +320,7 @@ public void lostUinAdult() { if (FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIrisScan(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -328,7 +343,7 @@ public void lostUinAdult() { "Verify if biometric details page is displayed"); applicantBiometricsPage = biometricDetailsPage.clickOnRightHandScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -342,7 +357,7 @@ public void lostUinAdult() { "Verify if biometric details page is displayed"); applicantBiometricsPage = biometricDetailsPage.clickOnLeftHandScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -356,7 +371,7 @@ public void lostUinAdult() { "Verify if biometric details page is displayed"); applicantBiometricsPage = biometricDetailsPage.clickOnThumbsScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -370,7 +385,7 @@ public void lostUinAdult() { "Verify if biometric details page is displayed"); biometricDetailsPage.clickOnFaceScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -383,18 +398,20 @@ public void lostUinAdult() { biometricDetailsPage.clickOnContinueButton(); } } - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { previewPage = new PreviewPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { previewPage = new PreviewPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { previewPage = new PreviewPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { previewPage = new PreviewPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { previewPage = new PreviewPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { previewPage = new PreviewPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(previewPage.isLostUinTitleDisplayed(), "Verify if lost uin title is displayed"); @@ -408,36 +425,40 @@ public void lostUinAdult() { "Verify if Biometrics Information In PreviewPage is displayed"); String Aid = previewPage.getAID(); previewPage.clickOnContinueButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(authenticationPage.isAuthenticationPageDisplayed(), "Verify if authentication details page is displayed"); authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); authenticationPage.clickOnAuthenticatenButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(), "Verify if acknowledgement details page is displayed"); @@ -449,36 +470,39 @@ public void lostUinAdult() { assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnOperationalTasksTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); assertTrue(operationalTaskPage.isPendingApprovalTitleDisplayed(), "Verify if pending approval tite displayed"); operationalTaskPage.clickPendingApprovalTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed"); pendingApproval.clickOnAID(Aid); @@ -515,19 +539,20 @@ public void lostUinAdult() { "Verify if application upload tite displayed"); operationalTaskPage.clickApplicationUploadTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), "Verify if manage Applications Page displayed"); @@ -553,18 +578,20 @@ public void lostUinAdult() { assertTrue(registrationTasksPage.isProfileTitleDisplayed(), "Verify if profile title display on homepage"); registrationTasksPage.clickProfileButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { profilePage = new ProfilePageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { profilePage = new ProfilePageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { profilePage = new ProfilePageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { profilePage = new ProfilePageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { profilePage = new ProfilePageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { profilePage = new ProfilePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } // assertTrue(profilePage.isProfileTitleDisplayed(),"Verify if profile title // display on Profilepage"); diff --git a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdult.java b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdult.java index 3ae53be42..ae33f0708 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdult.java +++ b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdult.java @@ -153,19 +153,24 @@ public void newRegistrationAdult() throws InterruptedException { ManageApplicationsPage manageApplicationsPage = null; ProfilePage profilePage = null; - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + final String language = TestDataReader.readData("language"); + + if ("eng".equalsIgnoreCase(language)) { loginPage = new LoginPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { loginPage = new LoginPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { loginPage = new LoginPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { loginPage = new LoginPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { loginPage = new LoginPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { loginPage = new LoginPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } + loginPage.selectLanguage(); assertTrue(loginPage.isWelcomeMessageInSelectedLanguageDisplayed(), @@ -176,18 +181,20 @@ public void newRegistrationAdult() throws InterruptedException { loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); loginPage.clickOnloginButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } registrationTasksPage.handleLocationPermission(); @@ -197,18 +204,20 @@ public void newRegistrationAdult() throws InterruptedException { registrationTasksPage.clickOnNewRegistrationButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), "Verify if select language page is loaded"); selectLanguagePage.clickOnSubmitButtonWithoutSelectingLanguage(); @@ -225,20 +234,20 @@ public void newRegistrationAdult() throws InterruptedException { selectLanguagePage.clickOnSubmitButton(); for (String screen : screenOrder) { if (screen.equals("consentdet") || screen.equals("consent")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { consentPage = new ConsentPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { consentPage = new ConsentPageHindi(driver); - } - - else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { consentPage = new ConsentPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { consentPage = new ConsentPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { consentPage = new ConsentPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { consentPage = new ConsentPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(consentPage.isPageDisplayed("consentdet"), "Verify if Consent page is loaded"); assertTrue(consentPage.isCheckBoxReadable(), "Verify if the check box in readable"); @@ -247,18 +256,20 @@ else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { consentPage.clickOnInformedButton(); } else if (screen.equals("DemographicDetails")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(demographicPage.isPageDisplayed("DemographicDetails"), "Verify if demographic details page is displayed"); @@ -267,18 +278,20 @@ else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { demographicPage.clickOnContinueButton(); } else if (screen.equals("Documents")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(), "Verify if doccumentupload page is displayed"); @@ -286,39 +299,42 @@ else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { documentuploadPage.clickOnContinueButton(); } else if (screen.equals("BiometricDetails")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), "Verify if biometric details page is displayed"); if (FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIrisScan(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -341,7 +357,7 @@ else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { "Verify if biometric details page is displayed"); applicantBiometricsPage = biometricDetailsPage.clickOnRightHandScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -355,7 +371,7 @@ else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { "Verify if biometric details page is displayed"); applicantBiometricsPage = biometricDetailsPage.clickOnLeftHandScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -369,7 +385,7 @@ else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { "Verify if biometric details page is displayed"); applicantBiometricsPage = biometricDetailsPage.clickOnThumbsScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -383,7 +399,7 @@ else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { "Verify if biometric details page is displayed"); biometricDetailsPage.clickOnFaceScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -396,18 +412,20 @@ else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { biometricDetailsPage.clickOnContinueButton(); } } - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { previewPage = new PreviewPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { previewPage = new PreviewPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { previewPage = new PreviewPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { previewPage = new PreviewPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { previewPage = new PreviewPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { previewPage = new PreviewPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(previewPage.isNewRegistrationTitleDisplayed(), "Verify if new Registration title is displayed"); @@ -420,36 +438,40 @@ else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { // assertTrue(previewPage.isBiometricsInformationInPreviewPagePageDisplayed(),"Verify if Biometrics Information In PreviewPage is displayed"); String Aid = previewPage.getAID(); previewPage.clickOnContinueButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(authenticationPage.isAuthenticationPageDisplayed(), "Verify if authentication details page is displayed"); authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); authenticationPage.clickOnAuthenticatenButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(), "Verify if acknowledgement details page is displayed"); @@ -461,36 +483,39 @@ else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnOperationalTasksTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); assertTrue(operationalTaskPage.isPendingApprovalTitleDisplayed(), "Verify if pending approval tite displayed"); operationalTaskPage.clickPendingApprovalTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed"); pendingApproval.enterAID(Aid); @@ -536,19 +561,20 @@ else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { "Verify if application upload tite displayed"); operationalTaskPage.clickApplicationUploadTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), "Verify if manage Applications Page displayed"); @@ -573,18 +599,20 @@ else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { assertTrue(registrationTasksPage.isProfileTitleDisplayed(), "Verify if profile title display on homepage"); registrationTasksPage.clickProfileButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { profilePage = new ProfilePageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { profilePage = new ProfilePageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { profilePage = new ProfilePageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { profilePage = new ProfilePageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { profilePage = new ProfilePageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { profilePage = new ProfilePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } // assertTrue(profilePage.isProfileTitleDisplayed(),"Verify if profile title // display on Profilepage"); diff --git a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdultException.java b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdultException.java index 396e4bed0..86a138dad 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdultException.java +++ b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdultException.java @@ -142,18 +142,22 @@ public void newRegistrationAdultException() throws InterruptedException { ManageApplicationsPage manageApplicationsPage = null; ProfilePage profilePage = null; - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + final String language = TestDataReader.readData("language"); + + if ("eng".equalsIgnoreCase(language)) { loginPage = new LoginPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { loginPage = new LoginPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { loginPage = new LoginPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { loginPage = new LoginPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { loginPage = new LoginPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { loginPage = new LoginPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } loginPage.selectLanguage(); loginPage.enterUserName(KeycloakUserManager.moduleSpecificUser); @@ -161,33 +165,36 @@ public void newRegistrationAdultException() throws InterruptedException { loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); loginPage.clickOnloginButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } registrationTasksPage.clickOnNewRegistrationButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } selectLanguagePage.selectSecondLanguage(); @@ -196,71 +203,78 @@ public void newRegistrationAdultException() throws InterruptedException { selectLanguagePage.clickOnSubmitButton(); for (String screen : screenOrder) { if (screen.equals("consentdet") || screen.equals("consent")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { consentPage = new ConsentPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { consentPage = new ConsentPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { consentPage = new ConsentPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { consentPage = new ConsentPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { consentPage = new ConsentPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { consentPage = new ConsentPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } consentPage.clickOnInformedButton(); } else if (screen.equals("DemographicDetails")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } demographicPage.fillDemographicDetailsPage("adult"); demographicPage.clickOnContinueButton(); } else if (screen.equals("Documents")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(), "Verify if doccumentupload page is displayed"); documentuploadPage.uploadDoccuments("adult", "withoutReferenceNumber"); documentuploadPage.clickOnContinueButton(); } else if (screen.equals("BiometricDetails")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), "Verify if biometric details page is displayed"); @@ -268,32 +282,33 @@ public void newRegistrationAdultException() throws InterruptedException { assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), "Verify if user is not navigated to the next page without biometric scan"); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } if (FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIrisScan(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnMarkExceptionButton(); - assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(), + assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplayed(), "Verify if applicant biometric mark exception is displayed"); applicantBiometricsPage.markOneEyeException(); - assertTrue(applicantBiometricsPage.isExceptionCountDisplyed(), + assertTrue(applicantBiometricsPage.isExceptionCountDisplayed(), "Verify if exception count is displayed"); // applicantBiometricsPage.clickOnExceptionTypeTemporaryButton(); // @@ -313,18 +328,18 @@ public void newRegistrationAdultException() throws InterruptedException { "Verify if biometric details page is displayed"); applicantBiometricsPage = biometricDetailsPage.clickOnRightHandScanIcon(); - assertTrue(applicantBiometricsPage.isRightHandScanTitleDisplyed(), + assertTrue(applicantBiometricsPage.isRightHandScanTitleDisplayed(), "Verify if right hand scan is displayed"); applicantBiometricsPage.clickOnMarkExceptionButton(); - assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(), + assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplayed(), "Verify if applicant biometric mark exception is displayed"); - assertTrue(applicantBiometricsPage.isRightHandScanTitleDisplyed(), + assertTrue(applicantBiometricsPage.isRightHandScanTitleDisplayed(), "Verify if applicant right hand scan is displayed"); applicantBiometricsPage.markOneFingureException(); - assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(), + assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplayed(), "Verify if applicant biometric mark exception is displayed"); applicantBiometricsPage.clickOnRightHandScanTitle(); applicantBiometricsPage.clickOnScanButton(); @@ -339,20 +354,20 @@ public void newRegistrationAdultException() throws InterruptedException { "Verify if biometric details page is displayed"); applicantBiometricsPage = biometricDetailsPage.clickOnLeftHandScanIcon(); - assertTrue(applicantBiometricsPage.isLeftHandScanTitleDisplyed(), + assertTrue(applicantBiometricsPage.isLeftHandScanTitleDisplayed(), "Verify if applicant left hand scan title is displayed"); applicantBiometricsPage.clickOnMarkExceptionButton(); - assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(), + assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplayed(), "Verify if applicant biometric mark exception is displayed"); // applicantBiometricsPage.clickOnZoomButton(); - assertTrue(applicantBiometricsPage.isLeftHandScanTitleDisplyed(), + assertTrue(applicantBiometricsPage.isLeftHandScanTitleDisplayed(), "Verify if applicant right hand scan is displayed"); applicantBiometricsPage.markOneFingureException(); // applicantBiometricsPage.clickOnClosePopUp(); - assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(), + assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplayed(), "Verify if applicant biometric mark exception type is displayed"); // assertTrue(applicantBiometricsPage.isExceptionCountDisplyed(),"Verify if // exception count is displayed"); @@ -379,15 +394,15 @@ public void newRegistrationAdultException() throws InterruptedException { "Verify if user is not navigated to the next page without biometric scan"); applicantBiometricsPage = biometricDetailsPage.clickOnThumbsScanIcon(); - assertTrue(applicantBiometricsPage.isThumbsScanTitleDisplyed(), + assertTrue(applicantBiometricsPage.isThumbsScanTitleDisplayed(), "Verify if thumbs scan page is displayed"); applicantBiometricsPage.clickOnMarkExceptionButton(); - assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(), + assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplayed(), "Verify if applicant biometric mark exception is displayed"); applicantBiometricsPage.markOneFingureException(); - assertTrue(applicantBiometricsPage.isExceptionCountDisplyed(), + assertTrue(applicantBiometricsPage.isExceptionCountDisplayed(), "Verify if exception count is displayed"); // applicantBiometricsPage.clickOnExceptionTypeTemporaryButton(); // @@ -408,7 +423,7 @@ public void newRegistrationAdultException() throws InterruptedException { "Verify if biometric details page is displayed"); biometricDetailsPage.clickOnFaceScanIcon(); - assertTrue(applicantBiometricsPage.isFaceScanTitleDisplyed(), + assertTrue(applicantBiometricsPage.isFaceScanTitleDisplayed(), "Verify if face scan page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -422,7 +437,7 @@ public void newRegistrationAdultException() throws InterruptedException { "Verify if biometric details page is still displayed without capture exception"); applicantBiometricsPage = biometricDetailsPage.clickOnExceptionScanIcon(); - assertTrue(applicantBiometricsPage.isExceptionScanTitleDisplyed(), + assertTrue(applicantBiometricsPage.isExceptionScanTitleDisplayed(), "Verify if exception scan page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -435,18 +450,20 @@ public void newRegistrationAdultException() throws InterruptedException { biometricDetailsPage.clickOnContinueButton(); } } - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { previewPage = new PreviewPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { previewPage = new PreviewPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { previewPage = new PreviewPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { previewPage = new PreviewPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { previewPage = new PreviewPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { previewPage = new PreviewPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(previewPage.isNewRegistrationTitleDisplayed(), "Verify if new Registration title is displayed"); assertTrue(previewPage.isApplicationIDPreviewPagePageDisplayed(), @@ -462,36 +479,40 @@ public void newRegistrationAdultException() throws InterruptedException { // PreviewPage is displayed"); String Aid = previewPage.getAID(); previewPage.clickOnContinueButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(authenticationPage.isAuthenticationPageDisplayed(), "Verify if authentication details page is displayed"); authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); authenticationPage.clickOnAuthenticatenButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(), "Verify if acknowledgement details page is displayed"); @@ -500,36 +521,39 @@ public void newRegistrationAdultException() throws InterruptedException { assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnOperationalTasksTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); assertTrue(operationalTaskPage.isPendingApprovalTitleDisplayed(), "Verify if pending approval tite displayed"); operationalTaskPage.clickPendingApprovalTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed"); pendingApproval.clickOnAID(Aid); @@ -566,18 +590,20 @@ public void newRegistrationAdultException() throws InterruptedException { "Verify if application upload tite displayed"); operationalTaskPage.clickApplicationUploadTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), "Verify if manage Applications Page displayed"); @@ -594,18 +620,20 @@ public void newRegistrationAdultException() throws InterruptedException { assertTrue(registrationTasksPage.isProfileTitleDisplayed(), "Verify if profile title display on homepage"); registrationTasksPage.clickProfileButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { profilePage = new ProfilePageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { profilePage = new ProfilePageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { profilePage = new ProfilePageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { profilePage = new ProfilePageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { profilePage = new ProfilePageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { profilePage = new ProfilePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } // assertTrue(profilePage.isProfileTitleDisplayed(),"Verify if profile title // display on Profilepage"); diff --git a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationInfant.java b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationInfant.java index 7d98267e1..32a9579dc 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationInfant.java +++ b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationInfant.java @@ -150,18 +150,22 @@ public void newRegistrationInfant() throws InterruptedException { ManageApplicationsPage manageApplicationsPage = null; ProfilePage profilePage = null; - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + final String language = TestDataReader.readData("language"); + + if ("eng".equalsIgnoreCase(language)) { loginPage = new LoginPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { loginPage = new LoginPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { loginPage = new LoginPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { loginPage = new LoginPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { loginPage = new LoginPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { loginPage = new LoginPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } loginPage.selectLanguage(); @@ -170,35 +174,38 @@ public void newRegistrationInfant() throws InterruptedException { loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); loginPage.clickOnloginButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnNewRegistrationButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } selectLanguagePage.clickOnSubmitButtonWithoutSelectingLanguage(); @@ -209,83 +216,91 @@ public void newRegistrationInfant() throws InterruptedException { selectLanguagePage.clickOnSubmitButton(); for (String screen : screenOrder) { if (screen.equals("consentdet") || screen.equals("consent")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { consentPage = new ConsentPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { consentPage = new ConsentPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { consentPage = new ConsentPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { consentPage = new ConsentPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { consentPage = new ConsentPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { consentPage = new ConsentPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } consentPage.clickOnInformedButton(); } else if (screen.equals("DemographicDetails")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } demographicPage.fillDemographicDetailsPage("currentCalenderDate"); demographicPage.clickOnContinueButton(); } else if (screen.equals("Documents")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } documentuploadPage.uploadDoccuments("infant", "withoutReferenceNumber"); documentuploadPage.clickOnContinueButton(); } else if (screen.equals("BiometricDetails")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } biometricDetailsPage.clickOnFaceScanIcon(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } applicantBiometricsPage.clickOnScanButton(); @@ -297,19 +312,20 @@ public void newRegistrationInfant() throws InterruptedException { assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), "Verify if biometric details page is displayed"); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } FetchUiSpec.getBiometricDetails("introducerBiometrics"); if (FetchUiSpec.eye.equals("yes")) { @@ -375,85 +391,94 @@ public void newRegistrationInfant() throws InterruptedException { biometricDetailsPage.clickOnContinueButton(); } - } - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { previewPage = new PreviewPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { previewPage = new PreviewPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { previewPage = new PreviewPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { previewPage = new PreviewPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { previewPage = new PreviewPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { previewPage = new PreviewPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } String Aid = previewPage.getAID(); previewPage.clickOnContinueButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); authenticationPage.clickOnAuthenticatenButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } acknowledgementPage.clickOnGoToHomeButton(); registrationTasksPage.clickOnOperationalTasksTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } operationalTaskPage.clickPendingApprovalTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } pendingApproval.clickOnAID(Aid); @@ -482,18 +507,20 @@ public void newRegistrationInfant() throws InterruptedException { pendingApproval.clickOnBackButton(); operationalTaskPage.clickApplicationUploadTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } manageApplicationsPage.clickServerStatusDropdown(); @@ -507,18 +534,20 @@ public void newRegistrationInfant() throws InterruptedException { registrationTasksPage.clickProfileButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { profilePage = new ProfilePageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { profilePage = new ProfilePageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { profilePage = new ProfilePageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { profilePage = new ProfilePageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { profilePage = new ProfilePageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { profilePage = new ProfilePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } profilePage.clickOnLogoutButton(); diff --git a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinor.java b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinor.java index 2df53832d..5fb22ba30 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinor.java +++ b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinor.java @@ -150,18 +150,22 @@ public void newRegistrationMinor() throws InterruptedException { PendingApproval pendingApproval = null; ProfilePage profilePage = null; - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + final String language = TestDataReader.readData("language"); + + if ("eng".equalsIgnoreCase(language)) { loginPage = new LoginPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { loginPage = new LoginPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { loginPage = new LoginPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { loginPage = new LoginPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { loginPage = new LoginPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { loginPage = new LoginPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } loginPage.selectLanguage(); loginPage.enterUserName(KeycloakUserManager.moduleSpecificUser); @@ -169,34 +173,37 @@ public void newRegistrationMinor() throws InterruptedException { loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); loginPage.clickOnloginButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } registrationTasksPage.clickOnNewRegistrationButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } selectLanguagePage.clickOnSubmitButtonWithoutSelectingLanguage(); @@ -207,88 +214,96 @@ public void newRegistrationMinor() throws InterruptedException { selectLanguagePage.clickOnSubmitButton(); for (String screen : screenOrder) { if (screen.equals("consentdet") || screen.equals("consent")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { consentPage = new ConsentPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { consentPage = new ConsentPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { consentPage = new ConsentPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { consentPage = new ConsentPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { consentPage = new ConsentPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { consentPage = new ConsentPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } consentPage.clickOnInformedButton(); } else if (screen.equals("DemographicDetails")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } demographicPage.fillDemographicDetailsPage("minor"); demographicPage.clickOnContinueButton(); } else if (screen.equals("Documents")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } documentuploadPage.uploadDoccuments("minor", "withoutReferenceNumber"); documentuploadPage.clickOnContinueButton(); } else if (screen.equals("BiometricDetails")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } if (FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIrisScan(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -302,7 +317,7 @@ public void newRegistrationMinor() throws InterruptedException { "Verify if biometric details page is displayed"); applicantBiometricsPage = biometricDetailsPage.clickOnRightHandScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -316,7 +331,7 @@ public void newRegistrationMinor() throws InterruptedException { "Verify if biometric details page is displayed"); applicantBiometricsPage = biometricDetailsPage.clickOnLeftHandScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -330,7 +345,7 @@ public void newRegistrationMinor() throws InterruptedException { "Verify if biometric details page is displayed"); applicantBiometricsPage = biometricDetailsPage.clickOnThumbsScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -344,7 +359,7 @@ public void newRegistrationMinor() throws InterruptedException { "Verify if biometric details page is displayed"); biometricDetailsPage.clickOnFaceScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -355,20 +370,26 @@ public void newRegistrationMinor() throws InterruptedException { assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), "Verify if biometric details page is displayed"); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } + FetchUiSpec.eye = "no"; + FetchUiSpec.rightHand = "no"; + FetchUiSpec.leftHand = "no"; + FetchUiSpec.thumb = "no"; + FetchUiSpec.face = "no"; FetchUiSpec.getBiometricDetails("introducerBiometrics"); if (FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIntroducerIrisScan(); @@ -439,81 +460,90 @@ public void newRegistrationMinor() throws InterruptedException { biometricDetailsPage.clickOnContinueButton(); } } - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { previewPage = new PreviewPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { previewPage = new PreviewPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { previewPage = new PreviewPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { previewPage = new PreviewPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { previewPage = new PreviewPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { previewPage = new PreviewPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } String Aid = previewPage.getAID(); previewPage.clickOnContinueButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); authenticationPage.clickOnAuthenticatenButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } acknowledgementPage.clickOnGoToHomeButton(); registrationTasksPage.clickOnOperationalTasksTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } operationalTaskPage.clickPendingApprovalTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } pendingApproval.clickOnAID(Aid); @@ -546,18 +576,20 @@ public void newRegistrationMinor() throws InterruptedException { pendingApproval.clickOnBackButton(); operationalTaskPage.clickApplicationUploadTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } manageApplicationsPage.enterAID(Aid); @@ -567,18 +599,20 @@ public void newRegistrationMinor() throws InterruptedException { manageApplicationsPage.clickOnBackButton(); registrationTasksPage.clickProfileButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { profilePage = new ProfilePageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { profilePage = new ProfilePageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { profilePage = new ProfilePageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { profilePage = new ProfilePageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { profilePage = new ProfilePageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { profilePage = new ProfilePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } profilePage.clickOnLogoutButton(); diff --git a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinorException.java b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinorException.java index ab021565c..63317aaf4 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinorException.java +++ b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinorException.java @@ -152,18 +152,22 @@ public void newRegistrationMinorException() throws InterruptedException { ProfilePage profilePage = null; PendingApproval pendingApproval = null; - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + final String language = TestDataReader.readData("language"); + + if ("eng".equalsIgnoreCase(language)) { loginPage = new LoginPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { loginPage = new LoginPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { loginPage = new LoginPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { loginPage = new LoginPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { loginPage = new LoginPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { loginPage = new LoginPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } loginPage.selectLanguage(); loginPage.enterUserName(KeycloakUserManager.moduleSpecificUser); @@ -171,35 +175,38 @@ public void newRegistrationMinorException() throws InterruptedException { loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); loginPage.clickOnloginButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnNewRegistrationButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), "Verify if select language page is loaded"); selectLanguagePage.clickOnSubmitButtonWithoutSelectingLanguage(); @@ -216,34 +223,37 @@ public void newRegistrationMinorException() throws InterruptedException { selectLanguagePage.clickOnSubmitButton(); for (String screen : screenOrder) { if (screen.equals("consentdet") || screen.equals("consent")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { consentPage = new ConsentPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { consentPage = new ConsentPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { consentPage = new ConsentPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { consentPage = new ConsentPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { consentPage = new ConsentPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { consentPage = new ConsentPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } consentPage.clickOnInformedButton(); } else if (screen.equals("DemographicDetails")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(demographicPage.isPageDisplayed("DemographicDetails"), "Verify if demographic details page is displayed"); @@ -251,18 +261,20 @@ public void newRegistrationMinorException() throws InterruptedException { demographicPage.clickOnContinueButton(); } else if (screen.equals("Documents")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(), "Verify if doccumentupload page is displayed"); @@ -270,42 +282,46 @@ public void newRegistrationMinorException() throws InterruptedException { documentuploadPage.clickOnContinueButton(); } else if (screen.equals("BiometricDetails")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } // Iris assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), "Verify if biometric details page is displayed"); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } if (FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIrisScan(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnMarkExceptionButton(); - assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(), + assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplayed(), "Verify if applicant biometric mark exception is displayed"); applicantBiometricsPage.markOneEyeException(); applicantBiometricsPage.clickOnIrisScanButton(); @@ -318,24 +334,24 @@ public void newRegistrationMinorException() throws InterruptedException { // righthand if (FetchUiSpec.rightHand.equals("yes")) { biometricDetailsPage.clickOnRightHandScanIcon(); - assertTrue(applicantBiometricsPage.isRightHandScanTitleDisplyed(), + assertTrue(applicantBiometricsPage.isRightHandScanTitleDisplayed(), "Verify if right hand scan is displayed"); applicantBiometricsPage.clickOnMarkExceptionButton(); - assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(), + assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplayed(), "Verify if applicant biometric mark exception is displayed"); applicantBiometricsPage.clickOnZoomButton(); - assertTrue(applicantBiometricsPage.isRightHandScanTitleDisplyed(), + assertTrue(applicantBiometricsPage.isRightHandScanTitleDisplayed(), "Verify if applicant right hand scan is displayed"); applicantBiometricsPage.markFourFingureExceptionThenRemoveOne(); applicantBiometricsPage.clickOnClosePopUp(); - assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(), + assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplayed(), "Verify if applicant biometric mark exception is displayed"); applicantBiometricsPage.clickOnRightHandScanTitle(); - assertTrue(applicantBiometricsPage.isRightHandScanTitleDisplyed(), + assertTrue(applicantBiometricsPage.isRightHandScanTitleDisplayed(), "Verify if right hand scan is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -346,24 +362,24 @@ public void newRegistrationMinorException() throws InterruptedException { // lefthand if (FetchUiSpec.leftHand.equals("yes")) { biometricDetailsPage.clickOnLeftHandScanIcon(); - assertTrue(applicantBiometricsPage.isLeftHandScanTitleDisplyed(), + assertTrue(applicantBiometricsPage.isLeftHandScanTitleDisplayed(), "Verify if applicant left hand scan title is displayed"); applicantBiometricsPage.clickOnMarkExceptionButton(); - assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(), + assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplayed(), "Verify if applicant biometric mark exception is displayed"); applicantBiometricsPage.clickOnZoomButton(); - assertTrue(applicantBiometricsPage.isLeftHandScanTitleDisplyed(), + assertTrue(applicantBiometricsPage.isLeftHandScanTitleDisplayed(), "Verify if applicant right hand scan is displayed"); applicantBiometricsPage.markOneFingureException(); applicantBiometricsPage.clickOnClosePopUp(); - assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(), + assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplayed(), "Verify if applicant biometric mark exception is displayed"); applicantBiometricsPage.clickOnleftHandScanTitle(); - assertTrue(applicantBiometricsPage.isLeftHandScanTitleDisplyed(), + assertTrue(applicantBiometricsPage.isLeftHandScanTitleDisplayed(), "Verify if applicant left hand scan title is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -374,16 +390,16 @@ public void newRegistrationMinorException() throws InterruptedException { // thumb if (FetchUiSpec.thumb.equals("yes")) { biometricDetailsPage.clickOnThumbsScanIcon(); - assertTrue(applicantBiometricsPage.isThumbsScanTitleDisplyed(), + assertTrue(applicantBiometricsPage.isThumbsScanTitleDisplayed(), "Verify if thumbs scan page is displayed"); applicantBiometricsPage.clickOnMarkExceptionButton(); - assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(), + assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplayed(), "Verify if applicant biometric mark exception is displayed"); applicantBiometricsPage.markOneFingureException(); applicantBiometricsPage.clickOnThumbsScanTitle(); - assertTrue(applicantBiometricsPage.isThumbsScanTitleDisplyed(), + assertTrue(applicantBiometricsPage.isThumbsScanTitleDisplayed(), "Verify if thumbs scan page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -397,7 +413,7 @@ public void newRegistrationMinorException() throws InterruptedException { "Verify if biometric details page is displayed"); biometricDetailsPage.clickOnFaceScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -407,7 +423,7 @@ public void newRegistrationMinorException() throws InterruptedException { } // Exception - assertTrue(applicantBiometricsPage.isExceptionScanTitleDisplyed(), + assertTrue(applicantBiometricsPage.isExceptionScanTitleDisplayed(), "Verify if exception scan page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -418,20 +434,26 @@ public void newRegistrationMinorException() throws InterruptedException { assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), "Verify if biometric details page is displayed"); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } + FetchUiSpec.eye = "no"; + FetchUiSpec.rightHand = "no"; + FetchUiSpec.leftHand = "no"; + FetchUiSpec.thumb = "no"; + FetchUiSpec.face = "no"; FetchUiSpec.getBiometricDetails("introducerBiometrics"); if (FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIntroducerIrisScan(); @@ -519,18 +541,20 @@ public void newRegistrationMinorException() throws InterruptedException { biometricDetailsPage.clickOnContinueButton(); } } - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { previewPage = new PreviewPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { previewPage = new PreviewPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { previewPage = new PreviewPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { previewPage = new PreviewPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { previewPage = new PreviewPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { previewPage = new PreviewPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(previewPage.isNewRegistrationTitleDisplayed(), "Verify if new Registration title is displayed"); @@ -543,36 +567,40 @@ public void newRegistrationMinorException() throws InterruptedException { // assertTrue(previewPage.isBiometricsInformationInPreviewPagePageDisplayed(),"Verify if Biometrics Information In PreviewPage is displayed"); String Aid = previewPage.getAID(); previewPage.clickOnContinueButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(authenticationPage.isAuthenticationPageDisplayed(), "Verify if authentication details page is displayed"); authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); authenticationPage.clickOnAuthenticatenButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(), "Verify if acknowledgement details page is displayed"); @@ -581,35 +609,38 @@ public void newRegistrationMinorException() throws InterruptedException { assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnOperationalTasksTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); operationalTaskPage.clickPendingApprovalTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed"); pendingApproval.clickOnAID(Aid); @@ -643,18 +674,20 @@ public void newRegistrationMinorException() throws InterruptedException { "Verify if application upload tite displayed"); operationalTaskPage.clickApplicationUploadTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), "Verify if manage Applications Page displayed"); @@ -680,18 +713,20 @@ public void newRegistrationMinorException() throws InterruptedException { manageApplicationsPage.clickOnBackButton(); registrationTasksPage.clickProfileButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { profilePage = new ProfilePageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { profilePage = new ProfilePageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { profilePage = new ProfilePageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { profilePage = new ProfilePageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { profilePage = new ProfilePageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { profilePage = new ProfilePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } profilePage.clickOnLogoutButton(); diff --git a/ui-test/src/main/java/regclient/androidTestCases/PreRegFetchingPacket.java b/ui-test/src/main/java/regclient/androidTestCases/PreRegFetchingPacket.java index d3494bb5e..5aa580674 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/PreRegFetchingPacket.java +++ b/ui-test/src/main/java/regclient/androidTestCases/PreRegFetchingPacket.java @@ -151,18 +151,22 @@ public void adultPreRegFetching() throws InterruptedException { ManageApplicationsPage manageApplicationsPage = null; ProfilePage profilePage = null; - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + final String language = TestDataReader.readData("language"); + + if ("eng".equalsIgnoreCase(language)) { loginPage = new LoginPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { loginPage = new LoginPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { loginPage = new LoginPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { loginPage = new LoginPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { loginPage = new LoginPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { loginPage = new LoginPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } loginPage.selectLanguage(); @@ -172,36 +176,39 @@ public void adultPreRegFetching() throws InterruptedException { loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); loginPage.clickOnloginButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnNewRegistrationButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), "Verify if select language page is loaded"); selectLanguagePage.selectSecondLanguage(); @@ -211,34 +218,38 @@ public void adultPreRegFetching() throws InterruptedException { selectLanguagePage.clickOnSubmitButton(); for (String screen : screenOrder) { if (screen.equals("consentdet") || screen.equals("consent")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { consentPage = new ConsentPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { consentPage = new ConsentPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { consentPage = new ConsentPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { consentPage = new ConsentPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { consentPage = new ConsentPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { consentPage = new ConsentPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } consentPage.clickOnInformedButton(); } else if (screen.equals("DemographicDetails")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(demographicPage.isPageDisplayed("DemographicDetails"), "Verify if demographic details page is displayed"); @@ -257,18 +268,20 @@ public void adultPreRegFetching() throws InterruptedException { demographicPage.clickOnContinueButton(); } else if (screen.equals("Documents")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(), "Verify if doccumentupload page is displayed"); @@ -276,32 +289,35 @@ public void adultPreRegFetching() throws InterruptedException { documentuploadPage.clickOnContinueButton(); } else if (screen.equals("BiometricDetails")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), "Verify if biometric details page is displayed"); @@ -362,18 +378,20 @@ public void adultPreRegFetching() throws InterruptedException { } } - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { previewPage = new PreviewPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { previewPage = new PreviewPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { previewPage = new PreviewPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { previewPage = new PreviewPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { previewPage = new PreviewPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { previewPage = new PreviewPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(previewPage.isNewRegistrationTitleDisplayed(), "Verify if new Registration title is displayed"); @@ -392,36 +410,40 @@ public void adultPreRegFetching() throws InterruptedException { // previewPage.validatePreRegAndApplicationIdMatch("adult"); previewPage.clickOnContinueButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(authenticationPage.isAuthenticationPageDisplayed(), "Verify if authentication details page is displayed"); authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); authenticationPage.clickOnAuthenticatenButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(), "Verify if acknowledgement details page is displayed"); @@ -431,36 +453,39 @@ public void adultPreRegFetching() throws InterruptedException { assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnOperationalTasksTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); assertTrue(operationalTaskPage.isPendingApprovalTitleDisplayed(), "Verify if pending approval tite displayed"); operationalTaskPage.clickPendingApprovalTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed"); @@ -505,19 +530,20 @@ public void adultPreRegFetching() throws InterruptedException { "Verify if application upload tite displayed"); operationalTaskPage.clickApplicationUploadTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), "Verify if manage Applications Page displayed"); @@ -537,18 +563,20 @@ public void adultPreRegFetching() throws InterruptedException { assertTrue(registrationTasksPage.isProfileTitleDisplayed(), "Verify if profile title display on homepage"); registrationTasksPage.clickProfileButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { profilePage = new ProfilePageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { profilePage = new ProfilePageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { profilePage = new ProfilePageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { profilePage = new ProfilePageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { profilePage = new ProfilePageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { profilePage = new ProfilePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } profilePage.clickOnLogoutButton(); @@ -582,18 +610,22 @@ public void minorPreRegFetching() throws InterruptedException { ProfilePage profilePage = null; IntroducerBiometricPage introducerBiometricPage = null; - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + final String language = TestDataReader.readData("language"); + + if ("eng".equalsIgnoreCase(language)) { loginPage = new LoginPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { loginPage = new LoginPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { loginPage = new LoginPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { loginPage = new LoginPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { loginPage = new LoginPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { loginPage = new LoginPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } loginPage.selectLanguage(); @@ -605,36 +637,39 @@ public void minorPreRegFetching() throws InterruptedException { loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); loginPage.clickOnloginButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnNewRegistrationButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), "Verify if select language page is loaded"); selectLanguagePage.clickOnSubmitButtonWithoutSelectingLanguage(); @@ -651,34 +686,38 @@ public void minorPreRegFetching() throws InterruptedException { selectLanguagePage.clickOnSubmitButton(); for (String screen : screenOrder) { if (screen.equals("consentdet") || screen.equals("consent")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { consentPage = new ConsentPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { consentPage = new ConsentPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { consentPage = new ConsentPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { consentPage = new ConsentPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { consentPage = new ConsentPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { consentPage = new ConsentPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } consentPage.clickOnInformedButton(); } else if (screen.equals("DemographicDetails")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(demographicPage.isPageDisplayed("DemographicDetails"), "Verify if demographic details page is displayed"); @@ -695,18 +734,20 @@ public void minorPreRegFetching() throws InterruptedException { demographicPage.clickOnContinueButton(); } else if (screen.equals("Documents")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(), "Verify if doccumentupload page is displayed"); @@ -714,39 +755,42 @@ public void minorPreRegFetching() throws InterruptedException { documentuploadPage.clickOnContinueButton(); } else if (screen.equals("BiometricDetails")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), "Verify if biometric details page is displayed"); if (FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIrisScan(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -769,7 +813,7 @@ public void minorPreRegFetching() throws InterruptedException { "Verify if biometric details page is displayed"); applicantBiometricsPage = biometricDetailsPage.clickOnRightHandScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -783,7 +827,7 @@ public void minorPreRegFetching() throws InterruptedException { "Verify if biometric details page is displayed"); applicantBiometricsPage = biometricDetailsPage.clickOnLeftHandScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -797,7 +841,7 @@ public void minorPreRegFetching() throws InterruptedException { "Verify if biometric details page is displayed"); applicantBiometricsPage = biometricDetailsPage.clickOnThumbsScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -811,7 +855,7 @@ public void minorPreRegFetching() throws InterruptedException { "Verify if biometric details page is displayed"); biometricDetailsPage.clickOnFaceScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -822,19 +866,20 @@ public void minorPreRegFetching() throws InterruptedException { assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), "Verify if biometric details page is displayed"); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } FetchUiSpec.getBiometricDetails("introducerBiometrics"); if (FetchUiSpec.eye.equals("yes")) { @@ -907,18 +952,21 @@ public void minorPreRegFetching() throws InterruptedException { } } - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + + if ("eng".equalsIgnoreCase(language)) { previewPage = new PreviewPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { previewPage = new PreviewPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { previewPage = new PreviewPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { previewPage = new PreviewPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { previewPage = new PreviewPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { previewPage = new PreviewPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(previewPage.isNewRegistrationTitleDisplayed(), "Verify if new Registration title is displayed"); @@ -933,36 +981,40 @@ public void minorPreRegFetching() throws InterruptedException { // assertTrue(previewPage.isBiometricsInformationInPreviewPagePageDisplayed(),"Verify if Biometrics Information In PreviewPage is displayed"); String Aid = previewPage.getAID(); previewPage.clickOnContinueButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(authenticationPage.isAuthenticationPageDisplayed(), "Verify if authentication details page is displayed"); authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); authenticationPage.clickOnAuthenticatenButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(), "Verify if acknowledgement details page is displayed"); @@ -972,36 +1024,39 @@ public void minorPreRegFetching() throws InterruptedException { assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnOperationalTasksTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); assertTrue(operationalTaskPage.isPendingApprovalTitleDisplayed(), "Verify if pending approval tite displayed"); operationalTaskPage.clickPendingApprovalTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed"); @@ -1046,19 +1101,20 @@ public void minorPreRegFetching() throws InterruptedException { "Verify if application upload tite displayed"); operationalTaskPage.clickApplicationUploadTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), "Verify if manage Applications Page displayed"); @@ -1078,18 +1134,20 @@ public void minorPreRegFetching() throws InterruptedException { assertTrue(registrationTasksPage.isProfileTitleDisplayed(), "Verify if profile title display on homepage"); registrationTasksPage.clickProfileButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { profilePage = new ProfilePageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { profilePage = new ProfilePageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { profilePage = new ProfilePageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { profilePage = new ProfilePageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { profilePage = new ProfilePageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { profilePage = new ProfilePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } // assertTrue(profilePage.isProfileTitleDisplayed(),"Verify if profile title // display on Profilepage"); @@ -1125,18 +1183,22 @@ public void infantPreRegFetching() throws InterruptedException { IntroducerBiometricPage introducerBiometricPage = null; PreviewPage previewPage = null; - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + final String language = TestDataReader.readData("language"); + + if ("eng".equalsIgnoreCase(language)) { loginPage = new LoginPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { loginPage = new LoginPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { loginPage = new LoginPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { loginPage = new LoginPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { loginPage = new LoginPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { loginPage = new LoginPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } loginPage.selectLanguage(); @@ -1148,36 +1210,39 @@ public void infantPreRegFetching() throws InterruptedException { loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); loginPage.clickOnloginButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnNewRegistrationButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), "Verify if select language page is loaded"); selectLanguagePage.clickOnSubmitButtonWithoutSelectingLanguage(); @@ -1194,34 +1259,38 @@ public void infantPreRegFetching() throws InterruptedException { selectLanguagePage.clickOnSubmitButton(); for (String screen : screenOrder) { if (screen.equals("consentdet") || screen.equals("consent")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { consentPage = new ConsentPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { consentPage = new ConsentPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { consentPage = new ConsentPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { consentPage = new ConsentPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { consentPage = new ConsentPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { consentPage = new ConsentPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } consentPage.clickOnInformedButton(); } else if (screen.equals("DemographicDetails")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(demographicPage.isPageDisplayed("DemographicDetails"), "Verify if demographic details page is displayed"); @@ -1238,18 +1307,20 @@ public void infantPreRegFetching() throws InterruptedException { demographicPage.clickOnContinueButton(); } else if (screen.equals("Documents")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(), "Verify if doccumentupload page is displayed"); @@ -1257,35 +1328,38 @@ public void infantPreRegFetching() throws InterruptedException { documentuploadPage.clickOnContinueButton(); } else if (screen.equals("BiometricDetails")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), "Verify if biometric details page is displayed"); biometricDetailsPage.clickOnFaceScanIcon(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } applicantBiometricsPage.clickOnScanButton(); @@ -1297,19 +1371,20 @@ public void infantPreRegFetching() throws InterruptedException { assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), "Verify if biometric details page is displayed"); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } FetchUiSpec.getBiometricDetails("introducerBiometrics"); if (FetchUiSpec.eye.equals("yes")) { @@ -1382,18 +1457,20 @@ public void infantPreRegFetching() throws InterruptedException { } } - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { previewPage = new PreviewPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { previewPage = new PreviewPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { previewPage = new PreviewPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { previewPage = new PreviewPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { previewPage = new PreviewPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { previewPage = new PreviewPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(previewPage.isNewRegistrationTitleDisplayed(), "Verify if new Registration title is displayed"); @@ -1408,36 +1485,40 @@ public void infantPreRegFetching() throws InterruptedException { // assertTrue(previewPage.isBiometricsInformationInPreviewPagePageDisplayed(),"Verify if Biometrics Information In PreviewPage is displayed"); String Aid = previewPage.getAID(); previewPage.clickOnContinueButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(authenticationPage.isAuthenticationPageDisplayed(), "Verify if authentication details page is displayed"); authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); authenticationPage.clickOnAuthenticatenButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(), "Verify if acknowledgement details page is displayed"); @@ -1447,36 +1528,39 @@ public void infantPreRegFetching() throws InterruptedException { assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnOperationalTasksTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); assertTrue(operationalTaskPage.isPendingApprovalTitleDisplayed(), "Verify if pending approval tite displayed"); operationalTaskPage.clickPendingApprovalTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed"); @@ -1513,19 +1597,20 @@ public void infantPreRegFetching() throws InterruptedException { "Verify if application upload tite displayed"); operationalTaskPage.clickApplicationUploadTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), "Verify if manage Applications Page displayed"); @@ -1542,18 +1627,20 @@ public void infantPreRegFetching() throws InterruptedException { assertTrue(registrationTasksPage.isProfileTitleDisplayed(), "Verify if profile title display on homepage"); registrationTasksPage.clickProfileButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { profilePage = new ProfilePageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { profilePage = new ProfilePageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { profilePage = new ProfilePageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { profilePage = new ProfilePageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { profilePage = new ProfilePageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { profilePage = new ProfilePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } profilePage.clickOnLogoutButton(); diff --git a/ui-test/src/main/java/regclient/androidTestCases/ResetPassword.java b/ui-test/src/main/java/regclient/androidTestCases/ResetPassword.java index aec1b8c26..adfb4e115 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/ResetPassword.java +++ b/ui-test/src/main/java/regclient/androidTestCases/ResetPassword.java @@ -43,18 +43,22 @@ public void resetPassword() throws IOException { ProfilePage profilePage = null; KeycloakPage keycloakPage = null; - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + final String language = TestDataReader.readData("language"); + + if ("eng".equalsIgnoreCase(language)) { loginPage = new LoginPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { loginPage = new LoginPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { loginPage = new LoginPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { loginPage = new LoginPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { loginPage = new LoginPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { loginPage = new LoginPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } loginPage.selectLanguage(); @@ -64,18 +68,20 @@ public void resetPassword() throws IOException { loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); loginPage.clickOnloginButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); @@ -85,18 +91,20 @@ public void resetPassword() throws IOException { assertTrue(registrationTasksPage.isProfileTitleDisplayed(), "Verify if profile title display on homepage"); registrationTasksPage.clickProfileButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { profilePage = new ProfilePageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { profilePage = new ProfilePageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { profilePage = new ProfilePageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { profilePage = new ProfilePageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { profilePage = new ProfilePageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { profilePage = new ProfilePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } profilePage.clickOnLogoutButton(); profilePage.clickOnLogoutButton(); @@ -116,18 +124,20 @@ public void resetPassword() throws IOException { "Verify if reset password button displayed in profile page"); profilePage.clickOnResetPasswordButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { profilePage = new ProfilePageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { profilePage = new ProfilePageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { profilePage = new ProfilePageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { profilePage = new ProfilePageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { profilePage = new ProfilePageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { profilePage = new ProfilePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(keycloakPage.openKeycloakWebView(), "Verify if keycloak login page displayed"); diff --git a/ui-test/src/main/java/regclient/androidTestCases/Settings.java b/ui-test/src/main/java/regclient/androidTestCases/Settings.java index dee9270d3..2e652f812 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/Settings.java +++ b/ui-test/src/main/java/regclient/androidTestCases/Settings.java @@ -17,27 +17,34 @@ import regclient.page.RegistrationTasksPage; import regclient.page.SettingsPage; import regclient.pages.arabic.LoginPageArabic; +import regclient.pages.arabic.ProfilePageArabic; import regclient.pages.arabic.RegistrationTasksPageArabic; import regclient.pages.arabic.SettingsPageArabic; import regclient.pages.english.LoginPageEnglish; +import regclient.pages.english.ProfilePageEnglish; import regclient.pages.english.RegistrationTasksPageEnglish; import regclient.pages.english.SettingsPageEnglish; import regclient.pages.french.LoginPageFrench; +import regclient.pages.french.ProfilePageFrench; import regclient.pages.french.RegistrationTasksPageFrench; import regclient.pages.french.SettingsPageFrench; import regclient.pages.hindi.LoginPageHindi; +import regclient.pages.hindi.ProfilePageHindi; import regclient.pages.hindi.RegistrationTasksPageHindi; import regclient.pages.hindi.SettingsPageHindi; import regclient.pages.kannada.LoginPageKannada; +import regclient.pages.kannada.ProfilePageKannada; import regclient.pages.kannada.RegistrationTasksPageKannada; import regclient.pages.kannada.SettingsPageKannada; import regclient.pages.tamil.LoginPageTamil; +import regclient.pages.tamil.ProfilePageTamil; import regclient.pages.tamil.RegistrationTasksPageTamil; import regclient.pages.tamil.SettingsPageTamil; import regclient.utils.TestDataReader; public class Settings extends AndroidBaseTest { + @SuppressWarnings("null") @Test public void settings() throws InterruptedException { @@ -49,18 +56,21 @@ public void settings() throws InterruptedException { ProfilePage profilePage = null; SettingsPage settingsPage = null; - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { - loginPage = new LoginPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { - loginPage = new LoginPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { - loginPage = new LoginPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { - loginPage = new LoginPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { - loginPage = new LoginPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { - loginPage = new LoginPageArabic(driver); + final String language = TestDataReader.readData("language"); + if ("eng".equalsIgnoreCase(language)) { + profilePage = new ProfilePageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + profilePage = new ProfilePageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + profilePage = new ProfilePageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + profilePage = new ProfilePageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + profilePage = new ProfilePageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + profilePage = new ProfilePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } loginPage.selectLanguage(); @@ -72,35 +82,39 @@ public void settings() throws InterruptedException { loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); loginPage.clickOnloginButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnSettingsButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { - settingsPage = new SettingsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { - settingsPage = new SettingsPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { - settingsPage = new SettingsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { - settingsPage = new SettingsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { - settingsPage = new SettingsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { - settingsPage = new SettingsPageArabic(driver); + if ("eng".equalsIgnoreCase(language)) { + settingsPage = new SettingsPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + settingsPage = new SettingsPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + settingsPage = new SettingsPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + settingsPage = new SettingsPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + settingsPage = new SettingsPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + settingsPage = new SettingsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(settingsPage.isScheduledJobsSettingsTabDisplayed(), "Verify if sceduled job settings tab displayed"); diff --git a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUINUpdateDemographicDetails.java b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUINUpdateDemographicDetails.java index 7e827c476..dff2bb49e 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUINUpdateDemographicDetails.java +++ b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUINUpdateDemographicDetails.java @@ -150,18 +150,22 @@ public void updateMyUINUpdateDemographicDetails() throws InterruptedException { UpdateUINPage updateUINPage = null; PendingApproval pendingApproval = null; - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + final String language = TestDataReader.readData("language"); + + if ("eng".equalsIgnoreCase(language)) { loginPage = new LoginPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { loginPage = new LoginPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { loginPage = new LoginPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { loginPage = new LoginPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { loginPage = new LoginPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { loginPage = new LoginPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } loginPage.selectLanguage(); loginPage.enterUserName(KeycloakUserManager.moduleSpecificUser); @@ -169,36 +173,39 @@ public void updateMyUINUpdateDemographicDetails() throws InterruptedException { loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); loginPage.clickOnloginButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickUpdateMyUINButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), "Verify if select language page is loaded"); selectLanguagePage.selectSecondLanguage(); @@ -207,18 +214,20 @@ public void updateMyUINUpdateDemographicDetails() throws InterruptedException { selectLanguagePage.clickOnSubmitButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { updateUINPage = new UpdateUINPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { updateUINPage = new UpdateUINPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { updateUINPage = new UpdateUINPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { updateUINPage = new UpdateUINPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { updateUINPage = new UpdateUINPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { updateUINPage = new UpdateUINPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(updateUINPage.isUpdateMyUINTitleDisplayed(), "verify if the update my uin page is displayed"); @@ -234,34 +243,37 @@ public void updateMyUINUpdateDemographicDetails() throws InterruptedException { updateUINPage.clickOnContinueButton(); for (String screen : screenOrder) { if (screen.equals("consentdet") || screen.equals("consent")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { consentPage = new ConsentPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { consentPage = new ConsentPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { consentPage = new ConsentPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { consentPage = new ConsentPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { consentPage = new ConsentPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { consentPage = new ConsentPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } consentPage.clickOnInformedButton(); } else if (screen.equals("DemographicDetails")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(demographicPage.isPageDisplayed("DemographicDetails"), @@ -274,47 +286,50 @@ public void updateMyUINUpdateDemographicDetails() throws InterruptedException { demographicPage.clickOnContinueButton(); } else if (screen.equals("BiometricDetails")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(biometricDetailsPage.isAuthenticationBiometricTitleDisplayed(), "Verify if biometric details page is displayed without upload doccument"); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } biometricDetailsPage.clickOnRightHandScanIcon(); - assertTrue(applicantBiometricsPage.isAuthenticationBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isAuthenticationBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnMarkExceptionButton(); - assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(), + assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplayed(), "Verify if applicant biometric mark exception is displayed"); applicantBiometricsPage.markOneFingureException(); - assertTrue(applicantBiometricsPage.isExceptionCountDisplyed(), + assertTrue(applicantBiometricsPage.isExceptionCountDisplayed(), "Verify if exception count is displayed"); applicantBiometricsPage.clickOnRightHandScanTitle(); applicantBiometricsPage.clickOnScanButton(); @@ -327,18 +342,20 @@ public void updateMyUINUpdateDemographicDetails() throws InterruptedException { "Verify if biometric details page is displayed without upload doccument"); biometricDetailsPage.clickOnContinueButton(); } else if (screen.equals("Documents")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(), "Verify if doccumentupload page is displayed"); @@ -346,18 +363,20 @@ public void updateMyUINUpdateDemographicDetails() throws InterruptedException { documentuploadPage.clickOnContinueButton(); } } - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { previewPage = new PreviewPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { previewPage = new PreviewPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { previewPage = new PreviewPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { previewPage = new PreviewPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { previewPage = new PreviewPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { previewPage = new PreviewPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(previewPage.updateUINTitleDisplayed(), "Verify if new update uin title is displayed"); assertTrue(previewPage.isApplicationIDPreviewPagePageDisplayed(), @@ -370,36 +389,40 @@ public void updateMyUINUpdateDemographicDetails() throws InterruptedException { String Aid = previewPage.getAID(); previewPage.clickOnContinueButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(authenticationPage.isAuthenticationPageDisplayed(), "Verify if authentication details page is displayed"); authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); authenticationPage.clickOnAuthenticatenButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(), "Verify if acknowledgement details page is displayed"); @@ -411,36 +434,39 @@ public void updateMyUINUpdateDemographicDetails() throws InterruptedException { assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnOperationalTasksTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); assertTrue(operationalTaskPage.isPendingApprovalTitleDisplayed(), "Verify if pending approval tite displayed"); operationalTaskPage.clickPendingApprovalTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed"); pendingApproval.clickOnAID(Aid); @@ -476,18 +502,20 @@ public void updateMyUINUpdateDemographicDetails() throws InterruptedException { "Verify if application upload tite displayed"); operationalTaskPage.clickApplicationUploadTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), "Verify if manage Applications Page displayed"); @@ -507,18 +535,20 @@ public void updateMyUINUpdateDemographicDetails() throws InterruptedException { assertTrue(registrationTasksPage.isProfileTitleDisplayed(), "Verify if profile title display on homepage"); registrationTasksPage.clickProfileButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { profilePage = new ProfilePageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { profilePage = new ProfilePageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { profilePage = new ProfilePageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { profilePage = new ProfilePageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { profilePage = new ProfilePageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { profilePage = new ProfilePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } // assertTrue(profilePage.isProfileTitleDisplayed(),"Verify if profile title // display on Profilepage"); diff --git a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinInfant.java b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinInfant.java index d62ec3b9f..b62b1e85a 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinInfant.java +++ b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinInfant.java @@ -157,18 +157,22 @@ public void updateMyUinInfant() throws InterruptedException { IntroducerBiometricPage introducerBiometricPage = null; PendingApproval pendingApproval = null; - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + final String language = TestDataReader.readData("language"); + + if ("eng".equalsIgnoreCase(language)) { loginPage = new LoginPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { loginPage = new LoginPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { loginPage = new LoginPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { loginPage = new LoginPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { loginPage = new LoginPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { loginPage = new LoginPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } loginPage.selectLanguage(); loginPage.enterUserName(KeycloakUserManager.moduleSpecificUser); @@ -176,33 +180,37 @@ public void updateMyUinInfant() throws InterruptedException { loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); loginPage.clickOnloginButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } registrationTasksPage.clickUpdateMyUINButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } selectLanguagePage.clickOnSubmitButtonWithoutSelectingLanguage(); selectLanguagePage.selectSecondLanguage(); @@ -211,18 +219,20 @@ public void updateMyUinInfant() throws InterruptedException { selectLanguagePage.clickOnSubmitButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { updateUINPage = new UpdateUINPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { updateUINPage = new UpdateUINPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { updateUINPage = new UpdateUINPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { updateUINPage = new UpdateUINPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { updateUINPage = new UpdateUINPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { updateUINPage = new UpdateUINPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } updateUINPage.clickOnContinueButton(); @@ -238,34 +248,37 @@ public void updateMyUinInfant() throws InterruptedException { updateUINPage.clickOnContinueButton(); for (String screen : screenOrder) { if (screen.equals("consentdet") || screen.equals("consent")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { consentPage = new ConsentPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { consentPage = new ConsentPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { consentPage = new ConsentPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { consentPage = new ConsentPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { consentPage = new ConsentPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { consentPage = new ConsentPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } consentPage.clickOnInformedButton(); } else if (screen.equals("DemographicDetails")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(demographicPage.isPageDisplayed("DemographicDetails"), "Verify if demographic details page is displayed"); @@ -274,40 +287,43 @@ public void updateMyUinInfant() throws InterruptedException { demographicPage.clickOnContinueButton(); } else if (screen.equals("BiometricDetails")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), "Verify if biometric details page is displayed"); biometricDetailsPage.clickOnFaceScanIcon(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); - assertTrue(applicantBiometricsPage.isFaceScanTitleDisplyed(), + assertTrue(applicantBiometricsPage.isFaceScanTitleDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -327,19 +343,20 @@ public void updateMyUinInfant() throws InterruptedException { biometricDetailsPage = applicantBiometricsPage.clickOnNextButton(); biometricDetailsPage.clickOnIntroducerIrisScan(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } introducerBiometricPage.clickOnScanButton(); @@ -360,18 +377,20 @@ public void updateMyUinInfant() throws InterruptedException { biometricDetailsPage.clickOnContinueButton(); } else if (screen.equals("Documents")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(), "Verify if doccumentupload page is displayed"); @@ -380,82 +399,91 @@ public void updateMyUinInfant() throws InterruptedException { } } - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { previewPage = new PreviewPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { previewPage = new PreviewPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { previewPage = new PreviewPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { previewPage = new PreviewPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { previewPage = new PreviewPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { previewPage = new PreviewPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } String Aid = previewPage.getAID(); previewPage.clickOnContinueButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); authenticationPage.clickOnAuthenticatenButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } acknowledgementPage.clickOnGoToHomeButton(); registrationTasksPage.clickOnOperationalTasksTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } operationalTaskPage.clickPendingApprovalTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } pendingApproval.enterAID(Aid); @@ -490,18 +518,20 @@ public void updateMyUinInfant() throws InterruptedException { pendingApproval.clickOnBackButton(); operationalTaskPage.clickApplicationUploadTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } manageApplicationsPage.enterAID(Aid); @@ -512,18 +542,20 @@ public void updateMyUinInfant() throws InterruptedException { registrationTasksPage.clickProfileButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { profilePage = new ProfilePageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { profilePage = new ProfilePageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { profilePage = new ProfilePageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { profilePage = new ProfilePageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { profilePage = new ProfilePageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { profilePage = new ProfilePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } profilePage.clickOnLogoutButton(); diff --git a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinMinor.java b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinMinor.java index c67222461..017a8e81a 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinMinor.java +++ b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinMinor.java @@ -158,18 +158,22 @@ public void updateMyUinMinor() throws InterruptedException { IntroducerBiometricPage introducerBiometricPage = null; PendingApproval pendingApproval = null; - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + final String language = TestDataReader.readData("language"); + + if ("eng".equalsIgnoreCase(language)) { loginPage = new LoginPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { loginPage = new LoginPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { loginPage = new LoginPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { loginPage = new LoginPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { loginPage = new LoginPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { loginPage = new LoginPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } loginPage.selectLanguage(); loginPage.enterUserName(KeycloakUserManager.moduleSpecificUser); @@ -177,36 +181,39 @@ public void updateMyUinMinor() throws InterruptedException { loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); loginPage.clickOnloginButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickUpdateMyUINButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), "Verify if select language page is loaded"); selectLanguagePage.clickOnSubmitButtonWithoutSelectingLanguage(); @@ -222,18 +229,20 @@ public void updateMyUinMinor() throws InterruptedException { assertTrue(selectLanguagePage.isSubmitButtonEnabled(), "verify if the submit button enabled"); selectLanguagePage.clickOnSubmitButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { updateUINPage = new UpdateUINPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { updateUINPage = new UpdateUINPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { updateUINPage = new UpdateUINPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { updateUINPage = new UpdateUINPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { updateUINPage = new UpdateUINPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { updateUINPage = new UpdateUINPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(updateUINPage.isUpdateMyUINTitleDisplayed(), "verify if the update my uin page is displayed"); @@ -255,34 +264,37 @@ public void updateMyUinMinor() throws InterruptedException { updateUINPage.clickOnContinueButton(); for (String screen : screenOrder) { if (screen.equals("consentdet") || screen.equals("consent")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { consentPage = new ConsentPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { consentPage = new ConsentPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { consentPage = new ConsentPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { consentPage = new ConsentPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { consentPage = new ConsentPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { consentPage = new ConsentPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } consentPage.clickOnInformedButton(); } else if (screen.equals("DemographicDetails")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(demographicPage.isPageDisplayed("DemographicDetails"), @@ -295,39 +307,42 @@ public void updateMyUinMinor() throws InterruptedException { demographicPage.clickOnContinueButton(); } else if (screen.equals("BiometricDetails")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), "Verify if biometric details page is displayed"); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } if (FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIrisScan(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -341,7 +356,7 @@ public void updateMyUinMinor() throws InterruptedException { "Verify if biometric details page is displayed"); applicantBiometricsPage = biometricDetailsPage.clickOnRightHandScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -355,7 +370,7 @@ public void updateMyUinMinor() throws InterruptedException { "Verify if biometric details page is displayed"); applicantBiometricsPage = biometricDetailsPage.clickOnLeftHandScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -369,7 +384,7 @@ public void updateMyUinMinor() throws InterruptedException { "Verify if biometric details page is displayed"); applicantBiometricsPage = biometricDetailsPage.clickOnThumbsScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -383,7 +398,7 @@ public void updateMyUinMinor() throws InterruptedException { "Verify if biometric details page is displayed"); biometricDetailsPage.clickOnFaceScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -394,19 +409,20 @@ public void updateMyUinMinor() throws InterruptedException { assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), "Verify if biometric details page is displayed"); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { introducerBiometricPage = new IntroducerBiometricPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } FetchUiSpec.getBiometricDetails("introducerBiometrics"); if (FetchUiSpec.eye.equals("yes")) { @@ -477,39 +493,43 @@ public void updateMyUinMinor() throws InterruptedException { biometricDetailsPage.clickOnContinueButton(); } else if (screen.equals("Documents")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(), "Verify if doccumentupload page is displayed"); - documentuploadPage.uploadDoccumentsUpdate("minor","all"); + documentuploadPage.uploadDoccumentsUpdate("minor", "all"); documentuploadPage.clickOnContinueButton(); } } - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { previewPage = new PreviewPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { previewPage = new PreviewPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { previewPage = new PreviewPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { previewPage = new PreviewPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { previewPage = new PreviewPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { previewPage = new PreviewPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(previewPage.updateUINTitleDisplayed(), "Verify if new update uin title is displayed"); assertTrue(previewPage.isApplicationIDPreviewPagePageDisplayed(), @@ -521,36 +541,40 @@ public void updateMyUinMinor() throws InterruptedException { // assertTrue(previewPage.isBiometricsInformationInPreviewPagePageDisplayed(),"Verify if Biometrics Information In PreviewPage is displayed"); String Aid = previewPage.getAID(); previewPage.clickOnContinueButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(authenticationPage.isAuthenticationPageDisplayed(), "Verify if authentication details page is displayed"); authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); authenticationPage.clickOnAuthenticatenButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(), "Verify if acknowledgement details page is displayed"); @@ -562,36 +586,39 @@ public void updateMyUinMinor() throws InterruptedException { assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnOperationalTasksTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); assertTrue(operationalTaskPage.isPendingApprovalTitleDisplayed(), "Verify if pending approval tite displayed"); operationalTaskPage.clickPendingApprovalTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed"); pendingApproval.clickOnAID(Aid); @@ -628,18 +655,20 @@ public void updateMyUinMinor() throws InterruptedException { "Verify if application upload tite displayed"); operationalTaskPage.clickApplicationUploadTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), "Verify if manage Applications Page displayed"); @@ -659,18 +688,20 @@ public void updateMyUinMinor() throws InterruptedException { assertTrue(registrationTasksPage.isProfileTitleDisplayed(), "Verify if profile title display on homepage"); registrationTasksPage.clickProfileButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { profilePage = new ProfilePageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { profilePage = new ProfilePageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { profilePage = new ProfilePageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { profilePage = new ProfilePageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { profilePage = new ProfilePageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { profilePage = new ProfilePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } // assertTrue(profilePage.isProfileTitleDisplayed(),"Verify if profile title // display on Profilepage"); diff --git a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinUpdateBiometrics.java b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinUpdateBiometrics.java index e6d00267a..d88a518fc 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinUpdateBiometrics.java +++ b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinUpdateBiometrics.java @@ -149,18 +149,22 @@ public void updateMyUINUpdatebiometrics() throws InterruptedException { UpdateUINPage updateUINPage = null; PendingApproval pendingApproval = null; - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + final String language = TestDataReader.readData("language"); + + if ("eng".equalsIgnoreCase(language)) { loginPage = new LoginPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { loginPage = new LoginPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { loginPage = new LoginPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { loginPage = new LoginPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { loginPage = new LoginPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { loginPage = new LoginPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } loginPage.selectLanguage(); loginPage.enterUserName(KeycloakUserManager.moduleSpecificUser); @@ -168,35 +172,38 @@ public void updateMyUINUpdatebiometrics() throws InterruptedException { loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); loginPage.clickOnloginButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } registrationTasksPage.clickUpdateMyUINButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), "Verify if select language page is loaded"); @@ -204,18 +211,20 @@ public void updateMyUINUpdatebiometrics() throws InterruptedException { selectLanguagePage.selectNotificationlanguage(TestDataReader.readData("notificationLanguage")); selectLanguagePage.clickOnSubmitButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { updateUINPage = new UpdateUINPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { updateUINPage = new UpdateUINPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { updateUINPage = new UpdateUINPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { updateUINPage = new UpdateUINPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { updateUINPage = new UpdateUINPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { updateUINPage = new UpdateUINPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } updateUINPage.clickOnContinueButton(); @@ -227,70 +236,76 @@ public void updateMyUINUpdatebiometrics() throws InterruptedException { updateUINPage.clickOnContinueButton(); for (String screen : screenOrder) { if (screen.equals("consentdet") || screen.equals("consent")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { consentPage = new ConsentPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { consentPage = new ConsentPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { consentPage = new ConsentPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { consentPage = new ConsentPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { consentPage = new ConsentPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { consentPage = new ConsentPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } consentPage.clickOnInformedButton(); } else if (screen.equals("DemographicDetails")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } demographicPage.clickOnContinueButton(); } else if (screen.equals("BiometricDetails")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), "Verify if biometric details page is displayed"); if (FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIrisScan(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -305,7 +320,7 @@ public void updateMyUINUpdatebiometrics() throws InterruptedException { "Verify if biometric details page is displayed"); applicantBiometricsPage = biometricDetailsPage.clickOnRightHandScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -319,7 +334,7 @@ public void updateMyUINUpdatebiometrics() throws InterruptedException { "Verify if biometric details page is displayed"); applicantBiometricsPage = biometricDetailsPage.clickOnLeftHandScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -333,7 +348,7 @@ public void updateMyUINUpdatebiometrics() throws InterruptedException { "Verify if biometric details page is displayed"); applicantBiometricsPage = biometricDetailsPage.clickOnThumbsScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -347,7 +362,7 @@ public void updateMyUINUpdatebiometrics() throws InterruptedException { "Verify if biometric details page is displayed"); biometricDetailsPage.clickOnFaceScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); @@ -360,67 +375,75 @@ public void updateMyUINUpdatebiometrics() throws InterruptedException { biometricDetailsPage.clickOnContinueButton(); } else if (screen.equals("Documents")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } documentuploadPage.clickOnContinueButton(); } } - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { previewPage = new PreviewPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { previewPage = new PreviewPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { previewPage = new PreviewPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { previewPage = new PreviewPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { previewPage = new PreviewPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { previewPage = new PreviewPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } String Aid = previewPage.getAID(); previewPage.clickOnContinueButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(authenticationPage.isAuthenticationPageDisplayed(), "Verify if authentication details page is displayed"); authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); authenticationPage.clickOnAuthenticatenButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(), "Verify if acknowledgement details page is displayed"); @@ -430,36 +453,39 @@ public void updateMyUINUpdatebiometrics() throws InterruptedException { assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnOperationalTasksTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); assertTrue(operationalTaskPage.isPendingApprovalTitleDisplayed(), "Verify if pending approval tite displayed"); operationalTaskPage.clickPendingApprovalTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed"); pendingApproval.clickOnAID(Aid); @@ -492,18 +518,20 @@ public void updateMyUINUpdatebiometrics() throws InterruptedException { "Verify if application upload tite displayed"); operationalTaskPage.clickApplicationUploadTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), "Verify if manage Applications Page displayed"); @@ -517,18 +545,20 @@ public void updateMyUINUpdatebiometrics() throws InterruptedException { assertTrue(registrationTasksPage.isProfileTitleDisplayed(), "Verify if profile title display on homepage"); registrationTasksPage.clickProfileButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { profilePage = new ProfilePageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { profilePage = new ProfilePageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { profilePage = new ProfilePageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { profilePage = new ProfilePageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { profilePage = new ProfilePageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { profilePage = new ProfilePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } profilePage.clickOnLogoutButton(); diff --git a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinUpdateDocuments.java b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinUpdateDocuments.java index 0fc8f3124..b4aa465bc 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinUpdateDocuments.java +++ b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinUpdateDocuments.java @@ -1,6 +1,5 @@ package regclient.androidTestCases; - import static org.testng.Assert.assertTrue; import java.util.List; @@ -150,18 +149,22 @@ public void updateMyUinUpdateDocuments() throws InterruptedException { UpdateUINPage updateUINPage = null; PendingApproval pendingApproval = null; - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + final String language = TestDataReader.readData("language"); + + if ("eng".equalsIgnoreCase(language)) { loginPage = new LoginPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { loginPage = new LoginPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { loginPage = new LoginPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { loginPage = new LoginPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { loginPage = new LoginPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { loginPage = new LoginPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } loginPage.selectLanguage(); loginPage.enterUserName(KeycloakUserManager.moduleSpecificUser); @@ -169,36 +172,39 @@ public void updateMyUinUpdateDocuments() throws InterruptedException { loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); loginPage.clickOnloginButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickUpdateMyUINButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), "Verify if select language page is loaded"); selectLanguagePage.clickOnSubmitButtonWithoutSelectingLanguage(); @@ -213,18 +219,20 @@ public void updateMyUinUpdateDocuments() throws InterruptedException { assertTrue(selectLanguagePage.isSubmitButtonEnabled(), "verify if the submit button enabled"); selectLanguagePage.clickOnSubmitButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { updateUINPage = new UpdateUINPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { updateUINPage = new UpdateUINPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { updateUINPage = new UpdateUINPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { updateUINPage = new UpdateUINPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { updateUINPage = new UpdateUINPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { updateUINPage = new UpdateUINPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(updateUINPage.isUpdateMyUINTitleDisplayed(), "verify if the update my uin page is displayed"); @@ -239,95 +247,104 @@ public void updateMyUinUpdateDocuments() throws InterruptedException { updateUINPage.clickOnContinueButton(); for (String screen : screenOrder) { if (screen.equals("consentdet") || screen.equals("consent")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { consentPage = new ConsentPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { consentPage = new ConsentPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { consentPage = new ConsentPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { consentPage = new ConsentPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { consentPage = new ConsentPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { consentPage = new ConsentPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } consentPage.clickOnInformedButton(); } else if (screen.equals("DemographicDetails")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } demographicPage.clickOnContinueButton(); } else if (screen.equals("Documents")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { documentuploadPage = new DocumentuploadPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } documentuploadPage.uploadDoccumentsUpdate("adult", "all"); documentuploadPage.clickOnContinueButton(); } else if (screen.equals("BiometricDetails")) { - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { biometricDetailsPage = new BiometricDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(biometricDetailsPage.isAuthenticationBiometricTitleDisplayed(), "Verify if biometric details page is displayed without upload doccument"); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } biometricDetailsPage.clickOnRightHandScanIcon(); - assertTrue(applicantBiometricsPage.isAuthenticationBiometricsPageDisplyed(), + assertTrue(applicantBiometricsPage.isAuthenticationBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnMarkExceptionButton(); - assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplyed(), + assertTrue(applicantBiometricsPage.isExceptionTypeTitleDisplayed(), "Verify if applicant biometric mark exception is displayed"); applicantBiometricsPage.markOneFingureException(); - assertTrue(applicantBiometricsPage.isExceptionCountDisplyed(), + assertTrue(applicantBiometricsPage.isExceptionCountDisplayed(), "Verify if exception count is displayed"); applicantBiometricsPage.clickOnRightHandScanTitle(); applicantBiometricsPage.clickOnScanButton(); @@ -342,18 +359,20 @@ public void updateMyUinUpdateDocuments() throws InterruptedException { } } - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { previewPage = new PreviewPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { previewPage = new PreviewPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { previewPage = new PreviewPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { previewPage = new PreviewPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { previewPage = new PreviewPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { previewPage = new PreviewPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(previewPage.updateUINTitleDisplayed(), "Verify if new update uin title is displayed"); assertTrue(previewPage.isApplicationIDPreviewPagePageDisplayed(), @@ -366,36 +385,40 @@ public void updateMyUinUpdateDocuments() throws InterruptedException { "Verify if Biometrics Information In PreviewPage is displayed"); String Aid = previewPage.getAID(); previewPage.clickOnContinueButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(authenticationPage.isAuthenticationPageDisplayed(), "Verify if authentication details page is displayed"); authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); authenticationPage.clickOnAuthenticatenButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { acknowledgementPage = new AcknowledgementPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(), "Verify if acknowledgement details page is displayed"); @@ -407,36 +430,39 @@ public void updateMyUinUpdateDocuments() throws InterruptedException { assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnOperationalTasksTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); assertTrue(operationalTaskPage.isPendingApprovalTitleDisplayed(), "Verify if pending approval tite displayed"); operationalTaskPage.clickPendingApprovalTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { pendingApproval = new PendingApprovalArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed"); pendingApproval.clickOnAID(Aid); @@ -475,18 +501,20 @@ public void updateMyUinUpdateDocuments() throws InterruptedException { "Verify if application upload tite displayed"); operationalTaskPage.clickApplicationUploadTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { manageApplicationsPage = new ManageApplicationsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), "Verify if manage Applications Page displayed"); @@ -506,18 +534,20 @@ public void updateMyUinUpdateDocuments() throws InterruptedException { assertTrue(registrationTasksPage.isProfileTitleDisplayed(), "Verify if profile title display on homepage"); registrationTasksPage.clickProfileButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { profilePage = new ProfilePageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { profilePage = new ProfilePageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { profilePage = new ProfilePageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { profilePage = new ProfilePageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { profilePage = new ProfilePageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { profilePage = new ProfilePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } // assertTrue(profilePage.isProfileTitleDisplayed(),"Verify if profile title // display on Profilepage"); diff --git a/ui-test/src/main/java/regclient/androidTestCases/logintest.java b/ui-test/src/main/java/regclient/androidTestCases/logintest.java index 7cf2833d8..7178f8cea 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/logintest.java +++ b/ui-test/src/main/java/regclient/androidTestCases/logintest.java @@ -81,18 +81,22 @@ public void ALoginTest() { DashboardPage dashboardPage = null; ProfilePage profilePage = null; - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + final String language = TestDataReader.readData("language"); + + if ("eng".equalsIgnoreCase(language)) { loginPage = new LoginPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { loginPage = new LoginPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { loginPage = new LoginPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { loginPage = new LoginPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { loginPage = new LoginPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { loginPage = new LoginPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } loginPage.selectLanguage(); @@ -142,19 +146,20 @@ public void ALoginTest() { assertTrue(loginPage.isLoginButtonEnabled(), "Verify if the login button enabled"); loginPage.clickOnloginButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); @@ -167,19 +172,20 @@ public void ALoginTest() { // "Verify if biometric correction title display "); registrationTasksPage.clickOnOperationalTasksTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); @@ -188,18 +194,20 @@ public void ALoginTest() { registrationTasksPage.clickOnDashboardButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { - dashboardPage = new DashboardPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { - dashboardPage = new DashboardPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { - dashboardPage = new DashboardPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { - dashboardPage = new DashboardPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { - dashboardPage = new DashboardPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { - dashboardPage = new DashboardPageArabic(driver); + if ("eng".equalsIgnoreCase(language)) { + dashboardPage = new DashboardPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + dashboardPage = new DashboardPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + dashboardPage = new DashboardPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + dashboardPage = new DashboardPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + dashboardPage = new DashboardPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + dashboardPage = new DashboardPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(dashboardPage.isDashboardTitleDisplayed(), "Verify if dashboard page is loaded"); @@ -212,18 +220,20 @@ public void ALoginTest() { assertTrue(registrationTasksPage.isProfileTitleDisplayed(), "Verify if profile title display on homepage"); registrationTasksPage.clickProfileButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { profilePage = new ProfilePageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { profilePage = new ProfilePageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { profilePage = new ProfilePageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { profilePage = new ProfilePageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { profilePage = new ProfilePageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { profilePage = new ProfilePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } // assertTrue(profilePage.isProfileTitleDisplayed(),"Verify if profile title // display on Profilepage"); @@ -235,226 +245,208 @@ public void ALoginTest() { } - /* - * @Test(priority=1) public void OnBoardTest() { BasePage.disableAutoRotation(); - * LoginPage loginPage=null; OnBoardPage onBoardPage=null; - * SupervisorBiometricVerificationpage supervisorBiometricVerificationpage=null; - * - * if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { loginPage = - * new LoginPageEnglish(driver); } else - * if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ loginPage = - * new LoginPageHindi(driver); } else - * if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ loginPage = - * new LoginPageFrench(driver); } else - * if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ loginPage = - * new LoginPageKannada(driver); } else - * if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ loginPage = - * new LoginPageTamil(driver); } else - * if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ loginPage = - * new LoginPageArabic(driver); } loginPage.selectLanguage(); - * - * assertTrue(loginPage.isWelcomeMessageInSelectedLanguageDisplayed(), - * "verify if the welcome msg in selected language displayed"); - * loginPage.enterUserName(KeycloakUserManager.onboardUser); - * - * assertTrue(loginPage.isNextButtonEnabled(), - * "verify if the next button enabled"); loginPage.clickOnNextButton(); - * - * assertTrue(loginPage.isBackButtonDisplayed(), - * "Verify if back button is displayed"); - * assertTrue(loginPage.isForgetOptionDisplayed(), - * "Verify if forget password option is displayed"); - * assertTrue(loginPage.isPasswordHeaderDisplayed(), - * "Verify if the password input box header displayed"); - * loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); - * - * assertTrue(loginPage.isLoginButtonEnabled(), - * "Verify if the login button enabled"); loginPage.clickOnloginButton(); - * - * if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - * onBoardPage=new OnBoardPageEnglish(driver); } else - * if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - * onBoardPage=new OnBoardPageHindi(driver); } else - * if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - * onBoardPage=new OnBoardPageFrench(driver); } else - * if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - * onBoardPage=new OnBoardPageKannada(driver); } else - * if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - * onBoardPage=new OnBoardPageTamil(driver); } else - * if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - * onBoardPage=new OnBoardPageArabic(driver); } - * assertTrue(onBoardPage.isGetOnBoardTitleDisplayed(), - * "Verify if on board page is loaded"); - * //assertTrue(onBoardPage.isHelpButtonDisplayed(), - * "Verify if help button is displayed"); - * assertTrue(onBoardPage.isOnBoardWelcomeMessageDisplayed(), - * "Verify if on board page hello message is loaded"); - * onBoardPage.clickOnGetOnBoardTitle(); - * - * if(TestDataReader.readData("language").equalsIgnoreCase("eng")) { - * supervisorBiometricVerificationpage=new - * SupervisorBiometricVerificationpageEnglish(driver); } else - * if(TestDataReader.readData("language").equalsIgnoreCase("hin")){ - * supervisorBiometricVerificationpage=new - * SupervisorBiometricVerificationpageHindi(driver); } else - * if(TestDataReader.readData("language").equalsIgnoreCase("fra")){ - * supervisorBiometricVerificationpage=new - * SupervisorBiometricVerificationpageFrench(driver); } else - * if(TestDataReader.readData("language").equalsIgnoreCase("kan")){ - * supervisorBiometricVerificationpage=new - * SupervisorBiometricVerificationpageKannada(driver); } else - * if(TestDataReader.readData("language").equalsIgnoreCase("tam")){ - * supervisorBiometricVerificationpage=new - * SupervisorBiometricVerificationpageTamil(driver); } else - * if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ - * supervisorBiometricVerificationpage=new - * SupervisorBiometricVerificationpageArabic(driver); } - * assertTrue(supervisorBiometricVerificationpage. - * isSupervisorBiometricVerificationPageLoaded(), - * "Verify if operational tasks page is loaded"); - * if(FetchUiSpec.eye.equals("yes")) { - * supervisorBiometricVerificationpage.clickOnIrisScan();; - * - * supervisorBiometricVerificationpage.clickOnMarkExceptionButton(); - * - * assertTrue(supervisorBiometricVerificationpage.isExceptionTypeTitleDisplyed() - * ,"Verify if mark exception is displayed"); - * supervisorBiometricVerificationpage.markOneEyeException(); - * - * // supervisorBiometricVerificationpage.clickOnExceptionTypeTemporaryButton(); - * // assertTrue(supervisorBiometricVerificationpage.isCommentHeaderDisplyed() - * ,"Verify if Comments header is displayed"); - * - * supervisorBiometricVerificationpage.clickOnIrisScanTitle(); - * supervisorBiometricVerificationpage.clickOnScanButton(); - * - * assertTrue(supervisorBiometricVerificationpage.isIrisScan() - * ,"Verify if iris scan 1st attempt"); - * supervisorBiometricVerificationpage.closeScanCapturePopUp(); - * - * assertTrue(supervisorBiometricVerificationpage.isIrisScanQualityDisplyed() - * ,"Verify if iris scan threshold , Quality displayed"); - * assertTrue(supervisorBiometricVerificationpage.checkThresholdValueIris() - * ,"Verify if biometric score exceeds/meets the threshold for iris"); - * - * supervisorBiometricVerificationpage.clickOnBackButton(); } //righthand - * if(FetchUiSpec.rightHand.equals("yes")) { - * supervisorBiometricVerificationpage.clickOnRightHandScanIcon(); - * - * assertTrue(supervisorBiometricVerificationpage.isRightHandScanTitleDisplyed() - * ,"Verify if applicant right hand scan is displayed"); - * supervisorBiometricVerificationpage.clickOnMarkExceptionButton(); - * - * assertTrue(supervisorBiometricVerificationpage.isZoomButtonDisplyed() - * ,"Verify if zoom button is displayed"); - * supervisorBiometricVerificationpage.clickOnRightHandScanTitle(); - * supervisorBiometricVerificationpage.clickOnScanButton(); - * - * assertTrue(supervisorBiometricVerificationpage.isRightHandScan() - * ,"Verify if right hand scan 1st attempt"); - * supervisorBiometricVerificationpage.closeScanCapturePopUp(); - * - * assertTrue(supervisorBiometricVerificationpage.isRightHandScanQualityDisplyed - * (),"Verify if right hand scan threshold , Quality displayed"); - * assertTrue(supervisorBiometricVerificationpage.checkThresholdValueRightHand() - * ,"Verify if biometric score exceeds/meets the threshold for right hand"); - * - * supervisorBiometricVerificationpage.clickOnBackButton(); } //lefthand - * if(FetchUiSpec.leftHand.equals("yes")) { - * supervisorBiometricVerificationpage.clickOnLeftHandScanIcon(); - * assertTrue(supervisorBiometricVerificationpage.isLeftHandScanTitleDisplyed() - * ,"Verify if applicant right hand scan is displayed"); - * supervisorBiometricVerificationpage.clickOnMarkExceptionButton(); - * - * assertTrue(supervisorBiometricVerificationpage.isZoomButtonDisplyed() - * ,"Verify if zoom button is displayed"); - * supervisorBiometricVerificationpage.clickOnleftHandScanTitle(); - * supervisorBiometricVerificationpage.clickOnScanButton(); - * - * assertTrue(supervisorBiometricVerificationpage.isLeftHandScan() - * ,"Verify if Left hand scan 1st attempt"); - * supervisorBiometricVerificationpage.closeScanCapturePopUp(); - * - * assertTrue(supervisorBiometricVerificationpage.isLeftHandScanQualityDisplyed( - * ),"Verify if left hand scan threshold , Quality displayed"); - * assertTrue(supervisorBiometricVerificationpage.checkThresholdValueLeftHand() - * ,"Verify if biometric score exceeds/meets the threshold for left hand"); - * - * supervisorBiometricVerificationpage.clickOnBackButton(); } //thumbs - * if(FetchUiSpec.thumb.equals("yes")) { - * supervisorBiometricVerificationpage.clickOnThumbsScanIcon(); - * assertTrue(supervisorBiometricVerificationpage.isThumbsScanTitleDisplyed() - * ,"Verify if thumbs scan page is displayed"); - * supervisorBiometricVerificationpage.clickOnMarkExceptionButton(); - * - * assertTrue(supervisorBiometricVerificationpage.isExceptionTypeTitleDisplyed() - * ,"Verify if applicant biometric mark exception is displayed"); - * supervisorBiometricVerificationpage.markOneFingureException(); - * - * // assertFalse(supervisorBiometricVerificationpage.isZoomButtonDisplyed() - * ,"Verify if zoom button is not displayed for thumb"); // - * supervisorBiometricVerificationpage.clickOnExceptionTypeTemporaryButton(); // - * // assertTrue(supervisorBiometricVerificationpage.isCommentHeaderDisplyed() - * ,"Verify if Comments header is displayed"); // - * supervisorBiometricVerificationpage.enterCommentsInTextBox(TestDataReader. - * readData("comments")); - * - * supervisorBiometricVerificationpage.clickOnThumbsScanTitle(); - * supervisorBiometricVerificationpage.clickOnScanButton(); - * - * assertTrue(supervisorBiometricVerificationpage.isThumbsScan() - * ,"Verify if thumbs scan 1st attempt"); - * supervisorBiometricVerificationpage.closeScanCapturePopUp(); - * - * assertTrue(supervisorBiometricVerificationpage.isThumbsScanQualityDisplyed() - * ,"Verify if thumbs scan threshold , Quality displayed"); - * assertTrue(supervisorBiometricVerificationpage.checkThresholdValueThumbs() - * ,"Verify if biometric score exceeds/meets the threshold for thumbs"); //menu - * - * supervisorBiometricVerificationpage.clickOnBackButton(); } - * if(FetchUiSpec.face.equals("yes")) { - * supervisorBiometricVerificationpage.clickOnFaceScanIcon(); - * - * //face - * assertTrue(supervisorBiometricVerificationpage.isFaceScanTitleDisplyed() - * ,"Verify if face scan page is displayed"); - * supervisorBiometricVerificationpage.clickOnMarkExceptionButton(); - * - * // assertTrue(supervisorBiometricVerificationpage. - * isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed() - * ,"Verify if is Marking Exceptions On Face Is Not Allowed Text Displyed"); - * supervisorBiometricVerificationpage.clickOnFaceScanTitle(); - * supervisorBiometricVerificationpage.clickOnScanButton(); - * - * assertTrue(supervisorBiometricVerificationpage.isFaceScan() - * ,"Verify if face scan 1st attempt"); - * supervisorBiometricVerificationpage.closeScanCapturePopUp(); - * - * assertTrue(supervisorBiometricVerificationpage.isFaceScanQualityDisplyed() - * ,"Verify if face scan threshold , Quality displayed"); - * assertTrue(supervisorBiometricVerificationpage.checkThresholdValueFace() - * ,"Verify if biometric score exceeds/meets the threshold for face"); - * supervisorBiometricVerificationpage.clickOnBackButton(); } - * - * assertTrue(supervisorBiometricVerificationpage. - * isSupervisorBiometricVerificationPageLoaded(), - * "Verify if operational tasks page is loaded"); - * assertTrue(supervisorBiometricVerificationpage.isVerifyAndSaveButtonEnabled() - * , "Verify if verify and save button is display and enable"); - * assertFalse(supervisorBiometricVerificationpage.isExceptionScanTitleDisplyed( - * ),"Verify if exception scan icon is displayed"); - * supervisorBiometricVerificationpage.clickOnVerifyAndSaveButton(); - * - * assertTrue(supervisorBiometricVerificationpage.isDismissPageLoaded() - * ,"Verify if dismiss page is displayed after click on verfiy and save button " - * ); - * assertTrue(supervisorBiometricVerificationpage.isOperatorOnboardedPopupLoaded - * (),"Verify if operator biometrics updated success message is displayed"); - * supervisorBiometricVerificationpage.clickOnHomeButton(); - * - * - * } - */ + @Test(priority = 1) + public void OnBoardTest() { + BasePage.disableAutoRotation(); + LoginPage loginPage = null; + OnBoardPage onBoardPage = null; + SupervisorBiometricVerificationpage supervisorBiometricVerificationpage = null; + + final String language = TestDataReader.readData("language"); + + if ("eng".equalsIgnoreCase(language)) { + loginPage = new LoginPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + loginPage = new LoginPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + loginPage = new LoginPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + loginPage = new LoginPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + loginPage = new LoginPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + loginPage = new LoginPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + loginPage.selectLanguage(); + + assertTrue(loginPage.isWelcomeMessageInSelectedLanguageDisplayed(), + "verify if the welcome msg in selected language displayed"); + loginPage.enterUserName(KeycloakUserManager.onboardUser); + + assertTrue(loginPage.isNextButtonEnabled(), "verify if the next button enabled"); + loginPage.clickOnNextButton(); + + assertTrue(loginPage.isBackButtonDisplayed(), "Verify if back button is displayed"); + assertTrue(loginPage.isForgetOptionDisplayed(), "Verify if forget password option is displayed"); + assertTrue(loginPage.isPasswordHeaderDisplayed(), "Verify if the password input box header displayed"); + loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); + + assertTrue(loginPage.isLoginButtonEnabled(), "Verify if the login button enabled"); + loginPage.clickOnloginButton(); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + onBoardPage = new OnBoardPageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + onBoardPage = new OnBoardPageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + onBoardPage = new OnBoardPageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + onBoardPage = new OnBoardPageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + onBoardPage = new OnBoardPageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + onBoardPage = new OnBoardPageArabic(driver); + } + assertTrue(onBoardPage.isGetOnBoardTitleDisplayed(), "Verify if on board page is loaded"); + assertTrue(onBoardPage.isOnBoardWelcomeMessageDisplayed(), "Verify if on board page hello message is loaded"); + onBoardPage.clickOnGetOnBoardTitle(); + + if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + supervisorBiometricVerificationpage = new SupervisorBiometricVerificationpageEnglish(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + supervisorBiometricVerificationpage = new SupervisorBiometricVerificationpageHindi(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + supervisorBiometricVerificationpage = new SupervisorBiometricVerificationpageFrench(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + supervisorBiometricVerificationpage = new SupervisorBiometricVerificationpageKannada(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + supervisorBiometricVerificationpage = new SupervisorBiometricVerificationpageTamil(driver); + } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + supervisorBiometricVerificationpage = new SupervisorBiometricVerificationpageArabic(driver); + } + + assertTrue(supervisorBiometricVerificationpage.isSupervisorBiometricVerificationPageLoaded(), + "Verify if operational tasks page is loaded"); + + if (FetchUiSpec.eye.equals("yes")) { + supervisorBiometricVerificationpage.clickOnIrisScan(); + supervisorBiometricVerificationpage.clickOnMarkExceptionButton(); + + assertTrue(supervisorBiometricVerificationpage.isExceptionTypeTitleDisplayed(), + "Verify if mark exception is displayed"); + supervisorBiometricVerificationpage.markOneEyeException(); + + supervisorBiometricVerificationpage.clickOnIrisScanTitle(); + supervisorBiometricVerificationpage.clickOnScanButton(); + + assertTrue(supervisorBiometricVerificationpage.isIrisScan(), "Verify if iris scan 1st attempt"); + supervisorBiometricVerificationpage.closeScanCapturePopUp(); + + assertTrue(supervisorBiometricVerificationpage.isIrisScanQualityDisplayed(), + "Verify if iris scan threshold , Quality displayed"); + assertTrue(supervisorBiometricVerificationpage.checkThresholdValueIris(), + "Verify if biometric score exceeds/meets the threshold for iris"); + + supervisorBiometricVerificationpage.clickOnBackButton(); + } + + if (FetchUiSpec.rightHand.equals("yes")) { + supervisorBiometricVerificationpage.clickOnRightHandScanIcon(); + + assertTrue(supervisorBiometricVerificationpage.isRightHandScanTitleDisplayed(), + "Verify if applicant right hand scan is displayed"); + supervisorBiometricVerificationpage.clickOnMarkExceptionButton(); + + assertTrue(supervisorBiometricVerificationpage.isZoomButtonDisplayed(), + "Verify if zoom button is displayed"); + supervisorBiometricVerificationpage.clickOnRightHandScanTitle(); + supervisorBiometricVerificationpage.clickOnScanButton(); + + assertTrue(supervisorBiometricVerificationpage.isRightHandScan(), "Verify if right hand scan 1st attempt"); + supervisorBiometricVerificationpage.closeScanCapturePopUp(); + + assertTrue(supervisorBiometricVerificationpage.isRightHandScanQualityDisplayed(), + "Verify if right hand scan threshold , Quality displayed"); + assertTrue(supervisorBiometricVerificationpage.checkThresholdValueRightHand(), + "Verify if biometric score exceeds/meets the threshold for right hand"); + + supervisorBiometricVerificationpage.clickOnBackButton(); + } + + if (FetchUiSpec.leftHand.equals("yes")) { + supervisorBiometricVerificationpage.clickOnLeftHandScanIcon(); + assertTrue(supervisorBiometricVerificationpage.isLeftHandScanTitleDisplayed(), + "Verify if applicant right hand scan is displayed"); + supervisorBiometricVerificationpage.clickOnMarkExceptionButton(); + + assertTrue(supervisorBiometricVerificationpage.isZoomButtonDisplayed(), + "Verify if zoom button is displayed"); + supervisorBiometricVerificationpage.clickOnLeftHandScanTitle(); + supervisorBiometricVerificationpage.clickOnScanButton(); + + assertTrue(supervisorBiometricVerificationpage.isLeftHandScan(), "Verify if Left hand scan 1st attempt"); + supervisorBiometricVerificationpage.closeScanCapturePopUp(); + + assertTrue(supervisorBiometricVerificationpage.isLeftHandScanQualityDisplayed(), + "Verify if left hand scan threshold , Quality displayed"); + assertTrue(supervisorBiometricVerificationpage.checkThresholdValueLeftHand(), + "Verify if biometric score exceeds/meets the threshold for left hand"); + + supervisorBiometricVerificationpage.clickOnBackButton(); + } + + if (FetchUiSpec.thumb.equals("yes")) { + supervisorBiometricVerificationpage.clickOnThumbsScanIcon(); + assertTrue(supervisorBiometricVerificationpage.isThumbsScanTitleDisplayed(), + "Verify if thumbs scan page is displayed"); + supervisorBiometricVerificationpage.clickOnMarkExceptionButton(); + + assertTrue(supervisorBiometricVerificationpage.isExceptionTypeTitleDisplayed(), + "Verify if applicant biometric mark exception is displayed"); + supervisorBiometricVerificationpage.markOneFingreException(); + + supervisorBiometricVerificationpage.clickOnThumbsScanTitle(); + supervisorBiometricVerificationpage.clickOnScanButton(); + + assertTrue(supervisorBiometricVerificationpage.isThumbsScan(), "Verify if thumbs scan 1st attempt"); + supervisorBiometricVerificationpage.closeScanCapturePopUp(); + + assertTrue(supervisorBiometricVerificationpage.isThumbsScanQualityDisplayed(), + "Verify if thumbs scan threshold , Quality displayed"); + assertTrue(supervisorBiometricVerificationpage.checkThresholdValueThumbs(), + "Verify if biometric score exceeds/meets the threshold for thumbs"); + + supervisorBiometricVerificationpage.clickOnBackButton(); + } + + if (FetchUiSpec.face.equals("yes")) { + supervisorBiometricVerificationpage.clickOnFaceScanIcon(); + + assertTrue(supervisorBiometricVerificationpage.isFaceScanTitleDisplayed(), + "Verify if face scan page is displayed"); + supervisorBiometricVerificationpage.clickOnMarkExceptionButton(); + + supervisorBiometricVerificationpage.clickOnFaceScanTitle(); + supervisorBiometricVerificationpage.clickOnScanButton(); + + assertTrue(supervisorBiometricVerificationpage.isFaceScan(), "Verify if face scan 1st attempt"); + supervisorBiometricVerificationpage.closeScanCapturePopUp(); + + assertTrue(supervisorBiometricVerificationpage.isFaceScanQualityDisplayed(), + "Verify if face scan threshold , Quality displayed"); + assertTrue(supervisorBiometricVerificationpage.checkThresholdValueFace(), + "Verify if biometric score exceeds/meets the threshold for face"); + supervisorBiometricVerificationpage.clickOnBackButton(); + } + + assertTrue(supervisorBiometricVerificationpage.isSupervisorBiometricVerificationPageLoaded(), + "Verify if operational tasks page is loaded"); + assertTrue(supervisorBiometricVerificationpage.isVerifyAndSaveButtonEnabled(), + "Verify if verify and save button is display and enable"); + assertFalse(supervisorBiometricVerificationpage.isExceptionScanTitleDisplayed(), + "Verify if exception scan icon is displayed"); + supervisorBiometricVerificationpage.clickOnVerifyAndSaveButton(); + + assertTrue(supervisorBiometricVerificationpage.isDismissPageLoaded(), + "Verify if dismiss page is displayed after click on verfiy and save button"); + assertTrue(supervisorBiometricVerificationpage.isOperatorOnboardedPopupLoaded(), + "Verify if operator biometrics updated success message is displayed"); + supervisorBiometricVerificationpage.clickOnHomeButton(); + + } + @Test(priority = 2) public void updateOperatorBiometrics() { BasePage.disableAutoRotation(); @@ -548,7 +540,7 @@ public void updateOperatorBiometrics() { UpdateOperatorBiometricspage.clickOnMarkExceptionButton(); - assertTrue(UpdateOperatorBiometricspage.isExceptionTypeTitleDisplyed(), + assertTrue(UpdateOperatorBiometricspage.isExceptionTypeTitleDisplayed(), "Verify if mark exception is displayed"); UpdateOperatorBiometricspage.markOneEyeException(); // UpdateOperatorBiometricspage.clickOnExceptionTypeTemporaryButton(); @@ -560,7 +552,7 @@ public void updateOperatorBiometrics() { assertTrue(UpdateOperatorBiometricspage.isIrisScan(), "Verify if iris scan 1st attempt"); UpdateOperatorBiometricspage.closeScanCapturePopUp(); - assertTrue(UpdateOperatorBiometricspage.isIrisScanQualityDisplyed(), + assertTrue(UpdateOperatorBiometricspage.isIrisScanQualityDisplayed(), "Verify if iris scan threshold , Quality displayed"); assertTrue(UpdateOperatorBiometricspage.checkThresholdValueIris(), "Verify if biometric score exceeds/meets the threshold for iris"); @@ -571,7 +563,7 @@ public void updateOperatorBiometrics() { UpdateOperatorBiometricspage.clickOnRightHandScanIcon(); // righthand - assertTrue(UpdateOperatorBiometricspage.isRightHandScanTitleDisplyed(), + assertTrue(UpdateOperatorBiometricspage.isRightHandScanTitleDisplayed(), "Verify if applicant right hand scan is displayed"); UpdateOperatorBiometricspage.clickOnMarkExceptionButton(); @@ -582,7 +574,7 @@ public void updateOperatorBiometrics() { assertTrue(UpdateOperatorBiometricspage.isRightHandScan(), "Verify if right hand scan 1st attempt"); UpdateOperatorBiometricspage.closeScanCapturePopUp(); - assertTrue(UpdateOperatorBiometricspage.isRightHandScanQualityDisplyed(), + assertTrue(UpdateOperatorBiometricspage.isRightHandScanQualityDisplayed(), "Verify if right hand scan threshold , Quality displayed"); assertTrue(UpdateOperatorBiometricspage.checkThresholdValueRightHand(), "Verify if biometric score exceeds/meets the threshold for right hand"); @@ -593,18 +585,18 @@ public void updateOperatorBiometrics() { if (FetchUiSpec.leftHand.equals("yes")) { UpdateOperatorBiometricspage.clickOnLeftHandScanIcon(); - assertTrue(UpdateOperatorBiometricspage.isLeftHandScanTitleDisplyed(), + assertTrue(UpdateOperatorBiometricspage.isLeftHandScanTitleDisplayed(), "Verify if applicant right hand scan is displayed"); UpdateOperatorBiometricspage.clickOnMarkExceptionButton(); - assertTrue(UpdateOperatorBiometricspage.isZoomButtonDisplyed(), "Verify if zoom button is displayed"); + assertTrue(UpdateOperatorBiometricspage.isZoomButtonDisplayed(), "Verify if zoom button is displayed"); UpdateOperatorBiometricspage.clickOnLeftHandScanTitle(); UpdateOperatorBiometricspage.clickOnScanButton(); assertTrue(UpdateOperatorBiometricspage.isLeftHandScan(), "Verify if Left hand scan 1st attempt"); UpdateOperatorBiometricspage.closeScanCapturePopUp(); - assertTrue(UpdateOperatorBiometricspage.isLeftHandScanQualityDisplyed(), + assertTrue(UpdateOperatorBiometricspage.isLeftHandScanQualityDisplayed(), "Verify if left hand scan threshold , Quality displayed"); assertTrue(UpdateOperatorBiometricspage.checkThresholdValueLeftHand(), "Verify if biometric score exceeds/meets the threshold for left hand"); @@ -615,11 +607,11 @@ public void updateOperatorBiometrics() { if (FetchUiSpec.thumb.equals("yes")) { UpdateOperatorBiometricspage.clickOnThumbsScanIcon(); - assertTrue(UpdateOperatorBiometricspage.isThumbsScanTitleDisplyed(), + assertTrue(UpdateOperatorBiometricspage.isThumbsScanTitleDisplayed(), "Verify if thumbs scan page is displayed"); UpdateOperatorBiometricspage.clickOnMarkExceptionButton(); - assertTrue(UpdateOperatorBiometricspage.isExceptionTypeTitleDisplyed(), + assertTrue(UpdateOperatorBiometricspage.isExceptionTypeTitleDisplayed(), "Verify if applicant biometric mark exception is displayed"); UpdateOperatorBiometricspage.markOneFingureException(); @@ -640,7 +632,7 @@ public void updateOperatorBiometrics() { assertTrue(UpdateOperatorBiometricspage.isThumbsScan(), "Verify if thumbs scan 2nd attempt"); UpdateOperatorBiometricspage.closeScanCapturePopUp(); - assertTrue(UpdateOperatorBiometricspage.isThumbsScanQualityDisplyed(), + assertTrue(UpdateOperatorBiometricspage.isThumbsScanQualityDisplayed(), "Verify if thumbs scan threshold , Quality displayed"); assertTrue(UpdateOperatorBiometricspage.checkThresholdValueThumbs(), "Verify if biometric score exceeds/meets the threshold for thumbs"); @@ -650,7 +642,7 @@ public void updateOperatorBiometrics() { if (FetchUiSpec.face.equals("yes")) { UpdateOperatorBiometricspage.clickOnFaceScanIcon(); - assertTrue(UpdateOperatorBiometricspage.isFaceScanTitleDisplyed(), "Verify if face scan page is displayed"); + assertTrue(UpdateOperatorBiometricspage.isFaceScanTitleDisplayed(), "Verify if face scan page is displayed"); UpdateOperatorBiometricspage.clickOnMarkExceptionButton(); // assertTrue(UpdateOperatorBiometricspage.isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed(),"Verify if is Marking Exceptions On Face Is Not Allowed Text Displyed"); @@ -660,7 +652,7 @@ public void updateOperatorBiometrics() { assertTrue(UpdateOperatorBiometricspage.isFaceScan(), "Verify if face scan 1st attempt"); UpdateOperatorBiometricspage.closeScanCapturePopUp(); - assertTrue(UpdateOperatorBiometricspage.isFaceScanQualityDisplyed(), + assertTrue(UpdateOperatorBiometricspage.isFaceScanQualityDisplayed(), "Verify if face scan threshold , Quality displayed"); assertTrue(UpdateOperatorBiometricspage.checkThresholdValueFace(), "Verify if biometric score exceeds/meets the threshold for face"); diff --git a/ui-test/src/main/java/regclient/api/AdminTestUtil.java b/ui-test/src/main/java/regclient/api/AdminTestUtil.java index d9e6d3cca..affb26672 100644 --- a/ui-test/src/main/java/regclient/api/AdminTestUtil.java +++ b/ui-test/src/main/java/regclient/api/AdminTestUtil.java @@ -15,6 +15,7 @@ import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.Arrays; +import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -53,6 +54,17 @@ public static String generateCurrentUTCTimeStamp() { dateFormat.setTimeZone(TimeZone.getTimeZone("UTC")); return dateFormat.format(date); } + + public static String generateFutureUTCTimeStamp(int daysToAdd) { + Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC")); + calendar.add(Calendar.DAY_OF_YEAR, daysToAdd); + + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); + dateFormat.setTimeZone(TimeZone.getTimeZone("UTC")); + + return dateFormat.format(calendar.getTime()); + } + public static String machinespecificationsID() { return AdminTestUtil.getmachinespecificationsID(tokenRoleAdmin); @@ -77,7 +89,7 @@ public static String creteaMachine(String signPublicKey, String publicKey, Strin requestJson.put("request", request); requestJson.getJSONObject("request").put("serialNum", "FB5962911687"); requestJson.getJSONObject("request").put("regCenterId", propsKernel.getProperty("regCenterId")); - requestJson.getJSONObject("request").put("validityDateTime", "2021-12-24T05:52:46.758Z"); + requestJson.getJSONObject("request").put("validityDateTime", AdminTestUtil.generateFutureUTCTimeStamp(30)); requestJson.getJSONObject("request").put("publicKey", publicKey); requestJson.getJSONObject("request").put("zoneCode", propsKernel.getProperty("zone")); requestJson.getJSONObject("request").put("signPublicKey", signPublicKey); @@ -204,9 +216,9 @@ public static void sendOtp(String userId, String langCode) { System.out.println("Response JSON = " + responseJson); if (responseJson.has("response") && responseJson.getJSONObject("response").has("status") && "success".equalsIgnoreCase(responseJson.getJSONObject("response").getString("status"))) { - System.out.println("✅ OTP request sent successfully."); + System.out.println("OTP request sent successfully."); } else { - throw new RuntimeException("❌ OTP request failed. Response: " + responseJson.toString()); + throw new RuntimeException("OTP request failed. Response: " + responseJson.toString()); } } @@ -243,10 +255,10 @@ public static Response validateOtp(String userId, String otp) { } if (responseJson.has("response") && responseJson.getJSONObject("response").has("status") && "success".equalsIgnoreCase(responseJson.getJSONObject("response").getString("status"))) { - System.out.println("✅ OTP validation successful."); + System.out.println("OTP validation successful."); return response; } else { - throw new RuntimeException("❌ OTP validation failed. Response: " + responseJson.toString()); + throw new RuntimeException("OTP validation failed. Response: " + responseJson.toString()); } } @@ -363,9 +375,9 @@ public static String createPreRegistration(String userId, String age) { JSONObject responseJson = new JSONObject(response.asString()); if (responseJson.has("response") && responseJson.getJSONObject("response").has("preRegistrationId")) { preRegId = responseJson.getJSONObject("response").getString("preRegistrationId"); - System.out.println("✅ preRegistrationId = " + preRegId); + System.out.println("preRegistrationId = " + preRegId); } else { - throw new RuntimeException("❌ preRegistrationId not found in response: " + responseJson.toString()); + throw new RuntimeException("preRegistrationId not found in response: " + responseJson.toString()); } return preRegId; } diff --git a/ui-test/src/main/java/regclient/api/KeycloakUserManager.java b/ui-test/src/main/java/regclient/api/KeycloakUserManager.java index fa5ed7117..6d94a2179 100644 --- a/ui-test/src/main/java/regclient/api/KeycloakUserManager.java +++ b/ui-test/src/main/java/regclient/api/KeycloakUserManager.java @@ -88,7 +88,7 @@ public static void createUsers() { RealmResource realmResource = keycloakInstance.realm(ArcConfigManager.getIAMRealmId()); UsersResource usersRessource = realmResource.users(); // Create user (requires manage-users role) - jakarta.ws.rs.core.Response response = null; + Response response = null; response = usersRessource.create(user); logger.info("Repsonse: %s %s%n" + response.getStatus() + response.getStatusInfo()); if (response.getStatus() == 409) { @@ -142,7 +142,7 @@ public static void createUsersWithOutDefaultRole() { user.setEmail("automation" + onboardUser + "@automationlabs.com"); RealmResource realmResource = keycloakInstance.realm(ArcConfigManager.getIAMRealmId()); UsersResource usersRessource = realmResource.users(); - jakarta.ws.rs.core.Response response = null; + Response response = null; response = usersRessource.create(user); logger.info("Response: %s %s%n" + response.getStatus() + response.getStatusInfo()); diff --git a/ui-test/src/main/java/regclient/page/ApplicantBiometricsPage.java b/ui-test/src/main/java/regclient/page/ApplicantBiometricsPage.java index 1ec5dd1ae..9cbc75364 100644 --- a/ui-test/src/main/java/regclient/page/ApplicantBiometricsPage.java +++ b/ui-test/src/main/java/regclient/page/ApplicantBiometricsPage.java @@ -44,19 +44,19 @@ public ApplicantBiometricsPage(AppiumDriver driver) { public abstract BiometricDetailsPage clickOnBackButton(); - public abstract boolean isApplicantBiometricsPageDisplyed(); + public abstract boolean isApplicantBiometricsPageDisplayed(); - public abstract boolean isExceptionTypeTitleDisplyed(); + public abstract boolean isExceptionTypeTitleDisplayed(); - public abstract boolean isRightHandScanTitleDisplyed(); + public abstract boolean isRightHandScanTitleDisplayed(); - public abstract boolean isLeftHandScanTitleDisplyed(); + public abstract boolean isLeftHandScanTitleDisplayed(); - public abstract boolean isThumbsScanTitleDisplyed(); + public abstract boolean isThumbsScanTitleDisplayed(); - public abstract boolean isFaceScanTitleDisplyed(); + public abstract boolean isFaceScanTitleDisplayed(); - public abstract boolean isExceptionScanTitleDisplyed(); + public abstract boolean isExceptionScanTitleDisplayed(); public abstract boolean isIrisScan(); @@ -70,9 +70,9 @@ public ApplicantBiometricsPage(AppiumDriver driver) { public abstract boolean isExceptionScan(); - public abstract boolean isCommentHeaderDisplyed(); + public abstract boolean isCommentHeaderDisplayed(); - public abstract boolean isExceptionCountDisplyed(); + public abstract boolean isExceptionCountDisplayed(); - public abstract boolean isAuthenticationBiometricsPageDisplyed(); + public abstract boolean isAuthenticationBiometricsPageDisplayed(); } diff --git a/ui-test/src/main/java/regclient/page/BasePage.java b/ui-test/src/main/java/regclient/page/BasePage.java index 5df6777b0..827c5c847 100644 --- a/ui-test/src/main/java/regclient/page/BasePage.java +++ b/ui-test/src/main/java/regclient/page/BasePage.java @@ -458,13 +458,11 @@ private static String generateEmail() { } protected void switchContext(String targetContext) { - // Get all available contexts Set contexts = ((SupportsContextSwitching) driver).getContextHandles(); for (String context : contexts) { System.out.println("Available context: " + context); } - // Try to match the target context for (String context : contexts) { if (context.toLowerCase().contains(targetContext.toLowerCase())) { ((SupportsContextSwitching) driver).context(context); @@ -485,11 +483,11 @@ protected void openArcApplication(String targetContext) { driver.activateApp("io.mosip.registration_client"); - if (driver.getContextHandles().contains(targetContext)) { - driver.context(targetContext); - } else { + try { + switchContext(targetContext); + } catch (RuntimeException ex) { System.out.println("Target context not available: " + targetContext); - driver.context(targetContext); + throw ex; } } @@ -637,8 +635,6 @@ protected void scrollToTop() { .addAction(new Pause(finger, Duration.ofMillis(200))) .addAction(finger.createPointerMove(Duration.ofMillis(400), PointerInput.Origin.viewport(), endX, endY)) .addAction(finger.createPointerUp(PointerInput.MouseButton.LEFT.asArg())); - - // perform a few downward swipes to reach top for (int i = 0; i < 5; i++) { driver.perform(Collections.singletonList(scrollUp)); } diff --git a/ui-test/src/main/java/regclient/page/UpdateOperatorBiometricspage.java b/ui-test/src/main/java/regclient/page/UpdateOperatorBiometricspage.java index 57927ac26..2f7c3c48a 100644 --- a/ui-test/src/main/java/regclient/page/UpdateOperatorBiometricspage.java +++ b/ui-test/src/main/java/regclient/page/UpdateOperatorBiometricspage.java @@ -6,7 +6,6 @@ public abstract class UpdateOperatorBiometricspage extends BasePage { public UpdateOperatorBiometricspage(AppiumDriver driver) { super(driver); - } public abstract void clickOnIrisScan(); @@ -27,15 +26,15 @@ public UpdateOperatorBiometricspage(AppiumDriver driver) { public abstract void closeScanCapturePopUp(); - public abstract boolean isRightHandScanTitleDisplyed(); + public abstract boolean isRightHandScanTitleDisplayed(); - public abstract boolean isLeftHandScanTitleDisplyed(); + public abstract boolean isLeftHandScanTitleDisplayed(); - public abstract boolean isThumbsScanTitleDisplyed(); + public abstract boolean isThumbsScanTitleDisplayed(); - public abstract boolean isFaceScanTitleDisplyed(); + public abstract boolean isFaceScanTitleDisplayed(); - public abstract boolean isExceptionScanTitleDisplyed(); + public abstract boolean isExceptionScanTitleDisplayed(); public abstract boolean isIrisScan(); @@ -47,15 +46,15 @@ public UpdateOperatorBiometricspage(AppiumDriver driver) { public abstract boolean isFaceScan(); - public abstract boolean isIrisScanQualityDisplyed(); + public abstract boolean isIrisScanQualityDisplayed(); - public abstract boolean isRightHandScanQualityDisplyed(); + public abstract boolean isRightHandScanQualityDisplayed(); - public abstract boolean isLeftHandScanQualityDisplyed(); + public abstract boolean isLeftHandScanQualityDisplayed(); - public abstract boolean isThumbsScanQualityDisplyed(); + public abstract boolean isThumbsScanQualityDisplayed(); - public abstract boolean isFaceScanQualityDisplyed(); + public abstract boolean isFaceScanQualityDisplayed(); public abstract void clickOnMarkExceptionButton(); @@ -63,11 +62,11 @@ public UpdateOperatorBiometricspage(AppiumDriver driver) { public abstract void markOneFingureException(); - public abstract boolean isExceptionTypeTitleDisplyed(); + public abstract boolean isExceptionTypeTitleDisplayed(); public abstract void clickOnExceptionTypeTemporaryButton(); - public abstract boolean isCommentHeaderDisplyed(); + public abstract boolean isCommentHeaderDisplayed(); public abstract void enterCommentsInTextBox(String comments); @@ -75,9 +74,9 @@ public UpdateOperatorBiometricspage(AppiumDriver driver) { public abstract void clickOnThumbsScanTitle(); - public abstract boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed(); + public abstract boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplayed(); - public abstract boolean isZoomButtonDisplyed(); + public abstract boolean isZoomButtonDisplayed(); public abstract void clickOnRightHandScanTitle(); diff --git a/ui-test/src/main/java/regclient/pages/arabic/AcknowledgementPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/AcknowledgementPageArabic.java index 5e5c6a56e..fa0a5defc 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/AcknowledgementPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/AcknowledgementPageArabic.java @@ -44,7 +44,7 @@ public AcknowledgementPageArabic(AppiumDriver driver) { public RegistrationTasksPage clickOnGoToHomeButton() { clickOnElement(goToHomeButton); - return new RegistrationTasksPageEnglish(driver); + return new RegistrationTasksPageArabic(driver); } @@ -77,7 +77,7 @@ public DemographicDetailsPage clickOnDemographicDetailsTitle() { clickOnElement(findElementWithRetry(MobileBy.AndroidUIAutomator( "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))"))); - return new DemographicDetailsPageEnglish(driver); + return new DemographicDetailsPageArabic(driver); } public void clickOnSyncPacketButton() { diff --git a/ui-test/src/main/java/regclient/pages/arabic/ApplicantBiometricsPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/ApplicantBiometricsPageArabic.java index 3f472b7b0..ecdf70338 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/ApplicantBiometricsPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/ApplicantBiometricsPageArabic.java @@ -158,7 +158,7 @@ public void clickOnIrisScanButton() { public BiometricDetailsPage clickOnNextButton() { clickOnElement(nextButton); - return new BiometricDetailsPageEnglish(driver); + return new BiometricDetailsPageArabic(driver); } public void clickOnZoomButton() { @@ -187,44 +187,44 @@ public void closeScanCapturePopUp() { public BiometricDetailsPage clickOnBackButton() { driver.navigate().back(); - return new BiometricDetailsPageEnglish(driver); + return new BiometricDetailsPageArabic(driver); } @SuppressWarnings("deprecation") - public boolean isApplicantBiometricsPageDisplyed() { + public boolean isApplicantBiometricsPageDisplayed() { return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("individualBiometrics") + "\"))"))); } @SuppressWarnings("deprecation") - public boolean isAuthenticationBiometricsPageDisplyed() { + public boolean isAuthenticationBiometricsPageDisplayed() { return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("individualAuthBiometrics") + "\"))"))); } - public boolean isExceptionTypeTitleDisplyed() { + public boolean isExceptionTypeTitleDisplayed() { return isElementDisplayed(exceptionTypeTitle); } - public boolean isRightHandScanTitleDisplyed() { + public boolean isRightHandScanTitleDisplayed() { return isElementDisplayed(rightHandScanTitle); } - public boolean isLeftHandScanTitleDisplyed() { + public boolean isLeftHandScanTitleDisplayed() { return isElementDisplayed(leftHandScanTitle); } - public boolean isThumbsScanTitleDisplyed() { + public boolean isThumbsScanTitleDisplayed() { return isElementDisplayed(thumbsScanTitle); } - public boolean isFaceScanTitleDisplyed() { + public boolean isFaceScanTitleDisplayed() { return isElementDisplayed(faceScanTitle); } - public boolean isExceptionScanTitleDisplyed() { + public boolean isExceptionScanTitleDisplayed() { return isElementDisplayed(exceptionScanTitle); } @@ -252,15 +252,16 @@ public boolean isExceptionScan() { return isElementDisplayed(exceptionCapturerHeader, 2000); } - public boolean isCommentHeaderDisplyed() { + public boolean isCommentHeaderDisplayed() { return isElementDisplayed(commentsHeader); } - public boolean isExceptionCountDisplyed() { + public boolean isExceptionCountDisplayed() { if (!isElementDisplayedOnScreen(exceptionCount)) { swipeOrScroll(); isElementDisplayed(exceptionCount); } return isElementDisplayed(exceptionCount); } + } diff --git a/ui-test/src/main/java/regclient/pages/arabic/BiometricDetailsPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/BiometricDetailsPageArabic.java index 7abb8a648..2cd03a9a3 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/BiometricDetailsPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/BiometricDetailsPageArabic.java @@ -15,10 +15,6 @@ import regclient.page.BiometricDetailsPage; import regclient.page.IntroducerBiometricPage; import regclient.page.PreviewPage; -import regclient.pages.english.ApplicantBiometricsPageEnglish; -import regclient.pages.english.BiometricDetailsPageEnglish; -import regclient.pages.english.IntroducerBiometricPageEnglish; -import regclient.pages.english.PreviewPageEnglish; public class BiometricDetailsPageArabic extends BiometricDetailsPage { @@ -66,32 +62,32 @@ public boolean isAuthenticationBiometricTitleDisplayed() { public ApplicantBiometricsPage clickOnIrisScan() { clickOnElement(irisScanIcon); - return new ApplicantBiometricsPageEnglish(driver); + return new ApplicantBiometricsPageArabic(driver); } public ApplicantBiometricsPage clickOnRightHandScanIcon() { clickOnElement(rightHandScanIcon); - return new ApplicantBiometricsPageEnglish(driver); + return new ApplicantBiometricsPageArabic(driver); } public ApplicantBiometricsPage clickOnLeftHandScanIcon() { clickOnElement(leftHandScanIcon); - return new ApplicantBiometricsPageEnglish(driver); + return new ApplicantBiometricsPageArabic(driver); } public ApplicantBiometricsPage clickOnThumbsScanIcon() { clickOnElement(thumbsScanIcon); - return new ApplicantBiometricsPageEnglish(driver); + return new ApplicantBiometricsPageArabic(driver); } public ApplicantBiometricsPage clickOnFaceScanIcon() { clickOnElement(faceScanIcon); - return new ApplicantBiometricsPageEnglish(driver); + return new ApplicantBiometricsPageArabic(driver); } public ApplicantBiometricsPage clickOnExceptionScanIcon() { clickOnElement(exceptionScanIcon); - return new ApplicantBiometricsPageEnglish(driver); + return new ApplicantBiometricsPageArabic(driver); } @@ -99,7 +95,7 @@ public IntroducerBiometricPage clickOnIntroducerIrisScan() { clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Iris Scan\"]"))); - return new IntroducerBiometricPageEnglish(driver); + return new IntroducerBiometricPageArabic(driver); } @@ -107,7 +103,7 @@ public IntroducerBiometricPage clickOnIntroducerRightHandScan() { clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Right\"]"))); - return new IntroducerBiometricPageEnglish(driver); + return new IntroducerBiometricPageArabic(driver); } @@ -115,7 +111,7 @@ public IntroducerBiometricPage clickOnIntroducerLeftHandScan() { clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Left\"]"))); - return new IntroducerBiometricPageEnglish(driver); + return new IntroducerBiometricPageArabic(driver); } @@ -123,7 +119,7 @@ public IntroducerBiometricPage clickOnIntroducerThumbScan() { clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Thumbs\"]"))); - return new IntroducerBiometricPageEnglish(driver); + return new IntroducerBiometricPageArabic(driver); } @@ -131,13 +127,13 @@ public IntroducerBiometricPage clickOnIntroducerFaceScan() { clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Face\"]"))); - return new IntroducerBiometricPageEnglish(driver); + return new IntroducerBiometricPageArabic(driver); } public PreviewPage clickOnContinueButton() { clickOnElement(continueButton); - return new PreviewPageEnglish(driver); + return new PreviewPageArabic(driver); } public boolean isAdditionalInfoRequestIdTextboxDisplayed() { @@ -187,6 +183,6 @@ private void sleepSeconds(int s) { } } - private static final Logger logger = LoggerFactory.getLogger(BiometricDetailsPageEnglish.class); + private static final Logger logger = LoggerFactory.getLogger(BiometricDetailsPageArabic.class); } diff --git a/ui-test/src/main/java/regclient/pages/arabic/DemographicDetailsPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/DemographicDetailsPageArabic.java index 60aef4fc5..5a991896d 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/DemographicDetailsPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/DemographicDetailsPageArabic.java @@ -68,7 +68,7 @@ public boolean isPageDisplayed(String pageKey) { return isElementDisplayed(pageElement); } catch (Exception e) { - return false; // element not found or not visible + return false; } } diff --git a/ui-test/src/main/java/regclient/pages/arabic/PreviewPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/PreviewPageArabic.java index 1f24586f6..cab339610 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/PreviewPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/PreviewPageArabic.java @@ -56,7 +56,7 @@ public PreviewPageArabic(AppiumDriver driver) { public AuthenticationPage clickOnContinueButton() { clickOnElement(continueButton); - return new AuthenticationPageEnglish(driver); + return new AuthenticationPageArabic(driver); } public boolean isDemographicInformationInPreviewPageDisplayed() { @@ -93,7 +93,7 @@ public DemographicDetailsPage clickOnDemographicDetailsTitle() { clickOnElement(findElementWithRetry(MobileBy.AndroidUIAutomator( "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))"))); - return new DemographicDetailsPageEnglish(driver); + return new DemographicDetailsPageArabic(driver); } public boolean isBothIrisImageDisplayed() { diff --git a/ui-test/src/main/java/regclient/pages/arabic/ProfilePageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/ProfilePageArabic.java index 2b3949fe0..ea2f5968c 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/ProfilePageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/ProfilePageArabic.java @@ -29,12 +29,12 @@ public ProfilePageArabic(AppiumDriver driver) { public LoginPage clickOnLogoutButton() { if (isElementDisplayed(logoutButton)) clickOnElement(logoutButton); - return new LoginPageEnglish(driver); + return new LoginPageArabic(driver); } public LoginPage clickOnLogoutButtonOnPopUp() { clickOnElement(logoutButton); - return new LoginPageEnglish(driver); + return new LoginPageArabic(driver); } public boolean isProfileTitleDisplayed() { @@ -51,7 +51,7 @@ public boolean isResetPasswordButtonDisplayed() { public LoginPage clickOnResetPasswordButton() { clickOnElement(resetPasswordButton); - return new LoginPageEnglish(driver); + return new LoginPageArabic(driver); } } diff --git a/ui-test/src/main/java/regclient/pages/arabic/RegistrationTasksPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/RegistrationTasksPageArabic.java index 6492a6a41..aa9f76a40 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/RegistrationTasksPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/RegistrationTasksPageArabic.java @@ -156,7 +156,7 @@ public void clickOnSettingsButton() { public SelectLanguagePage clickOnBiometricCorrectionButton() { clickOnElement(biometricCorrectionButton); - return new SelectLanguagePageEnglish(driver); + return new SelectLanguagePageArabic(driver); } public void handleLocationPermission() { diff --git a/ui-test/src/main/java/regclient/pages/arabic/UpdateOperatorBiometricspageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/UpdateOperatorBiometricspageArabic.java index 86ca01dde..0379289fe 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/UpdateOperatorBiometricspageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/UpdateOperatorBiometricspageArabic.java @@ -10,7 +10,6 @@ public class UpdateOperatorBiometricspageArabic extends UpdateOperatorBiometrics public UpdateOperatorBiometricspageArabic(AppiumDriver driver) { super(driver); - } @AndroidFindBy(accessibility = "تحديث المشرف الحيوي") @@ -179,23 +178,23 @@ public void closeScanCapturePopUp() { driver.navigate().back(); } - public boolean isRightHandScanTitleDisplyed() { + public boolean isRightHandScanTitleDisplayed() { return isElementDisplayed(rightHandScanTitle); } - public boolean isLeftHandScanTitleDisplyed() { + public boolean isLeftHandScanTitleDisplayed() { return isElementDisplayed(leftHandScanTitle); } - public boolean isThumbsScanTitleDisplyed() { + public boolean isThumbsScanTitleDisplayed() { return isElementDisplayed(thumbsScanTitle); } - public boolean isFaceScanTitleDisplyed() { + public boolean isFaceScanTitleDisplayed() { return isElementDisplayed(faceScanTitle); } - public boolean isExceptionScanTitleDisplyed() { + public boolean isExceptionScanTitleDisplayed() { return isElementDisplayed(exceptionScanTitle); } @@ -219,23 +218,23 @@ public boolean isFaceScan() { return isElementDisplayed(faceCapturerHeader, 2000); } - public boolean isIrisScanQualityDisplyed() { + public boolean isIrisScanQualityDisplayed() { return isElementDisplayed(irisScanQuality); } - public boolean isRightHandScanQualityDisplyed() { + public boolean isRightHandScanQualityDisplayed() { return isElementDisplayed(rightHandScanQuality); } - public boolean isLeftHandScanQualityDisplyed() { + public boolean isLeftHandScanQualityDisplayed() { return isElementDisplayed(leftHandScanQuality); } - public boolean isThumbsScanQualityDisplyed() { + public boolean isThumbsScanQualityDisplayed() { return isElementDisplayed(thumbsScanQuality); } - public boolean isFaceScanQualityDisplyed() { + public boolean isFaceScanQualityDisplayed() { return isElementDisplayed(faceScanQuality); } @@ -251,7 +250,7 @@ public void markOneFingureException() { clickOnElement(firstFingureExceptionImage); } - public boolean isExceptionTypeTitleDisplyed() { + public boolean isExceptionTypeTitleDisplayed() { return isElementDisplayed(exceptionTypeTitle); } @@ -262,7 +261,7 @@ public void clickOnExceptionTypeTemporaryButton() { clickOnElement(temporaryButton); } - public boolean isCommentHeaderDisplyed() { + public boolean isCommentHeaderDisplayed() { return isElementDisplayed(commentsHeader); } @@ -281,11 +280,11 @@ public void clickOnThumbsScanTitle() { clickOnElement(thumbsScanTitle); } - public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed() { + public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplayed() { return isElementDisplayed(markingExceptionsOnFaceIsNotAllowedText); } - public boolean isZoomButtonDisplyed() { + public boolean isZoomButtonDisplayed() { return isElementDisplayed(zoomButton); } @@ -357,7 +356,6 @@ public boolean isVerifyAndSaveButtonEnabled() { public void clickOnVerifyAndSaveButton() { clickOnElement(verifyAndSaveButton); - } public boolean isDismissPageLoaded() { diff --git a/ui-test/src/main/java/regclient/pages/english/ApplicantBiometricsPageEnglish.java b/ui-test/src/main/java/regclient/pages/english/ApplicantBiometricsPageEnglish.java index e71f862dc..29d7860cb 100644 --- a/ui-test/src/main/java/regclient/pages/english/ApplicantBiometricsPageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/ApplicantBiometricsPageEnglish.java @@ -191,40 +191,40 @@ public BiometricDetailsPage clickOnBackButton() { } @SuppressWarnings("deprecation") - public boolean isApplicantBiometricsPageDisplyed() { + public boolean isApplicantBiometricsPageDisplayed() { return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("individualBiometrics") + "\"))"))); } @SuppressWarnings("deprecation") - public boolean isAuthenticationBiometricsPageDisplyed() { + public boolean isAuthenticationBiometricsPageDisplayed() { return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("individualAuthBiometrics") + "\"))"))); } - public boolean isExceptionTypeTitleDisplyed() { + public boolean isExceptionTypeTitleDisplayed() { return isElementDisplayed(exceptionTypeTitle); } - public boolean isRightHandScanTitleDisplyed() { + public boolean isRightHandScanTitleDisplayed() { return isElementDisplayed(rightHandScanTitle); } - public boolean isLeftHandScanTitleDisplyed() { + public boolean isLeftHandScanTitleDisplayed() { return isElementDisplayed(leftHandScanTitle); } - public boolean isThumbsScanTitleDisplyed() { + public boolean isThumbsScanTitleDisplayed() { return isElementDisplayed(thumbsScanTitle); } - public boolean isFaceScanTitleDisplyed() { + public boolean isFaceScanTitleDisplayed() { return isElementDisplayed(faceScanTitle); } - public boolean isExceptionScanTitleDisplyed() { + public boolean isExceptionScanTitleDisplayed() { return isElementDisplayed(exceptionScanTitle); } @@ -252,11 +252,11 @@ public boolean isExceptionScan() { return isElementDisplayed(exceptionCapturerHeader, 2000); } - public boolean isCommentHeaderDisplyed() { + public boolean isCommentHeaderDisplayed() { return isElementDisplayed(commentsHeader); } - public boolean isExceptionCountDisplyed() { + public boolean isExceptionCountDisplayed() { if (!isElementDisplayedOnScreen(exceptionCount)) { swipeOrScroll(); isElementDisplayed(exceptionCount); diff --git a/ui-test/src/main/java/regclient/pages/english/UpdateOperatorBiometricspageEnglish.java b/ui-test/src/main/java/regclient/pages/english/UpdateOperatorBiometricspageEnglish.java index b1d0413f7..79f260b0a 100644 --- a/ui-test/src/main/java/regclient/pages/english/UpdateOperatorBiometricspageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/UpdateOperatorBiometricspageEnglish.java @@ -178,23 +178,23 @@ public void closeScanCapturePopUp() { driver.navigate().back(); } - public boolean isRightHandScanTitleDisplyed() { + public boolean isRightHandScanTitleDisplayed() { return isElementDisplayed(rightHandScanTitle); } - public boolean isLeftHandScanTitleDisplyed() { + public boolean isLeftHandScanTitleDisplayed() { return isElementDisplayed(leftHandScanTitle); } - public boolean isThumbsScanTitleDisplyed() { + public boolean isThumbsScanTitleDisplayed() { return isElementDisplayed(thumbsScanTitle); } - public boolean isFaceScanTitleDisplyed() { + public boolean isFaceScanTitleDisplayed() { return isElementDisplayed(faceScanTitle); } - public boolean isExceptionScanTitleDisplyed() { + public boolean isExceptionScanTitleDisplayed() { return isElementDisplayed(exceptionScanTitle); } @@ -222,23 +222,23 @@ public boolean isExceptionScan() { return isElementDisplayed(exceptionCapturerHeader, 2000); } - public boolean isIrisScanQualityDisplyed() { + public boolean isIrisScanQualityDisplayed() { return isElementDisplayed(irisScanQuality); } - public boolean isRightHandScanQualityDisplyed() { + public boolean isRightHandScanQualityDisplayed() { return isElementDisplayed(rightHandScanQuality); } - public boolean isLeftHandScanQualityDisplyed() { + public boolean isLeftHandScanQualityDisplayed() { return isElementDisplayed(leftHandScanQuality); } - public boolean isThumbsScanQualityDisplyed() { + public boolean isThumbsScanQualityDisplayed() { return isElementDisplayed(thumbsScanQuality); } - public boolean isFaceScanQualityDisplyed() { + public boolean isFaceScanQualityDisplayed() { return isElementDisplayed(faceScanQuality); } @@ -254,7 +254,7 @@ public void markOneFingureException() { clickOnElement(firstFingureExceptionImage); } - public boolean isExceptionTypeTitleDisplyed() { + public boolean isExceptionTypeTitleDisplayed() { return isElementDisplayed(exceptionTypeTitle); } @@ -265,7 +265,7 @@ public void clickOnExceptionTypeTemporaryButton() { clickOnElement(temporaryButton); } - public boolean isCommentHeaderDisplyed() { + public boolean isCommentHeaderDisplayed() { return isElementDisplayed(commentsHeader); } @@ -284,14 +284,13 @@ public void clickOnThumbsScanTitle() { clickOnElement(thumbsScanTitle); } - public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed() { + public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplayed() { return isElementDisplayed(markingExceptionsOnFaceIsNotAllowedText); } - public boolean isZoomButtonDisplyed() { + public boolean isZoomButtonDisplayed() { return true; // return isElementDisplayed(zoomButton); - } public void clickOnRightHandScanTitle() { diff --git a/ui-test/src/main/java/regclient/pages/french/AcknowledgementPageFrench.java b/ui-test/src/main/java/regclient/pages/french/AcknowledgementPageFrench.java index 76d866996..65d8245d8 100644 --- a/ui-test/src/main/java/regclient/pages/french/AcknowledgementPageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/AcknowledgementPageFrench.java @@ -42,7 +42,7 @@ public AcknowledgementPageFrench(AppiumDriver driver) { public RegistrationTasksPage clickOnGoToHomeButton() { clickOnElement(goToHomeButton); - return new RegistrationTasksPageEnglish(driver); + return new RegistrationTasksPageFrench(driver); } public boolean isAcknowledgementPageDisplayed() { @@ -74,7 +74,7 @@ public DemographicDetailsPage clickOnDemographicDetailsTitle() { clickOnElement(findElementWithRetry(MobileBy.AndroidUIAutomator( "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))"))); - return new DemographicDetailsPageEnglish(driver); + return new DemographicDetailsPageFrench(driver); } public String getAID() { diff --git a/ui-test/src/main/java/regclient/pages/french/ApplicantBiometricsPageFrench.java b/ui-test/src/main/java/regclient/pages/french/ApplicantBiometricsPageFrench.java index 572e46098..dbbd31cc4 100644 --- a/ui-test/src/main/java/regclient/pages/french/ApplicantBiometricsPageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/ApplicantBiometricsPageFrench.java @@ -187,44 +187,44 @@ public void closeScanCapturePopUp() { public BiometricDetailsPage clickOnBackButton() { driver.navigate().back(); - return new BiometricDetailsPageEnglish(driver); + return new BiometricDetailsPageFrench(driver); } @SuppressWarnings("deprecation") - public boolean isApplicantBiometricsPageDisplyed() { + public boolean isApplicantBiometricsPageDisplayed() { return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("individualBiometrics") + "\"))"))); } @SuppressWarnings("deprecation") - public boolean isAuthenticationBiometricsPageDisplyed() { + public boolean isAuthenticationBiometricsPageDisplayed() { return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("individualAuthBiometrics") + "\"))"))); } - public boolean isExceptionTypeTitleDisplyed() { + public boolean isExceptionTypeTitleDisplayed() { return isElementDisplayed(exceptionTypeTitle); } - public boolean isRightHandScanTitleDisplyed() { + public boolean isRightHandScanTitleDisplayed() { return isElementDisplayed(rightHandScanTitle); } - public boolean isLeftHandScanTitleDisplyed() { + public boolean isLeftHandScanTitleDisplayed() { return isElementDisplayed(leftHandScanTitle); } - public boolean isThumbsScanTitleDisplyed() { + public boolean isThumbsScanTitleDisplayed() { return isElementDisplayed(thumbsScanTitle); } - public boolean isFaceScanTitleDisplyed() { + public boolean isFaceScanTitleDisplayed() { return isElementDisplayed(faceScanTitle); } - public boolean isExceptionScanTitleDisplyed() { + public boolean isExceptionScanTitleDisplayed() { return isElementDisplayed(exceptionScanTitle); } @@ -252,11 +252,11 @@ public boolean isExceptionScan() { return isElementDisplayed(exceptionCapturerHeader, 2000); } - public boolean isCommentHeaderDisplyed() { + public boolean isCommentHeaderDisplayed() { return isElementDisplayed(commentsHeader); } - public boolean isExceptionCountDisplyed() { + public boolean isExceptionCountDisplayed() { if (!isElementDisplayedOnScreen(exceptionCount)) { swipeOrScroll(); isElementDisplayed(exceptionCount); diff --git a/ui-test/src/main/java/regclient/pages/french/BiometricDetailsPageFrench.java b/ui-test/src/main/java/regclient/pages/french/BiometricDetailsPageFrench.java index bada23085..e4fa17c98 100644 --- a/ui-test/src/main/java/regclient/pages/french/BiometricDetailsPageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/BiometricDetailsPageFrench.java @@ -1,17 +1,22 @@ package regclient.pages.french; import org.openqa.selenium.By; +import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebElement; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import io.appium.java_client.AppiumDriver; import io.appium.java_client.MobileBy; import io.appium.java_client.pagefactory.AndroidFindBy; +import io.mosip.testrig.apirig.testrunner.OTPListener; import regclient.api.FetchUiSpec; import regclient.page.ApplicantBiometricsPage; import regclient.page.BiometricDetailsPage; import regclient.page.IntroducerBiometricPage; import regclient.page.PreviewPage; import regclient.pages.english.ApplicantBiometricsPageEnglish; +import regclient.pages.english.BiometricDetailsPageEnglish; import regclient.pages.english.IntroducerBiometricPageEnglish; import regclient.pages.english.PreviewPageEnglish; @@ -64,32 +69,32 @@ public boolean isAuthenticationBiometricTitleDisplayed() { public ApplicantBiometricsPage clickOnIrisScan() { clickOnElement(irisScanIcon); - return new ApplicantBiometricsPageEnglish(driver); + return new ApplicantBiometricsPageFrench(driver); } public ApplicantBiometricsPage clickOnRightHandScanIcon() { clickOnElement(rightHandScanIcon); - return new ApplicantBiometricsPageEnglish(driver); + return new ApplicantBiometricsPageFrench(driver); } public ApplicantBiometricsPage clickOnLeftHandScanIcon() { clickOnElement(leftHandScanIcon); - return new ApplicantBiometricsPageEnglish(driver); + return new ApplicantBiometricsPageFrench(driver); } public ApplicantBiometricsPage clickOnThumbsScanIcon() { clickOnElement(thumbsScanIcon); - return new ApplicantBiometricsPageEnglish(driver); + return new ApplicantBiometricsPageFrench(driver); } public ApplicantBiometricsPage clickOnFaceScanIcon() { clickOnElement(faceScanIcon); - return new ApplicantBiometricsPageEnglish(driver); + return new ApplicantBiometricsPageFrench(driver); } public ApplicantBiometricsPage clickOnExceptionScanIcon() { clickOnElement(exceptionScanIcon); - return new ApplicantBiometricsPageEnglish(driver); + return new ApplicantBiometricsPageFrench(driver); } @@ -97,7 +102,7 @@ public IntroducerBiometricPage clickOnIntroducerIrisScan() { clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Iris Scan\"]"))); - return new IntroducerBiometricPageEnglish(driver); + return new IntroducerBiometricPageFrench(driver); } @@ -105,7 +110,7 @@ public IntroducerBiometricPage clickOnIntroducerRightHandScan() { clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Right\"]"))); - return new IntroducerBiometricPageEnglish(driver); + return new IntroducerBiometricPageFrench(driver); } @@ -113,7 +118,7 @@ public IntroducerBiometricPage clickOnIntroducerLeftHandScan() { clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Left\"]"))); - return new IntroducerBiometricPageEnglish(driver); + return new IntroducerBiometricPageFrench(driver); } @@ -121,7 +126,7 @@ public IntroducerBiometricPage clickOnIntroducerThumbScan() { clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Thumbs\"]"))); - return new IntroducerBiometricPageEnglish(driver); + return new IntroducerBiometricPageFrench(driver); } @@ -129,24 +134,62 @@ public IntroducerBiometricPage clickOnIntroducerFaceScan() { clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Face\"]"))); - return new IntroducerBiometricPageEnglish(driver); + return new IntroducerBiometricPageFrench(driver); } public PreviewPage clickOnContinueButton() { clickOnElement(continueButton); - return new PreviewPageEnglish(driver); + return new PreviewPageFrench(driver); } - @Override public boolean isAdditionalInfoRequestIdTextboxDisplayed() { - // TODO Auto-generated method stub - return false; + return isElementDisplayed(additionalInfoRequestIdTextbox); } - @Override public void enterAdditionalInfoUsingEmail(String emailId) { - // TODO Auto-generated method stub - - } + int retries = 20, waitSeconds = 10; + final String SUFFIX = "-BIOMETRIC_CORRECTION-1"; + + for (int i = 1; i <= retries; i++) { + String id = OTPListener.getAdditionalReqId(emailId); + if (id != null && !id.isEmpty() && !id.equals("{Failed}")) { + String sanitized = id.trim().replaceAll("\\p{C}", ""); + String finalId = sanitized.endsWith(SUFFIX) ? sanitized : sanitized + SUFFIX; + + try { + WebElement el = additionalInfoRequestIdTextbox; + try { + el.clear(); + el.sendKeys(finalId); + } catch (Exception ignored) { + } + if (finalId.equals(el.getAttribute("value"))) + return; + + ((JavascriptExecutor) driver).executeScript( + "arguments[0].value=arguments[1];arguments[0].dispatchEvent(new Event('input',{bubbles:true}));", + el, finalId); + if (finalId.equals(el.getAttribute("value"))) + return; + } catch (Exception e) { + logger.error("Enter ID failed: ", e); + } + throw new RuntimeException("Textbox not accepting: " + finalId); + } + sleepSeconds(waitSeconds); + } + throw new RuntimeException("AdditionalInfoReqId not found after wait."); + } + + private void sleepSeconds(int s) { + try { + Thread.sleep(s * 1000L); + } catch (InterruptedException ignored) { + Thread.currentThread().interrupt(); + } + } + + private static final Logger logger = LoggerFactory.getLogger(BiometricDetailsPageFrench.class); + } diff --git a/ui-test/src/main/java/regclient/pages/french/ConsentPageFrench.java b/ui-test/src/main/java/regclient/pages/french/ConsentPageFrench.java index ac56f4869..39069834a 100644 --- a/ui-test/src/main/java/regclient/pages/french/ConsentPageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/ConsentPageFrench.java @@ -32,11 +32,9 @@ public boolean isPageDisplayed(String pageKey) { WebElement pageElement = findElementWithRetry( MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0))" + ".scrollIntoView(new UiSelector().descriptionContains(\"" + screenTitle + "\"))")); - return isElementDisplayed(pageElement); - } catch (Exception e) { - return false; // page not found or not visible + return false; } } @@ -53,12 +51,12 @@ public boolean isInformedButtonEnabled() { public DemographicDetailsPage clickOnInformedButton() { clickOnElement(informedButton); - return new DemographicDetailsPageEnglish(driver); + return new DemographicDetailsPageFrench(driver); } public RegistrationTasksPage clickOnCancelButton() { clickOnElement(cancelButton); - return new RegistrationTasksPageEnglish(driver); + return new RegistrationTasksPageFrench(driver); } @SuppressWarnings("deprecation") diff --git a/ui-test/src/main/java/regclient/pages/french/DemographicDetailsPageFrench.java b/ui-test/src/main/java/regclient/pages/french/DemographicDetailsPageFrench.java index a2bfc83c0..2717bc2b6 100644 --- a/ui-test/src/main/java/regclient/pages/french/DemographicDetailsPageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/DemographicDetailsPageFrench.java @@ -65,11 +65,9 @@ public boolean isPageDisplayed(String pageKey) { WebElement pageElement = findElementWithRetry( MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0))" + ".scrollIntoView(new UiSelector().descriptionContains(\"" + screenTitle + "\"))")); - return isElementDisplayed(pageElement); - } catch (Exception e) { - return false; // element not found or not visible + return false; } } @@ -84,12 +82,12 @@ public ConsentPage clickOnPageTitle(String pageKey) { MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0))" + ".scrollIntoView(new UiSelector().descriptionContains(\"" + screenTitle + "\"))")); clickOnElement(consentTitle); - return new ConsentPageEnglish(driver); + return new ConsentPageFrench(driver); } public DocumentUploadPage clickOnContinueButton() { clickOnElement(continueButton); - return new DocumentuploadPageEnglish(driver); + return new DocumentUploadPageFrench(driver); } diff --git a/ui-test/src/main/java/regclient/pages/french/DocumentUploadPageFrench.java b/ui-test/src/main/java/regclient/pages/french/DocumentUploadPageFrench.java index 36cdcd0cd..715d84c8f 100644 --- a/ui-test/src/main/java/regclient/pages/french/DocumentUploadPageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/DocumentUploadPageFrench.java @@ -49,7 +49,7 @@ public DocumentUploadPageFrench(AppiumDriver driver) { public BiometricDetailsPage clickOnContinueButton() { clickOnElement(continueButton); - return new BiometricDetailsPageEnglish(driver); + return new BiometricDetailsPageFrench(driver); } @SuppressWarnings("deprecation") @@ -61,7 +61,7 @@ public boolean isDoccumentUploadPageDisplayed() { public DocumentUploadPage clickOnSaveButton() { clickOnElement(saveButton); - return new DocumentuploadPageEnglish(driver); + return new DocumentUploadPageFrench(driver); } public boolean isRetakeButtonDisplayed() { diff --git a/ui-test/src/main/java/regclient/pages/french/IntroducerBiometricPageFrench.java b/ui-test/src/main/java/regclient/pages/french/IntroducerBiometricPageFrench.java index 4fbce6425..1f95e27b6 100644 --- a/ui-test/src/main/java/regclient/pages/french/IntroducerBiometricPageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/IntroducerBiometricPageFrench.java @@ -111,7 +111,7 @@ public void clickOnIrisScanButton() { public BiometricDetailsPage clickOnNextButton() { clickOnElement(nextButton); - return new BiometricDetailsPageEnglish(driver); + return new BiometricDetailsPageFrench(driver); } public void clickOnZoomButton() { @@ -136,7 +136,7 @@ public void closeScanCapturePopUp() { public BiometricDetailsPage clickOnBackButton() { driver.navigate().back(); - return new BiometricDetailsPageEnglish(driver); + return new BiometricDetailsPageFrench(driver); } @SuppressWarnings("deprecation") diff --git a/ui-test/src/main/java/regclient/pages/french/PreviewPageFrench.java b/ui-test/src/main/java/regclient/pages/french/PreviewPageFrench.java index 1da448eaf..8fef6de0a 100644 --- a/ui-test/src/main/java/regclient/pages/french/PreviewPageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/PreviewPageFrench.java @@ -52,7 +52,7 @@ public PreviewPageFrench(AppiumDriver driver) { public AuthenticationPage clickOnContinueButton() { clickOnElement(continueButton); - return new AuthenticationPageEnglish(driver); + return new AuthenticationPageFrench(driver); } public boolean isDemographicInformationInPreviewPageDisplayed() { @@ -89,7 +89,7 @@ public DemographicDetailsPage clickOnDemographicDetailsTitle() { clickOnElement(findElementWithRetry(MobileBy.AndroidUIAutomator( "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))"))); - return new DemographicDetailsPageEnglish(driver); + return new DemographicDetailsPageFrench(driver); } public boolean isBothIrisImageDisplayed() { diff --git a/ui-test/src/main/java/regclient/pages/french/ProfilePageFrench.java b/ui-test/src/main/java/regclient/pages/french/ProfilePageFrench.java index 49028fb74..b572d41b9 100644 --- a/ui-test/src/main/java/regclient/pages/french/ProfilePageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/ProfilePageFrench.java @@ -29,12 +29,12 @@ public ProfilePageFrench(AppiumDriver driver) { public LoginPage clickOnLogoutButton() { if (isElementDisplayed(logoutButton)) clickOnElement(logoutButton); - return new LoginPageEnglish(driver); + return new LoginPageFrench(driver); } public LoginPage clickOnLogoutButtonOnPopUp() { clickOnElement(logoutButton); - return new LoginPageEnglish(driver); + return new LoginPageFrench(driver); } public boolean isProfileTitleDisplayed() { @@ -51,6 +51,6 @@ public boolean isResetPasswordButtonDisplayed() { public LoginPage clickOnResetPasswordButton() { clickOnElement(resetPasswordButton); - return new LoginPageEnglish(driver); + return new LoginPageFrench(driver); } } diff --git a/ui-test/src/main/java/regclient/pages/french/RegistrationTasksPageFrench.java b/ui-test/src/main/java/regclient/pages/french/RegistrationTasksPageFrench.java index 6fe419920..3a242d642 100644 --- a/ui-test/src/main/java/regclient/pages/french/RegistrationTasksPageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/RegistrationTasksPageFrench.java @@ -156,7 +156,7 @@ public void clickOnSettingsButton() { public SelectLanguagePage clickOnBiometricCorrectionButton() { clickOnElement(biometricCorrectionButton); - return new SelectLanguagePageEnglish(driver); + return new SelectLanguagePageFrench(driver); } public void handleLocationPermission() { diff --git a/ui-test/src/main/java/regclient/pages/french/SelectLanguagePageFrench.java b/ui-test/src/main/java/regclient/pages/french/SelectLanguagePageFrench.java index c516a9a61..cb434c996 100644 --- a/ui-test/src/main/java/regclient/pages/french/SelectLanguagePageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/SelectLanguagePageFrench.java @@ -112,15 +112,10 @@ public void selectNotificationlanguage(String notificationLanguage) { public void selectAllSecondLanguage() { clickOnElement(englishLanguageButton); - clickOnElement(frenchLanguageButton); - clickOnElement(arabicLanguageButton); - clickOnElement(kannadaLanguageButton); - clickOnElement(hindiLanguageButton); - clickOnElement(tamilLanguageButton); } diff --git a/ui-test/src/main/java/regclient/pages/french/SupervisorBiometricVerificationpageFrench.java b/ui-test/src/main/java/regclient/pages/french/SupervisorBiometricVerificationpageFrench.java index 1aeaec92e..096572263 100644 --- a/ui-test/src/main/java/regclient/pages/french/SupervisorBiometricVerificationpageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/SupervisorBiometricVerificationpageFrench.java @@ -349,13 +349,10 @@ public boolean checkThresholdValueFace() { public boolean isVerifyAndSaveButtonEnabled() { return isElementDisplayed(verifyAndSaveButton); - } - @Override public void clickOnVerifyAndSaveButton() { clickOnElement(verifyAndSaveButton); - } public boolean isDismissPageLoaded() { diff --git a/ui-test/src/main/java/regclient/pages/french/UpdateOperatorBiometricspageFrench.java b/ui-test/src/main/java/regclient/pages/french/UpdateOperatorBiometricspageFrench.java index d1c0eb6b8..fd2b3732f 100644 --- a/ui-test/src/main/java/regclient/pages/french/UpdateOperatorBiometricspageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/UpdateOperatorBiometricspageFrench.java @@ -10,7 +10,6 @@ public class UpdateOperatorBiometricspageFrench extends UpdateOperatorBiometrics public UpdateOperatorBiometricspageFrench(AppiumDriver driver) { super(driver); - } @AndroidFindBy(accessibility = "Mise à jour biométrique du superviseur") @@ -179,23 +178,23 @@ public void closeScanCapturePopUp() { driver.navigate().back(); } - public boolean isRightHandScanTitleDisplyed() { + public boolean isRightHandScanTitleDisplayed() { return isElementDisplayed(rightHandScanTitle); } - public boolean isLeftHandScanTitleDisplyed() { + public boolean isLeftHandScanTitleDisplayed() { return isElementDisplayed(leftHandScanTitle); } - public boolean isThumbsScanTitleDisplyed() { + public boolean isThumbsScanTitleDisplayed() { return isElementDisplayed(thumbsScanTitle); } - public boolean isFaceScanTitleDisplyed() { + public boolean isFaceScanTitleDisplayed() { return isElementDisplayed(faceScanTitle); } - public boolean isExceptionScanTitleDisplyed() { + public boolean isExceptionScanTitleDisplayed() { return isElementDisplayed(exceptionScanTitle); } @@ -219,23 +218,23 @@ public boolean isFaceScan() { return isElementDisplayed(faceCapturerHeader, 2000); } - public boolean isIrisScanQualityDisplyed() { + public boolean isIrisScanQualityDisplayed() { return isElementDisplayed(irisScanQuality); } - public boolean isRightHandScanQualityDisplyed() { + public boolean isRightHandScanQualityDisplayed() { return isElementDisplayed(rightHandScanQuality); } - public boolean isLeftHandScanQualityDisplyed() { + public boolean isLeftHandScanQualityDisplayed() { return isElementDisplayed(leftHandScanQuality); } - public boolean isThumbsScanQualityDisplyed() { + public boolean isThumbsScanQualityDisplayed() { return isElementDisplayed(thumbsScanQuality); } - public boolean isFaceScanQualityDisplyed() { + public boolean isFaceScanQualityDisplayed() { return isElementDisplayed(faceScanQuality); } @@ -251,7 +250,7 @@ public void markOneFingureException() { clickOnElement(firstFingureExceptionImage); } - public boolean isExceptionTypeTitleDisplyed() { + public boolean isExceptionTypeTitleDisplayed() { return isElementDisplayed(exceptionTypeTitle); } @@ -262,7 +261,7 @@ public void clickOnExceptionTypeTemporaryButton() { clickOnElement(temporaryButton); } - public boolean isCommentHeaderDisplyed() { + public boolean isCommentHeaderDisplayed() { return isElementDisplayed(commentsHeader); } @@ -281,11 +280,11 @@ public void clickOnThumbsScanTitle() { clickOnElement(thumbsScanTitle); } - public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed() { + public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplayed() { return isElementDisplayed(markingExceptionsOnFaceIsNotAllowedText); } - public boolean isZoomButtonDisplyed() { + public boolean isZoomButtonDisplayed() { return isElementDisplayed(zoomButton); } diff --git a/ui-test/src/main/java/regclient/pages/french/UpdateUINPageFrench.java b/ui-test/src/main/java/regclient/pages/french/UpdateUINPageFrench.java index 65481c06f..8d7496c04 100644 --- a/ui-test/src/main/java/regclient/pages/french/UpdateUINPageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/UpdateUINPageFrench.java @@ -42,7 +42,7 @@ public void enterUIN(String UIN) { public ConsentPage clickOnContinueButton() { clickOnElement(continueButton); - return new ConsentPageEnglish(driver); + return new ConsentPageFrench(driver); } public boolean isInvalidUINErrorMessageDisplayed() { diff --git a/ui-test/src/main/java/regclient/pages/hindi/AcknowledgementPageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/AcknowledgementPageHindi.java index 7bd7b9f27..033c6bf31 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/AcknowledgementPageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/AcknowledgementPageHindi.java @@ -41,7 +41,7 @@ public AcknowledgementPageHindi(AppiumDriver driver) { public RegistrationTasksPage clickOnGoToHomeButton() { clickOnElement(goToHomeButton); - return new RegistrationTasksPageEnglish(driver); + return new RegistrationTasksPageHindi(driver); } @@ -74,7 +74,7 @@ public DemographicDetailsPage clickOnDemographicDetailsTitle() { clickOnElement(findElementWithRetry(MobileBy.AndroidUIAutomator( "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))"))); - return new DemographicDetailsPageEnglish(driver); + return new DemographicDetailsPageHindi(driver); } public String getAID() { diff --git a/ui-test/src/main/java/regclient/pages/hindi/ApplicantBiometricsPageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/ApplicantBiometricsPageHindi.java index 12e7c2a70..fcfac9125 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/ApplicantBiometricsPageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/ApplicantBiometricsPageHindi.java @@ -158,7 +158,7 @@ public void clickOnIrisScanButton() { public BiometricDetailsPage clickOnNextButton() { clickOnElement(nextButton); - return new BiometricDetailsPageEnglish(driver); + return new BiometricDetailsPageHindi(driver); } public void clickOnZoomButton() { @@ -187,44 +187,44 @@ public void closeScanCapturePopUp() { public BiometricDetailsPage clickOnBackButton() { driver.navigate().back(); - return new BiometricDetailsPageEnglish(driver); + return new BiometricDetailsPageHindi(driver); } @SuppressWarnings("deprecation") - public boolean isApplicantBiometricsPageDisplyed() { + public boolean isApplicantBiometricsPageDisplayed() { return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("individualBiometrics") + "\"))"))); } @SuppressWarnings("deprecation") - public boolean isAuthenticationBiometricsPageDisplyed() { + public boolean isAuthenticationBiometricsPageDisplayed() { return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator( "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("individualAuthBiometrics") + "\"))"))); } - public boolean isExceptionTypeTitleDisplyed() { + public boolean isExceptionTypeTitleDisplayed() { return isElementDisplayed(exceptionTypeTitle); } - public boolean isRightHandScanTitleDisplyed() { + public boolean isRightHandScanTitleDisplayed() { return isElementDisplayed(rightHandScanTitle); } - public boolean isLeftHandScanTitleDisplyed() { + public boolean isLeftHandScanTitleDisplayed() { return isElementDisplayed(leftHandScanTitle); } - public boolean isThumbsScanTitleDisplyed() { + public boolean isThumbsScanTitleDisplayed() { return isElementDisplayed(thumbsScanTitle); } - public boolean isFaceScanTitleDisplyed() { + public boolean isFaceScanTitleDisplayed() { return isElementDisplayed(faceScanTitle); } - public boolean isExceptionScanTitleDisplyed() { + public boolean isExceptionScanTitleDisplayed() { return isElementDisplayed(exceptionScanTitle); } @@ -252,11 +252,11 @@ public boolean isExceptionScan() { return isElementDisplayed(exceptionCapturerHeader, 2000); } - public boolean isCommentHeaderDisplyed() { + public boolean isCommentHeaderDisplayed() { return isElementDisplayed(commentsHeader); } - public boolean isExceptionCountDisplyed() { + public boolean isExceptionCountDisplayed() { if (!isElementDisplayedOnScreen(exceptionCount)) { swipeOrScroll(); isElementDisplayed(exceptionCount); diff --git a/ui-test/src/main/java/regclient/pages/hindi/BiometricDetailsPageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/BiometricDetailsPageHindi.java index 74939aba7..22fac6c99 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/BiometricDetailsPageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/BiometricDetailsPageHindi.java @@ -69,32 +69,32 @@ public boolean isAuthenticationBiometricTitleDisplayed() { public ApplicantBiometricsPage clickOnIrisScan() { clickOnElement(irisScanIcon); - return new ApplicantBiometricsPageEnglish(driver); + return new ApplicantBiometricsPageHindi(driver); } public ApplicantBiometricsPage clickOnRightHandScanIcon() { clickOnElement(rightHandScanIcon); - return new ApplicantBiometricsPageEnglish(driver); + return new ApplicantBiometricsPageHindi(driver); } public ApplicantBiometricsPage clickOnLeftHandScanIcon() { clickOnElement(leftHandScanIcon); - return new ApplicantBiometricsPageEnglish(driver); + return new ApplicantBiometricsPageHindi(driver); } public ApplicantBiometricsPage clickOnThumbsScanIcon() { clickOnElement(thumbsScanIcon); - return new ApplicantBiometricsPageEnglish(driver); + return new ApplicantBiometricsPageHindi(driver); } public ApplicantBiometricsPage clickOnFaceScanIcon() { clickOnElement(faceScanIcon); - return new ApplicantBiometricsPageEnglish(driver); + return new ApplicantBiometricsPageHindi(driver); } public ApplicantBiometricsPage clickOnExceptionScanIcon() { clickOnElement(exceptionScanIcon); - return new ApplicantBiometricsPageEnglish(driver); + return new ApplicantBiometricsPageHindi(driver); } @@ -102,7 +102,7 @@ public IntroducerBiometricPage clickOnIntroducerIrisScan() { clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Iris Scan\"]"))); - return new IntroducerBiometricPageEnglish(driver); + return new IntroducerBiometricPageHindi(driver); } @@ -110,7 +110,7 @@ public IntroducerBiometricPage clickOnIntroducerRightHandScan() { clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Right\"]"))); - return new IntroducerBiometricPageEnglish(driver); + return new IntroducerBiometricPageHindi(driver); } @@ -118,7 +118,7 @@ public IntroducerBiometricPage clickOnIntroducerLeftHandScan() { clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Left\"]"))); - return new IntroducerBiometricPageEnglish(driver); + return new IntroducerBiometricPageHindi(driver); } @@ -126,7 +126,7 @@ public IntroducerBiometricPage clickOnIntroducerThumbScan() { clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Thumbs\"]"))); - return new IntroducerBiometricPageEnglish(driver); + return new IntroducerBiometricPageHindi(driver); } @@ -134,13 +134,13 @@ public IntroducerBiometricPage clickOnIntroducerFaceScan() { clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Face\"]"))); - return new IntroducerBiometricPageEnglish(driver); + return new IntroducerBiometricPageHindi(driver); } public PreviewPage clickOnContinueButton() { clickOnElement(continueButton); - return new PreviewPageEnglish(driver); + return new PreviewPageHindi(driver); } public boolean isAdditionalInfoRequestIdTextboxDisplayed() { @@ -190,6 +190,6 @@ private void sleepSeconds(int s) { } } - private static final Logger logger = LoggerFactory.getLogger(BiometricDetailsPageEnglish.class); + private static final Logger logger = LoggerFactory.getLogger(BiometricDetailsPageHindi.class); } diff --git a/ui-test/src/main/java/regclient/pages/hindi/ConsentPageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/ConsentPageHindi.java index b925c05b0..47f91a993 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/ConsentPageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/ConsentPageHindi.java @@ -32,11 +32,9 @@ public boolean isPageDisplayed(String pageKey) { WebElement pageElement = findElementWithRetry( MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0))" + ".scrollIntoView(new UiSelector().descriptionContains(\"" + screenTitle + "\"))")); - return isElementDisplayed(pageElement); - } catch (Exception e) { - return false; // page not found or not visible + return false; } } @@ -53,12 +51,12 @@ public boolean isInformedButtonEnabled() { public DemographicDetailsPage clickOnInformedButton() { clickOnElement(informedButton); - return new DemographicDetailsPageEnglish(driver); + return new DemographicDetailsPageHindi(driver); } public RegistrationTasksPage clickOnCancelButton() { clickOnElement(cancelButton); - return new RegistrationTasksPageEnglish(driver); + return new RegistrationTasksPageHindi(driver); } @SuppressWarnings("deprecation") diff --git a/ui-test/src/main/java/regclient/pages/hindi/DemographicDetailsPageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/DemographicDetailsPageHindi.java index 02c6e8f24..0269eb304 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/DemographicDetailsPageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/DemographicDetailsPageHindi.java @@ -64,11 +64,9 @@ public boolean isPageDisplayed(String pageKey) { WebElement pageElement = findElementWithRetry( MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0))" + ".scrollIntoView(new UiSelector().descriptionContains(\"" + screenTitle + "\"))")); - return isElementDisplayed(pageElement); - } catch (Exception e) { - return false; // element not found or not visible + return false; } } @@ -83,12 +81,12 @@ public ConsentPage clickOnPageTitle(String pageKey) { MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0))" + ".scrollIntoView(new UiSelector().descriptionContains(\"" + screenTitle + "\"))")); clickOnElement(consentTitle); - return new ConsentPageEnglish(driver); + return new ConsentPageHindi(driver); } public DocumentUploadPage clickOnContinueButton() { clickOnElement(continueButton); - return new DocumentuploadPageEnglish(driver); + return new DocumentUploadPageHindi(driver); } diff --git a/ui-test/src/main/java/regclient/pages/hindi/DocumentUploadPageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/DocumentUploadPageHindi.java index 8c82d802f..6d1d7ec5e 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/DocumentUploadPageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/DocumentUploadPageHindi.java @@ -49,7 +49,7 @@ public DocumentUploadPageHindi(AppiumDriver driver) { public BiometricDetailsPage clickOnContinueButton() { clickOnElement(continueButton); - return new BiometricDetailsPageEnglish(driver); + return new BiometricDetailsPageHindi(driver); } @SuppressWarnings("deprecation") @@ -59,7 +59,7 @@ public boolean isDoccumentUploadPageDisplayed() { public DocumentUploadPage clickOnSaveButton() { clickOnElement(saveButton); - return new DocumentuploadPageEnglish(driver); + return new DocumentUploadPageHindi(driver); } public boolean isRetakeButtonDisplayed() { diff --git a/ui-test/src/main/java/regclient/pages/hindi/IntroducerBiometricPageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/IntroducerBiometricPageHindi.java index 8e5dec461..eb08fb393 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/IntroducerBiometricPageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/IntroducerBiometricPageHindi.java @@ -102,7 +102,7 @@ public void clickOnIrisScanButton() { public BiometricDetailsPage clickOnNextButton() { clickOnElement(nextButton); - return new BiometricDetailsPageEnglish(driver); + return new BiometricDetailsPageHindi(driver); } public void clickOnZoomButton() { @@ -127,7 +127,7 @@ public void closeScanCapturePopUp() { public BiometricDetailsPage clickOnBackButton() { driver.navigate().back(); - return new BiometricDetailsPageEnglish(driver); + return new BiometricDetailsPageHindi(driver); } @SuppressWarnings("deprecation") diff --git a/ui-test/src/main/java/regclient/pages/hindi/OnBoardPageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/OnBoardPageHindi.java index 8acd5d84e..6c793ab6f 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/OnBoardPageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/OnBoardPageHindi.java @@ -48,6 +48,4 @@ public RegistrationTasksPage clickOnSkipToHomeScreen() { clickOnElement(skipToHomeScreenButton); return new RegistrationTasksPageHindi(driver); } - - } diff --git a/ui-test/src/main/java/regclient/pages/hindi/OperationalTaskPageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/OperationalTaskPageHindi.java index f260a25a6..605fcad30 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/OperationalTaskPageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/OperationalTaskPageHindi.java @@ -31,14 +31,12 @@ public OperationalTaskPageHindi(AppiumDriver driver) { public SupervisorBiometricVerificationpage clickOnUpdateOperatorBiometricsButton() { clickOnElement(updateOperatorBiometricsButton); return new SupervisorBiometricVerificationpageHindi(driver); - } public boolean isOperationalTaskPageLoaded() { return isElementDisplayed(systemStorageUsageTitle); } - public void clickSynchronizeDataButton() { clickOnElement(synchronizeDataButton); waitTime(50); diff --git a/ui-test/src/main/java/regclient/pages/hindi/PendingApprovalHindi.java b/ui-test/src/main/java/regclient/pages/hindi/PendingApprovalHindi.java index 56835ebf2..affbd7950 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/PendingApprovalHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/PendingApprovalHindi.java @@ -3,10 +3,13 @@ import static org.testng.Assert.assertTrue; +import java.time.Duration; import java.util.List; import org.openqa.selenium.By; +import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.ui.WebDriverWait; import io.appium.java_client.AppiumDriver; import io.appium.java_client.MobileBy; @@ -216,16 +219,24 @@ public void selectLatestAIdCheckBox() { clickOnElement(latestAIdCheckBox); } - @Override public boolean isNoNetworkFoundDisplayed() { - // TODO Auto-generated method stub - return false; + return isElementEnabled(noNetworkFound); } - @Override public void clickOnPendingApprovalSubmitButton(int maxRetries) { - // TODO Auto-generated method stub - + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(3)); + + for (int i = 1; i <= maxRetries; i++) { + clickOnSubmitButton(); + try { + boolean popupShown = wait.until(d -> isNoNetworkFoundDisplayed()); + if (popupShown) { + } + } catch (TimeoutException e) { + break; + } + } + System.out.println("Still No Network Found Displayed"); } public void clickOnAuthenticateButton() { diff --git a/ui-test/src/main/java/regclient/pages/hindi/PreviewPageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/PreviewPageHindi.java index 7a719021d..fcd17d60d 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/PreviewPageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/PreviewPageHindi.java @@ -52,7 +52,7 @@ public PreviewPageHindi(AppiumDriver driver) { public AuthenticationPage clickOnContinueButton() { clickOnElement(continueButton); - return new AuthenticationPageEnglish(driver); + return new AuthenticationPageHindi(driver); } public boolean isDemographicInformationInPreviewPageDisplayed() { @@ -89,7 +89,7 @@ public DemographicDetailsPage clickOnDemographicDetailsTitle() { clickOnElement(findElementWithRetry(MobileBy.AndroidUIAutomator( "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))"))); - return new DemographicDetailsPageEnglish(driver); + return new DemographicDetailsPageHindi(driver); } public boolean isBothIrisImageDisplayed() { @@ -112,9 +112,7 @@ public String getAID() { public void validatePreRegAndApplicationIdMatch(String age) { String preRegId = AdminTestUtil.getPreRegistrationFlow(age); - String applicationID = getAID(); - Assert.assertEquals(applicationID, preRegId, "Mismatch between API PreReg ID and UI Application ID!"); } diff --git a/ui-test/src/main/java/regclient/pages/hindi/ProfilePageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/ProfilePageHindi.java index 48c13873f..2700de734 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/ProfilePageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/ProfilePageHindi.java @@ -29,12 +29,12 @@ public ProfilePageHindi(AppiumDriver driver) { public LoginPage clickOnLogoutButton() { if(isElementDisplayed(logoutButton)) clickOnElement(logoutButton); - return new LoginPageEnglish(driver); + return new LoginPageHindi(driver); } public LoginPage clickOnLogoutButtonOnPopUp() { clickOnElement(logoutButton); - return new LoginPageEnglish(driver); + return new LoginPageHindi(driver); } public boolean isProfileTitleDisplayed() { @@ -51,7 +51,7 @@ public boolean isResetPasswordButtonDisplayed() { public LoginPage clickOnResetPasswordButton() { clickOnElement(resetPasswordButton); - return new LoginPageEnglish(driver); + return new LoginPageHindi(driver); } } diff --git a/ui-test/src/main/java/regclient/pages/hindi/RegistrationTasksPageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/RegistrationTasksPageHindi.java index 71100c967..080c39b62 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/RegistrationTasksPageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/RegistrationTasksPageHindi.java @@ -156,7 +156,7 @@ public void clickOnSettingsButton() { public SelectLanguagePage clickOnBiometricCorrectionButton() { clickOnElement(biometricCorrectionButton); - return new SelectLanguagePageEnglish(driver); + return new SelectLanguagePageHindi(driver); } public void handleLocationPermission() { diff --git a/ui-test/src/main/java/regclient/pages/hindi/SelectLanguagePageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/SelectLanguagePageHindi.java index 0f019bf81..3fe6068d2 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/SelectLanguagePageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/SelectLanguagePageHindi.java @@ -105,23 +105,16 @@ public void selectNotificationlanguage(String notificationLanguage) { clickOnElement(spanishLanguageNotificationButton); break; default: - // Handle the default case if needed break; } } public void selectAllSecondLanguage() { - clickOnElement(englishLanguageButton); - clickOnElement(frenchLanguageButton); - clickOnElement(arabicLanguageButton); - clickOnElement(kannadaLanguageButton); - clickOnElement(hindiLanguageButton); - clickOnElement(tamilLanguageButton); } diff --git a/ui-test/src/main/java/regclient/pages/hindi/SupervisorBiometricVerificationpageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/SupervisorBiometricVerificationpageHindi.java index c1dd882d7..50a077ee2 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/SupervisorBiometricVerificationpageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/SupervisorBiometricVerificationpageHindi.java @@ -190,7 +190,6 @@ public void closeScanCapturePopUp() { driver.navigate().back(); } - public boolean isRightHandScanTitleDisplayed() { return isElementDisplayed(rightHandScanTitle); } @@ -365,21 +364,16 @@ public boolean checkThresholdValueFace() { public boolean isVerifyAndSaveButtonEnabled() { return isElementDisplayed(verifyAndSaveButton); - - } - @Override public void clickOnVerifyAndSaveButton() { clickOnElement(verifyAndSaveButton); - } public boolean isDismissPageLoaded() { return isElementDisplayed(dismissPage); } - public boolean isOperatorOnboardedPopupLoaded() { return isElementDisplayed(successPopup); } diff --git a/ui-test/src/main/java/regclient/pages/hindi/UpdateOperatorBiometricspageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/UpdateOperatorBiometricspageHindi.java index bc6174333..856eecdc5 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/UpdateOperatorBiometricspageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/UpdateOperatorBiometricspageHindi.java @@ -193,23 +193,23 @@ public void closeScanCapturePopUp() { driver.navigate().back(); } - public boolean isRightHandScanTitleDisplyed() { + public boolean isRightHandScanTitleDisplayed() { return isElementDisplayed(rightHandScanTitle); } - public boolean isLeftHandScanTitleDisplyed() { + public boolean isLeftHandScanTitleDisplayed() { return isElementDisplayed(leftHandScanTitle); } - public boolean isThumbsScanTitleDisplyed() { + public boolean isThumbsScanTitleDisplayed() { return isElementDisplayed(thumbsScanTitle); } - public boolean isFaceScanTitleDisplyed() { + public boolean isFaceScanTitleDisplayed() { return isElementDisplayed(faceScanTitle); } - public boolean isExceptionScanTitleDisplyed() { + public boolean isExceptionScanTitleDisplayed() { return isElementDisplayed(exceptionScanTitle); } @@ -233,23 +233,23 @@ public boolean isFaceScan() { return isElementDisplayed(faceCapturerHeader, 2000); } - public boolean isIrisScanQualityDisplyed() { + public boolean isIrisScanQualityDisplayed() { return isElementDisplayed(irisScanQuality); } - public boolean isRightHandScanQualityDisplyed() { + public boolean isRightHandScanQualityDisplayed() { return isElementDisplayed(rightHandScanQuality); } - public boolean isLeftHandScanQualityDisplyed() { + public boolean isLeftHandScanQualityDisplayed() { return isElementDisplayed(leftHandScanQuality); } - public boolean isThumbsScanQualityDisplyed() { + public boolean isThumbsScanQualityDisplayed() { return isElementDisplayed(thumbsScanQuality); } - public boolean isFaceScanQualityDisplyed() { + public boolean isFaceScanQualityDisplayed() { return isElementDisplayed(faceScanQuality); } @@ -265,7 +265,7 @@ public void markOneFingureException() { clickOnElement(firstFingureExceptionImage); } - public boolean isExceptionTypeTitleDisplyed() { + public boolean isExceptionTypeTitleDisplayed() { return isElementDisplayed(exceptionTypeTitle); } @@ -276,7 +276,7 @@ public void clickOnExceptionTypeTemporaryButton() { clickOnElement(temporaryButton); } - public boolean isCommentHeaderDisplyed() { + public boolean isCommentHeaderDisplayed() { return isElementDisplayed(commentsHeader); } @@ -295,11 +295,11 @@ public void clickOnThumbsScanTitle() { clickOnElement(thumbsScanTitle); } - public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed() { + public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplayed() { return isElementDisplayed(markingExceptionsOnFaceIsNotAllowedText); } - public boolean isZoomButtonDisplyed() { + public boolean isZoomButtonDisplayed() { return isElementDisplayed(zoomButton); } diff --git a/ui-test/src/main/java/regclient/pages/hindi/UpdateUINPageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/UpdateUINPageHindi.java index 7aedefe2d..bb47954e3 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/UpdateUINPageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/UpdateUINPageHindi.java @@ -40,7 +40,7 @@ public void enterUIN(String UIN) { public ConsentPage clickOnContinueButton() { clickOnElement(continueButton); - return new ConsentPageEnglish(driver); + return new ConsentPageHindi(driver); } public boolean isInvalidUINErrorMessageDisplayed() { diff --git a/ui-test/src/main/java/regclient/pages/kannada/AcknowledgementPageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/AcknowledgementPageKannada.java index 77d4206aa..821bea91f 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/AcknowledgementPageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/AcknowledgementPageKannada.java @@ -41,8 +41,7 @@ public AcknowledgementPageKannada(AppiumDriver driver) { public RegistrationTasksPage clickOnGoToHomeButton() { clickOnElement(goToHomeButton); - return new RegistrationTasksPageEnglish(driver); - + return new RegistrationTasksPageKannada(driver); } public boolean isAcknowledgementPageDisplayed() { @@ -72,7 +71,7 @@ public boolean isBiometricsInformationInAcknowledgementPageDisplayed() { @SuppressWarnings("deprecation") public DemographicDetailsPage clickOnDemographicDetailsTitle() { clickOnElement(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))"))); - return new DemographicDetailsPageEnglish(driver); + return new DemographicDetailsPageKannada(driver); } public String getAID() { diff --git a/ui-test/src/main/java/regclient/pages/kannada/ApplicantBiometricsPageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/ApplicantBiometricsPageKannada.java index dafb3ec6e..be7bed4cb 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/ApplicantBiometricsPageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/ApplicantBiometricsPageKannada.java @@ -158,7 +158,7 @@ public void clickOnIrisScanButton() { public BiometricDetailsPage clickOnNextButton() { clickOnElement(nextButton); - return new BiometricDetailsPageEnglish(driver); + return new BiometricDetailsPageKannada(driver); } public void clickOnZoomButton() { @@ -187,40 +187,40 @@ public void closeScanCapturePopUp() { public BiometricDetailsPage clickOnBackButton() { driver.navigate().back(); - return new BiometricDetailsPageEnglish(driver); + return new BiometricDetailsPageKannada(driver); } @SuppressWarnings("deprecation") - public boolean isApplicantBiometricsPageDisplyed() { + public boolean isApplicantBiometricsPageDisplayed() { return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("individualBiometrics") + "\"))"))); } @SuppressWarnings("deprecation") - public boolean isAuthenticationBiometricsPageDisplyed() { + public boolean isAuthenticationBiometricsPageDisplayed() { return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("individualAuthBiometrics") + "\"))"))); } - public boolean isExceptionTypeTitleDisplyed() { + public boolean isExceptionTypeTitleDisplayed() { return isElementDisplayed(exceptionTypeTitle); } - public boolean isRightHandScanTitleDisplyed() { + public boolean isRightHandScanTitleDisplayed() { return isElementDisplayed(rightHandScanTitle); } - public boolean isLeftHandScanTitleDisplyed() { + public boolean isLeftHandScanTitleDisplayed() { return isElementDisplayed(leftHandScanTitle); } - public boolean isThumbsScanTitleDisplyed() { + public boolean isThumbsScanTitleDisplayed() { return isElementDisplayed(thumbsScanTitle); } - public boolean isFaceScanTitleDisplyed() { + public boolean isFaceScanTitleDisplayed() { return isElementDisplayed(faceScanTitle); } - public boolean isExceptionScanTitleDisplyed() { + public boolean isExceptionScanTitleDisplayed() { return isElementDisplayed(exceptionScanTitle); } @@ -248,11 +248,11 @@ public boolean isExceptionScan() { return isElementDisplayed(exceptionCapturerHeader,2000); } - public boolean isCommentHeaderDisplyed() { + public boolean isCommentHeaderDisplayed() { return isElementDisplayed(commentsHeader); } - public boolean isExceptionCountDisplyed() { + public boolean isExceptionCountDisplayed() { if(!isElementDisplayedOnScreen(exceptionCount)) { swipeOrScroll(); isElementDisplayed(exceptionCount); diff --git a/ui-test/src/main/java/regclient/pages/kannada/BiometricDetailsPageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/BiometricDetailsPageKannada.java index c1dedf3a4..32e9c155a 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/BiometricDetailsPageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/BiometricDetailsPageKannada.java @@ -69,78 +69,72 @@ public boolean isAuthenticationBiometricTitleDisplayed() { public ApplicantBiometricsPage clickOnIrisScan() { clickOnElement(irisScanIcon); - return new ApplicantBiometricsPageEnglish(driver); + return new ApplicantBiometricsPageKannada(driver); } public ApplicantBiometricsPage clickOnRightHandScanIcon() { clickOnElement(rightHandScanIcon); - return new ApplicantBiometricsPageEnglish(driver); + return new ApplicantBiometricsPageKannada(driver); } public ApplicantBiometricsPage clickOnLeftHandScanIcon() { clickOnElement(leftHandScanIcon); - return new ApplicantBiometricsPageEnglish(driver); + return new ApplicantBiometricsPageKannada(driver); } public ApplicantBiometricsPage clickOnThumbsScanIcon() { clickOnElement(thumbsScanIcon); - return new ApplicantBiometricsPageEnglish(driver); + return new ApplicantBiometricsPageKannada(driver); } public ApplicantBiometricsPage clickOnFaceScanIcon() { clickOnElement(faceScanIcon); - return new ApplicantBiometricsPageEnglish(driver); + return new ApplicantBiometricsPageKannada(driver); } public ApplicantBiometricsPage clickOnExceptionScanIcon() { clickOnElement(exceptionScanIcon); - return new ApplicantBiometricsPageEnglish(driver); - + return new ApplicantBiometricsPageKannada(driver); } public IntroducerBiometricPage clickOnIntroducerIrisScan() { clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Iris Scan\"]"))); - return new IntroducerBiometricPageEnglish(driver); - + return new IntroducerBiometricPageKannada(driver); } public IntroducerBiometricPage clickOnIntroducerRightHandScan() { clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Right\"]"))); - return new IntroducerBiometricPageEnglish(driver); - + return new IntroducerBiometricPageKannada(driver); } public IntroducerBiometricPage clickOnIntroducerLeftHandScan() { clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Left\"]"))); - return new IntroducerBiometricPageEnglish(driver); - + return new IntroducerBiometricPageKannada(driver); } public IntroducerBiometricPage clickOnIntroducerThumbScan() { clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Thumbs\"]"))); - return new IntroducerBiometricPageEnglish(driver); - + return new IntroducerBiometricPageKannada(driver); } public IntroducerBiometricPage clickOnIntroducerFaceScan() { clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Face\"]"))); - return new IntroducerBiometricPageEnglish(driver); - + return new IntroducerBiometricPageKannada(driver); } public PreviewPage clickOnContinueButton() { clickOnElement(continueButton); - return new PreviewPageEnglish(driver); + return new PreviewPageKannada(driver); } public boolean isAdditionalInfoRequestIdTextboxDisplayed() { diff --git a/ui-test/src/main/java/regclient/pages/kannada/ConsentPageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/ConsentPageKannada.java index 78e01db91..71c4b6b96 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/ConsentPageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/ConsentPageKannada.java @@ -32,11 +32,9 @@ public boolean isPageDisplayed(String pageKey) { WebElement pageElement = findElementWithRetry( MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0))" + ".scrollIntoView(new UiSelector().descriptionContains(\"" + screenTitle + "\"))")); - return isElementDisplayed(pageElement); - } catch (Exception e) { - return false; // page not found or not visible + return false; } } @@ -53,12 +51,12 @@ public boolean isInformedButtonEnabled() { public DemographicDetailsPage clickOnInformedButton() { clickOnElement(informedButton); - return new DemographicDetailsPageEnglish(driver); + return new DemographicDetailsPageKannada(driver); } public RegistrationTasksPage clickOnCancelButton() { clickOnElement(cancelButton); - return new RegistrationTasksPageEnglish(driver); + return new RegistrationTasksPageKannada(driver); } @SuppressWarnings("deprecation") diff --git a/ui-test/src/main/java/regclient/pages/kannada/DashboardPageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/DashboardPageKannada.java index 9091ca482..c878e77c1 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/DashboardPageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/DashboardPageKannada.java @@ -6,30 +6,30 @@ import io.appium.java_client.pagefactory.AndroidFindBy; import regclient.page.DashboardPage; -public class DashboardPageKannada extends DashboardPage{ +public class DashboardPageKannada extends DashboardPage { @AndroidFindBy(xpath = "//android.view.View[@content-desc=\"Dashboard\"]/following-sibling::android.view.View[3]") private WebElement packetUploadedNumber; - + @AndroidFindBy(xpath = "//android.view.View[@content-desc=\"Dashboard\"]/following-sibling::android.view.View[2]") private WebElement packetSyncedNumber; - + @AndroidFindBy(accessibility = "Dashboard") private WebElement dashboardPageTitle; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"User ID\")]") private WebElement userIDTitle; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"User Name\")]") private WebElement userNameTitle; - + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc, \"Status\")]") private WebElement statusTitle; - + public DashboardPageKannada(AppiumDriver driver) { super(driver); } - + public boolean isDashboardTitleDisplayed() { return isElementDisplayed(dashboardPageTitle); } @@ -37,19 +37,19 @@ public boolean isDashboardTitleDisplayed() { public boolean isPacketsUploadedValueDisplayed() { return isElementDisplayed(packetUploadedNumber); } - + public boolean isPacketsSyncedValueDisplayed() { return isElementDisplayed(packetSyncedNumber); } - + public boolean isUserIDDisplayed() { return isElementDisplayed(userIDTitle); } - + public boolean isUserNameDisplayed() { return isElementDisplayed(userNameTitle); } - + public boolean isStatusTitleDisplayed() { return isElementDisplayed(statusTitle); } diff --git a/ui-test/src/main/java/regclient/pages/kannada/DemographicDetailsPageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/DemographicDetailsPageKannada.java index 5a0585f24..f3eb9f7c5 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/DemographicDetailsPageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/DemographicDetailsPageKannada.java @@ -66,7 +66,7 @@ public boolean isPageDisplayed(String pageKey) { + ".scrollIntoView(new UiSelector().descriptionContains(\"" + screenTitle + "\"))")); return isElementDisplayed(pageElement); } catch (Exception e) { - return false; // element not found or not visible + return false; } } @@ -81,18 +81,16 @@ public ConsentPage clickOnPageTitle(String pageKey) { MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0))" + ".scrollIntoView(new UiSelector().descriptionContains(\"" + screenTitle + "\"))")); clickOnElement(consentTitle); - return new ConsentPageEnglish(driver); + return new ConsentPageKannada(driver); } public DocumentUploadPage clickOnContinueButton() { clickOnElement(continueButton); - return new DocumentuploadPageEnglish(driver); - + return new DocumentuploadPageKannada(driver); } public boolean isContinueButtonEnable() { return isElementEnabled(continueButton); - } public boolean isPreRegFetchDataTextBoxDisplay() { diff --git a/ui-test/src/main/java/regclient/pages/kannada/DocumentuploadPageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/DocumentuploadPageKannada.java index 7a7bc754b..38d4bb669 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/DocumentuploadPageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/DocumentuploadPageKannada.java @@ -50,7 +50,7 @@ public DocumentuploadPageKannada(AppiumDriver driver) { public BiometricDetailsPage clickOnContinueButton() { clickOnElement(continueButton); - return new BiometricDetailsPageEnglish(driver); + return new BiometricDetailsPageKannada(driver); } @SuppressWarnings("deprecation") @@ -60,7 +60,7 @@ public boolean isDoccumentUploadPageDisplayed() { public DocumentUploadPage clickOnSaveButton() { clickOnElement(saveButton); - return new DocumentuploadPageEnglish(driver); + return new DocumentuploadPageKannada(driver); } public boolean isRetakeButtonDisplayed() { diff --git a/ui-test/src/main/java/regclient/pages/kannada/IntroducerBiometricPageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/IntroducerBiometricPageKannada.java index bdc1884a7..5a64bf5de 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/IntroducerBiometricPageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/IntroducerBiometricPageKannada.java @@ -102,7 +102,7 @@ public void clickOnIrisScanButton() { public BiometricDetailsPage clickOnNextButton() { clickOnElement(nextButton); - return new BiometricDetailsPageEnglish(driver); + return new BiometricDetailsPageKannada(driver); } public void clickOnZoomButton() { @@ -127,7 +127,7 @@ public void closeScanCapturePopUp() { public BiometricDetailsPage clickOnBackButton() { driver.navigate().back(); - return new BiometricDetailsPageEnglish(driver); + return new BiometricDetailsPageKannada(driver); } @SuppressWarnings("deprecation") diff --git a/ui-test/src/main/java/regclient/pages/kannada/OperationalTaskPageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/OperationalTaskPageKannada.java index 1a473d856..ce889376b 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/OperationalTaskPageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/OperationalTaskPageKannada.java @@ -7,8 +7,6 @@ import regclient.page.OperationalTaskPage; import regclient.page.SupervisorBiometricVerificationpage; - - public class OperationalTaskPageKannada extends OperationalTaskPage{ @AndroidFindBy(accessibility = "ಆಪರೇಟರ್ ಬಯೋಮೆಟ್ರಿಕ್ಸ್ ಅನ್ನು ನವೀಕರಿಸಿ") diff --git a/ui-test/src/main/java/regclient/pages/kannada/PreviewPageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/PreviewPageKannada.java index 2570422e2..56c86e604 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/PreviewPageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/PreviewPageKannada.java @@ -52,7 +52,7 @@ public PreviewPageKannada(AppiumDriver driver) { public AuthenticationPage clickOnContinueButton() { clickOnElement(continueButton); - return new AuthenticationPageEnglish(driver); + return new AuthenticationPageKannada(driver); } public boolean isDemographicInformationInPreviewPageDisplayed() { @@ -89,7 +89,7 @@ public DemographicDetailsPage clickOnDemographicDetailsTitle() { clickOnElement(findElementWithRetry(MobileBy.AndroidUIAutomator( "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))"))); - return new DemographicDetailsPageEnglish(driver); + return new DemographicDetailsPageKannada(driver); } public boolean isBothIrisImageDisplayed() { diff --git a/ui-test/src/main/java/regclient/pages/kannada/ProfilePageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/ProfilePageKannada.java index 27a9144fa..061ada8ac 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/ProfilePageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/ProfilePageKannada.java @@ -34,7 +34,7 @@ public LoginPage clickOnLogoutButton() { public LoginPage clickOnLogoutButtonOnPopUp() { clickOnElement(logoutButton); - return new LoginPageEnglish(driver); + return new LoginPageKannada(driver); } public boolean isProfileTitleDisplayed() { @@ -51,7 +51,7 @@ public boolean isResetPasswordButtonDisplayed() { public LoginPage clickOnResetPasswordButton() { clickOnElement(resetPasswordButton); - return new LoginPageEnglish(driver); + return new LoginPageKannada(driver); } } diff --git a/ui-test/src/main/java/regclient/pages/kannada/RegistrationTasksPageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/RegistrationTasksPageKannada.java index ef1a73148..dd5d991ff 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/RegistrationTasksPageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/RegistrationTasksPageKannada.java @@ -156,7 +156,7 @@ public void clickOnSettingsButton() { public SelectLanguagePage clickOnBiometricCorrectionButton() { clickOnElement(biometricCorrectionButton); - return new SelectLanguagePageEnglish(driver); + return new SelectLanguagePageKannada(driver); } public void handleLocationPermission() { diff --git a/ui-test/src/main/java/regclient/pages/kannada/SelectLanguagePageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/SelectLanguagePageKannada.java index a2171b589..37f54f175 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/SelectLanguagePageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/SelectLanguagePageKannada.java @@ -104,27 +104,19 @@ public void selectNotificationlanguage(String notificationLanguage) { clickOnElement(spanishLanguageNotificationButton); break; default: - // Handle the default case if needed break; } } public void selectAllSecondLanguage() { - clickOnElement(englishLanguageButton); - clickOnElement(frenchLanguageButton); - clickOnElement(arabicLanguageButton); - clickOnElement(kannadaLanguageButton); - clickOnElement(hindiLanguageButton); - clickOnElement(tamilLanguageButton); } - public boolean isArabicLanguageButtonEnabled() { return isElementEnabled(arabicLanguageButton); } diff --git a/ui-test/src/main/java/regclient/pages/kannada/SettingsPageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/SettingsPageKannada.java index 4b87ea8b5..4c94f8154 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/SettingsPageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/SettingsPageKannada.java @@ -154,14 +154,11 @@ public void validateDeviceCard(String deviceName) { WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10)); WebElement card = wait.until(ExpectedConditions .presenceOfElementLocated(By.xpath("//*[contains(@content-desc,'" + deviceName + "')]"))); - String desc = card.getAttribute("content-desc"); System.out.println("Card text: " + desc); - Pattern p = Pattern.compile("ID:\\s*([a-zA-Z0-9]+)"); Matcher m = p.matcher(desc); assertTrue(m.find(), "ID not found or empty"); - assertTrue(desc.contains("Name: " + deviceName), "Device name mismatch"); assertTrue(desc.contains("Status: Ready"), "Device status not Ready"); } diff --git a/ui-test/src/main/java/regclient/pages/kannada/SupervisorBiometricVerificationpageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/SupervisorBiometricVerificationpageKannada.java index b6a00147d..a623482ae 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/SupervisorBiometricVerificationpageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/SupervisorBiometricVerificationpageKannada.java @@ -190,7 +190,6 @@ public void closeScanCapturePopUp() { driver.navigate().back(); } - public boolean isRightHandScanTitleDisplayed() { return isElementDisplayed(rightHandScanTitle); } @@ -378,7 +377,6 @@ public boolean isDismissPageLoaded() { return isElementDisplayed(dismissPage); } - public boolean isOperatorOnboardedPopupLoaded() { return isElementDisplayed(successPopup); } diff --git a/ui-test/src/main/java/regclient/pages/kannada/UpdateOperatorBiometricspageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/UpdateOperatorBiometricspageKannada.java index 5e41e863f..21a317aa3 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/UpdateOperatorBiometricspageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/UpdateOperatorBiometricspageKannada.java @@ -10,7 +10,6 @@ public class UpdateOperatorBiometricspageKannada extends UpdateOperatorBiometric public UpdateOperatorBiometricspageKannada(AppiumDriver driver) { super(driver); - } @AndroidFindBy(accessibility = "ನಿರೀಕ್ಷಕರ ಬಯೋಮೆಟ್ರಿಕ್ ನವೀಕರಣ") @@ -194,23 +193,23 @@ public void closeScanCapturePopUp() { driver.navigate().back(); } - public boolean isRightHandScanTitleDisplyed() { + public boolean isRightHandScanTitleDisplayed() { return isElementDisplayed(rightHandScanTitle); } - public boolean isLeftHandScanTitleDisplyed() { + public boolean isLeftHandScanTitleDisplayed() { return isElementDisplayed(leftHandScanTitle); } - public boolean isThumbsScanTitleDisplyed() { + public boolean isThumbsScanTitleDisplayed() { return isElementDisplayed(thumbsScanTitle); } - public boolean isFaceScanTitleDisplyed() { + public boolean isFaceScanTitleDisplayed() { return isElementDisplayed(faceScanTitle); } - public boolean isExceptionScanTitleDisplyed() { + public boolean isExceptionScanTitleDisplayed() { return isElementDisplayed(exceptionScanTitle); } @@ -234,23 +233,23 @@ public boolean isFaceScan() { return isElementDisplayed(faceCapturerHeader, 2000); } - public boolean isIrisScanQualityDisplyed() { + public boolean isIrisScanQualityDisplayed() { return isElementDisplayed(irisScanQuality); } - public boolean isRightHandScanQualityDisplyed() { + public boolean isRightHandScanQualityDisplayed() { return isElementDisplayed(rightHandScanQuality); } - public boolean isLeftHandScanQualityDisplyed() { + public boolean isLeftHandScanQualityDisplayed() { return isElementDisplayed(leftHandScanQuality); } - public boolean isThumbsScanQualityDisplyed() { + public boolean isThumbsScanQualityDisplayed() { return isElementDisplayed(thumbsScanQuality); } - public boolean isFaceScanQualityDisplyed() { + public boolean isFaceScanQualityDisplayed() { return isElementDisplayed(faceScanQuality); } @@ -266,7 +265,7 @@ public void markOneFingureException() { clickOnElement(firstFingureExceptionImage); } - public boolean isExceptionTypeTitleDisplyed() { + public boolean isExceptionTypeTitleDisplayed() { return isElementDisplayed(exceptionTypeTitle); } @@ -277,7 +276,7 @@ public void clickOnExceptionTypeTemporaryButton() { clickOnElement(temporaryButton); } - public boolean isCommentHeaderDisplyed() { + public boolean isCommentHeaderDisplayed() { return isElementDisplayed(commentsHeader); } @@ -296,11 +295,11 @@ public void clickOnThumbsScanTitle() { clickOnElement(thumbsScanTitle); } - public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed() { + public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplayed() { return isElementDisplayed(markingExceptionsOnFaceIsNotAllowedText); } - public boolean isZoomButtonDisplyed() { + public boolean isZoomButtonDisplayed() { return isElementDisplayed(zoomButton); } diff --git a/ui-test/src/main/java/regclient/pages/kannada/UpdateUINPageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/UpdateUINPageKannada.java index 9fc2fd10a..59dcb4012 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/UpdateUINPageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/UpdateUINPageKannada.java @@ -40,7 +40,7 @@ public void enterUIN(String UIN) { public ConsentPage clickOnContinueButton() { clickOnElement(continueButton); - return new ConsentPageEnglish(driver); + return new ConsentPageKannada(driver); } public boolean isInvalidUINErrorMessageDisplayed() { diff --git a/ui-test/src/main/java/regclient/pages/tamil/AcknowledgementPageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/AcknowledgementPageTamil.java index 3f269b940..42690ab11 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/AcknowledgementPageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/AcknowledgementPageTamil.java @@ -42,8 +42,7 @@ public AcknowledgementPageTamil(AppiumDriver driver) { public RegistrationTasksPage clickOnGoToHomeButton() { clickOnElement(goToHomeButton); - return new RegistrationTasksPageEnglish(driver); - + return new RegistrationTasksPageTamil(driver); } public boolean isAcknowledgementPageDisplayed() { @@ -73,12 +72,10 @@ public boolean isBiometricsInformationInAcknowledgementPageDisplayed() { @SuppressWarnings("deprecation") public DemographicDetailsPage clickOnDemographicDetailsTitle() { clickOnElement(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))"))); - return new DemographicDetailsPageEnglish(driver); + return new DemographicDetailsPageTamil(driver); } public String getAID() { return getTextFromLocator(applicationID); } - - } diff --git a/ui-test/src/main/java/regclient/pages/tamil/ApplicantBiometricsPageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/ApplicantBiometricsPageTamil.java index 75c22efa4..94bd90645 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/ApplicantBiometricsPageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/ApplicantBiometricsPageTamil.java @@ -159,7 +159,7 @@ public void clickOnIrisScanButton() { public BiometricDetailsPage clickOnNextButton() { clickOnElement(nextButton); - return new BiometricDetailsPageEnglish(driver); + return new BiometricDetailsPageTamil(driver); } public void clickOnZoomButton() { @@ -188,40 +188,40 @@ public void closeScanCapturePopUp() { public BiometricDetailsPage clickOnBackButton() { driver.navigate().back(); - return new BiometricDetailsPageEnglish(driver); + return new BiometricDetailsPageTamil(driver); } @SuppressWarnings("deprecation") - public boolean isApplicantBiometricsPageDisplyed() { + public boolean isApplicantBiometricsPageDisplayed() { return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("individualBiometrics") + "\"))"))); } @SuppressWarnings("deprecation") - public boolean isAuthenticationBiometricsPageDisplyed() { + public boolean isAuthenticationBiometricsPageDisplayed() { return isElementDisplayed(findElementWithRetry(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getValueUsingId("individualAuthBiometrics") + "\"))"))); } - public boolean isExceptionTypeTitleDisplyed() { + public boolean isExceptionTypeTitleDisplayed() { return isElementDisplayed(exceptionTypeTitle); } - public boolean isRightHandScanTitleDisplyed() { + public boolean isRightHandScanTitleDisplayed() { return isElementDisplayed(rightHandScanTitle); } - public boolean isLeftHandScanTitleDisplyed() { + public boolean isLeftHandScanTitleDisplayed() { return isElementDisplayed(leftHandScanTitle); } - public boolean isThumbsScanTitleDisplyed() { + public boolean isThumbsScanTitleDisplayed() { return isElementDisplayed(thumbsScanTitle); } - public boolean isFaceScanTitleDisplyed() { + public boolean isFaceScanTitleDisplayed() { return isElementDisplayed(faceScanTitle); } - public boolean isExceptionScanTitleDisplyed() { + public boolean isExceptionScanTitleDisplayed() { return isElementDisplayed(exceptionScanTitle); } @@ -249,11 +249,11 @@ public boolean isExceptionScan() { return isElementDisplayed(exceptionCapturerHeader,2000); } - public boolean isCommentHeaderDisplyed() { + public boolean isCommentHeaderDisplayed() { return isElementDisplayed(commentsHeader); } - public boolean isExceptionCountDisplyed() { + public boolean isExceptionCountDisplayed() { if(!isElementDisplayedOnScreen(exceptionCount)) { swipeOrScroll(); isElementDisplayed(exceptionCount); diff --git a/ui-test/src/main/java/regclient/pages/tamil/BiometricDetailsPageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/BiometricDetailsPageTamil.java index d57c06644..53d12d36e 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/BiometricDetailsPageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/BiometricDetailsPageTamil.java @@ -69,32 +69,32 @@ public boolean isAuthenticationBiometricTitleDisplayed() { public ApplicantBiometricsPage clickOnIrisScan() { clickOnElement(irisScanIcon); - return new ApplicantBiometricsPageEnglish(driver); + return new ApplicantBiometricsPageTamil(driver); } public ApplicantBiometricsPage clickOnRightHandScanIcon() { clickOnElement(rightHandScanIcon); - return new ApplicantBiometricsPageEnglish(driver); + return new ApplicantBiometricsPageTamil(driver); } public ApplicantBiometricsPage clickOnLeftHandScanIcon() { clickOnElement(leftHandScanIcon); - return new ApplicantBiometricsPageEnglish(driver); + return new ApplicantBiometricsPageTamil(driver); } public ApplicantBiometricsPage clickOnThumbsScanIcon() { clickOnElement(thumbsScanIcon); - return new ApplicantBiometricsPageEnglish(driver); + return new ApplicantBiometricsPageTamil(driver); } public ApplicantBiometricsPage clickOnFaceScanIcon() { clickOnElement(faceScanIcon); - return new ApplicantBiometricsPageEnglish(driver); + return new ApplicantBiometricsPageTamil(driver); } public ApplicantBiometricsPage clickOnExceptionScanIcon() { clickOnElement(exceptionScanIcon); - return new ApplicantBiometricsPageEnglish(driver); + return new ApplicantBiometricsPageTamil(driver); } @@ -102,7 +102,7 @@ public IntroducerBiometricPage clickOnIntroducerIrisScan() { clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Iris Scan\"]"))); - return new IntroducerBiometricPageEnglish(driver); + return new IntroducerBiometricPageTamil(driver); } @@ -110,7 +110,7 @@ public IntroducerBiometricPage clickOnIntroducerRightHandScan() { clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Right\"]"))); - return new IntroducerBiometricPageEnglish(driver); + return new IntroducerBiometricPageTamil(driver); } @@ -118,7 +118,7 @@ public IntroducerBiometricPage clickOnIntroducerLeftHandScan() { clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Left\"]"))); - return new IntroducerBiometricPageEnglish(driver); + return new IntroducerBiometricPageTamil(driver); } @@ -126,7 +126,7 @@ public IntroducerBiometricPage clickOnIntroducerThumbScan() { clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Thumbs\"]"))); - return new IntroducerBiometricPageEnglish(driver); + return new IntroducerBiometricPageTamil(driver); } @@ -134,13 +134,13 @@ public IntroducerBiometricPage clickOnIntroducerFaceScan() { clickOnElement(findElementWithRetry(By.xpath("//android.view.View[contains(@content-desc,\"" + FetchUiSpec.getValueUsingId("introducerBiometrics") + "\")]/following-sibling::android.view.View/descendant::android.view.View/descendant::android.widget.ImageView[@content-desc=\"Face\"]"))); - return new IntroducerBiometricPageEnglish(driver); + return new IntroducerBiometricPageTamil(driver); } public PreviewPage clickOnContinueButton() { clickOnElement(continueButton); - return new PreviewPageEnglish(driver); + return new PreviewPageTamil(driver); } public boolean isAdditionalInfoRequestIdTextboxDisplayed() { @@ -150,13 +150,11 @@ public boolean isAdditionalInfoRequestIdTextboxDisplayed() { public void enterAdditionalInfoUsingEmail(String emailId) { int retries = 20, waitSeconds = 10; final String SUFFIX = "-BIOMETRIC_CORRECTION-1"; - for (int i = 1; i <= retries; i++) { String id = OTPListener.getAdditionalReqId(emailId); if (id != null && !id.isEmpty() && !id.equals("{Failed}")) { String sanitized = id.trim().replaceAll("\\p{C}", ""); String finalId = sanitized.endsWith(SUFFIX) ? sanitized : sanitized + SUFFIX; - try { WebElement el = additionalInfoRequestIdTextbox; try { @@ -166,7 +164,6 @@ public void enterAdditionalInfoUsingEmail(String emailId) { } if (finalId.equals(el.getAttribute("value"))) return; - ((JavascriptExecutor) driver).executeScript( "arguments[0].value=arguments[1];arguments[0].dispatchEvent(new Event('input',{bubbles:true}));", el, finalId); @@ -190,6 +187,6 @@ private void sleepSeconds(int s) { } } - private static final Logger logger = LoggerFactory.getLogger(BiometricDetailsPageEnglish.class); + private static final Logger logger = LoggerFactory.getLogger(BiometricDetailsPageTamil.class); } diff --git a/ui-test/src/main/java/regclient/pages/tamil/DemographicDetailsPageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/DemographicDetailsPageTamil.java index 42b2de24c..c2f6644ad 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/DemographicDetailsPageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/DemographicDetailsPageTamil.java @@ -64,11 +64,9 @@ public boolean isPageDisplayed(String pageKey) { WebElement pageElement = findElementWithRetry( MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0))" + ".scrollIntoView(new UiSelector().descriptionContains(\"" + screenTitle + "\"))")); - return isElementDisplayed(pageElement); - } catch (Exception e) { - return false; // element not found or not visible + return false; } } @@ -88,13 +86,11 @@ public boolean isErrorMessageInvalidInputTextDisplayed() { public DocumentUploadPage clickOnContinueButton() { clickOnElement(continueButton); - return new DocumentuploadPageEnglish(driver); - + return new DocumentuploadPageTamil(driver); } public boolean isContinueButtonEnable() { return isElementEnabled(continueButton); - } public boolean isPreRegFetchDataTextBoxDisplay() { @@ -701,16 +697,16 @@ public void fillRemainDemographicDetailsPage(String age) { if (isElementDisplayed(By.className("android.view.View"))) { clickOnElement(findElement(By.className("android.view.View"))); - System.out.println("✅ Postal dropdown handled successfully"); + System.out.println("Postal dropdown handled successfully"); break; // success } else { - System.out.println("⏳ Postal options not visible yet, retrying..."); + System.out.println("Postal options not visible yet, retrying..."); } } else { swipeOrScroll(); } } catch (org.openqa.selenium.StaleElementReferenceException e) { - System.out.println("🔄 Postal element went stale, retrying..."); + System.out.println("Postal element went stale, retrying..."); } waitTime(2); attempts++; diff --git a/ui-test/src/main/java/regclient/pages/tamil/DocumentuploadPageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/DocumentuploadPageTamil.java index 2af1474d4..8083d2f10 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/DocumentuploadPageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/DocumentuploadPageTamil.java @@ -49,7 +49,7 @@ public DocumentuploadPageTamil(AppiumDriver driver) { public BiometricDetailsPage clickOnContinueButton() { clickOnElement(continueButton); - return new BiometricDetailsPageEnglish(driver); + return new BiometricDetailsPageTamil(driver); } @SuppressWarnings("deprecation") diff --git a/ui-test/src/main/java/regclient/pages/tamil/IntroducerBiometricPageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/IntroducerBiometricPageTamil.java index ab123c1c7..969fe3b2f 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/IntroducerBiometricPageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/IntroducerBiometricPageTamil.java @@ -102,7 +102,7 @@ public void clickOnIrisScanButton() { public BiometricDetailsPage clickOnNextButton() { clickOnElement(nextButton); - return new BiometricDetailsPageEnglish(driver); + return new BiometricDetailsPageTamil(driver); } public void clickOnZoomButton() { @@ -127,7 +127,7 @@ public void closeScanCapturePopUp() { public BiometricDetailsPage clickOnBackButton() { driver.navigate().back(); - return new BiometricDetailsPageEnglish(driver); + return new BiometricDetailsPageTamil(driver); } @SuppressWarnings("deprecation") diff --git a/ui-test/src/main/java/regclient/pages/tamil/PreviewPageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/PreviewPageTamil.java index 5f4647ed8..62a1ca512 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/PreviewPageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/PreviewPageTamil.java @@ -52,7 +52,7 @@ public PreviewPageTamil(AppiumDriver driver) { public AuthenticationPage clickOnContinueButton() { clickOnElement(continueButton); - return new AuthenticationPageEnglish(driver); + return new AuthenticationPageTamil(driver); } public boolean isDemographicInformationInPreviewPageDisplayed() { @@ -89,7 +89,7 @@ public DemographicDetailsPage clickOnDemographicDetailsTitle() { clickOnElement(findElementWithRetry(MobileBy.AndroidUIAutomator( "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().descriptionContains(\"" + FetchUiSpec.getScreenTitle("DemographicDetails") + "\"))"))); - return new DemographicDetailsPageEnglish(driver); + return new DemographicDetailsPageTamil(driver); } public boolean isBothIrisImageDisplayed() { @@ -112,9 +112,7 @@ public String getAID() { public void validatePreRegAndApplicationIdMatch(String age) { String preRegId = AdminTestUtil.getPreRegistrationFlow(age); - String applicationID = getAID(); - Assert.assertEquals(applicationID, preRegId, "Mismatch between API PreReg ID and UI Application ID!"); } diff --git a/ui-test/src/main/java/regclient/pages/tamil/ProfilePageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/ProfilePageTamil.java index 8fa6bc241..60f4fd548 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/ProfilePageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/ProfilePageTamil.java @@ -29,12 +29,12 @@ public ProfilePageTamil(AppiumDriver driver) { public LoginPage clickOnLogoutButton() { if (isElementDisplayed(logoutButton)) clickOnElement(logoutButton); - return new LoginPageEnglish(driver); + return new LoginPageTamil(driver); } public LoginPage clickOnLogoutButtonOnPopUp() { clickOnElement(logoutButton); - return new LoginPageEnglish(driver); + return new LoginPageTamil(driver); } public boolean isProfileTitleDisplayed() { @@ -51,7 +51,7 @@ public boolean isResetPasswordButtonDisplayed() { public LoginPage clickOnResetPasswordButton() { clickOnElement(resetPasswordButton); - return new LoginPageEnglish(driver); + return new LoginPageTamil(driver); } } diff --git a/ui-test/src/main/java/regclient/pages/tamil/RegistrationTasksPageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/RegistrationTasksPageTamil.java index d94d9e15a..255e3c267 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/RegistrationTasksPageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/RegistrationTasksPageTamil.java @@ -156,7 +156,7 @@ public void clickOnSettingsButton() { public SelectLanguagePage clickOnBiometricCorrectionButton() { clickOnElement(biometricCorrectionButton); - return new SelectLanguagePageEnglish(driver); + return new SelectLanguagePageTamil(driver); } public void handleLocationPermission() { diff --git a/ui-test/src/main/java/regclient/pages/tamil/SelectLanguagePageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/SelectLanguagePageTamil.java index 2a277aa93..b02fca719 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/SelectLanguagePageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/SelectLanguagePageTamil.java @@ -104,23 +104,16 @@ public void selectNotificationlanguage(String notificationLanguage) { clickOnElement(spanishLanguageNotificationButton); break; default: - // Handle the default case if needed break; } } public void selectAllSecondLanguage() { - clickOnElement(englishLanguageButton); - clickOnElement(frenchLanguageButton); - clickOnElement(arabicLanguageButton); - clickOnElement(kannadaLanguageButton); - clickOnElement(hindiLanguageButton); - clickOnElement(tamilLanguageButton); } diff --git a/ui-test/src/main/java/regclient/pages/tamil/SupervisorBiometricVerificationpageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/SupervisorBiometricVerificationpageTamil.java index 676759af3..78c18f88c 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/SupervisorBiometricVerificationpageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/SupervisorBiometricVerificationpageTamil.java @@ -190,7 +190,6 @@ public void closeScanCapturePopUp() { driver.navigate().back(); } - public boolean isRightHandScanTitleDisplayed() { return isElementDisplayed(rightHandScanTitle); } @@ -365,20 +364,17 @@ public boolean checkThresholdValueFace() { public boolean isVerifyAndSaveButtonEnabled() { return isElementDisplayed(verifyAndSaveButton); - } @Override public void clickOnVerifyAndSaveButton() { - clickOnElement(verifyAndSaveButton); - + clickOnElement(verifyAndSaveButton); } public boolean isDismissPageLoaded() { return isElementDisplayed(dismissPage); } - public boolean isOperatorOnboardedPopupLoaded() { return isElementDisplayed(successPopup); } diff --git a/ui-test/src/main/java/regclient/pages/tamil/UpdateOperatorBiometricspageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/UpdateOperatorBiometricspageTamil.java index 8182c38c9..d368e112f 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/UpdateOperatorBiometricspageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/UpdateOperatorBiometricspageTamil.java @@ -10,7 +10,6 @@ public class UpdateOperatorBiometricspageTamil extends UpdateOperatorBiometricsp public UpdateOperatorBiometricspageTamil(AppiumDriver driver) { super(driver); - } @AndroidFindBy(accessibility = "மேற்பார்வையாளர் பயோமேட்ரிக் புதுப்பிப்பு") @@ -194,23 +193,23 @@ public void closeScanCapturePopUp() { driver.navigate().back(); } - public boolean isRightHandScanTitleDisplyed() { + public boolean isRightHandScanTitleDisplayed() { return isElementDisplayed(rightHandScanTitle); } - public boolean isLeftHandScanTitleDisplyed() { + public boolean isLeftHandScanTitleDisplayed() { return isElementDisplayed(leftHandScanTitle); } - public boolean isThumbsScanTitleDisplyed() { + public boolean isThumbsScanTitleDisplayed() { return isElementDisplayed(thumbsScanTitle); } - public boolean isFaceScanTitleDisplyed() { + public boolean isFaceScanTitleDisplayed() { return isElementDisplayed(faceScanTitle); } - public boolean isExceptionScanTitleDisplyed() { + public boolean isExceptionScanTitleDisplayed() { return isElementDisplayed(exceptionScanTitle); } @@ -234,23 +233,23 @@ public boolean isFaceScan() { return isElementDisplayed(faceCapturerHeader, 2000); } - public boolean isIrisScanQualityDisplyed() { + public boolean isIrisScanQualityDisplayed() { return isElementDisplayed(irisScanQuality); } - public boolean isRightHandScanQualityDisplyed() { + public boolean isRightHandScanQualityDisplayed() { return isElementDisplayed(rightHandScanQuality); } - public boolean isLeftHandScanQualityDisplyed() { + public boolean isLeftHandScanQualityDisplayed() { return isElementDisplayed(leftHandScanQuality); } - public boolean isThumbsScanQualityDisplyed() { + public boolean isThumbsScanQualityDisplayed() { return isElementDisplayed(thumbsScanQuality); } - public boolean isFaceScanQualityDisplyed() { + public boolean isFaceScanQualityDisplayed() { return isElementDisplayed(faceScanQuality); } @@ -266,7 +265,7 @@ public void markOneFingureException() { clickOnElement(firstFingureExceptionImage); } - public boolean isExceptionTypeTitleDisplyed() { + public boolean isExceptionTypeTitleDisplayed() { return isElementDisplayed(exceptionTypeTitle); } @@ -277,7 +276,7 @@ public void clickOnExceptionTypeTemporaryButton() { clickOnElement(temporaryButton); } - public boolean isCommentHeaderDisplyed() { + public boolean isCommentHeaderDisplayed() { return isElementDisplayed(commentsHeader); } @@ -296,11 +295,11 @@ public void clickOnThumbsScanTitle() { clickOnElement(thumbsScanTitle); } - public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed() { + public boolean isMarkingExceptionsOnFaceIsNotAllowedTextDisplayed() { return isElementDisplayed(markingExceptionsOnFaceIsNotAllowedText); } - public boolean isZoomButtonDisplyed() { + public boolean isZoomButtonDisplayed() { return isElementDisplayed(zoomButton); } diff --git a/ui-test/src/main/java/regclient/pages/tamil/UpdateUINPageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/UpdateUINPageTamil.java index 21b5a87d4..7ad09f6ae 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/UpdateUINPageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/UpdateUINPageTamil.java @@ -40,7 +40,7 @@ public void enterUIN(String UIN) { public ConsentPage clickOnContinueButton() { clickOnElement(continueButton); - return new ConsentPageEnglish(driver); + return new ConsentPageTamil(driver); } public boolean isInvalidUINErrorMessageDisplayed() { From d491e349fd79611c9f4d41feeb3f86367de54410 Mon Sep 17 00:00:00 2001 From: damodar Date: Mon, 17 Nov 2025 02:48:45 +0530 Subject: [PATCH 06/21] MOSIP-42652: ARC UI automation Signed-off-by: damodar --- .../androidTestCases/BiometricCorrection.java | 4 +-- .../NewRegistrationInfant.java | 5 ++++ .../NewRegistrationMinor.java | 2 +- .../NewRegistrationMinorException.java | 3 +- .../regclient/androidTestCases/Settings.java | 28 +++++++++---------- .../regclient/androidTestCases/logintest.java | 2 +- .../regclient/api/KeycloakUserManager.java | 18 ++++++------ .../main/java/regclient/page/BasePage.java | 24 ++++++++-------- .../page/UpdateOperatorBiometricspage.java | 2 +- .../UpdateOperatorBiometricspageArabic.java | 6 ++-- .../UpdateOperatorBiometricspageEnglish.java | 6 ++-- .../UpdateOperatorBiometricspageFrench.java | 6 ++-- .../UpdateOperatorBiometricspageHindi.java | 6 ++-- .../UpdateOperatorBiometricspageKannada.java | 6 ++-- .../UpdateOperatorBiometricspageTamil.java | 6 ++-- 15 files changed, 62 insertions(+), 62 deletions(-) diff --git a/ui-test/src/main/java/regclient/androidTestCases/BiometricCorrection.java b/ui-test/src/main/java/regclient/androidTestCases/BiometricCorrection.java index 6816f9da7..60dc3589a 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/BiometricCorrection.java +++ b/ui-test/src/main/java/regclient/androidTestCases/BiometricCorrection.java @@ -507,7 +507,7 @@ public void biometricCorrection() throws InterruptedException { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); - assertTrue(operationalTaskPage.isPendingApprovalTitleDisplayed(), "Verify if pending approval tite displayed"); + assertTrue(operationalTaskPage.isPendingApprovalTitleDisplayed(), "Verify if pending approval title displayed"); operationalTaskPage.clickPendingApprovalTitle(); if ("eng".equalsIgnoreCase(language)) { @@ -558,7 +558,7 @@ public void biometricCorrection() throws InterruptedException { pendingApproval.clickOnSubmitButton(); pendingApproval.clickOnBackButton(); assertTrue(operationalTaskPage.isApplicationUploadTitleDisplayed(), - "Verify if application upload tite displayed"); + "Verify if application upload title displayed"); operationalTaskPage.clickApplicationUploadTitle(); if ("eng".equalsIgnoreCase(language)) { diff --git a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationInfant.java b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationInfant.java index 32a9579dc..eee97b40d 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationInfant.java +++ b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationInfant.java @@ -327,6 +327,11 @@ public void newRegistrationInfant() throws InterruptedException { } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } + FetchUiSpec.eye = "no"; + FetchUiSpec.rightHand = "no"; + FetchUiSpec.leftHand = "no"; + FetchUiSpec.thumb = "no"; + FetchUiSpec.face = "no"; FetchUiSpec.getBiometricDetails("introducerBiometrics"); if (FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIntroducerIrisScan(); diff --git a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinor.java b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinor.java index 5fb22ba30..36053d3b7 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinor.java +++ b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinor.java @@ -618,7 +618,7 @@ public void newRegistrationMinor() throws InterruptedException { profilePage.clickOnLogoutButton(); - assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayeded in Selected language"); + assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayed in Selected language"); } diff --git a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinorException.java b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinorException.java index 63317aaf4..26cf6d8a7 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinorException.java +++ b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinorException.java @@ -664,8 +664,7 @@ public void newRegistrationMinorException() throws InterruptedException { } } - assertTrue(pendingApproval.isSupervisorAuthenticationTitleDisplayed(), - "Verify if Supervisor Authentication page displayed"); + assertTrue(isPageDisplayed, "Verify if Supervisor Authentication page displayed after retries"); pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser); pendingApproval.enterPassword(ArcConfigManager.getIAMUsersPassword()); pendingApproval.clickOnSubmitButton(); diff --git a/ui-test/src/main/java/regclient/androidTestCases/Settings.java b/ui-test/src/main/java/regclient/androidTestCases/Settings.java index 2e652f812..b3d32393d 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/Settings.java +++ b/ui-test/src/main/java/regclient/androidTestCases/Settings.java @@ -1,6 +1,5 @@ package regclient.androidTestCases; - import static org.testng.Assert.assertTrue; import static org.testng.Assert.assertFalse; @@ -53,22 +52,21 @@ public void settings() throws InterruptedException { FetchUiSpec.getBiometricDetails("individualBiometrics"); LoginPage loginPage = null; RegistrationTasksPage registrationTasksPage = null; - ProfilePage profilePage = null; SettingsPage settingsPage = null; final String language = TestDataReader.readData("language"); if ("eng".equalsIgnoreCase(language)) { - profilePage = new ProfilePageEnglish(driver); + loginPage = new LoginPageEnglish(driver); } else if ("hin".equalsIgnoreCase(language)) { - profilePage = new ProfilePageHindi(driver); + loginPage = new LoginPageHindi(driver); } else if ("fra".equalsIgnoreCase(language)) { - profilePage = new ProfilePageFrench(driver); + loginPage = new LoginPageFrench(driver); } else if ("kan".equalsIgnoreCase(language)) { - profilePage = new ProfilePageKannada(driver); + loginPage = new LoginPageKannada(driver); } else if ("tam".equalsIgnoreCase(language)) { - profilePage = new ProfilePageTamil(driver); + loginPage = new LoginPageTamil(driver); } else if ("ara".equalsIgnoreCase(language)) { - profilePage = new ProfilePageArabic(driver); + loginPage = new LoginPageArabic(driver); } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } @@ -102,19 +100,19 @@ public void settings() throws InterruptedException { registrationTasksPage.clickOnSettingsButton(); if ("eng".equalsIgnoreCase(language)) { - settingsPage = new SettingsPageEnglish(driver); + settingsPage = new SettingsPageEnglish(driver); } else if ("hin".equalsIgnoreCase(language)) { - settingsPage = new SettingsPageHindi(driver); + settingsPage = new SettingsPageHindi(driver); } else if ("fra".equalsIgnoreCase(language)) { - settingsPage = new SettingsPageFrench(driver); + settingsPage = new SettingsPageFrench(driver); } else if ("kan".equalsIgnoreCase(language)) { - settingsPage = new SettingsPageKannada(driver); + settingsPage = new SettingsPageKannada(driver); } else if ("tam".equalsIgnoreCase(language)) { - settingsPage = new SettingsPageTamil(driver); + settingsPage = new SettingsPageTamil(driver); } else if ("ara".equalsIgnoreCase(language)) { - settingsPage = new SettingsPageArabic(driver); + settingsPage = new SettingsPageArabic(driver); } else { - throw new IllegalStateException("Unsupported language in testdata.json: " + language); + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(settingsPage.isScheduledJobsSettingsTabDisplayed(), "Verify if sceduled job settings tab displayed"); diff --git a/ui-test/src/main/java/regclient/androidTestCases/logintest.java b/ui-test/src/main/java/regclient/androidTestCases/logintest.java index 7178f8cea..d0e9b4b18 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/logintest.java +++ b/ui-test/src/main/java/regclient/androidTestCases/logintest.java @@ -613,7 +613,7 @@ public void updateOperatorBiometrics() { assertTrue(UpdateOperatorBiometricspage.isExceptionTypeTitleDisplayed(), "Verify if applicant biometric mark exception is displayed"); - UpdateOperatorBiometricspage.markOneFingureException(); + UpdateOperatorBiometricspage.markOneFingerException(); // assertFalse(UpdateOperatorBiometricspage.isZoomButtonDisplyed(),"Verify if // zoom button is not displayed for thumb"); diff --git a/ui-test/src/main/java/regclient/api/KeycloakUserManager.java b/ui-test/src/main/java/regclient/api/KeycloakUserManager.java index 6d94a2179..a5f75f4f6 100644 --- a/ui-test/src/main/java/regclient/api/KeycloakUserManager.java +++ b/ui-test/src/main/java/regclient/api/KeycloakUserManager.java @@ -41,8 +41,7 @@ private static Keycloak getKeycloakInstance() { .realm(ArcConfigManager.getIAMRealmId()).grantType(OAuth2Constants.CLIENT_CREDENTIALS) .clientId(ArcConfigManager.getAutomationClientId()) .clientSecret(ArcConfigManager.getAutomationClientSecret()).build(); - System.out.println(ArcConfigManager.getIAMUrl()); - System.out.println(key.toString() + key.realms()); + logger.debug("Connecting to IAM at {}", ArcConfigManager.getIAMUrl()); } catch (Exception e) { throw e; @@ -90,9 +89,9 @@ public static void createUsers() { // Create user (requires manage-users role) Response response = null; response = usersRessource.create(user); - logger.info("Repsonse: %s %s%n" + response.getStatus() + response.getStatusInfo()); + logger.info("Response: {} {}", response.getStatus(), response.getStatusInfo()); if (response.getStatus() == 409) { - break; + continue; } String userId = CreatedResponseUtil.getCreatedId(response); @@ -117,10 +116,9 @@ public static void createUsers() { List availableRoles = new ArrayList<>(); List toBeAssignedRoles = List.of(ArcConfigManager.getRolesForUser().split(",")); for (String role : toBeAssignedRoles) { - if (allRoles.stream().anyMatch((r -> r.getName().equalsIgnoreCase(role)))) { - availableRoles.add(allRoles.stream().filter(r -> r.getName().equals(role)).findFirst().get()); - } else { - logger.info("Role not found in keycloak: %s%n" + role); + if (allRoles.stream().anyMatch(r -> r.getName().equalsIgnoreCase(role))) { + availableRoles + .add(allRoles.stream().filter(r -> r.getName().equalsIgnoreCase(role)).findFirst().get()); } } // Assign realm role tester to user @@ -186,7 +184,9 @@ public static String getDateTime() { public static String invalidUsername() { int randomNum = new Random().nextInt(900) + 100; // 100–999 - return KeycloakUserManager.moduleSpecificUser + randomNum; + String base = (moduleSpecificUser == null || moduleSpecificUser.isBlank()) ? "invalid-user" + : moduleSpecificUser; + return base + "-" + randomNum; } } diff --git a/ui-test/src/main/java/regclient/page/BasePage.java b/ui-test/src/main/java/regclient/page/BasePage.java index 827c5c847..aca2563e4 100644 --- a/ui-test/src/main/java/regclient/page/BasePage.java +++ b/ui-test/src/main/java/regclient/page/BasePage.java @@ -1,22 +1,15 @@ package regclient.page; -import io.appium.java_client.AppiumBy; import io.appium.java_client.AppiumDriver; import io.appium.java_client.HidesKeyboard; -import io.appium.java_client.MobileBy; -import io.appium.java_client.PerformsTouchActions; -import io.appium.java_client.TouchAction; import io.appium.java_client.android.AndroidDriver; import io.appium.java_client.pagefactory.AppiumFieldDecorator; import io.appium.java_client.remote.SupportsContextSwitching; -import io.appium.java_client.touch.WaitOptions; -import io.appium.java_client.touch.offset.PointOption; import io.netty.handler.timeout.TimeoutException; -import regclient.api.FetchUiSpec; + import org.openqa.selenium.By; import org.openqa.selenium.Dimension; -import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.NoSuchElementException; import org.openqa.selenium.StaleElementReferenceException; import org.openqa.selenium.WebElement; @@ -43,10 +36,7 @@ import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.Collections; -import java.util.HashMap; -import java.util.List; import java.util.Locale; -import java.util.Map; import java.util.Random; import java.util.Set; @@ -493,8 +483,16 @@ protected void openArcApplication(String targetContext) { public static void enableWifiAndData() throws IOException { - new ProcessBuilder("adb", "shell", "svc", "wifi", "enable").start(); - new ProcessBuilder("adb", "shell", "svc", "data", "enable").start(); + Process wifiProcess = new ProcessBuilder("adb", "shell", "svc", "wifi", "enable").start(); + Process dataProcess = new ProcessBuilder("adb", "shell", "svc", "data", "enable").start(); + try { + if (wifiProcess.waitFor() != 0 || dataProcess.waitFor() != 0) { + throw new IOException("Failed to enable WiFi/Data"); + } + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + throw new IOException("Interrupted while enabling WiFi/Data", e); + } } public static void disableWifiAndData() throws IOException { diff --git a/ui-test/src/main/java/regclient/page/UpdateOperatorBiometricspage.java b/ui-test/src/main/java/regclient/page/UpdateOperatorBiometricspage.java index 2f7c3c48a..530e5933e 100644 --- a/ui-test/src/main/java/regclient/page/UpdateOperatorBiometricspage.java +++ b/ui-test/src/main/java/regclient/page/UpdateOperatorBiometricspage.java @@ -60,7 +60,7 @@ public UpdateOperatorBiometricspage(AppiumDriver driver) { public abstract void markOneEyeException(); - public abstract void markOneFingureException(); + public abstract void markOneFingerException(); public abstract boolean isExceptionTypeTitleDisplayed(); diff --git a/ui-test/src/main/java/regclient/pages/arabic/UpdateOperatorBiometricspageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/UpdateOperatorBiometricspageArabic.java index 0379289fe..5d068637a 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/UpdateOperatorBiometricspageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/UpdateOperatorBiometricspageArabic.java @@ -97,7 +97,7 @@ public UpdateOperatorBiometricspageArabic(AppiumDriver driver) { private WebElement oneEyeException; @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(2)") - private WebElement firstFingureExceptionImage; + private WebElement firstFingerExceptionImage; @AndroidFindBy(accessibility = "وضع علامة استثناء") private WebElement exceptionTypeTitle; @@ -246,8 +246,8 @@ public void markOneEyeException() { clickOnElement(oneEyeException); } - public void markOneFingureException() { - clickOnElement(firstFingureExceptionImage); + public void markOneFingerException() { + clickOnElement(firstFingerExceptionImage); } public boolean isExceptionTypeTitleDisplayed() { diff --git a/ui-test/src/main/java/regclient/pages/english/UpdateOperatorBiometricspageEnglish.java b/ui-test/src/main/java/regclient/pages/english/UpdateOperatorBiometricspageEnglish.java index 79f260b0a..137146fdf 100644 --- a/ui-test/src/main/java/regclient/pages/english/UpdateOperatorBiometricspageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/UpdateOperatorBiometricspageEnglish.java @@ -100,7 +100,7 @@ public UpdateOperatorBiometricspageEnglish(AppiumDriver driver) { private WebElement oneEyeException; @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(2)") - private WebElement firstFingureExceptionImage; + private WebElement firstFingerExceptionImage; @AndroidFindBy(accessibility = "Mark Exception") private WebElement exceptionTypeTitle; @@ -250,8 +250,8 @@ public void markOneEyeException() { clickOnElement(oneEyeException); } - public void markOneFingureException() { - clickOnElement(firstFingureExceptionImage); + public void markOneFingerException() { + clickOnElement(firstFingerExceptionImage); } public boolean isExceptionTypeTitleDisplayed() { diff --git a/ui-test/src/main/java/regclient/pages/french/UpdateOperatorBiometricspageFrench.java b/ui-test/src/main/java/regclient/pages/french/UpdateOperatorBiometricspageFrench.java index fd2b3732f..c1c4aaa59 100644 --- a/ui-test/src/main/java/regclient/pages/french/UpdateOperatorBiometricspageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/UpdateOperatorBiometricspageFrench.java @@ -88,7 +88,7 @@ public UpdateOperatorBiometricspageFrench(AppiumDriver driver) { private WebElement oneEyeException; @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(2)") - private WebElement firstFingureExceptionImage; + private WebElement firstFingerExceptionImage; @AndroidFindBy(accessibility = "Marquage des exceptions sur Visage n'est pas autorisé") private WebElement markingExceptionsOnFaceIsNotAllowedText; @@ -246,8 +246,8 @@ public void markOneEyeException() { clickOnElement(oneEyeException); } - public void markOneFingureException() { - clickOnElement(firstFingureExceptionImage); + public void markOneFingerException() { + clickOnElement(firstFingerExceptionImage); } public boolean isExceptionTypeTitleDisplayed() { diff --git a/ui-test/src/main/java/regclient/pages/hindi/UpdateOperatorBiometricspageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/UpdateOperatorBiometricspageHindi.java index 856eecdc5..3a0c4531e 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/UpdateOperatorBiometricspageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/UpdateOperatorBiometricspageHindi.java @@ -55,7 +55,7 @@ public UpdateOperatorBiometricspageHindi(AppiumDriver driver) { private WebElement oneEyeException; @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(2)") - private WebElement firstFingureExceptionImage; + private WebElement firstFingerExceptionImage; @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(1)") private WebElement secondFingureExceptionImage; @@ -261,8 +261,8 @@ public void markOneEyeException() { clickOnElement(oneEyeException); } - public void markOneFingureException() { - clickOnElement(firstFingureExceptionImage); + public void markOneFingerException() { + clickOnElement(firstFingerExceptionImage); } public boolean isExceptionTypeTitleDisplayed() { diff --git a/ui-test/src/main/java/regclient/pages/kannada/UpdateOperatorBiometricspageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/UpdateOperatorBiometricspageKannada.java index 21a317aa3..58b546893 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/UpdateOperatorBiometricspageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/UpdateOperatorBiometricspageKannada.java @@ -55,7 +55,7 @@ public UpdateOperatorBiometricspageKannada(AppiumDriver driver) { private WebElement oneEyeException; @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(2)") - private WebElement firstFingureExceptionImage; + private WebElement firstFingerExceptionImage; @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(1)") private WebElement secondFingureExceptionImage; @@ -261,8 +261,8 @@ public void markOneEyeException() { clickOnElement(oneEyeException); } - public void markOneFingureException() { - clickOnElement(firstFingureExceptionImage); + public void markOneFingerException() { + clickOnElement(firstFingerExceptionImage); } public boolean isExceptionTypeTitleDisplayed() { diff --git a/ui-test/src/main/java/regclient/pages/tamil/UpdateOperatorBiometricspageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/UpdateOperatorBiometricspageTamil.java index d368e112f..9e04442fc 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/UpdateOperatorBiometricspageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/UpdateOperatorBiometricspageTamil.java @@ -55,7 +55,7 @@ public UpdateOperatorBiometricspageTamil(AppiumDriver driver) { private WebElement oneEyeException; @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(2)") - private WebElement firstFingureExceptionImage; + private WebElement firstFingerExceptionImage; @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.ImageView\").instance(1)") private WebElement secondFingureExceptionImage; @@ -261,8 +261,8 @@ public void markOneEyeException() { clickOnElement(oneEyeException); } - public void markOneFingureException() { - clickOnElement(firstFingureExceptionImage); + public void markOneFingerException() { + clickOnElement(firstFingerExceptionImage); } public boolean isExceptionTypeTitleDisplayed() { From 0ab2c46209f4ea2afe911d4409ee3c1e369f1eab Mon Sep 17 00:00:00 2001 From: damodar Date: Mon, 17 Nov 2025 02:56:57 +0530 Subject: [PATCH 07/21] MOSIP-42652: ARC UI automation Signed-off-by: damodar --- ui-test/src/main/java/regclient/androidTestCases/Settings.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/ui-test/src/main/java/regclient/androidTestCases/Settings.java b/ui-test/src/main/java/regclient/androidTestCases/Settings.java index b3d32393d..7238d8545 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/Settings.java +++ b/ui-test/src/main/java/regclient/androidTestCases/Settings.java @@ -48,8 +48,6 @@ public class Settings extends AndroidBaseTest { public void settings() throws InterruptedException { BasePage.disableAutoRotation(); - FetchUiSpec.getUiSpec("newProcess"); - FetchUiSpec.getBiometricDetails("individualBiometrics"); LoginPage loginPage = null; RegistrationTasksPage registrationTasksPage = null; SettingsPage settingsPage = null; From e8fc791c606ccaa1dd1130f40505dfe21a6491fd Mon Sep 17 00:00:00 2001 From: damodar Date: Mon, 17 Nov 2025 11:52:22 +0530 Subject: [PATCH 08/21] MOSIP-42652: ARC UI automation Signed-off-by: damodar --- ui-test/testng.xml | 29 +++++------------------------ 1 file changed, 5 insertions(+), 24 deletions(-) diff --git a/ui-test/testng.xml b/ui-test/testng.xml index 54931fd7a..a174aabde 100644 --- a/ui-test/testng.xml +++ b/ui-test/testng.xml @@ -3,17 +3,9 @@ - - - - - - - - @@ -56,24 +48,14 @@ - + - + - - - - - - - - - - - + - + @@ -84,7 +66,6 @@ - + From 33c2c6dddac6a8a0b16d1edaa7c00c6e55255b31 Mon Sep 17 00:00:00 2001 From: damodar Date: Mon, 17 Nov 2025 18:33:18 +0530 Subject: [PATCH 09/21] MOSIP-42652: ARC UI automation Signed-off-by: damodar --- .../main/java/regclient/page/BasePage.java | 4 +-- ui-test/testng.xml | 26 +++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/ui-test/src/main/java/regclient/page/BasePage.java b/ui-test/src/main/java/regclient/page/BasePage.java index aca2563e4..6c1cc7bbc 100644 --- a/ui-test/src/main/java/regclient/page/BasePage.java +++ b/ui-test/src/main/java/regclient/page/BasePage.java @@ -622,9 +622,9 @@ public String extract(WebElement e) { protected void scrollToTop() { Dimension size = driver.manage().window().getSize(); int startX = size.getWidth() / 2; - int startY = (int) (size.getHeight() * 0.75); + int startY = (int) (size.getHeight() * 0.25); int endX = startX; - int endY = (int) (size.getHeight() * 0.25); + int endY = (int) (size.getHeight() * 0.75); PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger"); Sequence scrollUp = new Sequence(finger, 1) diff --git a/ui-test/testng.xml b/ui-test/testng.xml index a174aabde..07ad8a8c5 100644 --- a/ui-test/testng.xml +++ b/ui-test/testng.xml @@ -3,6 +3,15 @@ + @@ -58,6 +67,23 @@ + From 59533f07890d50e723956496faee4380fcf2fe74 Mon Sep 17 00:00:00 2001 From: damodar Date: Mon, 17 Nov 2025 19:40:15 +0530 Subject: [PATCH 10/21] MOSIP-42652: ARC UI automation Signed-off-by: damodar --- ui-test/testng.xml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ui-test/testng.xml b/ui-test/testng.xml index 07ad8a8c5..98fd05fa5 100644 --- a/ui-test/testng.xml +++ b/ui-test/testng.xml @@ -14,7 +14,10 @@ --> - + + From 226ead90307a021e8d248f1c17c216c985e51c56 Mon Sep 17 00:00:00 2001 From: damodarguru Date: Tue, 2 Dec 2025 01:17:13 +0530 Subject: [PATCH 11/21] MOSIP-43667:ARC UI automation add testcases and move to develop branch Signed-off-by: damodarguru --- ui-test/README.md | 188 ++- ui-test/pom.xml | 180 ++- .../java/regclient/BaseTest/BaseTest.java | 8 + .../androidTestCases/AddMachineDetails.java | 2 +- .../androidTestCases/AutoLogout.java | 329 ++++++ .../androidTestCases/BiometricCorrection.java | 1013 ++++++++++++++++- .../androidTestCases/InitialLaunch.java | 2 +- .../regclient/androidTestCases/LostUin.java | 17 +- .../NewRegistrationAdult.java | 709 +++++++++++- .../NewRegistrationAdultException.java | 22 +- .../NewRegistrationInfant.java | 21 +- .../NewRegistrationMinor.java | 36 +- .../NewRegistrationMinorException.java | 19 +- .../PreRegFetchingPacket.java | 121 +- .../androidTestCases/ResetPassword.java | 156 ++- .../regclient/androidTestCases/Settings.java | 56 +- .../UpdateMyUINUpdateDemographicDetails.java | 25 +- .../androidTestCases/UpdateMyUinInfant.java | 34 +- .../androidTestCases/UpdateMyUinMinor.java | 40 +- .../UpdateMyUinUpdateBiometrics.java | 25 +- .../UpdateMyUinUpdateDocuments.java | 22 +- .../regclient/androidTestCases/logintest.java | 182 ++- .../java/regclient/api/AdminTestUtil.java | 23 +- .../java/regclient/api/ArcConfigManager.java | 18 +- .../main/java/regclient/api/BaseTestCase.java | 2 +- .../main/java/regclient/api/FetchUiSpec.java | 4 +- .../regclient/api/KeycloakUserManager.java | 182 ++- .../java/regclient/driver/DriverManager.java | 7 +- .../java/regclient/page/AutoLogoutPage.java | 16 + .../main/java/regclient/page/BasePage.java | 260 ++++- .../main/java/regclient/page/CameraPage.java | 2 +- .../page/DemographicDetailsPage.java | 2 +- .../java/regclient/page/KeycloakPage.java | 103 +- .../main/java/regclient/page/MockSBIPage.java | 28 +- .../java/regclient/page/PendingApproval.java | 2 +- .../main/java/regclient/page/PreviewPage.java | 2 + .../regclient/page/RegistrationTasksPage.java | 4 +- .../java/regclient/page/SettingsPage.java | 12 + .../SupervisorBiometricVerificationpage.java | 2 +- .../page/UpdateOperatorBiometricspage.java | 4 + .../arabic/AuthenticationPageArabic.java | 2 +- .../pages/arabic/AutoLogoutPageArabic.java | 51 + .../arabic/DemographicDetailsPageArabic.java | 8 +- .../pages/arabic/PendingApprovalArabic.java | 3 +- .../pages/arabic/PreviewPageArabic.java | 7 + .../arabic/RegistrationTasksPageArabic.java | 4 + .../pages/arabic/SettingsPageArabic.java | 59 + ...rvisorBiometricVerificationpageArabic.java | 2 +- .../UpdateOperatorBiometricspageArabic.java | 30 + .../pages/english/AutoLogoutPageEnglish.java | 53 + .../english/BiometricDetailsPageEnglish.java | 173 ++- .../DemographicDetailsPageEnglish.java | 10 +- .../english/DocumentuploadPageEnglish.java | 7 +- .../english/IdentityProofPageEnglish.java | 2 +- .../pages/english/LoginPageEnglish.java | 4 - .../pages/english/PendingApprovalEnglish.java | 2 +- .../pages/english/PreviewPageEnglish.java | 7 + .../english/RegistrationTasksPageEnglish.java | 6 +- .../pages/english/SettingsPageEnglish.java | 61 +- ...visorBiometricVerificationpageEnglish.java | 7 +- .../UpdateOperatorBiometricspageEnglish.java | 34 + .../pages/french/AutoLogoutPageFrench.java | 51 + .../french/DemographicDetailsPageFrench.java | 8 +- .../french/DocumentUploadPageFrench.java | 2 +- .../pages/french/PendingApprovalFrench.java | 2 +- .../pages/french/PreviewPageFrench.java | 7 + .../french/RegistrationTasksPageFrench.java | 4 + .../pages/french/SettingsPageFrench.java | 58 + ...rvisorBiometricVerificationpageFrench.java | 2 +- .../UpdateOperatorBiometricspageFrench.java | 30 + .../pages/hindi/AutoLogoutPageHindi.java | 52 + .../hindi/DemographicDetailsPageHindi.java | 8 +- .../pages/hindi/DocumentUploadPageHindi.java | 2 +- .../pages/hindi/PendingApprovalHindi.java | 2 +- .../pages/hindi/PreviewPageHindi.java | 7 + .../hindi/RegistrationTasksPageHindi.java | 4 + .../pages/hindi/SettingsPageHindi.java | 59 + ...ervisorBiometricVerificationpageHindi.java | 2 +- .../UpdateOperatorBiometricspageHindi.java | 27 + .../pages/kannada/AutoLogoutPageKannada.java | 53 + .../DemographicDetailsPageKannada.java | 10 +- .../kannada/DocumentuploadPageKannada.java | 8 +- .../kannada/IdentityProofPageKannada.java | 2 +- .../pages/kannada/PendingApprovalKannada.java | 2 +- .../pages/kannada/PreviewPageKannada.java | 7 + .../kannada/RegistrationTasksPageKannada.java | 3 + .../pages/kannada/SettingsPageKannada.java | 59 + ...visorBiometricVerificationpageKannada.java | 2 +- .../UpdateOperatorBiometricspageKannada.java | 30 + .../pages/tamil/AutoLogoutPageTamil.java | 52 + .../tamil/DemographicDetailsPageTamil.java | 10 +- .../pages/tamil/DocumentuploadPageTamil.java | 8 +- .../pages/tamil/IdentityProofPageTamil.java | 2 +- .../pages/tamil/PendingApprovalTamil.java | 2 +- .../pages/tamil/PreviewPageTamil.java | 7 + .../tamil/RegistrationTasksPageTamil.java | 4 + .../pages/tamil/SettingsPageTamil.java | 59 + ...ervisorBiometricVerificationpageTamil.java | 2 +- .../UpdateOperatorBiometricspageTamil.java | 30 + .../java/regclient/utils/EmailableReport.java | 518 +++++---- .../main/java/regclient/utils/TestRunner.java | 42 +- ui-test/src/main/resources/testdata.json | 4 +- ui-test/testng.xml | 69 +- 103 files changed, 4642 insertions(+), 1082 deletions(-) create mode 100644 ui-test/src/main/java/regclient/androidTestCases/AutoLogout.java create mode 100644 ui-test/src/main/java/regclient/page/AutoLogoutPage.java create mode 100644 ui-test/src/main/java/regclient/pages/arabic/AutoLogoutPageArabic.java create mode 100644 ui-test/src/main/java/regclient/pages/english/AutoLogoutPageEnglish.java create mode 100644 ui-test/src/main/java/regclient/pages/french/AutoLogoutPageFrench.java create mode 100644 ui-test/src/main/java/regclient/pages/hindi/AutoLogoutPageHindi.java create mode 100644 ui-test/src/main/java/regclient/pages/kannada/AutoLogoutPageKannada.java create mode 100644 ui-test/src/main/java/regclient/pages/tamil/AutoLogoutPageTamil.java diff --git a/ui-test/README.md b/ui-test/README.md index 7eccc6ae1..a3a8b18a8 100644 --- a/ui-test/README.md +++ b/ui-test/README.md @@ -1,54 +1,162 @@ +# Reg-Client Automation -# Reg-Client Automation - Mobile Automation Framework using Appium +Mobile Automation Framework for Android using Appium & TestNG. -## Overview -Reg-Client Automation is a mobile automation framework designed for Android platforms. It automates both positive and negative scenarios to ensure comprehensive testing of mobile applications. +--- -## Installation -To set up Appium for use with this framework, please follow the installation instructions provided in the [Appium documentation](https://appium.io/docs/en/about-appium/intro/). +## Introduction -## Build -1. **Build the JAR file**: - ```bash - mvn clean package -DskipTests=true - ``` -2. The generated JAR file (`uitest-regclient-0.0.1.jar`) will be located in the `target` directory. -3. **For running tests on a device**: Use the JAR file with dependencies (`uitest-regclient-0.0.1.jar`). +Reg-Client Automation is a mobile automation framework for Android platforms. It automates positive and negative scenarios and supports both emulators and real devices. -## Configurations +## Prerequisites -### General Configurations (for both JAR and IDE runs) -1. **Environment Settings**: - - Update `resources/Config/kernal.properties` to modify environment-specific settings. +Install the following before setup: -2. **Test Data**: - - Update the following keys in `resources/testdata.json`: - - `uin` - - `language` - - `rid` +* Java JDK 11 or above +* Maven +* Android Studio (for emulator) +* Node.js (for Appium) +* ADB (comes with Android SDK) +* Eclipse IDE or IntelliJ IDEA (optional) -3. **General Configurations**: - - Update `resources/config.properties` with the following values: - - `nodePath`: Path to the Node.js executable. - - `appiumServerExecutable`: Path to the Appium server executable. +--- -4. **Desired Capabilities**: - - Update `resources/DesiredCapabilies.json` with the following keys: - - `appium:udid`: Unique Device Identifier for the target device. - - `appium:app`: Path to the application APK. +## Appium Setup -## Execution +1. Install Node.js: [https://nodejs.org](https://nodejs.org) (choose Windows 64-bit installer). Ensure **Add to PATH** is selected. +2. Install Appium server globally: -### Running Tests with JAR -1. **Run the JAR file**: - - Execute the `run_regclient.bat` batch file, which will trigger the test execution. +```bash +npm install -g appium +appium -v # verify +``` -### Running Tests in IDE -1. **Run Configuration**: - - Set `regclient.utils.TestRunner` as the main class in your IDE run configuration. - -2. **Resource File Locations**: - - `kernal.properties` and `testdata.json` are located under `src/main/resources` for IDE runs, as opposed to `resources` in the JAR run. +3. Start Appium server: + +```bash +appium +``` + +4. (Optional) Install Appium Desktop (GUI) and start server from the app. + +--- + +## Emulator Setup + +1. Open Android Studio → **Tools > Device Manager > Create Device**. +2. Select a device (e.g., Pixel 5) and an API level (30/31). +3. Download the system image and finish setup. +4. Start emulator from Device Manager. + +--- + +## Mock MDS Setup + +1. Place `mockmds.apk` in your platform-tools folder, e.g.: + +``` +C:\Users\\AppData\Local\Android\Sdk\platform-tools +``` + +2. Verify emulator is running: + +```bash +adb devices +``` + +3. Install the APK: + +```bash +adb install mockmds.apk +``` + +4. Verify installation: + +```bash +adb shell pm list packages | findstr mosip +``` + +--- + +## WireGuard Setup + +1. Download WireGuard APK (official site or F‑Droid) and place it in platform-tools. +2. Install: + +```bash +adb install com.wireguard.android-1.0.20250531.apk +``` + +3. Launch WireGuard and activate the tunnel if required. + +--- + +## Clone & Setup Automation Framework + +Fork the repository (branch: `develop`) and clone locally: + +```bash +cd ~/Desktop +mkdir arc && cd arc +git clone https://github.com/mosip/android-registration-client.git +``` + +Import the project into your IDE (Eclipse/IntelliJ) if needed. + +--- + +## Run Automation + +### From IDE + +* Create a Run Configuration with **Main Class**: `regclient.utils.TestRunner` and run. + +### From packaged JAR + +Build and run the JAR: + +```bash +cd android-registration-client/ui-test/target +java -jar uitest-regclient-0.0.1.jar +``` + +Alternatively run the provided batch script: `run_regclient.bat` (if present). + +--- + +## Important Configuration Files + +Update these files before running tests: + +* `resources/Config/kernal.properties` — Environment details +* `resources/testdata.json` — Test data (uin, language, rid, camera id) +* `resources/config.properties` — `nodePath`, `appiumServerExecutable` +* `resources/DesiredCapabilies.json` — `udid`, app path +* camara.java- update camera, retake button cordinates + +Place any runtime properties such as `bioValue.properties` under `src/main/resources/config` (or ensure your build copies them to `target/classes/config`). + +--- ## Reports -- After test execution, test reports will be available in the `test-output/emailableReports` directory. + +After execution, reports are generated at: + +``` +test-output/emailableReports +``` + +Reports include: + +* Test summary +* Pass/fail ratio +* Detailed logs + +--- + +## Troubleshooting (quick) + +* **Native memory / JVM errors**: Increase Windows pagefile or reduce JVM `-Xmx` used by Eclipse/installer. +* **SLF4J multiple bindings**: Ensure only one SLF4J binding (preferably Log4j2 `log4j-slf4j2-impl`) is on classpath and exclude others. +* **Missing resource files**: Put required `.properties` under `src/main/resources` so Maven copies them to `target/classes`. +* **Class name mismatch**: Java class names and filenames are case-sensitive; ensure TestNG XML references match compiled class names. diff --git a/ui-test/pom.xml b/ui-test/pom.xml index 23c705114..29c0b24cf 100644 --- a/ui-test/pom.xml +++ b/ui-test/pom.xml @@ -4,18 +4,16 @@ 4.0.0 io.mosip.regclient uitest-regclient - 1.0.0-SNAPSHOT + 1.0.0 jar uitest-regclient Parent project of MOSIP regclient mobile automation https://github.com/mosip/android-registration-client - 21 21 UTF-8 - @@ -39,7 +37,6 @@ - org.apache.maven.plugins maven-shade-plugin @@ -78,6 +75,53 @@ io.appium java-client 8.6.0 + + + ch.qos.logback + logback-classic + + + org.slf4j + slf4j-reload4j + + + org.slf4j + slf4j-log4j12 + + + + + org.asynchttpclient + async-http-client + 2.12.4 + + + ch.qos.logback + logback-classic + + + org.slf4j + slf4j-simple + + + org.slf4j + slf4j-reload4j + + + org.slf4j + slf4j-log4j12 + + + + + org.apache.commons + commons-lang3 + 3.18.0 + + + io.netty + netty-codec-http + 4.1.125.Final com.googlecode.json-simple @@ -89,7 +133,6 @@ javafaker 1.0.2 - org.testng testng @@ -98,7 +141,12 @@ com.fasterxml.jackson.core jackson-databind - 2.13.3 + 2.13.4.1 + + + com.fasterxml.jackson.core + jackson-annotations + 2.13.4 org.keycloak @@ -106,13 +154,28 @@ 17.0.1 - com.fasterxml.jackson.core - jackson-core - 2.15.2 + org.jboss.resteasy + resteasy-jaxrs + 3.15.0.Final org.jboss.resteasy - resteasy-jaxrs + resteasy-client + 3.15.0.Final + + + org.jboss.resteasy + resteasy-jackson2-provider + 3.15.0.Final + + + org.jboss.resteasy + resteasy-multipart-provider + 3.15.0.Final + + + org.jboss.resteasy + resteasy-jaxb-provider 3.15.0.Final @@ -123,7 +186,7 @@ commons-io commons-io - 2.13.0 + 2.14.0 com.aventstack @@ -134,61 +197,68 @@ io.rest-assured rest-assured 5.3.0 - - - org.apache.logging.log4j - log4j-api - 2.11.1 + + + ch.qos.logback + logback-classic + + + org.slf4j + slf4j-simple + + + org.slf4j + slf4j-reload4j + + + org.slf4j + slf4j-log4j12 + + + org.apache.logging.log4j + log4j-to-slf4j + + org.slf4j - slf4j-log4j12 - 1.6.2 + slf4j-api + 2.0.13 - org.yaml - snakeyaml - 1.29 - - - commons-beanutils - commons-beanutils - 1.9.4 + org.apache.logging.log4j + log4j-api + 2.23.1 org.apache.logging.log4j log4j-core - 2.11.1 + 2.23.1 - org.jboss.resteasy - resteasy-multipart-provider - 3.15.0.Final - - - org.jboss.resteasy - resteasy-client - 3.15.0.Final + org.apache.logging.log4j + log4j-slf4j2-impl + 2.23.1 - org.jboss.resteasy - resteasy-client-microprofile - 3.15.0.Final + org.yaml + snakeyaml + 2.0 - org.jboss.resteasy - resteasy-jackson2-provider - 3.15.0.Final + commons-beanutils + commons-beanutils + 1.11.0 - io.mosip.preregistration - apitest-prereg - 1.3.0-beta.1 + com.sun.mail + jakarta.mail + 2.0.2 - org.jboss.resteasy - resteasy-jaxb-provider - 3.15.0.Final + com.google.guava + guava + 32.0.0-jre io.mosip.testrig.apitest.commons @@ -203,6 +273,22 @@ com.google.guava guava + + ch.qos.logback + logback-classic + + + org.slf4j + slf4j-reload4j + + + org.slf4j + slf4j-log4j12 + + + org.apache.logging.log4j + log4j-to-slf4j + diff --git a/ui-test/src/main/java/regclient/BaseTest/BaseTest.java b/ui-test/src/main/java/regclient/BaseTest/BaseTest.java index c1dfe7ab8..d2e913227 100644 --- a/ui-test/src/main/java/regclient/BaseTest/BaseTest.java +++ b/ui-test/src/main/java/regclient/BaseTest/BaseTest.java @@ -12,10 +12,18 @@ public class BaseTest { @BeforeSuite(alwaysRun = true) public void beforeSuite() { DriverManager.startAppiumServer(); + try { + driver = DriverManager.getDriver(); + } catch (Exception e) { + throw new RuntimeException("Failed to initialize AppiumDriver", e); + } } @AfterSuite(alwaysRun = true) public void afterSuite() { + if (driver != null) { + driver.quit(); + } DriverManager.stopAppiumServer(); } diff --git a/ui-test/src/main/java/regclient/androidTestCases/AddMachineDetails.java b/ui-test/src/main/java/regclient/androidTestCases/AddMachineDetails.java index e7a6334bc..03427c819 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/AddMachineDetails.java +++ b/ui-test/src/main/java/regclient/androidTestCases/AddMachineDetails.java @@ -17,7 +17,7 @@ public class AddMachineDetails extends AndroidBaseTest { - @Test + @Test(priority = 0, description = "Add machine details") public void addMachineDetails() { BasePage.disableAutoRotation(); diff --git a/ui-test/src/main/java/regclient/androidTestCases/AutoLogout.java b/ui-test/src/main/java/regclient/androidTestCases/AutoLogout.java new file mode 100644 index 000000000..9a47ef786 --- /dev/null +++ b/ui-test/src/main/java/regclient/androidTestCases/AutoLogout.java @@ -0,0 +1,329 @@ +package regclient.androidTestCases; + +import static org.testng.Assert.assertTrue; + +import java.io.IOException; +import java.util.List; + +import org.testng.annotations.Test; + +import regclient.BaseTest.AndroidBaseTest; +import regclient.api.ArcConfigManager; +import regclient.api.FetchUiSpec; +import regclient.api.KeycloakUserManager; +import regclient.page.AcknowledgementPage; +import regclient.page.ApplicantBiometricsPage; +import regclient.page.AuthenticationPage; +import regclient.page.AutoLogoutPage; +import regclient.page.BasePage; +import regclient.page.BiometricDetailsPage; +import regclient.page.ConsentPage; +import regclient.page.DemographicDetailsPage; +import regclient.page.DocumentUploadPage; +import regclient.page.LoginPage; +import regclient.page.ManageApplicationsPage; +import regclient.page.OperationalTaskPage; +import regclient.page.PendingApproval; +import regclient.page.PreviewPage; +import regclient.page.ProfilePage; +import regclient.page.RegistrationTasksPage; +import regclient.page.SelectLanguagePage; +import regclient.pages.arabic.AutoLogoutPageArabic; +import regclient.pages.arabic.LoginPageArabic; +import regclient.pages.arabic.RegistrationTasksPageArabic; +import regclient.pages.english.AutoLogoutPageEnglish; +import regclient.pages.english.LoginPageEnglish; +import regclient.pages.english.RegistrationTasksPageEnglish; +import regclient.pages.french.AutoLogoutPageFrench; +import regclient.pages.french.LoginPageFrench; +import regclient.pages.french.RegistrationTasksPageFrench; +import regclient.pages.hindi.AutoLogoutPageHindi; +import regclient.pages.hindi.LoginPageHindi; +import regclient.pages.hindi.RegistrationTasksPageHindi; +import regclient.pages.kannada.AutoLogoutPageKannada; +import regclient.pages.kannada.LoginPageKannada; +import regclient.pages.kannada.RegistrationTasksPageKannada; +import regclient.pages.tamil.AutoLogoutPageTamil; +import regclient.pages.tamil.LoginPageTamil; +import regclient.pages.tamil.RegistrationTasksPageTamil; +import regclient.utils.TestDataReader; + +public class AutoLogout extends AndroidBaseTest{ + + @Test(priority = 0, description = "Verify auto-logout when the machine is online") + public void onlineAutoLogout() throws InterruptedException { + BasePage.disableAutoRotation(); + LoginPage loginPage = null; + RegistrationTasksPage registrationTasksPage = null; + AutoLogoutPage autoLogoutPage = null; + + final String language = TestDataReader.readData("language"); + + if ("eng".equalsIgnoreCase(language)) { + loginPage = new LoginPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + loginPage = new LoginPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + loginPage = new LoginPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + loginPage = new LoginPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + loginPage = new LoginPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + loginPage = new LoginPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + + loginPage.selectLanguage(); + + assertTrue(loginPage.isWelcomeMessageInSelectedLanguageDisplayed(), + "verify if the welcome msg in selected language displayed"); + loginPage.enterUserName(KeycloakUserManager.moduleSpecificUser); + loginPage.clickOnNextButton(); + + loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); + loginPage.clickOnloginButton(); + + if ("eng".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + registrationTasksPage.handleLocationPermission(); + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + + if ("eng".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + + assertTrue(autoLogoutPage.isAutoLogoutPopupDisplayed(), + "Verify if auto-logout popup is displayed"); + + autoLogoutPage.clickOnStayLoggedInButton(); + + if ("eng".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + registrationTasksPage.handleLocationPermission(); + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + + if ("eng".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + + assertTrue(autoLogoutPage.isAutoLogoutPopupDisplayed(), + "Verify if auto-logout popup is displayed"); + + autoLogoutPage.clickOnStayLogoutButton(); + + if ("eng".equalsIgnoreCase(language)) { + loginPage = new LoginPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + loginPage = new LoginPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + loginPage = new LoginPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + loginPage = new LoginPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + loginPage = new LoginPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + loginPage = new LoginPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + + assertTrue(loginPage.isWelcomeMessageInSelectedLanguageDisplayed(), + "verify if the welcome msg in selected language displayed"); + + } + + @Test(priority = 1, description = "Verify auto-logout when the machine is offline") + public void offlineAutoLogout() throws InterruptedException, IOException { + + BasePage.disableAutoRotation(); + LoginPage loginPage = null; + RegistrationTasksPage registrationTasksPage = null; + AutoLogoutPage autoLogoutPage = null; + + final String language = TestDataReader.readData("language"); + + BasePage.disableWifiAndData(); + + if ("eng".equalsIgnoreCase(language)) { + loginPage = new LoginPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + loginPage = new LoginPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + loginPage = new LoginPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + loginPage = new LoginPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + loginPage = new LoginPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + loginPage = new LoginPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + + loginPage.selectLanguage(); + + assertTrue(loginPage.isWelcomeMessageInSelectedLanguageDisplayed(), + "verify if the welcome msg in selected language displayed"); + loginPage.enterUserName(KeycloakUserManager.moduleSpecificUser); + loginPage.clickOnNextButton(); + + loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); + loginPage.clickOnloginButton(); + + if ("eng".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + registrationTasksPage.handleLocationPermission(); + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + + if ("eng".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + + assertTrue(autoLogoutPage.isAutoLogoutPopupDisplayed(), + "Verify if auto-logout popup is displayed"); + + autoLogoutPage.clickOnStayLoggedInButton(); + + if ("eng".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + + if ("eng".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + + assertTrue(autoLogoutPage.isAutoLogoutPopupDisplayed(), + "Verify if auto-logout popup is displayed"); + + autoLogoutPage.clickOnStayLogoutButton(); + + if ("eng".equalsIgnoreCase(language)) { + loginPage = new LoginPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + loginPage = new LoginPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + loginPage = new LoginPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + loginPage = new LoginPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + loginPage = new LoginPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + loginPage = new LoginPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + + assertTrue(loginPage.isWelcomeMessageInSelectedLanguageDisplayed(), + "verify if the welcome msg in selected language displayed"); + BasePage.enableWifiAndData(); + + } +} + diff --git a/ui-test/src/main/java/regclient/androidTestCases/BiometricCorrection.java b/ui-test/src/main/java/regclient/androidTestCases/BiometricCorrection.java index 60dc3589a..3d6a951f9 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/BiometricCorrection.java +++ b/ui-test/src/main/java/regclient/androidTestCases/BiometricCorrection.java @@ -9,6 +9,7 @@ import org.openqa.selenium.WebElement; import org.testng.annotations.Test; +import io.appium.java_client.HidesKeyboard; import io.appium.java_client.android.AndroidDriver; import regclient.BaseTest.AndroidBaseTest; import regclient.api.ArcConfigManager; @@ -22,6 +23,7 @@ import regclient.page.ConsentPage; import regclient.page.DemographicDetailsPage; import regclient.page.DocumentUploadPage; +import regclient.page.IntroducerBiometricPage; import regclient.page.LoginPage; import regclient.page.ManageApplicationsPage; import regclient.page.MockSBIPage; @@ -39,6 +41,7 @@ import regclient.pages.arabic.ConsentPageArabic; import regclient.pages.arabic.DemographicDetailsPageArabic; import regclient.pages.arabic.DocumentUploadPageArabic; +import regclient.pages.arabic.IntroducerBiometricPageArabic; import regclient.pages.arabic.LoginPageArabic; import regclient.pages.arabic.ManageApplicationsPageArabic; import regclient.pages.arabic.OperationalTaskPageArabic; @@ -53,7 +56,8 @@ import regclient.pages.english.BiometricDetailsPageEnglish; import regclient.pages.english.ConsentPageEnglish; import regclient.pages.english.DemographicDetailsPageEnglish; -import regclient.pages.english.DocumentuploadPageEnglish; +import regclient.pages.english.DocumentUploadPageEnglish; +import regclient.pages.english.IntroducerBiometricPageEnglish; import regclient.pages.english.LoginPageEnglish; import regclient.pages.english.ManageApplicationsPageEnglish; import regclient.pages.english.OperationalTaskPageEnglish; @@ -69,6 +73,7 @@ import regclient.pages.french.ConsentPageFrench; import regclient.pages.french.DemographicDetailsPageFrench; import regclient.pages.french.DocumentUploadPageFrench; +import regclient.pages.french.IntroducerBiometricPageFrench; import regclient.pages.french.LoginPageFrench; import regclient.pages.french.ManageApplicationsPageFrench; import regclient.pages.french.OperationalTaskPageFrench; @@ -84,6 +89,7 @@ import regclient.pages.hindi.ConsentPageHindi; import regclient.pages.hindi.DemographicDetailsPageHindi; import regclient.pages.hindi.DocumentUploadPageHindi; +import regclient.pages.hindi.IntroducerBiometricPageHindi; import regclient.pages.hindi.LoginPageHindi; import regclient.pages.hindi.ManageApplicationsPageHindi; import regclient.pages.hindi.OperationalTaskPageHindi; @@ -98,7 +104,8 @@ import regclient.pages.kannada.BiometricDetailsPageKannada; import regclient.pages.kannada.ConsentPageKannada; import regclient.pages.kannada.DemographicDetailsPageKannada; -import regclient.pages.kannada.DocumentuploadPageKannada; +import regclient.pages.kannada.DocumentUploadPageKannada; +import regclient.pages.kannada.IntroducerBiometricPageKannada; import regclient.pages.kannada.LoginPageKannada; import regclient.pages.kannada.ManageApplicationsPageKannada; import regclient.pages.kannada.OperationalTaskPageKannada; @@ -113,7 +120,8 @@ import regclient.pages.tamil.BiometricDetailsPageTamil; import regclient.pages.tamil.ConsentPageTamil; import regclient.pages.tamil.DemographicDetailsPageTamil; -import regclient.pages.tamil.DocumentuploadPageTamil; +import regclient.pages.tamil.DocumentUploadPageTamil; +import regclient.pages.tamil.IntroducerBiometricPageTamil; import regclient.pages.tamil.LoginPageTamil; import regclient.pages.tamil.ManageApplicationsPageTamil; import regclient.pages.tamil.OperationalTaskPageTamil; @@ -126,8 +134,8 @@ public class BiometricCorrection extends AndroidBaseTest { - @Test - public void biometricCorrection() throws InterruptedException { + @Test(priority = 0, description = "Verify adult biometric correction") + public void adultBiometricCorrection() throws InterruptedException { BasePage.disableAutoRotation(); FetchUiSpec.getUiSpec("newProcess"); @@ -152,7 +160,7 @@ public void biometricCorrection() throws InterruptedException { // Navigate to mocksbi page MockSBIPage mockSBIPage = new MockSBIPage(driver); mockSBIPage.switchToMockSBI(); - mockSBIPage.setAllModalityLowScroe(); + mockSBIPage.setAllModalityLowScore(); mockSBIPage.switchBackToArcApp(); // New registration with low biometric score @@ -199,6 +207,7 @@ public void biometricCorrection() throws InterruptedException { } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } + registrationTasksPage.handleLocationPermission(); assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnNewRegistrationButton(); @@ -274,15 +283,15 @@ public void biometricCorrection() throws InterruptedException { demographicPage.clickOnContinueButton(); } else if (screen.equals("Documents")) { if ("eng".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageEnglish(driver); + documentuploadPage = new DocumentUploadPageEnglish(driver); } else if ("hin".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageHindi(driver); } else if ("fra".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageFrench(driver); } else if ("kan".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageKannada(driver); + documentuploadPage = new DocumentUploadPageKannada(driver); } else if ("tam".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageTamil(driver); + documentuploadPage = new DocumentUploadPageTamil(driver); } else if ("ara".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageArabic(driver); } else { @@ -336,12 +345,837 @@ public void biometricCorrection() throws InterruptedException { assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + } + // righthand + if (FetchUiSpec.rightHand.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnRightHandScanIcon(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isRightHandScan(), "Verify if right hand scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + } + // lefthand + if (FetchUiSpec.leftHand.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnLeftHandScanIcon(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isLeftHandScan(), "Verify if Left hand scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + } + // thumb + if (FetchUiSpec.thumb.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnThumbsScanIcon(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isThumbsScan(), "Verify if thumbs scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + } + // face + if (FetchUiSpec.face.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + biometricDetailsPage.clickOnFaceScanIcon(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); + assertTrue(applicantBiometricsPage.isFaceScan(), "Verify if face scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + + applicantBiometricsPage.clickOnScanButton(); + assertTrue(applicantBiometricsPage.isFaceScan(), "Verify if face scan 2nd attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + + applicantBiometricsPage.clickOnScanButton(); + assertTrue(applicantBiometricsPage.isFaceScan(), "Verify if face scan 3rd attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + + applicantBiometricsPage.clickOnBackButton(); + } + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + biometricDetailsPage.clickOnContinueButton(); + } + } + if ("eng".equalsIgnoreCase(language)) { + previewPage = new PreviewPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + previewPage = new PreviewPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + previewPage = new PreviewPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + previewPage = new PreviewPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + previewPage = new PreviewPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + previewPage = new PreviewPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + + assertTrue(previewPage.isNewRegistrationTitleDisplayed(), "Verify if new Registration title is displayed"); +// assertTrue(previewPage.isApplicationIDPreviewPagePageDisplayed(), +// "Verify if application ID In PreviewPage is displayed"); + assertTrue(previewPage.isDemographicInformationInPreviewPageDisplayed(), + "Verify if Demographic Information In PreviewPage is displayed"); + assertTrue(previewPage.isDocumentsInformationInPreviewPageDisplayed(), + "Verify if Documents Information In PreviewPage is displayed"); +// assertTrue(previewPage.isBiometricsInformationInPreviewPagePageDisplayed(),"Verify if Biometrics Information In PreviewPage is displayed"); + String Aid = previewPage.getAID(); + previewPage.clickOnContinueButton(); + if ("eng".equalsIgnoreCase(language)) { + authenticationPage = new AuthenticationPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + authenticationPage = new AuthenticationPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + authenticationPage = new AuthenticationPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + authenticationPage = new AuthenticationPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + authenticationPage = new AuthenticationPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + authenticationPage = new AuthenticationPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + assertTrue(authenticationPage.isAuthenticationPageDisplayed(), + "Verify if authentication details page is displayed"); + authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); + authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); + authenticationPage.clickOnAuthenticatenButton(); + if ("eng".equalsIgnoreCase(language)) { + acknowledgementPage = new AcknowledgementPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + acknowledgementPage = new AcknowledgementPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + acknowledgementPage = new AcknowledgementPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + acknowledgementPage = new AcknowledgementPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + acknowledgementPage = new AcknowledgementPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + acknowledgementPage = new AcknowledgementPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(), + "Verify if acknowledgement details page is displayed"); + + acknowledgementPage.clickOnGoToHomeButton(); + + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + registrationTasksPage.clickOnOperationalTasksTitle(); + if ("eng".equalsIgnoreCase(language)) { + operationalTaskPage = new OperationalTaskPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + operationalTaskPage = new OperationalTaskPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + operationalTaskPage = new OperationalTaskPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + operationalTaskPage = new OperationalTaskPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + operationalTaskPage = new OperationalTaskPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + operationalTaskPage = new OperationalTaskPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); + assertTrue(operationalTaskPage.isPendingApprovalTitleDisplayed(), "Verify if pending approval title displayed"); + operationalTaskPage.clickPendingApprovalTitle(); + + if ("eng".equalsIgnoreCase(language)) { + pendingApproval = new PendingApprovalEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + pendingApproval = new PendingApprovalHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + pendingApproval = new PendingApprovalFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + pendingApproval = new PendingApprovalKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + pendingApproval = new PendingApprovalTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + pendingApproval = new PendingApprovalArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed"); + pendingApproval.enterAID(Aid); + assertTrue(pendingApproval.isNumberOfApplicationDisplayed(), "Verify if no. of pending approval display"); + pendingApproval.clickOnAID(Aid); + + assertTrue(pendingApproval.isApprovalButtonDisplayed(), "Verify if approval button displayed"); + pendingApproval.clickOnApproveButton(); + pendingApproval.clickOnClosePopUpButton(); + + assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), + "Verify if pending approval page displayed after approving packet"); + pendingApproval.clickOnCheckBox(); + + assertTrue(pendingApproval.isAuthenticateButtonEnabled(), + "Verify if authenticate button is enable after selecting packet"); + + boolean isPageDisplayed = false; + for (int i = 0; i < 3; i++) { + pendingApproval.clickOnAuthenticateButton(); + Thread.sleep(2000); + if (pendingApproval.isSupervisorAuthenticationTitleDisplayed()) { + isPageDisplayed = true; + break; + } + } + assertTrue(isPageDisplayed, "Supervisor Authentication page not displayed after retries"); + + assertTrue(pendingApproval.isSupervisorAuthenticationTitleDisplayed(), + "Verify if error empty username submit button enabled"); + + pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser); + pendingApproval.enterPassword(ArcConfigManager.getIAMUsersPassword()); + pendingApproval.clickOnSubmitButton(); + + pendingApproval.clickOnBackButton(); + + operationalTaskPage.clickApplicationUploadTitle(); + if ("eng".equalsIgnoreCase(language)) { + manageApplicationsPage = new ManageApplicationsPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + manageApplicationsPage = new ManageApplicationsPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + manageApplicationsPage = new ManageApplicationsPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + manageApplicationsPage = new ManageApplicationsPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + manageApplicationsPage = new ManageApplicationsPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + manageApplicationsPage = new ManageApplicationsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), + "Verify if manage Applications Page displayed"); + + manageApplicationsPage.enterAID(Aid); + + assertTrue(manageApplicationsPage.isSearchAIDDisplayed(Aid), "Verify if Search Aid should displayed"); + manageApplicationsPage.selectApprovedValueDropdown(); + + assertTrue(manageApplicationsPage.isPacketApproved(Aid), "Verify if Filtre packet is approved "); + manageApplicationsPage.clickOnSearchCheckBox(); + for (int i = 0; i < 3; i++) { + manageApplicationsPage.clickOnUploadButton(); + Thread.sleep(2000); + if (!manageApplicationsPage.isNoNetworkFoundDisplayed()) + break; + } + manageApplicationsPage.clickOnBackButton(); + + + // Return to mocksbi page + mockSBIPage.switchToMockSBI(); + mockSBIPage.setAllModalityHighScore(); + mockSBIPage.switchBackToArcApp(); +// biocorrection flow + if ("eng".equalsIgnoreCase(language)) { + loginPage = new LoginPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + loginPage = new LoginPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + loginPage = new LoginPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + loginPage = new LoginPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + loginPage = new LoginPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + loginPage = new LoginPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + loginPage.selectLanguage(); + + assertTrue(loginPage.isWelcomeMessageInSelectedLanguageDisplayed(), + "verify if the welcome msg in selected language displayed"); + loginPage.enterUserName(KeycloakUserManager.moduleSpecificUser); + loginPage.clickOnNextButton(); + + loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); + loginPage.clickOnloginButton(); + + if ("eng".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + registrationTasksPage.handleLocationPermission(); + + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + + assertTrue(registrationTasksPage.isBiometricCorrectionTitleDisplayed(), + "Verify if biometric correction is displayed"); + registrationTasksPage.clickOnBiometricCorrectionButton(); + + if ("eng".equalsIgnoreCase(language)) { + selectLanguagePage = new SelectLanguagePageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + selectLanguagePage = new SelectLanguagePageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + selectLanguagePage = new SelectLanguagePageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + selectLanguagePage = new SelectLanguagePageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + selectLanguagePage = new SelectLanguagePageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + selectLanguagePage = new SelectLanguagePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), "Verify if select language page is loaded"); + selectLanguagePage.clickOnSubmitButtonWithoutSelectingLanguage(); + + assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), + "Verify if user should not be allow to navigate to next screen."); + selectLanguagePage.selectSecondLanguage(); + + assertTrue(selectLanguagePage.isNotificationLanguageEnglishDisplayed(), + "verify if the notification language display in english"); + selectLanguagePage.selectNotificationlanguage(TestDataReader.readData("notificationLanguage")); + + assertTrue(selectLanguagePage.isSubmitButtonEnabled(), "verify if the submit button enabled"); + selectLanguagePage.clickOnSubmitButton(); + for (String screen : screenOrder) { + if (screen.equals("consentdet") || screen.equals("consent")) { + if ("eng".equalsIgnoreCase(language)) { + consentPage = new ConsentPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + consentPage = new ConsentPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + consentPage = new ConsentPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + consentPage = new ConsentPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + consentPage = new ConsentPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + consentPage = new ConsentPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + assertTrue(consentPage.isPageDisplayed("consentdet"), "Verify if Consent page is loaded"); + consentPage.clickOnInformedButton(); + + } else if (screen.equals("BiometricDetails")) { + if ("eng".equalsIgnoreCase(language)) { + biometricDetailsPage = new BiometricDetailsPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + biometricDetailsPage = new BiometricDetailsPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + biometricDetailsPage = new BiometricDetailsPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + biometricDetailsPage = new BiometricDetailsPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + biometricDetailsPage = new BiometricDetailsPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + biometricDetailsPage = new BiometricDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + if ("eng".equalsIgnoreCase(language)) { + applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + + assertTrue(biometricDetailsPage.isAdditionalInfoRequestIdTextboxDisplayed(), + "Additional info Request ID textbox should be displayed"); + + biometricDetailsPage.enterAdditionalInfoUsingEmail(BasePage.email); + + if (FetchUiSpec.eye.equals("yes")) { + biometricDetailsPage.clickOnIrisScan(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + + applicantBiometricsPage.clickOnNextButton(); + } + // righthand + if (FetchUiSpec.rightHand.equals("yes")) { + + biometricDetailsPage.clickOnRightHandScanIcon(); + + assertTrue(applicantBiometricsPage.isRightHandScanTitleDisplayed(), + "Verify if right hand scan is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isRightHandScan(), "Verify if right hand scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + applicantBiometricsPage.clickOnNextButton(); + } + // lefthand + if (FetchUiSpec.leftHand.equals("yes")) { + biometricDetailsPage.clickOnLeftHandScanIcon(); + + assertTrue(applicantBiometricsPage.isLeftHandScanTitleDisplayed(), + "Verify if left hand scan is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isLeftHandScan(), "Verify if Left hand scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + applicantBiometricsPage.clickOnNextButton(); + } + // thumb + if (FetchUiSpec.thumb.equals("yes")) { + biometricDetailsPage.clickOnThumbsScanIcon(); + + assertTrue(applicantBiometricsPage.isThumbsScanTitleDisplayed(), + "Verify if thumb hand scan is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isThumbsScan(), "Verify if thumbs scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + applicantBiometricsPage.clickOnNextButton(); + } + // face + if (FetchUiSpec.face.equals("yes")) { + biometricDetailsPage.clickOnFaceScanIcon(); + + assertTrue(applicantBiometricsPage.isFaceScanTitleDisplayed(), + "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 2nd attempt"); + + assertTrue(applicantBiometricsPage.isFaceScan(), "Verify if face scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); + applicantBiometricsPage.clickOnNextButton(); + } + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + ((HidesKeyboard) driver).hideKeyboard(); + biometricDetailsPage.clickOnContinueButton(); + } + } + + if ("eng".equalsIgnoreCase(language)) { + previewPage = new PreviewPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + previewPage = new PreviewPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + previewPage = new PreviewPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + previewPage = new PreviewPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + previewPage = new PreviewPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + previewPage = new PreviewPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + assertTrue(previewPage.isBiometricCorrectionTitleDisplayed(), "Verify if biometric correction title is displayed"); + + previewPage.clickOnContinueButton(); + if ("eng".equalsIgnoreCase(language)) { + authenticationPage = new AuthenticationPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + authenticationPage = new AuthenticationPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + authenticationPage = new AuthenticationPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + authenticationPage = new AuthenticationPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + authenticationPage = new AuthenticationPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + authenticationPage = new AuthenticationPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + assertTrue(authenticationPage.isAuthenticationPageDisplayed(), + "Verify if authentication details page is displayed"); + authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); + authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); + authenticationPage.clickOnAuthenticatenButton(); + if ("eng".equalsIgnoreCase(language)) { + acknowledgementPage = new AcknowledgementPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + acknowledgementPage = new AcknowledgementPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + acknowledgementPage = new AcknowledgementPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + acknowledgementPage = new AcknowledgementPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + acknowledgementPage = new AcknowledgementPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + acknowledgementPage = new AcknowledgementPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(), + "Verify if acknowledgement details page is displayed"); + + acknowledgementPage.clickOnGoToHomeButton(); + + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + registrationTasksPage.clickOnOperationalTasksTitle(); + if ("eng".equalsIgnoreCase(language)) { + operationalTaskPage = new OperationalTaskPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + operationalTaskPage = new OperationalTaskPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + operationalTaskPage = new OperationalTaskPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + operationalTaskPage = new OperationalTaskPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + operationalTaskPage = new OperationalTaskPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + operationalTaskPage = new OperationalTaskPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); + assertTrue(operationalTaskPage.isPendingApprovalTitleDisplayed(), "Verify if pending approval tite displayed"); + operationalTaskPage.clickPendingApprovalTitle(); + + if ("eng".equalsIgnoreCase(language)) { + pendingApproval = new PendingApprovalEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + pendingApproval = new PendingApprovalHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + pendingApproval = new PendingApprovalFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + pendingApproval = new PendingApprovalKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + pendingApproval = new PendingApprovalTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + pendingApproval = new PendingApprovalArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), "Verify if pending approval page displayed"); + pendingApproval.enterAID(Aid); + assertTrue(pendingApproval.isNumberOfApplicationDisplayed(), "Verify if no. of pending approval display"); + pendingApproval.clickOnAID(Aid); + + assertTrue(pendingApproval.isApprovalButtonDisplayed(), "Verify if approval button displayed"); + pendingApproval.clickOnApproveButton(); + pendingApproval.clickOnClosePopUpButton(); + + assertTrue(pendingApproval.isPendingApprovalTitleDisplayed(), + "Verify if pending approval page displayed after approving packet"); + pendingApproval.clickOnCheckBox(); + + assertTrue(pendingApproval.isAuthenticateButtonEnabled(), + "Verify if authenticate button is enable after selecting packet"); + + boolean isBioCorrectionAuthenticationPageDisplayed = false; + for (int i = 0; i < 3; i++) { + pendingApproval.clickOnAuthenticateButton(); + Thread.sleep(2000); + if (pendingApproval.isSupervisorAuthenticationTitleDisplayed()) { + isBioCorrectionAuthenticationPageDisplayed = true; + break; + } + } + assertTrue(isBioCorrectionAuthenticationPageDisplayed, + "Supervisor Authentication page not displayed after retries"); + + pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser); + + pendingApproval.enterPassword(ArcConfigManager.getIAMUsersPassword()); + pendingApproval.clickOnSubmitButton(); + pendingApproval.clickOnBackButton(); + assertTrue(operationalTaskPage.isApplicationUploadTitleDisplayed(), + "Verify if application upload tite displayed"); + + operationalTaskPage.clickApplicationUploadTitle(); + if ("eng".equalsIgnoreCase(language)) { + manageApplicationsPage = new ManageApplicationsPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + manageApplicationsPage = new ManageApplicationsPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + manageApplicationsPage = new ManageApplicationsPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + manageApplicationsPage = new ManageApplicationsPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + manageApplicationsPage = new ManageApplicationsPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + manageApplicationsPage = new ManageApplicationsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), + "Verify if manage Applications Page displayed"); + manageApplicationsPage.enterAID(Aid); + + assertTrue(manageApplicationsPage.isSearchAIDDisplayed(Aid), "Verify if Search Aid should displayed"); + manageApplicationsPage.selectApprovedValueDropdown(); + + assertTrue(manageApplicationsPage.isPacketApproved(Aid), "Verify if Filtre packet is approved "); + manageApplicationsPage.clickOnSearchCheckBox(); + for (int i = 0; i < 3; i++) { + manageApplicationsPage.clickOnUploadButton(); + Thread.sleep(2000); + if (!manageApplicationsPage.isNoNetworkFoundDisplayed()) + break; + } + manageApplicationsPage.clickOnBackButton(); + } + + @Test(priority = 1, description = "Verify minor biometric correction") + public void minorBiometricCorrection() throws InterruptedException { + + BasePage.disableAutoRotation(); + FetchUiSpec.getUiSpec("newProcess"); + FetchUiSpec.getBiometricDetails("individualBiometrics"); + List screenOrder = FetchUiSpec.getAllScreenOrder(); + LoginPage loginPage = null; + RegistrationTasksPage registrationTasksPage = null; + SelectLanguagePage selectLanguagePage = null; + ConsentPage consentPage = null; + DemographicDetailsPage demographicPage = null; + DocumentUploadPage documentuploadPage = null; + BiometricDetailsPage biometricDetailsPage = null; + ApplicantBiometricsPage applicantBiometricsPage = null; + PreviewPage previewPage = null; + AuthenticationPage authenticationPage = null; + AcknowledgementPage acknowledgementPage = null; + OperationalTaskPage operationalTaskPage = null; + PendingApproval pendingApproval = null; + ManageApplicationsPage manageApplicationsPage = null; + ProfilePage profilePage = null; + IntroducerBiometricPage introducerBiometricPage = null; + + // Navigate to mocksbi page + MockSBIPage mockSBIPage = new MockSBIPage(driver); + mockSBIPage.switchToMockSBI(); + mockSBIPage.setAllModalityLowScore(); + mockSBIPage.switchBackToArcApp(); + + // New registration with low biometric score + + final String language = TestDataReader.readData("language"); + + if ("eng".equalsIgnoreCase(language)) { + loginPage = new LoginPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + loginPage = new LoginPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + loginPage = new LoginPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + loginPage = new LoginPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + loginPage = new LoginPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + loginPage = new LoginPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + loginPage.selectLanguage(); + + assertTrue(loginPage.isWelcomeMessageInSelectedLanguageDisplayed(), + "verify if the welcome msg in selected language displayed"); + loginPage.enterUserName(KeycloakUserManager.moduleSpecificUser); + loginPage.clickOnNextButton(); + + loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); + loginPage.clickOnloginButton(); + + if ("eng".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + registrationTasksPage.handleLocationPermission(); + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + registrationTasksPage.clickOnNewRegistrationButton(); + + if ("eng".equalsIgnoreCase(language)) { + selectLanguagePage = new SelectLanguagePageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + selectLanguagePage = new SelectLanguagePageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + selectLanguagePage = new SelectLanguagePageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + selectLanguagePage = new SelectLanguagePageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + selectLanguagePage = new SelectLanguagePageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + selectLanguagePage = new SelectLanguagePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), "Verify if select language page is loaded"); + selectLanguagePage.clickOnSubmitButtonWithoutSelectingLanguage(); + + assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), + "Verify if user should not be allow to navigate to next screen."); + selectLanguagePage.selectSecondLanguage(); + + assertTrue(selectLanguagePage.isNotificationLanguageEnglishDisplayed(), + "verify if the notification language display in english"); + selectLanguagePage.selectNotificationlanguage(TestDataReader.readData("notificationLanguage")); + + assertTrue(selectLanguagePage.isSubmitButtonEnabled(), "verify if the submit button enabled"); + selectLanguagePage.clickOnSubmitButton(); + for (String screen : screenOrder) { + if (screen.equals("consentdet") || screen.equals("consent")) { + if ("eng".equalsIgnoreCase(language)) { + consentPage = new ConsentPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + consentPage = new ConsentPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + consentPage = new ConsentPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + consentPage = new ConsentPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + consentPage = new ConsentPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + consentPage = new ConsentPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + consentPage.clickOnInformedButton(); + } else if (screen.equals("DemographicDetails")) { + + if ("eng".equalsIgnoreCase(language)) { + demographicPage = new DemographicDetailsPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + demographicPage = new DemographicDetailsPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + demographicPage = new DemographicDetailsPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + demographicPage = new DemographicDetailsPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + demographicPage = new DemographicDetailsPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + demographicPage = new DemographicDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + assertTrue(demographicPage.isPageDisplayed("DemographicDetails"), + "Verify if demographic details page is displayed"); + + demographicPage.fillDemographicDetailsPage("minor"); + + demographicPage.clickOnContinueButton(); + } else if (screen.equals("Documents")) { + if ("eng".equalsIgnoreCase(language)) { + documentuploadPage = new DocumentUploadPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + documentuploadPage = new DocumentUploadPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + documentuploadPage = new DocumentUploadPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + documentuploadPage = new DocumentUploadPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + documentuploadPage = new DocumentUploadPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + documentuploadPage = new DocumentUploadPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + assertTrue(documentuploadPage.isDoccumentUploadPageDisplayed(), + "Verify if doccumentupload page is displayed"); + documentuploadPage.uploadDoccuments("minor", "withoutReferenceNumber"); + documentuploadPage.clickOnContinueButton(); + + } else if (screen.equals("BiometricDetails")) { + if ("eng".equalsIgnoreCase(language)) { + biometricDetailsPage = new BiometricDetailsPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + biometricDetailsPage = new BiometricDetailsPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + biometricDetailsPage = new BiometricDetailsPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + biometricDetailsPage = new BiometricDetailsPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + biometricDetailsPage = new BiometricDetailsPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + biometricDetailsPage = new BiometricDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + + if ("eng".equalsIgnoreCase(language)) { + applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + if (FetchUiSpec.eye.equals("yes")) { + biometricDetailsPage.clickOnIrisScan(); + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), + "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 3rd attempt"); + + assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); @@ -358,7 +1192,6 @@ public void biometricCorrection() throws InterruptedException { assertTrue(applicantBiometricsPage.isRightHandScan(), "Verify if right hand scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); } // lefthand @@ -373,7 +1206,6 @@ public void biometricCorrection() throws InterruptedException { assertTrue(applicantBiometricsPage.isLeftHandScan(), "Verify if Left hand scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); } // thumb @@ -388,7 +1220,6 @@ public void biometricCorrection() throws InterruptedException { assertTrue(applicantBiometricsPage.isThumbsScan(), "Verify if thumbs scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); } // face @@ -400,7 +1231,6 @@ public void biometricCorrection() throws InterruptedException { assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isFaceScan(), "Verify if face scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); @@ -414,11 +1244,95 @@ public void biometricCorrection() throws InterruptedException { applicantBiometricsPage.clickOnBackButton(); } + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), "Verify if biometric details page is displayed"); + // Return to mocksbi page + mockSBIPage.switchToMockSBI(); + mockSBIPage.setAllModalityHighScore(); + mockSBIPage.switchBackToArcApp(); + + if ("eng".equalsIgnoreCase(language)) { + introducerBiometricPage = new IntroducerBiometricPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + introducerBiometricPage = new IntroducerBiometricPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + introducerBiometricPage = new IntroducerBiometricPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + introducerBiometricPage = new IntroducerBiometricPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + introducerBiometricPage = new IntroducerBiometricPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + introducerBiometricPage = new IntroducerBiometricPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + + FetchUiSpec.eye = "no"; + FetchUiSpec.rightHand = "no"; + FetchUiSpec.leftHand = "no"; + FetchUiSpec.thumb = "no"; + FetchUiSpec.face = "no"; + FetchUiSpec.getBiometricDetails("introducerBiometrics"); + if (FetchUiSpec.eye.equals("yes")) { + biometricDetailsPage.clickOnIntroducerIrisScan(); + assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), + "Verify if introducer biometric page is displayed"); + introducerBiometricPage.clickOnScanButton(); + + assertTrue(introducerBiometricPage.isIrisScan(), "Verify if iris scan 1st attempt"); + introducerBiometricPage.closeScanCapturePopUp(); + introducerBiometricPage.clickOnNextButton(); + } + // righthand + if (FetchUiSpec.rightHand.equals("yes")) { + + assertTrue(introducerBiometricPage.isRightHandScanTitleDisplayed(), + "Verify if right hand scan is displayed"); + introducerBiometricPage.clickOnScanButton(); + + assertTrue(introducerBiometricPage.isRightHandScan(), "Verify if right hand scan 1st attempt"); + introducerBiometricPage.closeScanCapturePopUp(); + introducerBiometricPage.clickOnNextButton(); + } + // lefthand + if (FetchUiSpec.leftHand.equals("yes")) { + + assertTrue(introducerBiometricPage.isLeftHandScanTitleDisplayed(), + "Verify if applicant left hand scan title is displayed"); + introducerBiometricPage.clickOnScanButton(); + + assertTrue(introducerBiometricPage.isLeftHandScan(), "Verify if Left hand scan 1st attempt"); + introducerBiometricPage.closeScanCapturePopUp(); + introducerBiometricPage.clickOnNextButton(); + } + // thumb + if (FetchUiSpec.thumb.equals("yes")) { + + assertTrue(introducerBiometricPage.isThumbsScanTitleDisplayed(), + "Verify if thumbs scan page is displayed"); + introducerBiometricPage.clickOnScanButton(); + + assertTrue(introducerBiometricPage.isThumbsScan(), "Verify if thumbs scan 1st attempt"); + introducerBiometricPage.closeScanCapturePopUp(); + introducerBiometricPage.clickOnNextButton(); + } + // face + if (FetchUiSpec.face.equals("yes")) { + + assertTrue(introducerBiometricPage.isFaceScanTitleDisplayed(), + "Verify if face scan page is displayed"); + introducerBiometricPage.clickOnScanButton(); + + assertTrue(introducerBiometricPage.isFaceScan(), "Verify if face scan 1st attempt"); + introducerBiometricPage.closeScanCapturePopUp(); + biometricDetailsPage = introducerBiometricPage.clickOnNextButton(); + } + biometricDetailsPage.clickOnContinueButton(); } } + if ("eng".equalsIgnoreCase(language)) { previewPage = new PreviewPageEnglish(driver); } else if ("hin".equalsIgnoreCase(language)) { @@ -436,15 +1350,14 @@ public void biometricCorrection() throws InterruptedException { } assertTrue(previewPage.isNewRegistrationTitleDisplayed(), "Verify if new Registration title is displayed"); - assertTrue(previewPage.isApplicationIDPreviewPagePageDisplayed(), - "Verify if application ID In PreviewPage is displayed"); +// assertTrue(previewPage.isApplicationIDPreviewPagePageDisplayed(), +// "Verify if application ID In PreviewPage is displayed"); assertTrue(previewPage.isDemographicInformationInPreviewPageDisplayed(), "Verify if Demographic Information In PreviewPage is displayed"); assertTrue(previewPage.isDocumentsInformationInPreviewPageDisplayed(), "Verify if Documents Information In PreviewPage is displayed"); // assertTrue(previewPage.isBiometricsInformationInPreviewPagePageDisplayed(),"Verify if Biometrics Information In PreviewPage is displayed"); String Aid = previewPage.getAID(); - String emailId = previewPage.getEmailId(); previewPage.clickOnContinueButton(); if ("eng".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageEnglish(driver); @@ -484,8 +1397,6 @@ public void biometricCorrection() throws InterruptedException { assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(), "Verify if acknowledgement details page is displayed"); - // assertTrue(acknowledgementPage.isQrCodeImageDisplayed(),"Verify if qr code - // image is displayed"); acknowledgementPage.clickOnGoToHomeButton(); assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), @@ -593,11 +1504,6 @@ public void biometricCorrection() throws InterruptedException { } manageApplicationsPage.clickOnBackButton(); - // Return to mocksbi page - mockSBIPage.switchToMockSBI(); - mockSBIPage.setAllModalityHighScroe(); - mockSBIPage.switchBackToArcApp(); - // Biometric correction packet process assertTrue(registrationTasksPage.isOperationalTaskDisplayed(), "Verify if operation tasks page is loaded"); @@ -693,7 +1599,7 @@ public void biometricCorrection() throws InterruptedException { assertTrue(biometricDetailsPage.isAdditionalInfoRequestIdTextboxDisplayed(), "Additional info Request ID textbox should be displayed"); - biometricDetailsPage.enterAdditionalInfoUsingEmail(emailId); + biometricDetailsPage.enterAdditionalInfoUsingEmail(BasePage.email); if (FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIrisScan(); @@ -705,74 +1611,60 @@ public void biometricCorrection() throws InterruptedException { assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 2nd attempt"); - applicantBiometricsPage.closeScanCapturePopUp(); - - applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 3rd attempt"); - applicantBiometricsPage.closeScanCapturePopUp(); - - biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + applicantBiometricsPage.clickOnNextButton(); } // righthand if (FetchUiSpec.rightHand.equals("yes")) { - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), - "Verify if biometric details page is displayed"); - applicantBiometricsPage = biometricDetailsPage.clickOnRightHandScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), - "Verify if applicant biometric page is displayed"); + biometricDetailsPage.clickOnRightHandScanIcon(); + + assertTrue(applicantBiometricsPage.isRightHandScanTitleDisplayed(), + "Verify if right hand scan is displayed"); applicantBiometricsPage.clickOnScanButton(); assertTrue(applicantBiometricsPage.isRightHandScan(), "Verify if right hand scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + applicantBiometricsPage.clickOnNextButton(); } // lefthand if (FetchUiSpec.leftHand.equals("yes")) { - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), - "Verify if biometric details page is displayed"); - applicantBiometricsPage = biometricDetailsPage.clickOnLeftHandScanIcon(); + biometricDetailsPage.clickOnLeftHandScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), - "Verify if applicant biometric page is displayed"); + assertTrue(applicantBiometricsPage.isLeftHandScanTitleDisplayed(), + "Verify if left hand scan is displayed"); applicantBiometricsPage.clickOnScanButton(); assertTrue(applicantBiometricsPage.isLeftHandScan(), "Verify if Left hand scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + applicantBiometricsPage.clickOnNextButton(); } // thumb if (FetchUiSpec.thumb.equals("yes")) { - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), - "Verify if biometric details page is displayed"); - applicantBiometricsPage = biometricDetailsPage.clickOnThumbsScanIcon(); + biometricDetailsPage.clickOnThumbsScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), - "Verify if applicant biometric page is displayed"); + assertTrue(applicantBiometricsPage.isThumbsScanTitleDisplayed(), + "Verify if thumb hand scan is displayed"); applicantBiometricsPage.clickOnScanButton(); assertTrue(applicantBiometricsPage.isThumbsScan(), "Verify if thumbs scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + applicantBiometricsPage.clickOnNextButton(); } // face if (FetchUiSpec.face.equals("yes")) { - assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), - "Verify if biometric details page is displayed"); biometricDetailsPage.clickOnFaceScanIcon(); - assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), + assertTrue(applicantBiometricsPage.isFaceScanTitleDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); assertTrue(applicantBiometricsPage.isFaceScan(), "Verify if face scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - applicantBiometricsPage.clickOnBackButton(); + applicantBiometricsPage.clickOnNextButton(); } assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), "Verify if biometric details page is displayed"); + ((HidesKeyboard) driver).hideKeyboard(); biometricDetailsPage.clickOnContinueButton(); } @@ -793,9 +1685,8 @@ public void biometricCorrection() throws InterruptedException { } } - assertTrue(previewPage.isNewRegistrationTitleDisplayed(), "Verify if new Registration title is displayed"); - assertTrue(previewPage.isApplicationIDPreviewPagePageDisplayed(), - "Verify if application ID In PreviewPage is displayed"); +// assertTrue(previewPage.isApplicationIDPreviewPagePageDisplayed(), +// "Verify if application ID In PreviewPage is displayed"); assertTrue(previewPage.isDemographicInformationInPreviewPageDisplayed(), "Verify if Demographic Information In PreviewPage is displayed"); assertTrue(previewPage.isDocumentsInformationInPreviewPageDisplayed(), @@ -840,8 +1731,6 @@ public void biometricCorrection() throws InterruptedException { assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(), "Verify if acknowledgement details page is displayed"); - // assertTrue(acknowledgementPage.isQrCodeImageDisplayed(),"Verify if qr code - // image is displayed"); acknowledgementPage.clickOnGoToHomeButton(); assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), diff --git a/ui-test/src/main/java/regclient/androidTestCases/InitialLaunch.java b/ui-test/src/main/java/regclient/androidTestCases/InitialLaunch.java index 61cd89374..f29ba8709 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/InitialLaunch.java +++ b/ui-test/src/main/java/regclient/androidTestCases/InitialLaunch.java @@ -12,7 +12,7 @@ public class InitialLaunch extends AndroidBaseTest { - @Test + @Test(priority = 0, description = "Verify initial app launch after machine details are configured") public void initialLaunch() { BasePage.disableAutoRotation(); LoginPageEnglish loginPage = new LoginPageEnglish(driver); diff --git a/ui-test/src/main/java/regclient/androidTestCases/LostUin.java b/ui-test/src/main/java/regclient/androidTestCases/LostUin.java index 31f699574..affb244d6 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/LostUin.java +++ b/ui-test/src/main/java/regclient/androidTestCases/LostUin.java @@ -47,7 +47,7 @@ import regclient.pages.english.BiometricDetailsPageEnglish; import regclient.pages.english.ConsentPageEnglish; import regclient.pages.english.DemographicDetailsPageEnglish; -import regclient.pages.english.DocumentuploadPageEnglish; +import regclient.pages.english.DocumentUploadPageEnglish; import regclient.pages.english.LoginPageEnglish; import regclient.pages.english.ManageApplicationsPageEnglish; import regclient.pages.english.OperationalTaskPageEnglish; @@ -92,7 +92,7 @@ import regclient.pages.kannada.BiometricDetailsPageKannada; import regclient.pages.kannada.ConsentPageKannada; import regclient.pages.kannada.DemographicDetailsPageKannada; -import regclient.pages.kannada.DocumentuploadPageKannada; +import regclient.pages.kannada.DocumentUploadPageKannada; import regclient.pages.kannada.LoginPageKannada; import regclient.pages.kannada.ManageApplicationsPageKannada; import regclient.pages.kannada.OperationalTaskPageKannada; @@ -107,7 +107,7 @@ import regclient.pages.tamil.BiometricDetailsPageTamil; import regclient.pages.tamil.ConsentPageTamil; import regclient.pages.tamil.DemographicDetailsPageTamil; -import regclient.pages.tamil.DocumentuploadPageTamil; +import regclient.pages.tamil.DocumentUploadPageTamil; import regclient.pages.tamil.LoginPageTamil; import regclient.pages.tamil.ManageApplicationsPageTamil; import regclient.pages.tamil.OperationalTaskPageTamil; @@ -120,7 +120,7 @@ public class LostUin extends AndroidBaseTest { - @Test + @Test(priority = 0, description = "Verify lost UIN") public void lostUinAdult() { BasePage.disableAutoRotation(); FetchUiSpec.getUiSpec("newProcess"); @@ -184,6 +184,7 @@ public void lostUinAdult() { } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } + registrationTasksPage.handleLocationPermission(); assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnLostUinButton(); @@ -262,15 +263,15 @@ public void lostUinAdult() { demographicPage.clickOnContinueButton(); } else if (screen.equals("Documents")) { if ("eng".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageEnglish(driver); + documentuploadPage = new DocumentUploadPageEnglish(driver); } else if ("hin".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageHindi(driver); } else if ("fra".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageFrench(driver); } else if ("kan".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageKannada(driver); + documentuploadPage = new DocumentUploadPageKannada(driver); } else if ("tam".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageTamil(driver); + documentuploadPage = new DocumentUploadPageTamil(driver); } else if ("ara".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageArabic(driver); } else { @@ -523,7 +524,7 @@ public void lostUinAdult() { "Verify if Supervisor Authentication page displayed"); pendingApproval.clickOnSubmitButton(); - assertTrue(pendingApproval.isInvalidemptyUsernameSumbitButtonEnbled(), + assertTrue(pendingApproval.isInvalidEmptyUsernameSubmitButtonEnabled(), "Verify if error empty username submit button enabled"); pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser + "123"); diff --git a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdult.java b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdult.java index ae33f0708..64bf87316 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdult.java +++ b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdult.java @@ -1,11 +1,8 @@ package regclient.androidTestCases; -import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertTrue; import java.util.List; - -import org.openqa.selenium.ScreenOrientation; import org.testng.annotations.Test; import regclient.BaseTest.AndroidBaseTest; @@ -51,7 +48,7 @@ import regclient.pages.english.BiometricDetailsPageEnglish; import regclient.pages.english.ConsentPageEnglish; import regclient.pages.english.DemographicDetailsPageEnglish; -import regclient.pages.english.DocumentuploadPageEnglish; +import regclient.pages.english.DocumentUploadPageEnglish; import regclient.pages.english.IntroducerBiometricPageEnglish; import regclient.pages.english.LoginPageEnglish; import regclient.pages.english.ManageApplicationsPageEnglish; @@ -99,7 +96,7 @@ import regclient.pages.kannada.BiometricDetailsPageKannada; import regclient.pages.kannada.ConsentPageKannada; import regclient.pages.kannada.DemographicDetailsPageKannada; -import regclient.pages.kannada.DocumentuploadPageKannada; +import regclient.pages.kannada.DocumentUploadPageKannada; import regclient.pages.kannada.IntroducerBiometricPageKannada; import regclient.pages.kannada.LoginPageKannada; import regclient.pages.kannada.ManageApplicationsPageKannada; @@ -115,7 +112,7 @@ import regclient.pages.tamil.BiometricDetailsPageTamil; import regclient.pages.tamil.ConsentPageTamil; import regclient.pages.tamil.DemographicDetailsPageTamil; -import regclient.pages.tamil.DocumentuploadPageTamil; +import regclient.pages.tamil.DocumentUploadPageTamil; import regclient.pages.tamil.IntroducerBiometricPageTamil; import regclient.pages.tamil.LoginPageTamil; import regclient.pages.tamil.ManageApplicationsPageTamil; @@ -130,7 +127,7 @@ public class NewRegistrationAdult extends AndroidBaseTest { - @Test + @Test(priority = 0, description = "Verify adult new registration") public void newRegistrationAdult() throws InterruptedException { BasePage.disableAutoRotation(); @@ -279,15 +276,15 @@ public void newRegistrationAdult() throws InterruptedException { demographicPage.clickOnContinueButton(); } else if (screen.equals("Documents")) { if ("eng".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageEnglish(driver); + documentuploadPage = new DocumentUploadPageEnglish(driver); } else if ("hin".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageHindi(driver); } else if ("fra".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageFrench(driver); } else if ("kan".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageKannada(driver); + documentuploadPage = new DocumentUploadPageKannada(driver); } else if ("tam".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageTamil(driver); + documentuploadPage = new DocumentUploadPageTamil(driver); } else if ("ara".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageArabic(driver); } else { @@ -545,7 +542,7 @@ public void newRegistrationAdult() throws InterruptedException { assertTrue(isPageDisplayed, "Supervisor Authentication page not displayed after retries"); pendingApproval.clickOnSubmitButton(); - assertTrue(pendingApproval.isInvalidemptyUsernameSumbitButtonEnbled(), + assertTrue(pendingApproval.isInvalidEmptyUsernameSubmitButtonEnabled(), "Verify if error empty username submit button enabled"); pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser + "123"); @@ -596,31 +593,695 @@ public void newRegistrationAdult() throws InterruptedException { } manageApplicationsPage.clickOnBackButton(); - assertTrue(registrationTasksPage.isProfileTitleDisplayed(), "Verify if profile title display on homepage"); - registrationTasksPage.clickProfileButton(); + } + + @SuppressWarnings("null") + @Test(priority = 1, description = "Verify adult new registration") + public void newRegistrationAdultUploadMultipleDoccuments() throws InterruptedException { + BasePage.disableAutoRotation(); + FetchUiSpec.getUiSpec("newProcess"); + FetchUiSpec.getBiometricDetails("individualBiometrics"); + List screenOrder = FetchUiSpec.getAllScreenOrder(); + LoginPage loginPage = null; + RegistrationTasksPage registrationTasksPage = null; + SelectLanguagePage selectLanguagePage = null; + ConsentPage consentPage = null; + DemographicDetailsPage demographicPage = null; + DocumentUploadPage documentUploadPage = null; + BiometricDetailsPage biometricDetailsPage = null; + ApplicantBiometricsPage applicantBiometricsPage = null; + PreviewPage previewPage = null; + AuthenticationPage authenticationPage = null; + AcknowledgementPage acknowledgementPage = null; + OperationalTaskPage operationalTaskPage = null; + PendingApproval pendingApproval = null; + ManageApplicationsPage manageApplicationsPage = null; + ProfilePage profilePage = null; + IntroducerBiometricPage introducerBiometricPage = null; + + final String language = TestDataReader.readData("language"); + + if ("eng".equalsIgnoreCase(language)) { + loginPage = new LoginPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + loginPage = new LoginPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + loginPage = new LoginPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + loginPage = new LoginPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + loginPage = new LoginPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + loginPage = new LoginPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + + loginPage.selectLanguage(); + + assertTrue(loginPage.isWelcomeMessageInSelectedLanguageDisplayed(), + "verify if the welcome msg in selected language displayed"); + loginPage.enterUserName(KeycloakUserManager.moduleSpecificUser); + loginPage.clickOnNextButton(); + + loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); + loginPage.clickOnloginButton(); + + if ("eng".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + + registrationTasksPage.handleLocationPermission(); + + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + + registrationTasksPage.clickOnNewRegistrationButton(); if ("eng".equalsIgnoreCase(language)) { - profilePage = new ProfilePageEnglish(driver); + selectLanguagePage = new SelectLanguagePageEnglish(driver); } else if ("hin".equalsIgnoreCase(language)) { - profilePage = new ProfilePageHindi(driver); + selectLanguagePage = new SelectLanguagePageHindi(driver); } else if ("fra".equalsIgnoreCase(language)) { - profilePage = new ProfilePageFrench(driver); + selectLanguagePage = new SelectLanguagePageFrench(driver); } else if ("kan".equalsIgnoreCase(language)) { - profilePage = new ProfilePageKannada(driver); + selectLanguagePage = new SelectLanguagePageKannada(driver); } else if ("tam".equalsIgnoreCase(language)) { - profilePage = new ProfilePageTamil(driver); + selectLanguagePage = new SelectLanguagePageTamil(driver); } else if ("ara".equalsIgnoreCase(language)) { - profilePage = new ProfilePageArabic(driver); + selectLanguagePage = new SelectLanguagePageArabic(driver); } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } - // assertTrue(profilePage.isProfileTitleDisplayed(),"Verify if profile title - // display on Profilepage"); - profilePage.clickOnLogoutButton(); + assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), "Verify if select language page is loaded"); + selectLanguagePage.clickOnSubmitButtonWithoutSelectingLanguage(); + + assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), + "Verify if user should not be allow to navigate to next screen."); + selectLanguagePage.selectSecondLanguage(); + + assertTrue(selectLanguagePage.isNotificationLanguageEnglishDisplayed(), + "verify if the notification language display in english"); + selectLanguagePage.selectNotificationlanguage(TestDataReader.readData("notificationLanguage")); + + assertTrue(selectLanguagePage.isSubmitButtonEnabled(), "verify if the submit button enabled"); + selectLanguagePage.clickOnSubmitButton(); + for (String screen : screenOrder) { + if (screen.equals("consentdet") || screen.equals("consent")) { + if ("eng".equalsIgnoreCase(language)) { + consentPage = new ConsentPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + consentPage = new ConsentPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + consentPage = new ConsentPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + consentPage = new ConsentPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + consentPage = new ConsentPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + consentPage = new ConsentPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + assertTrue(consentPage.isPageDisplayed("consentdet"), "Verify if Consent page is loaded"); + assertTrue(consentPage.isCheckBoxReadable(), "Verify if the check box in readable"); + + assertTrue(consentPage.isInformedButtonEnabled(), "Verify if informed button enabled"); + consentPage.clickOnInformedButton(); + } else if (screen.equals("DemographicDetails")) { + + if ("eng".equalsIgnoreCase(language)) { + demographicPage = new DemographicDetailsPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + demographicPage = new DemographicDetailsPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + demographicPage = new DemographicDetailsPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + demographicPage = new DemographicDetailsPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + demographicPage = new DemographicDetailsPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + demographicPage = new DemographicDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + assertTrue(demographicPage.isPageDisplayed("DemographicDetails"), + "Verify if demographic details page is displayed"); + + demographicPage.fillDemographicDetailsPage("adult"); + + demographicPage.clickOnContinueButton(); + } else if (screen.equals("Documents")) { + if ("eng".equalsIgnoreCase(language)) { + documentUploadPage = new DocumentUploadPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + documentUploadPage = new DocumentUploadPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + documentUploadPage = new DocumentUploadPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + documentUploadPage = new DocumentUploadPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + documentUploadPage = new DocumentUploadPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + documentUploadPage = new DocumentUploadPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + assertTrue(documentUploadPage.isDoccumentUploadPageDisplayed(), + "Verify if doccumentupload page is displayed"); + documentUploadPage.uploadDoccuments("adult", "ReferenceNumber"); + documentUploadPage.clickOnContinueButton(); + + } else if (screen.equals("BiometricDetails")) { + if ("eng".equalsIgnoreCase(language)) { + biometricDetailsPage = new BiometricDetailsPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + biometricDetailsPage = new BiometricDetailsPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + biometricDetailsPage = new BiometricDetailsPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + biometricDetailsPage = new BiometricDetailsPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + biometricDetailsPage = new BiometricDetailsPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + biometricDetailsPage = new BiometricDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + if ("eng".equalsIgnoreCase(language)) { + applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + if (FetchUiSpec.eye.equals("yes")) { + biometricDetailsPage.clickOnIrisScan(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + + applicantBiometricsPage.clickOnScanButton(); + assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 2nd attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + + applicantBiometricsPage.clickOnScanButton(); + assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 3rd attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + } + // righthand + if (FetchUiSpec.rightHand.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnRightHandScanIcon(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isRightHandScan(), "Verify if right hand scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + } + // lefthand + if (FetchUiSpec.leftHand.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnLeftHandScanIcon(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); - profilePage.clickOnLogoutButton(); + assertTrue(applicantBiometricsPage.isLeftHandScan(), "Verify if Left hand scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + } + // thumb + if (FetchUiSpec.thumb.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnThumbsScanIcon(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isThumbsScan(), "Verify if thumbs scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + } + // face + if (FetchUiSpec.face.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + biometricDetailsPage.clickOnFaceScanIcon(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isFaceScan(), "Verify if face scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + applicantBiometricsPage.clickOnBackButton(); + } + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + biometricDetailsPage.clickOnContinueButton(); + } + } + if ("eng".equalsIgnoreCase(language)) { + previewPage = new PreviewPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + previewPage = new PreviewPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + previewPage = new PreviewPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + previewPage = new PreviewPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + previewPage = new PreviewPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + previewPage = new PreviewPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + + assertTrue(previewPage.isNewRegistrationTitleDisplayed(), "Verify if new Registration title is displayed"); + assertTrue(previewPage.isBothIrisImageDisplayed(), "Verify if both iris image In PreviewPage is displayed"); + assertTrue(previewPage.isDemographicInformationInPreviewPageDisplayed(), + "Verify if Demographic Information In PreviewPage is displayed"); + assertTrue(previewPage.isBiometricsInformationInPreviewPagePageDisplayed(), + "Verify if Biometrics Information In PreviewPage is displayed"); + assertTrue(previewPage.isDocumentsInformationInPreviewPageDisplayed(), + "Verify if Documents Information In PreviewPage is displayed"); + previewPage.clickOnDemographicDetailsTitle(); + + for (String screen : screenOrder) { + if (screen.equals("DemographicDetails") || screen.equals("DemographicDetails")) { + if ("eng".equalsIgnoreCase(language)) { + demographicPage = new DemographicDetailsPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + demographicPage = new DemographicDetailsPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + demographicPage = new DemographicDetailsPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + demographicPage = new DemographicDetailsPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + demographicPage = new DemographicDetailsPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + demographicPage = new DemographicDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + demographicPage.fillDemographicDetailsPage("minor"); + + demographicPage.clickOnContinueButton(); + } else if (screen.equals("Documents")) { + if ("eng".equalsIgnoreCase(language)) { + documentUploadPage = new DocumentUploadPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + documentUploadPage = new DocumentUploadPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + documentUploadPage = new DocumentUploadPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + documentUploadPage = new DocumentUploadPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + documentUploadPage = new DocumentUploadPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + documentUploadPage = new DocumentUploadPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + documentUploadPage.uploadDoccuments("minor", "withoutReferenceNumber"); + + documentUploadPage.uploadDoccuments("minor", "withoutReferenceNumber"); + + documentUploadPage.clickOnContinueButton(); + } else if (screen.equals("BiometricDetails")) { + if ("eng".equalsIgnoreCase(language)) { + biometricDetailsPage = new BiometricDetailsPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + biometricDetailsPage = new BiometricDetailsPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + biometricDetailsPage = new BiometricDetailsPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + biometricDetailsPage = new BiometricDetailsPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + biometricDetailsPage = new BiometricDetailsPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + biometricDetailsPage = new BiometricDetailsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + + if ("eng".equalsIgnoreCase(language)) { + applicantBiometricsPage = new ApplicantBiometricsPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + applicantBiometricsPage = new ApplicantBiometricsPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + applicantBiometricsPage = new ApplicantBiometricsPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + applicantBiometricsPage = new ApplicantBiometricsPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + applicantBiometricsPage = new ApplicantBiometricsPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + applicantBiometricsPage = new ApplicantBiometricsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + if (FetchUiSpec.eye.equals("yes")) { + biometricDetailsPage.clickOnIrisScan(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + } + // righthand + if (FetchUiSpec.rightHand.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnRightHandScanIcon(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isRightHandScan(), "Verify if right hand scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + } + // lefthand + if (FetchUiSpec.leftHand.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnLeftHandScanIcon(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isLeftHandScan(), "Verify if Left hand scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + } + // thumb + if (FetchUiSpec.thumb.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + applicantBiometricsPage = biometricDetailsPage.clickOnThumbsScanIcon(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isThumbsScan(), "Verify if thumbs scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); + } + // face + if (FetchUiSpec.face.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + biometricDetailsPage.clickOnFaceScanIcon(); + + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), + "Verify if applicant biometric page is displayed"); + applicantBiometricsPage.clickOnScanButton(); + + assertTrue(applicantBiometricsPage.isFaceScan(), "Verify if face scan 1st attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + applicantBiometricsPage.clickOnBackButton(); + } + + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); + if ("eng".equalsIgnoreCase(language)) { + introducerBiometricPage = new IntroducerBiometricPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + introducerBiometricPage = new IntroducerBiometricPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + introducerBiometricPage = new IntroducerBiometricPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + introducerBiometricPage = new IntroducerBiometricPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + introducerBiometricPage = new IntroducerBiometricPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + introducerBiometricPage = new IntroducerBiometricPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + FetchUiSpec.eye = "no"; + FetchUiSpec.rightHand = "no"; + FetchUiSpec.leftHand = "no"; + FetchUiSpec.thumb = "no"; + FetchUiSpec.face = "no"; + FetchUiSpec.getBiometricDetails("introducerBiometrics"); + if (FetchUiSpec.eye.equals("yes")) { + biometricDetailsPage.clickOnIntroducerIrisScan(); + + introducerBiometricPage.clickOnScanButton(); + + assertTrue(introducerBiometricPage.isIrisScan(), "Verify if iris scan 1st attempt"); + introducerBiometricPage.closeScanCapturePopUp(); + introducerBiometricPage.clickOnNextButton(); + } + // righthand + if (FetchUiSpec.rightHand.equals("yes")) { + assertTrue(introducerBiometricPage.isRightHandScanTitleDisplayed(), + "Verify if right hand scan is displayed"); + introducerBiometricPage.clickOnScanButton(); + + assertTrue(introducerBiometricPage.isRightHandScan(), "Verify if right hand scan 1st attempt"); + introducerBiometricPage.closeScanCapturePopUp(); + introducerBiometricPage.clickOnNextButton(); + } + // lefthand + if (FetchUiSpec.leftHand.equals("yes")) { + assertTrue(introducerBiometricPage.isLeftHandScanTitleDisplayed(), + "Verify if applicant left hand scan title is displayed"); + introducerBiometricPage.clickOnScanButton(); + + assertTrue(introducerBiometricPage.isLeftHandScan(), "Verify if Left hand scan 1st attempt"); + introducerBiometricPage.closeScanCapturePopUp(); + introducerBiometricPage.clickOnNextButton(); + } + // thumb + if (FetchUiSpec.thumb.equals("yes")) { + assertTrue(introducerBiometricPage.isThumbsScanTitleDisplayed(), + "Verify if thumbs scan page is displayed"); + introducerBiometricPage.clickOnScanButton(); + + assertTrue(introducerBiometricPage.isThumbsScan(), "Verify if thumbs scan 1st attempt"); + introducerBiometricPage.closeScanCapturePopUp(); + introducerBiometricPage.clickOnNextButton(); + } + // face + if (FetchUiSpec.face.equals("yes")) { + assertTrue(introducerBiometricPage.isFaceScanTitleDisplayed(), + "Verify if face scan page is displayed"); + introducerBiometricPage.clickOnScanButton(); + + assertTrue(introducerBiometricPage.isFaceScan(), "Verify if face scan 1st attempt"); + introducerBiometricPage.closeScanCapturePopUp(); + biometricDetailsPage = introducerBiometricPage.clickOnNextButton(); + } + + biometricDetailsPage.clickOnContinueButton(); + } + } + if ("eng".equalsIgnoreCase(language)) { + previewPage = new PreviewPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + previewPage = new PreviewPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + previewPage = new PreviewPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + previewPage = new PreviewPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + previewPage = new PreviewPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + previewPage = new PreviewPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + assertTrue(previewPage.isNewRegistrationTitleDisplayed(), "Verify if new Registration title is displayed"); + assertTrue(previewPage.isApplicationIDPreviewPagePageDisplayed(), + "Verify if application ID In PreviewPage is displayed"); + assertTrue(previewPage.isDemographicInformationInPreviewPageDisplayed(), + "Verify if Demographic Information In PreviewPage is displayed"); + assertTrue(previewPage.isDocumentsInformationInPreviewPageDisplayed(), + "Verify if Documents Information In PreviewPage is displayed"); + assertTrue(previewPage.isBiometricsInformationInPreviewPagePageDisplayed(), + "Verify if Biometrics Information In PreviewPage is displayed"); + + String Aid = previewPage.getAID(); + previewPage.clickOnContinueButton(); + if ("eng".equalsIgnoreCase(language)) { + authenticationPage = new AuthenticationPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + authenticationPage = new AuthenticationPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + authenticationPage = new AuthenticationPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + authenticationPage = new AuthenticationPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + authenticationPage = new AuthenticationPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + authenticationPage = new AuthenticationPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + assertTrue(authenticationPage.isAuthenticationPageDisplayed(), + "Verify if authentication details page is displayed"); + + authenticationPage.enterUserName(KeycloakUserManager.moduleSpecificUser); + authenticationPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); + authenticationPage.clickOnAuthenticatenButton(); + if ("eng".equalsIgnoreCase(language)) { + acknowledgementPage = new AcknowledgementPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + acknowledgementPage = new AcknowledgementPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + acknowledgementPage = new AcknowledgementPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + acknowledgementPage = new AcknowledgementPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + acknowledgementPage = new AcknowledgementPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + acknowledgementPage = new AcknowledgementPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(), + "Verify if acknowledgement details page is displayed"); + + acknowledgementPage.clickOnGoToHomeButton(); + + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded after click on cancel button"); + registrationTasksPage.clickOnOperationalTasksTitle(); + if ("eng".equalsIgnoreCase(language)) { + operationalTaskPage = new OperationalTaskPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + operationalTaskPage = new OperationalTaskPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + operationalTaskPage = new OperationalTaskPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + operationalTaskPage = new OperationalTaskPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + operationalTaskPage = new OperationalTaskPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + operationalTaskPage = new OperationalTaskPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); + assertTrue(operationalTaskPage.isPendingApprovalTitleDisplayed(), "Verify if pending approval tite displayed"); + operationalTaskPage.clickPendingApprovalTitle(); + + if ("eng".equalsIgnoreCase(language)) { + pendingApproval = new PendingApprovalEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + pendingApproval = new PendingApprovalHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + pendingApproval = new PendingApprovalFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + pendingApproval = new PendingApprovalKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + pendingApproval = new PendingApprovalTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + pendingApproval = new PendingApprovalArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + pendingApproval.enterAID(Aid); + + pendingApproval.clickOnAID(Aid); + + pendingApproval.clickOnApproveButton(); + pendingApproval.clickOnClosePopUpButton(); + + pendingApproval.clickOnCheckBox(); + + assertTrue(pendingApproval.isAuthenticateButtonEnabled(), + "Verify if authenticate button is enable after selecting packet"); + + boolean isPageDisplayed = false; + for (int i = 0; i < 3; i++) { + pendingApproval.clickOnAuthenticateButton(); + Thread.sleep(2000); + if (pendingApproval.isSupervisorAuthenticationTitleDisplayed()) { + isPageDisplayed = true; + break; + } + } + assertTrue(isPageDisplayed, "Supervisor Authentication page not displayed after retries"); + + assertTrue(pendingApproval.isSupervisorAuthenticationTitleDisplayed(), + "Verify if error empty username submit button enabled"); + + pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser); + pendingApproval.enterPassword(ArcConfigManager.getIAMUsersPassword()); + pendingApproval.clickOnSubmitButton(); + + pendingApproval.clickOnBackButton(); + + operationalTaskPage.clickApplicationUploadTitle(); + if ("eng".equalsIgnoreCase(language)) { + manageApplicationsPage = new ManageApplicationsPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + manageApplicationsPage = new ManageApplicationsPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + manageApplicationsPage = new ManageApplicationsPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + manageApplicationsPage = new ManageApplicationsPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + manageApplicationsPage = new ManageApplicationsPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + manageApplicationsPage = new ManageApplicationsPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), + "Verify if manage Applications Page displayed"); + manageApplicationsPage.enterAID(Aid); + + assertTrue(manageApplicationsPage.isSearchAIDDisplayed(Aid), "Verify if Search Aid should displayed"); + manageApplicationsPage.clickOnSearchCheckBox(); + manageApplicationsPage.clickOnUploadButton(); - assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayeded in Selected language"); } } diff --git a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdultException.java b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdultException.java index 86a138dad..ec656db64 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdultException.java +++ b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdultException.java @@ -47,7 +47,7 @@ import regclient.pages.english.BiometricDetailsPageEnglish; import regclient.pages.english.ConsentPageEnglish; import regclient.pages.english.DemographicDetailsPageEnglish; -import regclient.pages.english.DocumentuploadPageEnglish; +import regclient.pages.english.DocumentUploadPageEnglish; import regclient.pages.english.LoginPageEnglish; import regclient.pages.english.ManageApplicationsPageEnglish; import regclient.pages.english.OperationalTaskPageEnglish; @@ -92,7 +92,7 @@ import regclient.pages.kannada.BiometricDetailsPageKannada; import regclient.pages.kannada.ConsentPageKannada; import regclient.pages.kannada.DemographicDetailsPageKannada; -import regclient.pages.kannada.DocumentuploadPageKannada; +import regclient.pages.kannada.DocumentUploadPageKannada; import regclient.pages.kannada.LoginPageKannada; import regclient.pages.kannada.ManageApplicationsPageKannada; import regclient.pages.kannada.OperationalTaskPageKannada; @@ -107,7 +107,7 @@ import regclient.pages.tamil.BiometricDetailsPageTamil; import regclient.pages.tamil.ConsentPageTamil; import regclient.pages.tamil.DemographicDetailsPageTamil; -import regclient.pages.tamil.DocumentuploadPageTamil; +import regclient.pages.tamil.DocumentUploadPageTamil; import regclient.pages.tamil.LoginPageTamil; import regclient.pages.tamil.ManageApplicationsPageTamil; import regclient.pages.tamil.OperationalTaskPageTamil; @@ -120,7 +120,7 @@ public class NewRegistrationAdultException extends AndroidBaseTest { - @Test + @Test(priority = 0, description = "Verify adult new registration exception") public void newRegistrationAdultException() throws InterruptedException { FetchUiSpec.getUiSpec("newProcess"); FetchUiSpec.getBiometricDetails("individualBiometrics"); @@ -180,6 +180,7 @@ public void newRegistrationAdultException() throws InterruptedException { } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } + registrationTasksPage.handleLocationPermission(); registrationTasksPage.clickOnNewRegistrationButton(); if ("eng".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageEnglish(driver); @@ -242,15 +243,15 @@ public void newRegistrationAdultException() throws InterruptedException { demographicPage.clickOnContinueButton(); } else if (screen.equals("Documents")) { if ("eng".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageEnglish(driver); + documentuploadPage = new DocumentUploadPageEnglish(driver); } else if ("hin".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageHindi(driver); } else if ("fra".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageFrench(driver); } else if ("kan".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageKannada(driver); + documentuploadPage = new DocumentUploadPageKannada(driver); } else if ("tam".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageTamil(driver); + documentuploadPage = new DocumentUploadPageTamil(driver); } else if ("ara".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageArabic(driver); } else { @@ -578,8 +579,7 @@ public void newRegistrationAdultException() throws InterruptedException { break; } } - assertTrue(pendingApproval.isSupervisorAuthenticationTitleDisplayed(), - "Verify if Supervisor Authentication page displayed"); + assertTrue(isPageDisplayed, "Verify if Supervisor Authentication page displayed after retries"); pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser); pendingApproval.enterPassword(ArcConfigManager.getIAMUsersPassword()); @@ -639,9 +639,7 @@ public void newRegistrationAdultException() throws InterruptedException { // display on Profilepage"); profilePage.clickOnLogoutButton(); - profilePage.clickOnLogoutButton(); - - assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayeded in Selected language"); + assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayed in Selected language"); } } diff --git a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationInfant.java b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationInfant.java index eee97b40d..160a7c7f7 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationInfant.java +++ b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationInfant.java @@ -49,7 +49,7 @@ import regclient.pages.english.BiometricDetailsPageEnglish; import regclient.pages.english.ConsentPageEnglish; import regclient.pages.english.DemographicDetailsPageEnglish; -import regclient.pages.english.DocumentuploadPageEnglish; +import regclient.pages.english.DocumentUploadPageEnglish; import regclient.pages.english.IntroducerBiometricPageEnglish; import regclient.pages.english.LoginPageEnglish; import regclient.pages.english.ManageApplicationsPageEnglish; @@ -97,7 +97,7 @@ import regclient.pages.kannada.BiometricDetailsPageKannada; import regclient.pages.kannada.ConsentPageKannada; import regclient.pages.kannada.DemographicDetailsPageKannada; -import regclient.pages.kannada.DocumentuploadPageKannada; +import regclient.pages.kannada.DocumentUploadPageKannada; import regclient.pages.kannada.IntroducerBiometricPageKannada; import regclient.pages.kannada.LoginPageKannada; import regclient.pages.kannada.ManageApplicationsPageKannada; @@ -113,7 +113,7 @@ import regclient.pages.tamil.BiometricDetailsPageTamil; import regclient.pages.tamil.ConsentPageTamil; import regclient.pages.tamil.DemographicDetailsPageTamil; -import regclient.pages.tamil.DocumentuploadPageTamil; +import regclient.pages.tamil.DocumentUploadPageTamil; import regclient.pages.tamil.IntroducerBiometricPageTamil; import regclient.pages.tamil.LoginPageTamil; import regclient.pages.tamil.ManageApplicationsPageTamil; @@ -127,7 +127,7 @@ public class NewRegistrationInfant extends AndroidBaseTest { - @Test + @Test(priority = 0, description = "Verify infant new registration") public void newRegistrationInfant() throws InterruptedException { FetchUiSpec.getUiSpec("newProcess"); FetchUiSpec.getBiometricDetails("individualBiometrics"); @@ -189,6 +189,7 @@ public void newRegistrationInfant() throws InterruptedException { } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } + registrationTasksPage.handleLocationPermission(); assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnNewRegistrationButton(); @@ -253,15 +254,15 @@ public void newRegistrationInfant() throws InterruptedException { demographicPage.clickOnContinueButton(); } else if (screen.equals("Documents")) { if ("eng".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageEnglish(driver); + documentuploadPage = new DocumentUploadPageEnglish(driver); } else if ("hin".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageHindi(driver); } else if ("fra".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageFrench(driver); } else if ("kan".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageKannada(driver); + documentuploadPage = new DocumentUploadPageKannada(driver); } else if ("tam".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageTamil(driver); + documentuploadPage = new DocumentUploadPageTamil(driver); } else if ("ara".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageArabic(driver); } else { @@ -388,7 +389,8 @@ public void newRegistrationInfant() throws InterruptedException { // face if (FetchUiSpec.face.equals("yes")) { introducerBiometricPage.clickOnScanButton(); - + assertTrue(introducerBiometricPage.isFaceScan(), "Verify if Face scan 1st attempt"); + introducerBiometricPage.closeScanCapturePopUp(); assertTrue(introducerBiometricPage.isNextButtonDisplayed(), "Verify if next button displayed"); introducerBiometricPage.clickOnNextButton(); @@ -555,9 +557,6 @@ public void newRegistrationInfant() throws InterruptedException { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } profilePage.clickOnLogoutButton(); - - profilePage.clickOnLogoutButton(); - assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayeded in Selected language"); } diff --git a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinor.java b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinor.java index 36053d3b7..b1935f574 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinor.java +++ b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinor.java @@ -37,7 +37,7 @@ import regclient.pages.arabic.BiometricDetailsPageArabic; import regclient.pages.english.ConsentPageEnglish; import regclient.pages.english.DemographicDetailsPageEnglish; -import regclient.pages.english.DocumentuploadPageEnglish; +import regclient.pages.english.DocumentUploadPageEnglish; import regclient.pages.english.IntroducerBiometricPageEnglish; import regclient.pages.arabic.DemographicDetailsPageArabic; import regclient.pages.arabic.DocumentUploadPageArabic; @@ -97,7 +97,7 @@ import regclient.pages.kannada.BiometricDetailsPageKannada; import regclient.pages.kannada.ConsentPageKannada; import regclient.pages.kannada.DemographicDetailsPageKannada; -import regclient.pages.kannada.DocumentuploadPageKannada; +import regclient.pages.kannada.DocumentUploadPageKannada; import regclient.pages.kannada.IntroducerBiometricPageKannada; import regclient.pages.kannada.LoginPageKannada; import regclient.pages.kannada.ManageApplicationsPageKannada; @@ -113,7 +113,7 @@ import regclient.pages.tamil.BiometricDetailsPageTamil; import regclient.pages.tamil.ConsentPageTamil; import regclient.pages.tamil.DemographicDetailsPageTamil; -import regclient.pages.tamil.DocumentuploadPageTamil; +import regclient.pages.tamil.DocumentUploadPageTamil; import regclient.pages.tamil.IntroducerBiometricPageTamil; import regclient.pages.tamil.LoginPageTamil; import regclient.pages.tamil.ManageApplicationsPageTamil; @@ -127,7 +127,7 @@ public class NewRegistrationMinor extends AndroidBaseTest { - @Test + @Test(priority = 0, description = "Verify minor new registration") public void newRegistrationMinor() throws InterruptedException { FetchUiSpec.getUiSpec("newProcess"); FetchUiSpec.getBiometricDetails("individualBiometrics"); @@ -188,7 +188,7 @@ public void newRegistrationMinor() throws InterruptedException { } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } - + registrationTasksPage.handleLocationPermission(); registrationTasksPage.clickOnNewRegistrationButton(); if ("eng".equalsIgnoreCase(language)) { selectLanguagePage = new SelectLanguagePageEnglish(driver); @@ -251,15 +251,15 @@ public void newRegistrationMinor() throws InterruptedException { demographicPage.clickOnContinueButton(); } else if (screen.equals("Documents")) { if ("eng".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageEnglish(driver); + documentuploadPage = new DocumentUploadPageEnglish(driver); } else if ("hin".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageHindi(driver); } else if ("fra".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageFrench(driver); } else if ("kan".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageKannada(driver); + documentuploadPage = new DocumentUploadPageKannada(driver); } else if ("tam".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageTamil(driver); + documentuploadPage = new DocumentUploadPageTamil(driver); } else if ("ara".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageArabic(driver); } else { @@ -393,8 +393,7 @@ public void newRegistrationMinor() throws InterruptedException { FetchUiSpec.getBiometricDetails("introducerBiometrics"); if (FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIntroducerIrisScan(); - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), - "Verify if introducer biometric page is displayed"); + introducerBiometricPage.clickOnScanButton(); assertTrue(introducerBiometricPage.isIrisScan(), "Verify if iris scan 1st attempt"); @@ -403,12 +402,6 @@ public void newRegistrationMinor() throws InterruptedException { } // righthand if (FetchUiSpec.rightHand.equals("yes")) { - if (!FetchUiSpec.eye.equals("yes")) { - biometricDetailsPage.clickOnIntroducerRightHandScan(); - } - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), - "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isRightHandScanTitleDisplayed(), "Verify if right hand scan is displayed"); introducerBiometricPage.clickOnScanButton(); @@ -419,9 +412,6 @@ public void newRegistrationMinor() throws InterruptedException { } // lefthand if (FetchUiSpec.leftHand.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), - "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isLeftHandScanTitleDisplayed(), "Verify if applicant left hand scan title is displayed"); introducerBiometricPage.clickOnScanButton(); @@ -432,9 +422,6 @@ public void newRegistrationMinor() throws InterruptedException { } // thumb if (FetchUiSpec.thumb.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), - "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isThumbsScanTitleDisplayed(), "Verify if thumbs scan page is displayed"); introducerBiometricPage.clickOnScanButton(); @@ -445,9 +432,6 @@ public void newRegistrationMinor() throws InterruptedException { } // face if (FetchUiSpec.face.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), - "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isFaceScanTitleDisplayed(), "Verify if face scan page is displayed"); introducerBiometricPage.clickOnScanButton(); @@ -616,8 +600,6 @@ public void newRegistrationMinor() throws InterruptedException { } profilePage.clickOnLogoutButton(); - profilePage.clickOnLogoutButton(); - assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayed in Selected language"); } diff --git a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinorException.java b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinorException.java index 26cf6d8a7..d9df66ef2 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinorException.java +++ b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationMinorException.java @@ -51,7 +51,7 @@ import regclient.pages.english.BiometricDetailsPageEnglish; import regclient.pages.english.ConsentPageEnglish; import regclient.pages.english.DemographicDetailsPageEnglish; -import regclient.pages.english.DocumentuploadPageEnglish; +import regclient.pages.english.DocumentUploadPageEnglish; import regclient.pages.english.IntroducerBiometricPageEnglish; import regclient.pages.english.LoginPageEnglish; import regclient.pages.english.ManageApplicationsPageEnglish; @@ -99,7 +99,7 @@ import regclient.pages.kannada.BiometricDetailsPageKannada; import regclient.pages.kannada.ConsentPageKannada; import regclient.pages.kannada.DemographicDetailsPageKannada; -import regclient.pages.kannada.DocumentuploadPageKannada; +import regclient.pages.kannada.DocumentUploadPageKannada; import regclient.pages.kannada.IntroducerBiometricPageKannada; import regclient.pages.kannada.LoginPageKannada; import regclient.pages.kannada.ManageApplicationsPageKannada; @@ -115,7 +115,7 @@ import regclient.pages.tamil.BiometricDetailsPageTamil; import regclient.pages.tamil.ConsentPageTamil; import regclient.pages.tamil.DemographicDetailsPageTamil; -import regclient.pages.tamil.DocumentuploadPageTamil; +import regclient.pages.tamil.DocumentUploadPageTamil; import regclient.pages.tamil.IntroducerBiometricPageTamil; import regclient.pages.tamil.LoginPageTamil; import regclient.pages.tamil.ManageApplicationsPageTamil; @@ -129,7 +129,7 @@ public class NewRegistrationMinorException extends AndroidBaseTest { - @Test + @Test(priority = 0, description = "Verify minor new registration exception") public void newRegistrationMinorException() throws InterruptedException { FetchUiSpec.getUiSpec("newProcess"); FetchUiSpec.getBiometricDetails("individualBiometrics"); @@ -190,6 +190,7 @@ public void newRegistrationMinorException() throws InterruptedException { } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } + registrationTasksPage.handleLocationPermission(); assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnNewRegistrationButton(); @@ -262,15 +263,15 @@ public void newRegistrationMinorException() throws InterruptedException { demographicPage.clickOnContinueButton(); } else if (screen.equals("Documents")) { if ("eng".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageEnglish(driver); + documentuploadPage = new DocumentUploadPageEnglish(driver); } else if ("hin".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageHindi(driver); } else if ("fra".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageFrench(driver); } else if ("kan".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageKannada(driver); + documentuploadPage = new DocumentUploadPageKannada(driver); } else if ("tam".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageTamil(driver); + documentuploadPage = new DocumentUploadPageTamil(driver); } else if ("ara".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageArabic(driver); } else { @@ -729,9 +730,7 @@ public void newRegistrationMinorException() throws InterruptedException { } profilePage.clickOnLogoutButton(); - profilePage.clickOnLogoutButton(); - - assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayeded in Selected language"); + assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayed in Selected language"); } } diff --git a/ui-test/src/main/java/regclient/androidTestCases/PreRegFetchingPacket.java b/ui-test/src/main/java/regclient/androidTestCases/PreRegFetchingPacket.java index 5aa580674..202c1e15b 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/PreRegFetchingPacket.java +++ b/ui-test/src/main/java/regclient/androidTestCases/PreRegFetchingPacket.java @@ -51,7 +51,7 @@ import regclient.pages.english.BiometricDetailsPageEnglish; import regclient.pages.english.ConsentPageEnglish; import regclient.pages.english.DemographicDetailsPageEnglish; -import regclient.pages.english.DocumentuploadPageEnglish; +import regclient.pages.english.DocumentUploadPageEnglish; import regclient.pages.english.IntroducerBiometricPageEnglish; import regclient.pages.english.LoginPageEnglish; import regclient.pages.english.ManageApplicationsPageEnglish; @@ -99,7 +99,7 @@ import regclient.pages.kannada.BiometricDetailsPageKannada; import regclient.pages.kannada.ConsentPageKannada; import regclient.pages.kannada.DemographicDetailsPageKannada; -import regclient.pages.kannada.DocumentuploadPageKannada; +import regclient.pages.kannada.DocumentUploadPageKannada; import regclient.pages.kannada.IntroducerBiometricPageKannada; import regclient.pages.kannada.LoginPageKannada; import regclient.pages.kannada.ManageApplicationsPageKannada; @@ -115,7 +115,7 @@ import regclient.pages.tamil.BiometricDetailsPageTamil; import regclient.pages.tamil.ConsentPageTamil; import regclient.pages.tamil.DemographicDetailsPageTamil; -import regclient.pages.tamil.DocumentuploadPageTamil; +import regclient.pages.tamil.DocumentUploadPageTamil; import regclient.pages.tamil.IntroducerBiometricPageTamil; import regclient.pages.tamil.LoginPageTamil; import regclient.pages.tamil.ManageApplicationsPageTamil; @@ -129,7 +129,7 @@ public class PreRegFetchingPacket extends AndroidBaseTest { - @Test + @Test(priority = 0, description = "Verify adult pre-reg fetching registration") public void adultPreRegFetching() throws InterruptedException { BasePage.disableAutoRotation(); FetchUiSpec.getUiSpec("newProcess"); @@ -191,6 +191,7 @@ public void adultPreRegFetching() throws InterruptedException { } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } + registrationTasksPage.handleLocationPermission(); assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnNewRegistrationButton(); @@ -262,22 +263,22 @@ public void adultPreRegFetching() throws InterruptedException { demographicPage.fetchPreregApplicationId("adult"); - demographicPage.validateFetchedDemographicData(); +// demographicPage.validateFetchedDemographicData(); demographicPage.fillRemainDemographicDetailsPage("adult"); demographicPage.clickOnContinueButton(); } else if (screen.equals("Documents")) { if ("eng".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageEnglish(driver); + documentuploadPage = new DocumentUploadPageEnglish(driver); } else if ("hin".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageHindi(driver); } else if ("fra".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageFrench(driver); } else if ("kan".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageKannada(driver); + documentuploadPage = new DocumentUploadPageKannada(driver); } else if ("tam".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageTamil(driver); + documentuploadPage = new DocumentUploadPageTamil(driver); } else if ("ara".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageArabic(driver); } else { @@ -324,59 +325,78 @@ public void adultPreRegFetching() throws InterruptedException { if (FetchUiSpec.eye.equals("yes")) { biometricDetailsPage.clickOnIrisScan(); + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), + "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); - applicantBiometricsPage.closeScanCapturePopUp(); - - applicantBiometricsPage.clickOnScanButton(); - applicantBiometricsPage.closeScanCapturePopUp(); - - applicantBiometricsPage.clickOnScanButton(); + assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); } // righthand if (FetchUiSpec.rightHand.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); applicantBiometricsPage = biometricDetailsPage.clickOnRightHandScanIcon(); + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), + "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); + assertTrue(applicantBiometricsPage.isRightHandScan(), "Verify if right hand scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); } // lefthand if (FetchUiSpec.leftHand.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); applicantBiometricsPage = biometricDetailsPage.clickOnLeftHandScanIcon(); + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), + "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); + assertTrue(applicantBiometricsPage.isLeftHandScan(), "Verify if Left hand scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); } // thumb if (FetchUiSpec.thumb.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); applicantBiometricsPage = biometricDetailsPage.clickOnThumbsScanIcon(); + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), + "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); + assertTrue(applicantBiometricsPage.isThumbsScan(), "Verify if thumbs scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); + biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); } // face if (FetchUiSpec.face.equals("yes")) { + assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), + "Verify if biometric details page is displayed"); biometricDetailsPage.clickOnFaceScanIcon(); + assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), + "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); - + assertTrue(applicantBiometricsPage.isFaceScan(), "Verify if face scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); + applicantBiometricsPage.clickOnBackButton(); } assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), "Verify if biometric details page is displayed"); biometricDetailsPage.clickOnContinueButton(); } - } if ("eng".equalsIgnoreCase(language)) { previewPage = new PreviewPageEnglish(driver); @@ -500,11 +520,12 @@ public void adultPreRegFetching() throws InterruptedException { pendingApproval.selectLatestAIdCheckBox(); - assertTrue(pendingApproval.isSubmitButtonEnabled(), "Verify if submit button is enable after selecting packet"); + assertTrue(pendingApproval.isAuthenticateButtonEnabled(), + "Verify if authenticate button is enable after selecting packet"); boolean isPageDisplayed = false; for (int i = 0; i < 3; i++) { - pendingApproval.clickOnSubmitButton(); + pendingApproval.clickOnAuthenticateButton(); Thread.sleep(2000); if (pendingApproval.isSupervisorAuthenticationTitleDisplayed()) { isPageDisplayed = true; @@ -513,14 +534,6 @@ public void adultPreRegFetching() throws InterruptedException { } assertTrue(isPageDisplayed, "Supervisor Authentication page not displayed after retries"); - pendingApproval.clickOnSubmitButton(); - assertTrue(pendingApproval.isInvalidemptyUsernameSumbitButtonEnbled(), - "Verify if error empty username submit button enabled"); - - pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser + "123"); - - assertTrue(pendingApproval.isInvalidUsernameMessageDisplayed(), - "Verify if invalid username messgae is displayed"); pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser); pendingApproval.enterPassword(ArcConfigManager.getIAMUsersPassword()); @@ -547,9 +560,6 @@ public void adultPreRegFetching() throws InterruptedException { } assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), "Verify if manage Applications Page displayed"); - manageApplicationsPage.enterWrongAID(Aid + 123); - - assertTrue(manageApplicationsPage.isZeroApplicationDisplayed(), "Verify if wrong Aid should not display"); manageApplicationsPage.selectLatestAidCheckBox(); for (int i = 0; i < 3; i++) { @@ -578,15 +588,13 @@ public void adultPreRegFetching() throws InterruptedException { } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } - - profilePage.clickOnLogoutButton(); - profilePage.clickOnLogoutButton(); assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayeded in Selected language"); + } - @Test + @Test(priority = 1, description = "Verify minor pre-reg fetching registration") public void minorPreRegFetching() throws InterruptedException { BasePage.disableAutoRotation(); @@ -652,6 +660,7 @@ public void minorPreRegFetching() throws InterruptedException { } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } + registrationTasksPage.handleLocationPermission(); assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnNewRegistrationButton(); @@ -735,15 +744,15 @@ public void minorPreRegFetching() throws InterruptedException { } else if (screen.equals("Documents")) { if ("eng".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageEnglish(driver); + documentuploadPage = new DocumentUploadPageEnglish(driver); } else if ("hin".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageHindi(driver); } else if ("fra".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageFrench(driver); } else if ("kan".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageKannada(driver); + documentuploadPage = new DocumentUploadPageKannada(driver); } else if ("tam".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageTamil(driver); + documentuploadPage = new DocumentUploadPageTamil(driver); } else if ("ara".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageArabic(driver); } else { @@ -950,7 +959,6 @@ public void minorPreRegFetching() throws InterruptedException { biometricDetailsPage.clickOnContinueButton(); } - } if ("eng".equalsIgnoreCase(language)) { @@ -1071,11 +1079,12 @@ public void minorPreRegFetching() throws InterruptedException { pendingApproval.selectLatestAIdCheckBox(); - assertTrue(pendingApproval.isSubmitButtonEnabled(), "Verify if submit button is enable after selecting packet"); + assertTrue(pendingApproval.isAuthenticateButtonEnabled(), + "Verify if authenticate button is enable after selecting packet"); boolean isPageDisplayed = false; for (int i = 0; i < 3; i++) { - pendingApproval.clickOnSubmitButton(); + pendingApproval.clickOnAuthenticateButton(); Thread.sleep(2000); if (pendingApproval.isSupervisorAuthenticationTitleDisplayed()) { isPageDisplayed = true; @@ -1084,14 +1093,6 @@ public void minorPreRegFetching() throws InterruptedException { } assertTrue(isPageDisplayed, "Supervisor Authentication page not displayed after retries"); - pendingApproval.clickOnSubmitButton(); - assertTrue(pendingApproval.isInvalidemptyUsernameSumbitButtonEnbled(), - "Verify if error empty username submit button enabled"); - - pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser + "123"); - - assertTrue(pendingApproval.isInvalidUsernameMessageDisplayed(), - "Verify if invalid username messgae is displayed"); pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser); pendingApproval.enterPassword(ArcConfigManager.getIAMUsersPassword()); @@ -1118,9 +1119,6 @@ public void minorPreRegFetching() throws InterruptedException { } assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), "Verify if manage Applications Page displayed"); - manageApplicationsPage.enterWrongAID(Aid + 123); - - assertTrue(manageApplicationsPage.isZeroApplicationDisplayed(), "Verify if wrong Aid should not display"); manageApplicationsPage.selectLatestAidCheckBox(); for (int i = 0; i < 3; i++) { @@ -1149,17 +1147,13 @@ public void minorPreRegFetching() throws InterruptedException { } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } - // assertTrue(profilePage.isProfileTitleDisplayed(),"Verify if profile title - // display on Profilepage"); - profilePage.clickOnLogoutButton(); - profilePage.clickOnLogoutButton(); assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayeded in Selected language"); - + } - @Test + @Test(priority = 2, description = "Verify infant pre-reg fetching registration") public void infantPreRegFetching() throws InterruptedException { BasePage.disableAutoRotation(); @@ -1225,6 +1219,7 @@ public void infantPreRegFetching() throws InterruptedException { } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } + registrationTasksPage.handleLocationPermission(); assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnNewRegistrationButton(); @@ -1308,15 +1303,15 @@ public void infantPreRegFetching() throws InterruptedException { } else if (screen.equals("Documents")) { if ("eng".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageEnglish(driver); + documentuploadPage = new DocumentUploadPageEnglish(driver); } else if ("hin".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageHindi(driver); } else if ("fra".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageFrench(driver); } else if ("kan".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageKannada(driver); + documentuploadPage = new DocumentUploadPageKannada(driver); } else if ("tam".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageTamil(driver); + documentuploadPage = new DocumentUploadPageTamil(driver); } else if ("ara".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageArabic(driver); } else { @@ -1366,7 +1361,6 @@ public void infantPreRegFetching() throws InterruptedException { assertTrue(applicantBiometricsPage.isFaceScan(), "Verify if face captured and 2 attempts left text is displayed"); applicantBiometricsPage.closeScanCapturePopUp(); - ; biometricDetailsPage = applicantBiometricsPage.clickOnNextButton(); assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), @@ -1575,11 +1569,12 @@ public void infantPreRegFetching() throws InterruptedException { pendingApproval.selectLatestAIdCheckBox(); - assertTrue(pendingApproval.isSubmitButtonEnabled(), "Verify if submit button is enable after selecting packet"); + assertTrue(pendingApproval.isAuthenticateButtonEnabled(), + "Verify if authenticate button is enable after selecting packet"); boolean isPageDisplayed = false; for (int i = 0; i < 3; i++) { - pendingApproval.clickOnSubmitButton(); + pendingApproval.clickOnAuthenticateButton(); Thread.sleep(2000); if (pendingApproval.isSupervisorAuthenticationTitleDisplayed()) { isPageDisplayed = true; @@ -1644,8 +1639,6 @@ public void infantPreRegFetching() throws InterruptedException { } profilePage.clickOnLogoutButton(); - profilePage.clickOnLogoutButton(); - assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayeded in Selected language"); } diff --git a/ui-test/src/main/java/regclient/androidTestCases/ResetPassword.java b/ui-test/src/main/java/regclient/androidTestCases/ResetPassword.java index adfb4e115..e86741fff 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/ResetPassword.java +++ b/ui-test/src/main/java/regclient/androidTestCases/ResetPassword.java @@ -35,7 +35,7 @@ public class ResetPassword extends AndroidBaseTest { @SuppressWarnings("null") - @Test(priority = 1) + @Test(priority = 0, description = "Verify reset password") public void resetPassword() throws IOException { BasePage.disableAutoRotation(); LoginPage loginPage = null; @@ -83,6 +83,7 @@ public void resetPassword() throws IOException { } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } + registrationTasksPage.handleLocationPermission(); assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickSynchronizeDataButton(); @@ -107,16 +108,13 @@ public void resetPassword() throws IOException { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } profilePage.clickOnLogoutButton(); - profilePage.clickOnLogoutButton(); assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayeded in Selected language"); - loginPage.enterUserName(KeycloakUserManager.onboardUser); + loginPage.enterUserName(KeycloakUserManager.onlyOperatorRoleUser); loginPage.clickOnNextButton(); loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); loginPage.clickOnloginButton(); - loginPage.clickOnSkipToHomeButton(); - assertTrue(registrationTasksPage.isProfileTitleDisplayed(), "Verify if profile title display on homepage"); registrationTasksPage.clickProfileButton(); @@ -139,27 +137,21 @@ public void resetPassword() throws IOException { } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } + + keycloakPage = new KeycloakPage(driver); - assertTrue(keycloakPage.openKeycloakWebView(), "Verify if keycloak login page displayed"); - - keycloakPage.enterUserName(KeycloakUserManager.onboardUser); - +// assertTrue(keycloakPage.openKeycloakWebView(), "Verify if keycloak login page displayed"); + keycloakPage.enterUserName(KeycloakUserManager.onlyOperatorRoleUser); keycloakPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); - keycloakPage.clickOnLoginButton(); assertTrue(keycloakPage.openKeycloakPassword(), "Verify if keycloak login page displayed"); - keycloakPage.clickOnPasswordOption(); keycloakPage.enterExistPassword(ArcConfigManager.getIAMUsersPassword()); - keycloakPage.enterNewPassword(ArcConfigManager.getIAMUsersPassword() + "121"); - keycloakPage.enterConfirmPassword(ArcConfigManager.getIAMUsersPassword() + "121"); - keycloakPage.clickOnSaveButton(); - assertTrue(keycloakPage.isPasswordUpdatedMessageDisplayed(), "Verify if password updated message displayed in keycloak page"); @@ -172,7 +164,7 @@ public void resetPassword() throws IOException { BasePage.disableWifiAndData(); // Try to login using new password in offline mode. - loginPage.enterUserName(KeycloakUserManager.onboardUser); + loginPage.enterUserName(KeycloakUserManager.onlyOperatorRoleUser); loginPage.clickOnNextButton(); loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword() + "121"); @@ -184,49 +176,167 @@ public void resetPassword() throws IOException { loginPage.clickOnBackButton(); // Try to login using old password in offline mode. - loginPage.enterUserName(KeycloakUserManager.onboardUser); + loginPage.enterUserName(KeycloakUserManager.onlyOperatorRoleUser); loginPage.clickOnNextButton(); loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); loginPage.clickOnloginButton(); - loginPage.clickOnSkipToHomeButton(); registrationTasksPage.clickProfileButton(); profilePage.clickOnLogoutButton(); BasePage.enableWifiAndData(); // Try to login using new password in online mode. - loginPage.enterUserName(KeycloakUserManager.onboardUser); + loginPage.enterUserName(KeycloakUserManager.onlyOperatorRoleUser); loginPage.clickOnNextButton(); loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword() + "121"); loginPage.clickOnloginButton(); - loginPage.clickOnSkipToHomeButton(); registrationTasksPage.clickProfileButton(); profilePage.clickOnLogoutButton(); BasePage.disableWifiAndData(); // Try to login using new password in offline mode. - loginPage.enterUserName(KeycloakUserManager.onboardUser); + loginPage.enterUserName(KeycloakUserManager.onlyOperatorRoleUser); loginPage.clickOnNextButton(); loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword() + "121"); loginPage.clickOnloginButton(); - loginPage.clickOnSkipToHomeButton(); registrationTasksPage.clickProfileButton(); profilePage.clickOnLogoutButton(); // Try to login using old password in offline mode. - loginPage.enterUserName(KeycloakUserManager.onboardUser); + loginPage.enterUserName(KeycloakUserManager.onlyOperatorRoleUser); loginPage.clickOnNextButton(); loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); loginPage.clickOnloginButton(); assertTrue(loginPage.isPasswordIncorrectErrorMessageDisplayed(), "verify if error message should be displayeded as password incorrect!"); + BasePage.enableWifiAndData(); } + + @SuppressWarnings("null") + @Test(priority = 1, description = "Reset to default password") + public void resetToDefaultPassword() throws IOException { + BasePage.disableAutoRotation(); + LoginPage loginPage = null; + RegistrationTasksPage registrationTasksPage = null; + ProfilePage profilePage = null; + KeycloakPage keycloakPage = null; + + final String language = TestDataReader.readData("language"); + + if ("eng".equalsIgnoreCase(language)) { + loginPage = new LoginPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + loginPage = new LoginPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + loginPage = new LoginPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + loginPage = new LoginPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + loginPage = new LoginPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + loginPage = new LoginPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + loginPage.selectLanguage(); + + loginPage.enterUserName(KeycloakUserManager.moduleSpecificUser); + loginPage.clickOnNextButton(); + loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); + loginPage.clickOnloginButton(); + + if ("eng".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + registrationTasksPage.clickSynchronizeDataButton(); + registrationTasksPage.clickProfileButton(); + + if ("eng".equalsIgnoreCase(language)) { + profilePage = new ProfilePageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + profilePage = new ProfilePageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + profilePage = new ProfilePageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + profilePage = new ProfilePageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + profilePage = new ProfilePageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + profilePage = new ProfilePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + profilePage.clickOnLogoutButton(); + assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayeded in Selected language"); + loginPage.enterUserName(KeycloakUserManager.onlyOperatorRoleUser); + loginPage.clickOnNextButton(); + + loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword() + "121"); + loginPage.clickOnloginButton(); + + assertTrue(registrationTasksPage.isProfileTitleDisplayed(), "Verify if profile title display on homepage"); + registrationTasksPage.clickProfileButton(); + + assertTrue(profilePage.isResetPasswordButtonDisplayed(), + "Verify if reset password button displayed in profile page"); + profilePage.clickOnResetPasswordButton(); + + if ("eng".equalsIgnoreCase(language)) { + profilePage = new ProfilePageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + profilePage = new ProfilePageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + profilePage = new ProfilePageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + profilePage = new ProfilePageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + profilePage = new ProfilePageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + profilePage = new ProfilePageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + + keycloakPage = new KeycloakPage(driver); + assertTrue(keycloakPage.openKeycloakWebView(), "Verify if keycloak login page displayed"); + keycloakPage.enterUserName(KeycloakUserManager.onlyOperatorRoleUser); + keycloakPage.enterPassword(ArcConfigManager.getIAMUsersPassword() + "121"); + keycloakPage.clickOnLoginButton(); + + assertTrue(keycloakPage.openKeycloakPassword(), "Verify if keycloak login page displayed"); + + keycloakPage.clickOnPasswordOption(); + keycloakPage.enterExistPassword(ArcConfigManager.getIAMUsersPassword() + "121"); + keycloakPage.enterNewPassword(ArcConfigManager.getIAMUsersPassword()); + keycloakPage.enterConfirmPassword(ArcConfigManager.getIAMUsersPassword()); + keycloakPage.clickOnSaveButton(); + assertTrue(keycloakPage.isPasswordUpdatedMessageDisplayed(), + "Verify if password updated message displayed in keycloak page"); + + keycloakPage.clickOnSignoutButton(); + assertTrue(keycloakPage.resumeArcApplication(), "Verify if logout displayed in profile page"); + profilePage.clickOnLogoutButton(); + } } diff --git a/ui-test/src/main/java/regclient/androidTestCases/Settings.java b/ui-test/src/main/java/regclient/androidTestCases/Settings.java index 7238d8545..a15757787 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/Settings.java +++ b/ui-test/src/main/java/regclient/androidTestCases/Settings.java @@ -12,45 +12,60 @@ import regclient.page.BasePage; import regclient.page.LoginPage; import regclient.page.MockSBIPage; +import regclient.page.OperationalTaskPage; import regclient.page.ProfilePage; import regclient.page.RegistrationTasksPage; import regclient.page.SettingsPage; +import regclient.page.UpdateOperatorBiometricspage; import regclient.pages.arabic.LoginPageArabic; +import regclient.pages.arabic.OperationalTaskPageArabic; import regclient.pages.arabic.ProfilePageArabic; import regclient.pages.arabic.RegistrationTasksPageArabic; import regclient.pages.arabic.SettingsPageArabic; +import regclient.pages.arabic.UpdateOperatorBiometricspageArabic; import regclient.pages.english.LoginPageEnglish; +import regclient.pages.english.OperationalTaskPageEnglish; import regclient.pages.english.ProfilePageEnglish; import regclient.pages.english.RegistrationTasksPageEnglish; import regclient.pages.english.SettingsPageEnglish; +import regclient.pages.english.UpdateOperatorBiometricspageEnglish; import regclient.pages.french.LoginPageFrench; +import regclient.pages.french.OperationalTaskPageFrench; import regclient.pages.french.ProfilePageFrench; import regclient.pages.french.RegistrationTasksPageFrench; import regclient.pages.french.SettingsPageFrench; +import regclient.pages.french.UpdateOperatorBiometricspageFrench; import regclient.pages.hindi.LoginPageHindi; +import regclient.pages.hindi.OperationalTaskPageHindi; import regclient.pages.hindi.ProfilePageHindi; import regclient.pages.hindi.RegistrationTasksPageHindi; import regclient.pages.hindi.SettingsPageHindi; +import regclient.pages.hindi.UpdateOperatorBiometricspageHindi; import regclient.pages.kannada.LoginPageKannada; +import regclient.pages.kannada.OperationalTaskPageKannada; import regclient.pages.kannada.ProfilePageKannada; import regclient.pages.kannada.RegistrationTasksPageKannada; import regclient.pages.kannada.SettingsPageKannada; +import regclient.pages.kannada.UpdateOperatorBiometricspageKannada; import regclient.pages.tamil.LoginPageTamil; +import regclient.pages.tamil.OperationalTaskPageTamil; import regclient.pages.tamil.ProfilePageTamil; import regclient.pages.tamil.RegistrationTasksPageTamil; import regclient.pages.tamil.SettingsPageTamil; +import regclient.pages.tamil.UpdateOperatorBiometricspageTamil; import regclient.utils.TestDataReader; public class Settings extends AndroidBaseTest { - @SuppressWarnings("null") - @Test + @Test(priority = 0, description = "Verify machine settings functionality") public void settings() throws InterruptedException { BasePage.disableAutoRotation(); LoginPage loginPage = null; RegistrationTasksPage registrationTasksPage = null; SettingsPage settingsPage = null; + OperationalTaskPage operationalTaskPage = null; + UpdateOperatorBiometricspage UpdateOperatorBiometricspage = null; final String language = TestDataReader.readData("language"); if ("eng".equalsIgnoreCase(language)) { @@ -93,8 +108,12 @@ public void settings() throws InterruptedException { } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } + registrationTasksPage.handleLocationPermission(); assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); + + assertTrue(registrationTasksPage.isSettingsButtonDisplayed(), "Verify if settings button displayed"); + registrationTasksPage.clickOnSettingsButton(); if ("eng".equalsIgnoreCase(language)) { @@ -163,26 +182,21 @@ public void settings() throws InterruptedException { assertTrue(settingsPage.isScanNowButtonDisplayed(), "Verify if scan now button displayed"); - // Verify Global config Settings Tab - -// settingsPage.clickOnGlobalConfigSettingsTab(); -// -// assertTrue(settingsPage.isGlobalConfigSettingsHeaderDisplayed(), -// "Verify if global config settings header Displayed"); -// -// settingsPage.clickOnSubmitButton(); -// -// assertTrue(settingsPage.isSubmitChangesPopupDisplayed(), "Verify if no changes to save Displayed"); -// -// settingsPage.clickOnChangesConfirmButton(); -// -// assertTrue(settingsPage.isNoChangesToSaveDisplayed(), "Verify if no changes to save Displayed"); -// -// settingsPage.clickOnSubmitButton(); -// - // Verify Scheduled Job Settings Tab -// settingsPage.clickOnScheduledJobsSettingsTab(); +// Verify Scheduled Job Settings Tab + settingsPage.clickOnScheduledJobsSettingsTab(); + + assertTrue(settingsPage.isScheduledJobSettingsPageHeaderDisplayed(), + "Verify if scheduled job settings header Displayed"); + + assertTrue(settingsPage.isMasterDataSyncCardDisplayed(), "Verify if Masterdata Sync Card Displayed"); + + assertTrue(settingsPage.validateJobCardFields("Master Data Sync"), "Validate job card fields"); + + settingsPage.clickOnMasterDataSyncButton(); + +// assertTrue(settingsPage.isToastVisible("Master Data Sync Completed"), "Toast not found!"); } + } diff --git a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUINUpdateDemographicDetails.java b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUINUpdateDemographicDetails.java index dff2bb49e..4e2b6a57e 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUINUpdateDemographicDetails.java +++ b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUINUpdateDemographicDetails.java @@ -50,7 +50,7 @@ import regclient.pages.english.BiometricDetailsPageEnglish; import regclient.pages.english.ConsentPageEnglish; import regclient.pages.english.DemographicDetailsPageEnglish; -import regclient.pages.english.DocumentuploadPageEnglish; +import regclient.pages.english.DocumentUploadPageEnglish; import regclient.pages.english.LoginPageEnglish; import regclient.pages.english.ManageApplicationsPageEnglish; import regclient.pages.english.OperationalTaskPageEnglish; @@ -98,7 +98,7 @@ import regclient.pages.kannada.BiometricDetailsPageKannada; import regclient.pages.kannada.ConsentPageKannada; import regclient.pages.kannada.DemographicDetailsPageKannada; -import regclient.pages.kannada.DocumentuploadPageKannada; +import regclient.pages.kannada.DocumentUploadPageKannada; import regclient.pages.kannada.LoginPageKannada; import regclient.pages.kannada.ManageApplicationsPageKannada; import regclient.pages.kannada.OperationalTaskPageKannada; @@ -114,7 +114,7 @@ import regclient.pages.tamil.BiometricDetailsPageTamil; import regclient.pages.tamil.ConsentPageTamil; import regclient.pages.tamil.DemographicDetailsPageTamil; -import regclient.pages.tamil.DocumentuploadPageTamil; +import regclient.pages.tamil.DocumentUploadPageTamil; import regclient.pages.tamil.LoginPageTamil; import regclient.pages.tamil.ManageApplicationsPageTamil; import regclient.pages.tamil.OperationalTaskPageTamil; @@ -126,10 +126,10 @@ import regclient.pages.tamil.UpdateUINPageTamil; import regclient.utils.TestDataReader; -public class UpdateMyUINUpdateDemographicDetails extends AndroidBaseTest { +public class UpdateMyUinUpdateDemographicDetails extends AndroidBaseTest { - @Test - public void updateMyUINUpdateDemographicDetails() throws InterruptedException { + @Test(priority = 0, description = "Verify demographic update in update my UIN") + public void updateMyUinUpdateDemographicDetails() throws InterruptedException { FetchUiSpec.getUiSpec("updateProcess"); List screenOrder = FetchUiSpec.getAllScreenOrder(); BasePage.disableAutoRotation(); @@ -188,6 +188,7 @@ public void updateMyUINUpdateDemographicDetails() throws InterruptedException { } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } + registrationTasksPage.handleLocationPermission(); assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickUpdateMyUINButton(); @@ -343,15 +344,15 @@ public void updateMyUINUpdateDemographicDetails() throws InterruptedException { biometricDetailsPage.clickOnContinueButton(); } else if (screen.equals("Documents")) { if ("eng".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageEnglish(driver); + documentuploadPage = new DocumentUploadPageEnglish(driver); } else if ("hin".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageHindi(driver); } else if ("fra".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageFrench(driver); } else if ("kan".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageKannada(driver); + documentuploadPage = new DocumentUploadPageKannada(driver); } else if ("tam".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageTamil(driver); + documentuploadPage = new DocumentUploadPageTamil(driver); } else if ("ara".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageArabic(driver); } else { @@ -492,8 +493,7 @@ public void updateMyUINUpdateDemographicDetails() throws InterruptedException { } } - assertTrue(pendingApproval.isSupervisorAuthenticationTitleDisplayed(), - "Verify if Supervisor Authentication page displayed"); + assertTrue(isPageDisplayed, "Supervisor Authentication page not displayed after retries"); pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser); pendingApproval.enterPassword(ArcConfigManager.getIAMUsersPassword()); pendingApproval.clickOnSubmitButton(); @@ -553,9 +553,6 @@ public void updateMyUINUpdateDemographicDetails() throws InterruptedException { // assertTrue(profilePage.isProfileTitleDisplayed(),"Verify if profile title // display on Profilepage"); profilePage.clickOnLogoutButton(); - - profilePage.clickOnLogoutButton(); - assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayeded in Selected language"); } diff --git a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinInfant.java b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinInfant.java index b62b1e85a..c6bb23ff8 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinInfant.java +++ b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinInfant.java @@ -51,7 +51,7 @@ import regclient.pages.english.BiometricDetailsPageEnglish; import regclient.pages.english.ConsentPageEnglish; import regclient.pages.english.DemographicDetailsPageEnglish; -import regclient.pages.english.DocumentuploadPageEnglish; +import regclient.pages.english.DocumentUploadPageEnglish; import regclient.pages.english.IntroducerBiometricPageEnglish; import regclient.pages.english.LoginPageEnglish; import regclient.pages.english.ManageApplicationsPageEnglish; @@ -102,7 +102,7 @@ import regclient.pages.kannada.BiometricDetailsPageKannada; import regclient.pages.kannada.ConsentPageKannada; import regclient.pages.kannada.DemographicDetailsPageKannada; -import regclient.pages.kannada.DocumentuploadPageKannada; +import regclient.pages.kannada.DocumentUploadPageKannada; import regclient.pages.kannada.IntroducerBiometricPageKannada; import regclient.pages.kannada.LoginPageKannada; import regclient.pages.kannada.ManageApplicationsPageKannada; @@ -119,7 +119,7 @@ import regclient.pages.tamil.BiometricDetailsPageTamil; import regclient.pages.tamil.ConsentPageTamil; import regclient.pages.tamil.DemographicDetailsPageTamil; -import regclient.pages.tamil.DocumentuploadPageTamil; +import regclient.pages.tamil.DocumentUploadPageTamil; import regclient.pages.tamil.IntroducerBiometricPageTamil; import regclient.pages.tamil.LoginPageTamil; import regclient.pages.tamil.ManageApplicationsPageTamil; @@ -134,7 +134,7 @@ public class UpdateMyUinInfant extends AndroidBaseTest { - @Test + @Test(priority = 0, description = "Verify infant UIN update") public void updateMyUinInfant() throws InterruptedException { FetchUiSpec.getUiSpec("updateProcess"); BasePage.disableAutoRotation(); @@ -195,6 +195,7 @@ public void updateMyUinInfant() throws InterruptedException { } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } + registrationTasksPage.handleLocationPermission(); registrationTasksPage.clickUpdateMyUINButton(); if ("eng".equalsIgnoreCase(language)) { @@ -328,11 +329,7 @@ public void updateMyUinInfant() throws InterruptedException { applicantBiometricsPage.clickOnScanButton(); if (!applicantBiometricsPage.isFaceScan()) { - try { - Thread.sleep(2000); - } catch (InterruptedException e) { - e.printStackTrace(); - } + Thread.sleep(2000); applicantBiometricsPage.clickOnScanButton(); } @@ -361,11 +358,7 @@ public void updateMyUinInfant() throws InterruptedException { introducerBiometricPage.clickOnScanButton(); if (!introducerBiometricPage.isIrisScan()) { - try { - Thread.sleep(2000); - } catch (InterruptedException e) { - e.printStackTrace(); - } + Thread.sleep(2000); introducerBiometricPage.clickOnScanButton(); } @@ -378,15 +371,15 @@ public void updateMyUinInfant() throws InterruptedException { } else if (screen.equals("Documents")) { if ("eng".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageEnglish(driver); + documentuploadPage = new DocumentUploadPageEnglish(driver); } else if ("hin".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageHindi(driver); } else if ("fra".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageFrench(driver); } else if ("kan".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageKannada(driver); + documentuploadPage = new DocumentUploadPageKannada(driver); } else if ("tam".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageTamil(driver); + documentuploadPage = new DocumentUploadPageTamil(driver); } else if ("ara".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageArabic(driver); } else { @@ -508,9 +501,6 @@ public void updateMyUinInfant() throws InterruptedException { } assertTrue(isPageDisplayed, "Supervisor Authentication page not displayed after retries"); - assertTrue(pendingApproval.isSupervisorAuthenticationTitleDisplayed(), - "Verify if error empty username submit button enabled"); - pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser); pendingApproval.enterPassword(ArcConfigManager.getIAMUsersPassword()); pendingApproval.clickOnSubmitButton(); @@ -560,9 +550,7 @@ public void updateMyUinInfant() throws InterruptedException { profilePage.clickOnLogoutButton(); - profilePage.clickOnLogoutButton(); - - assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayeded in Selected language"); + assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayed in Selected language"); } diff --git a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinMinor.java b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinMinor.java index 017a8e81a..ec11ea6fb 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinMinor.java +++ b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinMinor.java @@ -51,7 +51,7 @@ import regclient.pages.english.BiometricDetailsPageEnglish; import regclient.pages.english.ConsentPageEnglish; import regclient.pages.english.DemographicDetailsPageEnglish; -import regclient.pages.english.DocumentuploadPageEnglish; +import regclient.pages.english.DocumentUploadPageEnglish; import regclient.pages.english.IntroducerBiometricPageEnglish; import regclient.pages.english.LoginPageEnglish; import regclient.pages.english.ManageApplicationsPageEnglish; @@ -102,7 +102,7 @@ import regclient.pages.kannada.BiometricDetailsPageKannada; import regclient.pages.kannada.ConsentPageKannada; import regclient.pages.kannada.DemographicDetailsPageKannada; -import regclient.pages.kannada.DocumentuploadPageKannada; +import regclient.pages.kannada.DocumentUploadPageKannada; import regclient.pages.kannada.IntroducerBiometricPageKannada; import regclient.pages.kannada.LoginPageKannada; import regclient.pages.kannada.ManageApplicationsPageKannada; @@ -119,7 +119,7 @@ import regclient.pages.tamil.BiometricDetailsPageTamil; import regclient.pages.tamil.ConsentPageTamil; import regclient.pages.tamil.DemographicDetailsPageTamil; -import regclient.pages.tamil.DocumentuploadPageTamil; +import regclient.pages.tamil.DocumentUploadPageTamil; import regclient.pages.tamil.IntroducerBiometricPageTamil; import regclient.pages.tamil.LoginPageTamil; import regclient.pages.tamil.ManageApplicationsPageTamil; @@ -134,7 +134,7 @@ public class UpdateMyUinMinor extends AndroidBaseTest { - @Test + @Test(priority = 0, description = "Verify minor UIN update") public void updateMyUinMinor() throws InterruptedException { FetchUiSpec.getUiSpec("updateProcess"); FetchUiSpec.getBiometricDetails("individualBiometrics"); @@ -196,6 +196,7 @@ public void updateMyUinMinor() throws InterruptedException { } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } + registrationTasksPage.handleLocationPermission(); assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickUpdateMyUINButton(); @@ -437,12 +438,6 @@ public void updateMyUinMinor() throws InterruptedException { } // righthand if (FetchUiSpec.rightHand.equals("yes")) { - if (!FetchUiSpec.eye.equals("yes")) { - biometricDetailsPage.clickOnIntroducerRightHandScan(); - } - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), - "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isRightHandScanTitleDisplayed(), "Verify if right hand scan is displayed"); introducerBiometricPage.clickOnScanButton(); @@ -453,9 +448,6 @@ public void updateMyUinMinor() throws InterruptedException { } // lefthand if (FetchUiSpec.leftHand.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), - "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isLeftHandScanTitleDisplayed(), "Verify if applicant left hand scan title is displayed"); introducerBiometricPage.clickOnScanButton(); @@ -466,9 +458,6 @@ public void updateMyUinMinor() throws InterruptedException { } // thumb if (FetchUiSpec.thumb.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), - "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isThumbsScanTitleDisplayed(), "Verify if thumbs scan page is displayed"); introducerBiometricPage.clickOnScanButton(); @@ -479,9 +468,6 @@ public void updateMyUinMinor() throws InterruptedException { } // face if (FetchUiSpec.face.equals("yes")) { - assertTrue(introducerBiometricPage.isIntroducerBiometricsPageDisplayed(), - "Verify if introducer biometric page is displayed"); - assertTrue(introducerBiometricPage.isFaceScanTitleDisplayed(), "Verify if face scan page is displayed"); introducerBiometricPage.clickOnScanButton(); @@ -494,15 +480,15 @@ public void updateMyUinMinor() throws InterruptedException { biometricDetailsPage.clickOnContinueButton(); } else if (screen.equals("Documents")) { if ("eng".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageEnglish(driver); + documentuploadPage = new DocumentUploadPageEnglish(driver); } else if ("hin".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageHindi(driver); } else if ("fra".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageFrench(driver); } else if ("kan".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageKannada(driver); + documentuploadPage = new DocumentUploadPageKannada(driver); } else if ("tam".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageTamil(driver); + documentuploadPage = new DocumentUploadPageTamil(driver); } else if ("ara".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageArabic(driver); } else { @@ -578,8 +564,6 @@ public void updateMyUinMinor() throws InterruptedException { } assertTrue(acknowledgementPage.isAcknowledgementPageDisplayed(), "Verify if acknowledgement details page is displayed"); - // assertTrue(acknowledgementPage.isQrCodeImageDisplayed(),"Verify if qr code - // image is displayed"); acknowledgementPage.clickOnGoToHomeButton(); @@ -645,8 +629,7 @@ public void updateMyUinMinor() throws InterruptedException { } } - assertTrue(pendingApproval.isSupervisorAuthenticationTitleDisplayed(), - "Verify if Supervisor Authentication page displayed"); + assertTrue(isPageDisplayed, "Verify if Supervisor Authentication page displayed after retries"); pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser); pendingApproval.enterPassword(ArcConfigManager.getIAMUsersPassword()); pendingApproval.clickOnSubmitButton(); @@ -703,13 +686,10 @@ public void updateMyUinMinor() throws InterruptedException { } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } - // assertTrue(profilePage.isProfileTitleDisplayed(),"Verify if profile title - // display on Profilepage"); - profilePage.clickOnLogoutButton(); profilePage.clickOnLogoutButton(); - assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayeded in Selected language"); + assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayed in Selected language"); } diff --git a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinUpdateBiometrics.java b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinUpdateBiometrics.java index d88a518fc..9b61574ff 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinUpdateBiometrics.java +++ b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinUpdateBiometrics.java @@ -49,7 +49,7 @@ import regclient.pages.english.BiometricDetailsPageEnglish; import regclient.pages.english.ConsentPageEnglish; import regclient.pages.english.DemographicDetailsPageEnglish; -import regclient.pages.english.DocumentuploadPageEnglish; +import regclient.pages.english.DocumentUploadPageEnglish; import regclient.pages.english.LoginPageEnglish; import regclient.pages.english.ManageApplicationsPageEnglish; import regclient.pages.english.OperationalTaskPageEnglish; @@ -97,7 +97,7 @@ import regclient.pages.kannada.BiometricDetailsPageKannada; import regclient.pages.kannada.ConsentPageKannada; import regclient.pages.kannada.DemographicDetailsPageKannada; -import regclient.pages.kannada.DocumentuploadPageKannada; +import regclient.pages.kannada.DocumentUploadPageKannada; import regclient.pages.kannada.LoginPageKannada; import regclient.pages.kannada.ManageApplicationsPageKannada; import regclient.pages.kannada.OperationalTaskPageKannada; @@ -113,7 +113,7 @@ import regclient.pages.tamil.BiometricDetailsPageTamil; import regclient.pages.tamil.ConsentPageTamil; import regclient.pages.tamil.DemographicDetailsPageTamil; -import regclient.pages.tamil.DocumentuploadPageTamil; +import regclient.pages.tamil.DocumentUploadPageTamil; import regclient.pages.tamil.LoginPageTamil; import regclient.pages.tamil.ManageApplicationsPageTamil; import regclient.pages.tamil.OperationalTaskPageTamil; @@ -127,8 +127,8 @@ public class UpdateMyUinUpdateBiometrics extends AndroidBaseTest { - @Test - public void updateMyUINUpdatebiometrics() throws InterruptedException { + @Test(priority = 0, description = "Verify biometric update in update my UIN") + public void updateMyUinUpdateBiometrics() throws InterruptedException { FetchUiSpec.getUiSpec("updateProcess"); List screenOrder = FetchUiSpec.getAllScreenOrder(); BasePage.disableAutoRotation(); @@ -187,7 +187,7 @@ public void updateMyUINUpdatebiometrics() throws InterruptedException { } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } - + registrationTasksPage.handleLocationPermission(); registrationTasksPage.clickUpdateMyUINButton(); if ("eng".equalsIgnoreCase(language)) { @@ -376,15 +376,15 @@ public void updateMyUINUpdatebiometrics() throws InterruptedException { } else if (screen.equals("Documents")) { if ("eng".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageEnglish(driver); + documentuploadPage = new DocumentUploadPageEnglish(driver); } else if ("hin".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageHindi(driver); } else if ("fra".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageFrench(driver); } else if ("kan".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageKannada(driver); + documentuploadPage = new DocumentUploadPageKannada(driver); } else if ("tam".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageTamil(driver); + documentuploadPage = new DocumentUploadPageTamil(driver); } else if ("ara".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageArabic(driver); } else { @@ -508,8 +508,7 @@ public void updateMyUINUpdatebiometrics() throws InterruptedException { } } - assertTrue(pendingApproval.isSupervisorAuthenticationTitleDisplayed(), - "Verify if Supervisor Authentication page displayed"); + assertTrue(isPageDisplayed, "Verify if Supervisor Authentication page displayed after retries"); pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser); pendingApproval.enterPassword(ArcConfigManager.getIAMUsersPassword()); pendingApproval.clickOnSubmitButton(); @@ -562,9 +561,7 @@ public void updateMyUINUpdatebiometrics() throws InterruptedException { } profilePage.clickOnLogoutButton(); - profilePage.clickOnLogoutButton(); - - assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayeded in Selected language"); + assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayed in Selected language"); } diff --git a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinUpdateDocuments.java b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinUpdateDocuments.java index b4aa465bc..978d614b4 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinUpdateDocuments.java +++ b/ui-test/src/main/java/regclient/androidTestCases/UpdateMyUinUpdateDocuments.java @@ -49,7 +49,7 @@ import regclient.pages.english.BiometricDetailsPageEnglish; import regclient.pages.english.ConsentPageEnglish; import regclient.pages.english.DemographicDetailsPageEnglish; -import regclient.pages.english.DocumentuploadPageEnglish; +import regclient.pages.english.DocumentUploadPageEnglish; import regclient.pages.english.LoginPageEnglish; import regclient.pages.english.ManageApplicationsPageEnglish; import regclient.pages.english.OperationalTaskPageEnglish; @@ -97,7 +97,7 @@ import regclient.pages.kannada.BiometricDetailsPageKannada; import regclient.pages.kannada.ConsentPageKannada; import regclient.pages.kannada.DemographicDetailsPageKannada; -import regclient.pages.kannada.DocumentuploadPageKannada; +import regclient.pages.kannada.DocumentUploadPageKannada; import regclient.pages.kannada.LoginPageKannada; import regclient.pages.kannada.ManageApplicationsPageKannada; import regclient.pages.kannada.OperationalTaskPageKannada; @@ -113,7 +113,7 @@ import regclient.pages.tamil.BiometricDetailsPageTamil; import regclient.pages.tamil.ConsentPageTamil; import regclient.pages.tamil.DemographicDetailsPageTamil; -import regclient.pages.tamil.DocumentuploadPageTamil; +import regclient.pages.tamil.DocumentUploadPageTamil; import regclient.pages.tamil.LoginPageTamil; import regclient.pages.tamil.ManageApplicationsPageTamil; import regclient.pages.tamil.OperationalTaskPageTamil; @@ -127,7 +127,7 @@ public class UpdateMyUinUpdateDocuments extends AndroidBaseTest { - @Test + @Test(priority = 0, description = "Verify documents update in update my UIN") public void updateMyUinUpdateDocuments() throws InterruptedException { FetchUiSpec.getUiSpec("updateProcess"); List screenOrder = FetchUiSpec.getAllScreenOrder(); @@ -187,6 +187,7 @@ public void updateMyUinUpdateDocuments() throws InterruptedException { } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } + registrationTasksPage.handleLocationPermission(); assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickUpdateMyUINButton(); @@ -284,15 +285,15 @@ public void updateMyUinUpdateDocuments() throws InterruptedException { } else if (screen.equals("Documents")) { if ("eng".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageEnglish(driver); + documentuploadPage = new DocumentUploadPageEnglish(driver); } else if ("hin".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageHindi(driver); } else if ("fra".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageFrench(driver); } else if ("kan".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageKannada(driver); + documentuploadPage = new DocumentUploadPageKannada(driver); } else if ("tam".equalsIgnoreCase(language)) { - documentuploadPage = new DocumentuploadPageTamil(driver); + documentuploadPage = new DocumentUploadPageTamil(driver); } else if ("ara".equalsIgnoreCase(language)) { documentuploadPage = new DocumentUploadPageArabic(driver); } else { @@ -488,10 +489,7 @@ public void updateMyUinUpdateDocuments() throws InterruptedException { } } - assertTrue(pendingApproval.isSupervisorAuthenticationTitleDisplayed(), - "Verify if Supervisor Authentication page displayed"); -// assertFalse(pendingApproval.isSubmitButtonEnabled(), -// "Verify if submit button is enable after selecting packet"); + assertTrue(isPageDisplayed, "Supervisor Authentication page not displayed after retries"); pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser); pendingApproval.enterPassword(ArcConfigManager.getIAMUsersPassword()); @@ -553,8 +551,6 @@ public void updateMyUinUpdateDocuments() throws InterruptedException { // display on Profilepage"); profilePage.clickOnLogoutButton(); - profilePage.clickOnLogoutButton(); - assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayeded in Selected language"); } diff --git a/ui-test/src/main/java/regclient/androidTestCases/logintest.java b/ui-test/src/main/java/regclient/androidTestCases/logintest.java index d0e9b4b18..d95828aef 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/logintest.java +++ b/ui-test/src/main/java/regclient/androidTestCases/logintest.java @@ -70,10 +70,10 @@ import regclient.utils.TestDataReader; @Test -public class logintest extends AndroidBaseTest { +public class Logintest extends AndroidBaseTest { - @Test(priority = 0) - public void ALoginTest() { + @Test(priority = 0, description = "Verify user login with valid credentials") + public void userloginTest() { BasePage.disableAutoRotation(); LoginPage loginPage = null; OperationalTaskPage operationalTaskPage = null; @@ -107,13 +107,6 @@ public void ALoginTest() { "Verify if welcome note \"welcome to community registration client!\" message should be displayeded."); // assertTrue(loginPage.isHelpButtonDisplayed(),"Verify if check help button on // the top right of the page"); - loginPage.enterUserName(KeycloakUserManager.onboardUser); - - assertTrue(loginPage.isNextButtonEnabled(), "verify if the next button enabled"); - loginPage.clickOnNextButton(); - - assertTrue(loginPage.isUserNotFoundErrorMessageDisplayed(), - "verify if error message should be displayeded as “user not found”"); loginPage.enterUserName(KeycloakUserManager.moduleSpecificUser); @@ -161,15 +154,9 @@ public void ALoginTest() { } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } + registrationTasksPage.handleLocationPermission(); assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); - // assertTrue(registrationTasksPage.isUpdateUINTitleDisplayed(), "Verify if - // update uin title display"); - // - // assertTrue(registrationTasksPage.isLostUINTitleDisplayed(), "Verify if lost - // uin title display"); - // assertTrue(registrationTasksPage.isBiometricCorrectionTitleDisplayed(), - // "Verify if biometric correction title display "); registrationTasksPage.clickOnOperationalTasksTitle(); if ("eng".equalsIgnoreCase(language)) { @@ -195,19 +182,19 @@ public void ALoginTest() { registrationTasksPage.clickOnDashboardButton(); if ("eng".equalsIgnoreCase(language)) { - dashboardPage = new DashboardPageEnglish(driver); + dashboardPage = new DashboardPageEnglish(driver); } else if ("hin".equalsIgnoreCase(language)) { - dashboardPage = new DashboardPageHindi(driver); + dashboardPage = new DashboardPageHindi(driver); } else if ("fra".equalsIgnoreCase(language)) { - dashboardPage = new DashboardPageFrench(driver); + dashboardPage = new DashboardPageFrench(driver); } else if ("kan".equalsIgnoreCase(language)) { - dashboardPage = new DashboardPageKannada(driver); + dashboardPage = new DashboardPageKannada(driver); } else if ("tam".equalsIgnoreCase(language)) { - dashboardPage = new DashboardPageTamil(driver); + dashboardPage = new DashboardPageTamil(driver); } else if ("ara".equalsIgnoreCase(language)) { - dashboardPage = new DashboardPageArabic(driver); + dashboardPage = new DashboardPageArabic(driver); } else { - throw new IllegalStateException("Unsupported language in testdata.json: " + language); + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(dashboardPage.isDashboardTitleDisplayed(), "Verify if dashboard page is loaded"); @@ -241,12 +228,13 @@ public void ALoginTest() { profilePage.clickOnLogoutButton(); - assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayeded in Selected language"); + assertTrue(loginPage.isLoginPageLoaded(), "verify if login page is displayed in Selected language"); } - @Test(priority = 1) - public void OnBoardTest() { + @Test(priority = 1, description = "Verify operator onboarding process") + public void onboardingTest() { + BasePage.disableAutoRotation(); LoginPage loginPage = null; OnBoardPage onBoardPage = null; @@ -273,7 +261,7 @@ public void OnBoardTest() { assertTrue(loginPage.isWelcomeMessageInSelectedLanguageDisplayed(), "verify if the welcome msg in selected language displayed"); - loginPage.enterUserName(KeycloakUserManager.onboardUser); + loginPage.enterUserName(KeycloakUserManager.onboardingUser); assertTrue(loginPage.isNextButtonEnabled(), "verify if the next button enabled"); loginPage.clickOnNextButton(); @@ -286,37 +274,42 @@ public void OnBoardTest() { assertTrue(loginPage.isLoginButtonEnabled(), "Verify if the login button enabled"); loginPage.clickOnloginButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { onBoardPage = new OnBoardPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { onBoardPage = new OnBoardPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { onBoardPage = new OnBoardPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { onBoardPage = new OnBoardPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { onBoardPage = new OnBoardPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { onBoardPage = new OnBoardPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(onBoardPage.isGetOnBoardTitleDisplayed(), "Verify if on board page is loaded"); assertTrue(onBoardPage.isOnBoardWelcomeMessageDisplayed(), "Verify if on board page hello message is loaded"); onBoardPage.clickOnGetOnBoardTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { - supervisorBiometricVerificationpage = new SupervisorBiometricVerificationpageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { - supervisorBiometricVerificationpage = new SupervisorBiometricVerificationpageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { - supervisorBiometricVerificationpage = new SupervisorBiometricVerificationpageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { - supervisorBiometricVerificationpage = new SupervisorBiometricVerificationpageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { - supervisorBiometricVerificationpage = new SupervisorBiometricVerificationpageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { - supervisorBiometricVerificationpage = new SupervisorBiometricVerificationpageArabic(driver); + if ("eng".equalsIgnoreCase(language)) { + supervisorBiometricVerificationpage = new SupervisorBiometricVerificationpageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + supervisorBiometricVerificationpage = new SupervisorBiometricVerificationpageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + supervisorBiometricVerificationpage = new SupervisorBiometricVerificationpageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + supervisorBiometricVerificationpage = new SupervisorBiometricVerificationpageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + supervisorBiometricVerificationpage = new SupervisorBiometricVerificationpageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + supervisorBiometricVerificationpage = new SupervisorBiometricVerificationpageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } + assertTrue(supervisorBiometricVerificationpage.isSupervisorBiometricVerificationPageLoaded(), "Verify if operational tasks page is loaded"); @@ -395,7 +388,7 @@ public void OnBoardTest() { assertTrue(supervisorBiometricVerificationpage.isExceptionTypeTitleDisplayed(), "Verify if applicant biometric mark exception is displayed"); - supervisorBiometricVerificationpage.markOneFingreException(); + supervisorBiometricVerificationpage.markOneFingerException(); supervisorBiometricVerificationpage.clickOnThumbsScanTitle(); supervisorBiometricVerificationpage.clickOnScanButton(); @@ -447,7 +440,7 @@ public void OnBoardTest() { } - @Test(priority = 2) + @Test(priority = 2, description = "Verify operator biometric update functionality") public void updateOperatorBiometrics() { BasePage.disableAutoRotation(); LoginPage loginPage = null; @@ -455,19 +448,23 @@ public void updateOperatorBiometrics() { RegistrationTasksPage registrationTasksPage = null; UpdateOperatorBiometricspage UpdateOperatorBiometricspage = null; - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + final String language = TestDataReader.readData("language"); + if ("eng".equalsIgnoreCase(language)) { loginPage = new LoginPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { loginPage = new LoginPageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { loginPage = new LoginPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { loginPage = new LoginPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { loginPage = new LoginPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { loginPage = new LoginPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } + loginPage.selectLanguage(); assertTrue(loginPage.isWelcomeMessageInSelectedLanguageDisplayed(), @@ -485,53 +482,58 @@ public void updateOperatorBiometrics() { assertTrue(loginPage.isLoginButtonEnabled(), "Verify if the login button enabled"); loginPage.clickOnloginButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } + registrationTasksPage.handleLocationPermission(); assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnOperationalTasksTitle(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { + if ("eng".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { + } else if ("hin".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageHindi(driver); - - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { + } else if ("fra".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { + } else if ("kan".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { + } else if ("tam".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { + } else if ("ara".equalsIgnoreCase(language)) { operationalTaskPage = new OperationalTaskPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); operationalTaskPage.clickOnUpdateOperatorBiometricsButton(); - if (TestDataReader.readData("language").equalsIgnoreCase("eng")) { - UpdateOperatorBiometricspage = new UpdateOperatorBiometricspageEnglish(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("hin")) { - UpdateOperatorBiometricspage = new UpdateOperatorBiometricspageHindi(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("fra")) { - UpdateOperatorBiometricspage = new UpdateOperatorBiometricspageFrench(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("kan")) { - UpdateOperatorBiometricspage = new UpdateOperatorBiometricspageKannada(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("tam")) { - UpdateOperatorBiometricspage = new UpdateOperatorBiometricspageTamil(driver); - } else if (TestDataReader.readData("language").equalsIgnoreCase("ara")) { - UpdateOperatorBiometricspage = new UpdateOperatorBiometricspageArabic(driver); + if ("eng".equalsIgnoreCase(language)) { + UpdateOperatorBiometricspage = new UpdateOperatorBiometricspageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + UpdateOperatorBiometricspage = new UpdateOperatorBiometricspageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + UpdateOperatorBiometricspage = new UpdateOperatorBiometricspageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + UpdateOperatorBiometricspage = new UpdateOperatorBiometricspageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + UpdateOperatorBiometricspage = new UpdateOperatorBiometricspageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + UpdateOperatorBiometricspage = new UpdateOperatorBiometricspageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(UpdateOperatorBiometricspage.isUpdateOperatorBiometricsPageLoaded(), "Verify if update operator biometric page is loaded"); @@ -615,13 +617,6 @@ public void updateOperatorBiometrics() { "Verify if applicant biometric mark exception is displayed"); UpdateOperatorBiometricspage.markOneFingerException(); - // assertFalse(UpdateOperatorBiometricspage.isZoomButtonDisplyed(),"Verify if - // zoom button is not displayed for thumb"); -// UpdateOperatorBiometricspage.clickOnExceptionTypeTemporaryButton(); - -// assertTrue(UpdateOperatorBiometricspage.isCommentHeaderDisplyed(),"Verify if Comments header is displayed"); - // UpdateOperatorBiometricspage.enterCommentsInTextBox(TestDataReader.readData("comments")); - UpdateOperatorBiometricspage.clickOnThumbsScanTitle(); UpdateOperatorBiometricspage.clickOnScanButton(); @@ -642,7 +637,8 @@ public void updateOperatorBiometrics() { if (FetchUiSpec.face.equals("yes")) { UpdateOperatorBiometricspage.clickOnFaceScanIcon(); - assertTrue(UpdateOperatorBiometricspage.isFaceScanTitleDisplayed(), "Verify if face scan page is displayed"); + assertTrue(UpdateOperatorBiometricspage.isFaceScanTitleDisplayed(), + "Verify if face scan page is displayed"); UpdateOperatorBiometricspage.clickOnMarkExceptionButton(); // assertTrue(UpdateOperatorBiometricspage.isMarkingExceptionsOnFaceIsNotAllowedTextDisplyed(),"Verify if is Marking Exceptions On Face Is Not Allowed Text Displyed"); @@ -661,14 +657,12 @@ public void updateOperatorBiometrics() { assertTrue(UpdateOperatorBiometricspage.isUpdateOperatorBiometricsPageLoaded(), "Verify if supervisor biometric update page is loaded"); + assertTrue(UpdateOperatorBiometricspage.isVerifyAndSaveButtonEnabled(), "Verify if verify and save button is display and enable"); - UpdateOperatorBiometricspage.clickOnVerifyAndSaveButton(); - - assertTrue(UpdateOperatorBiometricspage.isDismissPageLoaded(), - "Verify if dismiss page is displayed after click on verfiy and save button "); - assertTrue(UpdateOperatorBiometricspage.isOperatorBiometricsUpdatedPopupLoaded(), - "Verify if operator biometrics updated success message is displayed"); + + UpdateOperatorBiometricspage.updateBiometricsAndWaitPopup(); + UpdateOperatorBiometricspage.clickOnHomeButton(); assertTrue(operationalTaskPage.isOperationalTaskPageLoaded(), "Verify if operational Task Page is loaded"); diff --git a/ui-test/src/main/java/regclient/api/AdminTestUtil.java b/ui-test/src/main/java/regclient/api/AdminTestUtil.java index affb26672..29f396d8c 100644 --- a/ui-test/src/main/java/regclient/api/AdminTestUtil.java +++ b/ui-test/src/main/java/regclient/api/AdminTestUtil.java @@ -106,6 +106,7 @@ public static void initialize() { if (!initialized) { ArcConfigManager.init(); BaseTestCase.initialize(); + //user zone and center mapping KeycloakUserManager.createUsers(); mapUserToZone(BaseTestCase.currentModule + "-" + propsKernel.getProperty("iam-users-to-create"), propsKernel.getProperty("zone")); @@ -113,11 +114,28 @@ public static void initialize() { mapUserToCenter(BaseTestCase.currentModule + "-" + propsKernel.getProperty("iam-users-to-create"), propsKernel.getProperty("regCenterId")); mapCenter(BaseTestCase.currentModule + "-" + propsKernel.getProperty("iam-users-to-create")); + //user zone and center mapping KeycloakUserManager.createUsersWithOutDefaultRole(); mapUserToZone(KeycloakUserManager.onboardUser, propsKernel.getProperty("zone")); mapZone(KeycloakUserManager.onboardUser); mapUserToCenter(KeycloakUserManager.onboardUser, propsKernel.getProperty("regCenterId")); mapCenter(KeycloakUserManager.onboardUser); + //user zone and center mapping + KeycloakUserManager.createUsersWithOutSupervisorRole(); + mapUserToZone(BaseTestCase.currentModule + "-" + propsKernel.getProperty("iam-users-to-create-operator"), + propsKernel.getProperty("zone")); + mapZone(BaseTestCase.currentModule + "-" + propsKernel.getProperty("iam-users-to-create-operator")); + mapUserToCenter(BaseTestCase.currentModule + "-" + propsKernel.getProperty("iam-users-to-create-operator"), + propsKernel.getProperty("regCenterId")); + mapCenter(BaseTestCase.currentModule + "-" + propsKernel.getProperty("iam-users-to-create-operator")); + KeycloakUserManager.createOnboardingUser(); + mapUserToZone(BaseTestCase.currentModule + "-" + propsKernel.getProperty("iam-users-to-create-onboarder"), + propsKernel.getProperty("zone")); + mapZone(BaseTestCase.currentModule + "-" + propsKernel.getProperty("iam-users-to-create-onboarder")); + mapUserToCenter(BaseTestCase.currentModule + "-" + propsKernel.getProperty("iam-users-to-create-onboarder"), + propsKernel.getProperty("regCenterId")); + mapCenter(BaseTestCase.currentModule + "-" + propsKernel.getProperty("iam-users-to-create-onboarder")); + initialized = true; } } @@ -302,11 +320,6 @@ public static String createPreRegistration(String userId, String age) { String dob = LocalDate.now().minusYears(ageInt).format(DateTimeFormatter.ofPattern("yyyy/MM/dd")); -// if (category.equals("minor") || category.equals("infant")) { -// String introducerName = faker.name().fullName(); -// String introducerRID = TestDataReader.readData("RID"); // <-- Fetch valid RID -// -// } // Navigate to identity node JSONObject request = requestJson.getJSONObject("request"); JSONObject identity = request.getJSONObject("demographicDetails").getJSONObject("identity"); diff --git a/ui-test/src/main/java/regclient/api/ArcConfigManager.java b/ui-test/src/main/java/regclient/api/ArcConfigManager.java index bc5eb941b..8b1f09018 100644 --- a/ui-test/src/main/java/regclient/api/ArcConfigManager.java +++ b/ui-test/src/main/java/regclient/api/ArcConfigManager.java @@ -63,7 +63,15 @@ public static String getDbPassword() { public static String getDbSchema() { return getProperty("es_db_schema", ""); } - + + public static String getIAMUsersToCreateOperator() { + return getProperty("iam-users-to-create-operator", ""); + } + + public static String getIAMUsersToCreateOnboarder() { + return getProperty("iam-users-to-create-onboarder", ""); + } + public static String getiam_apienvuser() { return getProperty("apiEnvUser", ""); } @@ -113,4 +121,12 @@ public static String getHealthPortalUrl() { public static String gettestcases() { return getProperty("regclientScenariosToExecute", ""); } + + public static String getRolesForOperatorUser() { + return getProperty("rolesForOperator", ""); + } + + public static String getRolesForOnboardUser() { + return getProperty("rolesForOnboarder", ""); + } } \ No newline at end of file diff --git a/ui-test/src/main/java/regclient/api/BaseTestCase.java b/ui-test/src/main/java/regclient/api/BaseTestCase.java index 993e4bb8f..c46184fff 100644 --- a/ui-test/src/main/java/regclient/api/BaseTestCase.java +++ b/ui-test/src/main/java/regclient/api/BaseTestCase.java @@ -81,7 +81,7 @@ public static void initialize() { logger.info("We have created a Config Manager. Beginning to read properties!"); environment = ArcConfigManager.getiam_apienvuser(); - logger.info("Environemnt is ==== :" + environment); + logger.info("Environment is ==== :" + environment); ApplnURI = ArcConfigManager.getiam_apiinternalendpoint(); logger.info("Application URI ======" + ApplnURI); ApplnURIForKeyCloak = ArcConfigManager.getIAMUrl(); diff --git a/ui-test/src/main/java/regclient/api/FetchUiSpec.java b/ui-test/src/main/java/regclient/api/FetchUiSpec.java index d4b2c70c3..a8d2872ce 100644 --- a/ui-test/src/main/java/regclient/api/FetchUiSpec.java +++ b/ui-test/src/main/java/regclient/api/FetchUiSpec.java @@ -399,7 +399,7 @@ public static List getAllGroupLabelUsingId(String page) { for (String id : idList) { if (FetchUiSpec.getRequiredTypeUsingId(id)) { String groupLabel = getGroupValueUsingId(id); - if (groupLabel.equals(null) || groupLabel.equals("")) { + if (groupLabel == null || groupLabel.isEmpty()) { groupLabel = getRequiredGroupName(id); } groupLabelList.add(groupLabel); @@ -420,7 +420,7 @@ public static List getDropdownOptions(String id) { case "gender": return Arrays.asList("Male", "Female", "Other"); - case "residenceStatus": + case "residencestatus": return Arrays.asList("Foreigner", "Non-Foreigner"); default: diff --git a/ui-test/src/main/java/regclient/api/KeycloakUserManager.java b/ui-test/src/main/java/regclient/api/KeycloakUserManager.java index a5f75f4f6..844f3a6a5 100644 --- a/ui-test/src/main/java/regclient/api/KeycloakUserManager.java +++ b/ui-test/src/main/java/regclient/api/KeycloakUserManager.java @@ -1,5 +1,17 @@ package regclient.api; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.List; +import java.util.Properties; +import java.util.Random; + +import javax.ws.rs.core.Response; + import org.keycloak.OAuth2Constants; import org.keycloak.admin.client.CreatedResponseUtil; import org.keycloak.admin.client.Keycloak; @@ -13,40 +25,29 @@ import regclient.utils.TestRunner; -import javax.ws.rs.core.Response; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.List; -import java.util.Properties; -import java.util.Random; - public class KeycloakUserManager { public static String moduleSpecificUser = null; public static String onboardUser = getDateTime(); + public static String onlyOperatorRoleUser = null; + public static String onboardingUser = null; private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(KeycloakUserManager.class); public static Properties propsKernel = getproperty(TestRunner.getResourcePath() + "/config/Kernel.properties"); private static Keycloak getKeycloakInstance() { - Keycloak key = null; try { - - key = KeycloakBuilder.builder().serverUrl(ArcConfigManager.getIAMUrl()) - .realm(ArcConfigManager.getIAMRealmId()).grantType(OAuth2Constants.CLIENT_CREDENTIALS) - .clientId(ArcConfigManager.getAutomationClientId()) - .clientSecret(ArcConfigManager.getAutomationClientSecret()).build(); - logger.debug("Connecting to IAM at {}", ArcConfigManager.getIAMUrl()); - } catch (Exception e) { - throw e; - - } - return key; + Keycloak key = KeycloakBuilder.builder().serverUrl(ArcConfigManager.getIAMUrl()).realm(ArcConfigManager.getIAMRealmId()) + .grantType(OAuth2Constants.CLIENT_CREDENTIALS).clientId(ArcConfigManager.getAutomationClientId()).clientSecret(ArcConfigManager.getAutomationClientSecret()) + .build(); + System.out.println(ArcConfigManager.getIAMUrl()); + System.out.println(key.toString() + key.realms()); + return key; + } catch (Exception e) { + logger.error("Failed to initialize Keycloak client", e); + throw new RuntimeException("Failed to initialize Keycloak client", e); + } } public static Properties getproperty(String path) { @@ -70,13 +71,9 @@ public static void createUsers() { moduleSpecificUser = needsToBeCreatedUser; } else if (needsToBeCreatedUser.equals("masterdata-220005")) { moduleSpecificUser = needsToBeCreatedUser; - - } - - else { + } else { moduleSpecificUser = BaseTestCase.currentModule + "-" + needsToBeCreatedUser; } - logger.info(moduleSpecificUser); user.setEnabled(true); user.setUsername(moduleSpecificUser); @@ -93,7 +90,6 @@ public static void createUsers() { if (response.getStatus() == 409) { continue; } - String userId = CreatedResponseUtil.getCreatedId(response); logger.info("User created with userId: %s%n" + userId); @@ -175,6 +171,134 @@ public static void createUsersWithOutDefaultRole() { } } + public static void createOnboardingUser() { + List needsToBeCreatedUsers = List.of(ArcConfigManager.getIAMUsersToCreateOnboarder().split(",")); + Keycloak keycloakInstance = getKeycloakInstance(); + for (String needsToBeCreatedUser : needsToBeCreatedUsers) { + UserRepresentation user = new UserRepresentation(); + + if (needsToBeCreatedUser.equals("globaladmin")) { + onboardingUser = needsToBeCreatedUser; + } else if (needsToBeCreatedUser.equals("masterdata-220005")) { + onboardingUser = needsToBeCreatedUser; + } else { + onboardingUser = BaseTestCase.currentModule + "-" + needsToBeCreatedUser; + } + logger.info(onboardingUser); + user.setEnabled(true); + user.setUsername(onboardingUser); + user.setFirstName(onboardingUser); + user.setLastName(onboardingUser); + user.setEmail("automation" + onboardingUser + "@automationlabs.com"); + // Get realm + RealmResource realmResource = keycloakInstance.realm(ArcConfigManager.getIAMRealmId()); + UsersResource usersRessource = realmResource.users(); + // Create user (requires manage-users role) + Response response = null; + response = usersRessource.create(user); + logger.info("Response: {} {}", response.getStatus(), response.getStatusInfo()); + if (response.getStatus() == 409) { + continue; + } + String userId = CreatedResponseUtil.getCreatedId(response); + logger.info("User created with userId: %s%n" + userId); + + // Define password credential + CredentialRepresentation passwordCred = new CredentialRepresentation(); + + passwordCred.setTemporary(false); + passwordCred.setType(CredentialRepresentation.PASSWORD); + + // passwordCred.setValue(userPassword.get(passwordIndex)); + passwordCred.setValue(ArcConfigManager.getIAMUsersPassword()); + + UserResource userResource = usersRessource.get(userId); + + // Set password credential + userResource.resetPassword(passwordCred); + + // Getting all the roles + List allRoles = realmResource.roles().list(); + List availableRoles = new ArrayList<>(); + List toBeAssignedRoles = List.of(ArcConfigManager.getRolesForOnboardUser().split(",")); + for (String role : toBeAssignedRoles) { + if (!role.equalsIgnoreCase("Default")) { + if (allRoles.stream().anyMatch(r -> r.getName().equalsIgnoreCase(role))) { + availableRoles.add( + allRoles.stream().filter(r -> r.getName().equalsIgnoreCase(role)).findFirst().get()); + } + } + } + // Assign realm role tester to user + userResource.roles().realmLevel() // + .add((availableRoles.isEmpty() ? allRoles : availableRoles)); + + // passwordIndex ++; + } + } + + public static void createUsersWithOutSupervisorRole() { + List needsToBeCreatedUsers = List.of(ArcConfigManager.getIAMUsersToCreateOperator().split(",")); + Keycloak keycloakInstance = getKeycloakInstance(); + for (String needsToBeCreatedUser : needsToBeCreatedUsers) { + UserRepresentation user = new UserRepresentation(); + + if (needsToBeCreatedUser.equals("globaladmin")) { + onlyOperatorRoleUser = needsToBeCreatedUser; + } else if (needsToBeCreatedUser.equals("masterdata-220005")) { + onlyOperatorRoleUser = needsToBeCreatedUser; + } else { + onlyOperatorRoleUser = BaseTestCase.currentModule + "-" + needsToBeCreatedUser; + } + logger.info(onlyOperatorRoleUser); + user.setEnabled(true); + user.setUsername(onlyOperatorRoleUser); + user.setFirstName(onlyOperatorRoleUser); + user.setLastName(onlyOperatorRoleUser); + user.setEmail("automation" + onlyOperatorRoleUser + "@automationlabs.com"); + // Get realm + RealmResource realmResource = keycloakInstance.realm(ArcConfigManager.getIAMRealmId()); + UsersResource usersRessource = realmResource.users(); + // Create user (requires manage-users role) + Response response = null; + response = usersRessource.create(user); + logger.info("Response: {} {}", response.getStatus(), response.getStatusInfo()); + if (response.getStatus() == 409) { + continue; + } + String userId = CreatedResponseUtil.getCreatedId(response); + logger.info("User created with userId: %s%n" + userId); + + // Define password credential + CredentialRepresentation passwordCred = new CredentialRepresentation(); + + passwordCred.setTemporary(false); + passwordCred.setType(CredentialRepresentation.PASSWORD); + + // passwordCred.setValue(userPassword.get(passwordIndex)); + passwordCred.setValue(ArcConfigManager.getIAMUsersPassword()); + + UserResource userResource = usersRessource.get(userId); + + // Set password credential + userResource.resetPassword(passwordCred); + + // Getting all the roles + List allRoles = realmResource.roles().list(); + List availableRoles = new ArrayList<>(); + List toBeAssignedRoles = List.of(ArcConfigManager.getRolesForOperatorUser().split(",")); + for (String role : toBeAssignedRoles) { + if (allRoles.stream().anyMatch(r -> r.getName().equalsIgnoreCase(role))) { + availableRoles + .add(allRoles.stream().filter(r -> r.getName().equalsIgnoreCase(role)).findFirst().get()); + } + } + userResource.roles().realmLevel() // + .add((availableRoles.isEmpty() ? allRoles : availableRoles)); + + } + } + public static String getDateTime() { LocalDateTime currentDateTime = LocalDateTime.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); diff --git a/ui-test/src/main/java/regclient/driver/DriverManager.java b/ui-test/src/main/java/regclient/driver/DriverManager.java index b0d0f5b82..8bf2eb990 100644 --- a/ui-test/src/main/java/regclient/driver/DriverManager.java +++ b/ui-test/src/main/java/regclient/driver/DriverManager.java @@ -20,6 +20,9 @@ public class DriverManager { private static AppiumDriver getAndroidDriver() { DesiredCapabilities desiredCapabilities = CapabilitiesReader.getDesiredCapabilities("androidDevice", "/DesiredCapabilities.json"); + if (service == null) { + throw new IllegalStateException("Appium service not started. Call startAppiumServer() first."); + } appiumDriver.set(new AndroidDriver(service.getUrl(), desiredCapabilities)); return appiumDriver.get(); } @@ -28,7 +31,7 @@ public static AppiumDriver getDriver() throws MalformedURLException, Interrupted return getAndroidDriver(); } - public static void startAppiumServer() { + public synchronized static void startAppiumServer() { PropertiesReader propertiesReader = new PropertiesReader(); String ipAddress = System.getProperty("ipAddress") != null ? System.getProperty("ipAddress") : propertiesReader.getIpAddress(); @@ -41,7 +44,7 @@ public static void startAppiumServer() { service.start(); } - public static void stopAppiumServer() { + public synchronized static void stopAppiumServer() { if (service != null) service.stop(); } diff --git a/ui-test/src/main/java/regclient/page/AutoLogoutPage.java b/ui-test/src/main/java/regclient/page/AutoLogoutPage.java new file mode 100644 index 000000000..b7d3cb66d --- /dev/null +++ b/ui-test/src/main/java/regclient/page/AutoLogoutPage.java @@ -0,0 +1,16 @@ +package regclient.page; + +import io.appium.java_client.AppiumDriver; + +public abstract class AutoLogoutPage extends BasePage{ + + public AutoLogoutPage(AppiumDriver driver) { + super(driver); + } + + public abstract boolean isAutoLogoutPopupDisplayed(); + + public abstract RegistrationTasksPage clickOnStayLoggedInButton(); + + public abstract LoginPage clickOnStayLogoutButton(); +} diff --git a/ui-test/src/main/java/regclient/page/BasePage.java b/ui-test/src/main/java/regclient/page/BasePage.java index 6c1cc7bbc..2451d80ca 100644 --- a/ui-test/src/main/java/regclient/page/BasePage.java +++ b/ui-test/src/main/java/regclient/page/BasePage.java @@ -2,15 +2,22 @@ import io.appium.java_client.AppiumDriver; import io.appium.java_client.HidesKeyboard; +import io.appium.java_client.MobileBy; +import io.appium.java_client.TouchAction; import io.appium.java_client.android.AndroidDriver; +import io.appium.java_client.android.nativekey.AndroidKey; +import io.appium.java_client.android.nativekey.KeyEvent; import io.appium.java_client.pagefactory.AppiumFieldDecorator; import io.appium.java_client.remote.SupportsContextSwitching; +import io.appium.java_client.touch.WaitOptions; +import io.appium.java_client.touch.offset.PointOption; import io.netty.handler.timeout.TimeoutException; - import org.openqa.selenium.By; import org.openqa.selenium.Dimension; +import org.openqa.selenium.Keys; import org.openqa.selenium.NoSuchElementException; +import org.openqa.selenium.Rectangle; import org.openqa.selenium.StaleElementReferenceException; import org.openqa.selenium.WebElement; import org.openqa.selenium.interactions.Pause; @@ -35,8 +42,12 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; +import java.util.Arrays; import java.util.Collections; +import java.util.HashMap; +import java.util.List; import java.util.Locale; +import java.util.Map; import java.util.Random; import java.util.Set; @@ -45,6 +56,7 @@ public class BasePage { private static String signPublicKey; private static String publicKey; private static String name; + public static String email; public BasePage(AppiumDriver driver) { this.driver = driver; @@ -150,7 +162,6 @@ protected void waitForElementToBeVisible(WebElement element, int waitTime) { } protected void swipeOrScroll() { - Dimension size = driver.manage().window().getSize(); int startX = size.getWidth() / 2; int startY = size.getHeight() / 2; @@ -213,7 +224,6 @@ public static void waitTime(int sec) { try { Thread.sleep(sec * 1000); } catch (InterruptedException e) { - // TODO Auto-generated catch block e.printStackTrace(); } @@ -255,11 +265,9 @@ protected void getMachineDetail() throws UnsupportedFlavorException, IOException Clipboard clipboard = toolkit.getSystemClipboard(); Transferable contents = clipboard.getContents(null); if (contents != null && contents.isDataFlavorSupported(DataFlavor.stringFlavor)) { - String copiedText = (String) contents.getTransferData(DataFlavor.stringFlavor); ObjectMapper objectMapper = new ObjectMapper(); JsonNode jsonNode = objectMapper.readTree(copiedText); - signPublicKey = jsonNode.get("signPublicKey").asText(); publicKey = jsonNode.get("publicKey").asText(); name = jsonNode.get("name").asText(); @@ -287,23 +295,25 @@ public WebElement findElementWithRetry(By by) { for (int i = 0; i < MAX_RETRIES; i++) { try { - try { - Thread.sleep(RETRY_DELAY_MS); // Wait before retrying - } catch (InterruptedException ie) { - Thread.currentThread().interrupt(); // Restore interrupted status - } element = driver.findElement(by); - break; // Exit loop if the element is found + break; } catch (NoSuchElementException e) { if (i < MAX_RETRIES - 1) { - swipeOrScroll(); // Call swipeOrScroll() after retry attempt fails + try { + Thread.sleep(RETRY_DELAY_MS); + } catch (InterruptedException ie) { + Thread.currentThread().interrupt(); + } + swipeOrScroll(); } else { System.out.println("Element not found after " + MAX_RETRIES + " attempts."); - // throw e; // Optionally re-throw the exception if all retries fail } } } + if (element == null) { + throw new NoSuchElementException("Element not found after " + MAX_RETRIES + " attempts: " + by); + } return element; } @@ -351,11 +361,8 @@ protected boolean isElementDisplayed(By by) { protected void clickAtCoordinates(int x, int y) { PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger"); Sequence clickSequence = new Sequence(finger, 1) - .addAction(finger.createPointerMove(Duration.ZERO, PointerInput.Origin.viewport(), x, y)) // Move to x, - // y - // coordinates - .addAction(finger.createPointerDown(PointerInput.MouseButton.LEFT.asArg())) // Press down at x, y - // coordinates + .addAction(finger.createPointerMove(Duration.ZERO, PointerInput.Origin.viewport(), x, y)) + .addAction(finger.createPointerDown(PointerInput.MouseButton.LEFT.asArg())) .addAction(new Pause(finger, Duration.ofMillis(200))) // Pause for 200ms .addAction(finger.createPointerUp(PointerInput.MouseButton.LEFT.asArg())); // Release at x, y // coordinates @@ -409,20 +416,9 @@ private static String generateStringOfLength(int min, int max) { return sb.toString(); } - private static String generateSixDigitNumber() { - return String.format("%06d", random.nextInt(1000000)); - } - - private static String generateTwoDigitNumber() { - return String.format("%02d", random.nextInt(100)); - } - - private static String generateOneDigitNumber() { - return String.valueOf(random.nextInt(10)); - } - private static String generateDateInRange() { - int year = 1869 + random.nextInt(200); // Generates a year between 1869 and 2068 + int currentYear = java.time.Year.now().getValue(); + int year = 1869 + random.nextInt(currentYear - 1869 + 1); // Up to current year int month = 1 + random.nextInt(12); // Generates a month between 1 and 12 int day = 1 + random.nextInt(28); // Generates a day between 1 and 28 (to keep it simple) @@ -444,27 +440,27 @@ private static String generateEmail() { String[] domains = { "example.com", "test.com", "email.com" }; String localPart = generateStringOfLength(3, 10); String domain = domains[random.nextInt(domains.length)]; - return localPart + "@" + domain; + email = localPart + "@" + domain; + return email; } - protected void switchContext(String targetContext) { - Set contexts = ((SupportsContextSwitching) driver).getContextHandles(); - for (String context : contexts) { - System.out.println("Available context: " + context); - } - - for (String context : contexts) { - if (context.toLowerCase().contains(targetContext.toLowerCase())) { - ((SupportsContextSwitching) driver).context(context); - System.out.println("Switched to context: " + context); - return; + protected boolean switchToWebViewIfAvailable() { + for (int i = 0; i < 10; i++) { // wait up to ~5 seconds + for (String ctx : ((SupportsContextSwitching) driver).getContextHandles()) { + if (ctx.toUpperCase().contains("WEBVIEW")) { + ((SupportsContextSwitching) driver).context(ctx); + return true; + } + } + try { + Thread.sleep(500); + } catch (Exception ignored) { } } - - throw new RuntimeException("Target context not found: " + targetContext); + return false; // no webview } - protected void openArcApplication(String targetContext) { + protected void openArcApplication() { AndroidDriver driver = (AndroidDriver) this.driver; if (driver.isAppInstalled("com.android.chrome")) { @@ -473,11 +469,17 @@ protected void openArcApplication(String targetContext) { driver.activateApp("io.mosip.registration_client"); + // ensure we are in native context (no WEBVIEW) try { - switchContext(targetContext); - } catch (RuntimeException ex) { - System.out.println("Target context not available: " + targetContext); - throw ex; + driver.context("NATIVE_APP"); + } catch (Exception ignored) { + // fallback: iterate and pick any context that contains NATIVE + for (String ctx : ((SupportsContextSwitching) driver).getContextHandles()) { + if (ctx.toUpperCase().contains("NATIVE")) { + driver.context(ctx); + break; + } + } } } @@ -496,8 +498,16 @@ public static void enableWifiAndData() throws IOException { } public static void disableWifiAndData() throws IOException { - new ProcessBuilder("adb", "shell", "svc", "wifi", "disable").start(); - new ProcessBuilder("adb", "shell", "svc", "data", "disable").start(); + Process wifiProcess = new ProcessBuilder("adb", "shell", "svc", "wifi", "disable").start(); + Process dataProcess = new ProcessBuilder("adb", "shell", "svc", "data", "disable").start(); + try { + if (wifiProcess.waitFor() != 0 || dataProcess.waitFor() != 0) { + throw new IOException("Failed to disable WiFi/Data"); + } + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + throw new IOException("Interrupted while disabling WiFi/Data", e); + } } public WebElement findElementIfExists(By locator) { @@ -505,7 +515,7 @@ public WebElement findElementIfExists(By locator) { return findElementWithRetry(locator); // reuse your existing retry logic } catch (Exception e) { // Optional: log for debugging - System.out.println("⚠️ Element not found after retries: " + locator); + System.out.println("Element not found after retries: " + locator); return null; // prevents NoSuchElementException / NPE } } @@ -637,4 +647,148 @@ protected void scrollToTop() { driver.perform(Collections.singletonList(scrollUp)); } } + + protected void ensureVisibleBySwiping(By fullId, By shortId) { + AndroidDriver ad = (AndroidDriver) driver; + int tries = 0; + while (tries++ < 6 && ad.findElements(fullId).isEmpty() && ad.findElements(shortId).isEmpty()) { + Dimension d = ad.manage().window().getSize(); + int x = d.width / 2; + int startY = (int) (d.height * 0.65); + int endY = (int) (d.height * 0.35); + new TouchAction<>(ad).press(PointOption.point(x, startY)) + .waitAction(WaitOptions.waitOptions(Duration.ofMillis(300))).moveTo(PointOption.point(x, endY)) + .release().perform(); + try { + Thread.sleep(300); + } catch (InterruptedException ignored) { + } + } + } + + protected String findWebViewContext(Duration timeout) { + long end = System.currentTimeMillis() + timeout.toMillis(); + while (System.currentTimeMillis() < end) { + Set contexts = ((SupportsContextSwitching) driver).getContextHandles(); + for (String c : contexts) { + if (c != null && c.toUpperCase().contains("WEBVIEW")) + return c; + } + try { + Thread.sleep(300); + } catch (InterruptedException ignored) { + } + } + return null; + } + + protected void openArcApplication(String targetContext) { + AndroidDriver driver = (AndroidDriver) this.driver; + + if (driver.isAppInstalled("com.android.chrome")) { + driver.terminateApp("com.android.chrome"); + } + + driver.activateApp("io.mosip.registration_client"); + + try { + switchContext(targetContext); + } catch (RuntimeException ex) { + System.out.println("Target context not available: " + targetContext); + throw ex; + } + } + + public void switchContext(String target) { + SupportsContextSwitching ctx = (SupportsContextSwitching) driver; + + for (String c : ctx.getContextHandles()) { + if (c.equalsIgnoreCase(target) || c.contains(target)) { + ctx.context(c); + return; + } + } + throw new RuntimeException("Context not found: " + target); + } + + public void scrollToTopSafe() { + try { + if (!((SupportsContextSwitching) driver).getContext().equals("NATIVE_APP")) { + ((SupportsContextSwitching) driver).context("NATIVE_APP"); + } + driver.manage().window().getSize(); // safe now + scrollToTop(); + } catch (Exception e) { + System.out.println("scrollToTop skipped — not in a native window"); + } + } + + protected void dismissAutoSaveOrKeyboard() { + if (!driver.findElements(By.id("com.android.chrome:id/sheet_container")).isEmpty()) { + try { + List bg = driver.findElements(By.id("com.android.chrome:id/background")); + if (!bg.isEmpty()) + bg.get(0).click(); + else + ((AndroidDriver) driver).pressKey(new KeyEvent(AndroidKey.BACK)); + } catch (Exception ignored) { + } + } + try { + ((HidesKeyboard) driver).hideKeyboard(); + } catch (Exception ignored) { + } + } + + protected void scrollTo(String contentDescFragment) { + for (int i = 0; i < 7; i++) { + try { + WebElement el = driver + .findElement(By.xpath("//*[contains(@content-desc,'" + contentDescFragment + "')]")); + if (el.isDisplayed()) { + return; + } + } catch (Exception ignore) { + } + swipeUp(); + } + + throw new NoSuchElementException( + "Element with content-desc containing '" + contentDescFragment + "' not found after scrolling."); + } + + protected void swipeUp() { + Dimension size = driver.manage().window().getSize(); + int startX = size.width / 2; + + int startY = (int) (size.height * 0.85); // lower point + int endY = (int) (size.height * 0.40); // higher point (scroll more) + + PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger"); + Sequence swipe = new Sequence(finger, 1); + + swipe.addAction(finger.createPointerMove(Duration.ZERO, PointerInput.Origin.viewport(), startX, startY)); + swipe.addAction(finger.createPointerDown(PointerInput.MouseButton.LEFT.asArg())); + swipe.addAction(finger.createPointerMove(Duration.ofMillis(700), PointerInput.Origin.viewport(), startX, endY)); + swipe.addAction(finger.createPointerUp(PointerInput.MouseButton.LEFT.asArg())); + + driver.perform(Collections.singletonList(swipe)); + } + + protected void scrollUntilElementVisible(By locator) { + for (int i = 0; i < 10; i++) { + try { + WebElement el = driver.findElement(locator); + if (el.isDisplayed()) { + return; + } + } catch (Exception ignored) { + } + + swipeUp(); + } + + throw new NoSuchElementException("Element not found after scrolling: " + locator); + } + } diff --git a/ui-test/src/main/java/regclient/page/CameraPage.java b/ui-test/src/main/java/regclient/page/CameraPage.java index 7ff5f55b2..3b0a21e8d 100644 --- a/ui-test/src/main/java/regclient/page/CameraPage.java +++ b/ui-test/src/main/java/regclient/page/CameraPage.java @@ -27,7 +27,7 @@ public CameraPage(AppiumDriver driver) { public void clickimage() { waitTime(1); - clickAtCoordinates(1835, 600); + clickAtCoordinates(1840, 598); } public void clickOkButton() { diff --git a/ui-test/src/main/java/regclient/page/DemographicDetailsPage.java b/ui-test/src/main/java/regclient/page/DemographicDetailsPage.java index 587cad533..a1f99545b 100644 --- a/ui-test/src/main/java/regclient/page/DemographicDetailsPage.java +++ b/ui-test/src/main/java/regclient/page/DemographicDetailsPage.java @@ -24,7 +24,7 @@ public DemographicDetailsPage(AppiumDriver driver) { public abstract boolean checkSecondLanguageTextBoxNotNull(String id); - public abstract boolean checkDateFormatAndCurrectDate(String id); + public abstract boolean checkDateFormatAndCurrentDate(String id); public abstract void fillIntroducerDetailsInDemographicDetailsPage(String age); diff --git a/ui-test/src/main/java/regclient/page/KeycloakPage.java b/ui-test/src/main/java/regclient/page/KeycloakPage.java index 7e932cd1b..842dd167a 100644 --- a/ui-test/src/main/java/regclient/page/KeycloakPage.java +++ b/ui-test/src/main/java/regclient/page/KeycloakPage.java @@ -1,15 +1,21 @@ + package regclient.page; import java.time.Duration; +import java.util.Set; +import org.openqa.selenium.By; +import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; +import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; import io.appium.java_client.AppiumDriver; import io.appium.java_client.pagefactory.AndroidFindBy; +import io.appium.java_client.remote.SupportsContextSwitching; -public abstract class KeycloakPage extends BasePage { +public class KeycloakPage extends BasePage { private WebDriverWait wait; @@ -35,40 +41,69 @@ public KeycloakPage(AppiumDriver driver) { @FindBy(id = "kc-login") private WebElement loginButton; - @AndroidFindBy(uiAutomator = "new UiSelector().text(\"Password\")") + @FindBy(xpath = "//android.widget.TextView[@text='Password']") private WebElement passwordOption; - @FindBy(id = "password") - private WebElement passwordTextbox; + @FindBy(xpath = "//android.widget.EditText[@resource-id='password']") + private WebElement passwordField; - @FindBy(id = "password-new") - private WebElement newPasswordTextbox; + @FindBy(xpath = "//android.widget.EditText[@resource-id='password-new']") + private WebElement newPasswordField; - @FindBy(id = "password-confirm") - private WebElement confirmPasswordTextbox; + @FindBy(xpath = "//android.widget.EditText[@resource-id='password-confirm']") + private WebElement confirmPasswordField; - @FindBy(xpath = "//button[text()='Save']") + @FindBy(xpath = "//android.widget.Button[@text='Save']") private WebElement saveButton; - @FindBy(xpath = "//*[contains(text(),'Your password has been updated.')]") + @FindBy(xpath = "//android.widget.TextView[contains(@text,'Your password has been updated.')]") private WebElement passwordUpdatedMessage; - @FindBy(xpath = "//*[contains(text(),'Sign Out')]") + @FindBy(xpath = "//android.widget.TextView[@text='Sign Out']") private WebElement signoutButton; @AndroidFindBy(accessibility = "LOGOUT") private WebElement logoutButton; public boolean openKeycloakWebView() { - switchContext("WEBVIEW_chrome"); - retryFindElement(keycloakPageTitle, Duration.ofSeconds(10)); - return isElementDisplayed(keycloakPageTitle); + String webCtx = findWebViewContext(Duration.ofSeconds(5)); + if (webCtx != null) { + ((SupportsContextSwitching) driver).context(webCtx); + try { Thread.sleep(250); } catch (InterruptedException ignored) {} + } else { + try { ((SupportsContextSwitching) driver).context("NATIVE_APP"); } catch (Exception ignored) {} + } + + retryFindElement(keycloakPageTitle, Duration.ofSeconds(10)); + return isElementDisplayed(keycloakPageTitle); } public boolean openKeycloakPassword() { - switchContext("NATIVE_APP"); - retryFindElement(passwordOption, Duration.ofSeconds(10)); - return isElementDisplayed(passwordOption); + + scrollToTopSafe(); + + By nativePwd = By.xpath("//android.widget.TextView[@text='Password']"); + + try { + ((SupportsContextSwitching) driver).context("NATIVE_APP"); + new WebDriverWait(driver, Duration.ofSeconds(8)) + .until(ExpectedConditions.visibilityOfElementLocated(nativePwd)); + return true; + } catch (Exception e) { + System.out.println("Password not found in native."); + } + + for (String c : ((SupportsContextSwitching) driver).getContextHandles()) { + if (c.contains("WEBVIEW")) { + ((SupportsContextSwitching) driver).context(c); + try { + new WebDriverWait(driver, Duration.ofSeconds(8)) + .until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#password"))); + return true; + } catch (Exception ignore) {} + } + } + return false; } public String getPageTitle() { @@ -84,7 +119,8 @@ public void clickOnEnglishLanguage() { } public void enterUserName(String username) { - clickAndsendKeysToTextBox(usernameTextBox, username); + switchContext("WEBVIEW_chrome"); + sendKeysToTextBox(usernameTextBox, username); } public void enterPassword(String password) { @@ -97,40 +133,37 @@ public void clickOnLoginButton() { } public void clickOnPasswordOption() { - switchContext("NATIVE_APP"); clickOnElement(passwordOption); } - + public void enterExistPassword(String password) { - switchContext("WEBVIEW_chrome"); - retryFindElement(passwordTextbox, Duration.ofSeconds(10)); - clickAndsendKeysToTextBox(passwordTextbox, password); +// switchContext("WEBVIEW_chrome"); + sendKeysToTextBox(passwordField, password); } - + public void enterNewPassword(String password) { - switchContext("WEBVIEW_chrome"); - retryFindElement(newPasswordTextbox, Duration.ofSeconds(10)); - clickAndsendKeysToTextBox(newPasswordTextbox, password); +// switchContext("WEBVIEW_chrome"); + clickAndsendKeysToTextBox(newPasswordField, password); } - + public void enterConfirmPassword(String password) { - switchContext("WEBVIEW_chrome"); - retryFindElement(confirmPasswordTextbox, Duration.ofSeconds(10)); - clickAndsendKeysToTextBox(confirmPasswordTextbox, password); +// switchContext("WEBVIEW_chrome"); + clickAndsendKeysToTextBox(confirmPasswordField, password); } - + public void clickOnSaveButton() { - switchContext("WEBVIEW_chrome"); +// switchContext("WEBVIEW_chrome"); clickOnElement(saveButton); } public boolean isPasswordUpdatedMessageDisplayed() { - switchContext("WEBVIEW_chrome"); +// switchContext("WEBVIEW_chrome"); return isElementDisplayed(passwordUpdatedMessage); } public void clickOnSignoutButton() { - switchContext("WEBVIEW_chrome"); +// switchContext("WEBVIEW_chrome"); + scrollToTop(); clickOnElement(signoutButton); } diff --git a/ui-test/src/main/java/regclient/page/MockSBIPage.java b/ui-test/src/main/java/regclient/page/MockSBIPage.java index 356b06ab5..b62429aaf 100644 --- a/ui-test/src/main/java/regclient/page/MockSBIPage.java +++ b/ui-test/src/main/java/regclient/page/MockSBIPage.java @@ -17,6 +17,7 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; +import io.appium.java_client.AppiumBy; import io.appium.java_client.AppiumDriver; import io.appium.java_client.MobileBy; import io.appium.java_client.TouchAction; @@ -74,27 +75,20 @@ public void setAllToNotReadyAndSave() { public void switchBackToArcApp() { AndroidDriver driver = (AndroidDriver) this.driver; try { - // detect the package from session capability (not hardcoded) String mainPackage = String.valueOf(driver.getCapabilities().getCapability("appium:appPackage")); String mainActivity = String.valueOf(driver.getCapabilities().getCapability("appium:appActivity")); - - // if current package already matches, nothing to do if (mainPackage != null && mainPackage.equals(driver.getCurrentPackage())) { return; } - - // 1️⃣ Try to simply bring ARC app to foreground if installed if (driver.isAppInstalled(mainPackage)) { driver.activateApp(mainPackage); return; } - - // 2️⃣ Fallback: use startActivity if activateApp didn't work if (mainActivity != null && !mainActivity.isEmpty()) { driver.startActivity(new Activity(mainPackage, mainActivity)); } - - } catch (Exception ignored) { + } catch (Exception e) { + System.err.println("Failed to switch back to ARC app: " + e.getMessage()); } } @@ -109,15 +103,16 @@ public void setAllToReadyAndSave() { clickOnElement(mockSbiSaveButton); } - public void setAllModalityLowScroe() { - setModalityScore("Face", 20); // ModalityScore should be (20-5=15) - setModalityScore("Iris", 20); + public void setAllModalityLowScore() { + // ModalityScore should be (20-5=15) + setModalityScore("Face", 20); + swipeOrScroll(); clickOnElement(mockSbiSaveButton); } - public void setAllModalityHighScroe() { - setModalityScore("Face", 95); - setModalityScore("Iris", 95); + public void setAllModalityHighScore() { + setModalityScore("Face", 90); + scrollUntilElementVisible(AppiumBy.id("io.mosip.mock.sbi:id/button12")); clickOnElement(mockSbiSaveButton); } @@ -156,15 +151,12 @@ private void setModalityScore(String modality, int score) { WebElement seekBar = findElementIfExists(By.xpath(xpath)); // non-throwing - // fallback: a few swipes + re-checks for (int i = 0; i < 5 && seekBar == null; i++) { swipeOrScroll(); waitTime(1); seekBar = findElementIfExists(By.xpath(xpath)); } - if (seekBar == null) { - // final attempt using retry (may throw) — catch below seekBar = findElementWithRetry(By.xpath(xpath)); } diff --git a/ui-test/src/main/java/regclient/page/PendingApproval.java b/ui-test/src/main/java/regclient/page/PendingApproval.java index 7c4424bdf..daea8c972 100644 --- a/ui-test/src/main/java/regclient/page/PendingApproval.java +++ b/ui-test/src/main/java/regclient/page/PendingApproval.java @@ -50,7 +50,7 @@ public PendingApproval(AppiumDriver driver) { public abstract boolean isInvalidUsernameMessageDisplayed(); - public abstract boolean isInvalidemptyUsernameSumbitButtonEnbled(); + public abstract boolean isInvalidEmptyUsernameSubmitButtonEnabled(); public abstract boolean isNumberOfApplicationDisplayed(); diff --git a/ui-test/src/main/java/regclient/page/PreviewPage.java b/ui-test/src/main/java/regclient/page/PreviewPage.java index 040a062b5..a9fbb739e 100644 --- a/ui-test/src/main/java/regclient/page/PreviewPage.java +++ b/ui-test/src/main/java/regclient/page/PreviewPage.java @@ -37,5 +37,7 @@ public PreviewPage(AppiumDriver driver) { public abstract String getEmailId(); public abstract boolean isLostUinTitleDisplayed(); + + public abstract boolean isBiometricCorrectionTitleDisplayed(); } diff --git a/ui-test/src/main/java/regclient/page/RegistrationTasksPage.java b/ui-test/src/main/java/regclient/page/RegistrationTasksPage.java index bbfe4497d..c728e18d5 100644 --- a/ui-test/src/main/java/regclient/page/RegistrationTasksPage.java +++ b/ui-test/src/main/java/regclient/page/RegistrationTasksPage.java @@ -10,8 +10,6 @@ public RegistrationTasksPage(AppiumDriver driver) { public abstract SelectLanguagePage clickOnNewRegistrationButton(); - public abstract void clickOnSynchronizeDataButton(); - public abstract boolean isRegistrationTasksPageLoaded(); public abstract boolean isOperationalTaskDisplayed(); @@ -51,5 +49,7 @@ public RegistrationTasksPage(AppiumDriver driver) { public abstract void handleLocationPermission(); public abstract void clickOnRegistrationTasksTab(); + + public abstract boolean isSettingsButtonDisplayed(); } diff --git a/ui-test/src/main/java/regclient/page/SettingsPage.java b/ui-test/src/main/java/regclient/page/SettingsPage.java index e188eeea0..2a993e8f5 100644 --- a/ui-test/src/main/java/regclient/page/SettingsPage.java +++ b/ui-test/src/main/java/regclient/page/SettingsPage.java @@ -45,4 +45,16 @@ public SettingsPage(AppiumDriver driver) { public abstract boolean isSubmitChangesPopupDisplayed(); public abstract void clickOnChangesConfirmButton(); + + public abstract boolean isScheduledJobSettingsPageHeaderDisplayed(); + + public abstract boolean isToastVisible(String toastMessage); + + public abstract boolean isMasterDataSyncCardDisplayed(); + + public abstract void clickOnMasterDataSyncButton(); + + public abstract boolean validateJobCardFields(String jobName); + + } diff --git a/ui-test/src/main/java/regclient/page/SupervisorBiometricVerificationpage.java b/ui-test/src/main/java/regclient/page/SupervisorBiometricVerificationpage.java index 70d7855e6..cd6dc67b5 100644 --- a/ui-test/src/main/java/regclient/page/SupervisorBiometricVerificationpage.java +++ b/ui-test/src/main/java/regclient/page/SupervisorBiometricVerificationpage.java @@ -62,7 +62,7 @@ public SupervisorBiometricVerificationpage(AppiumDriver driver) { public abstract void markOneEyeException(); - public abstract void markOneFingreException(); + public abstract void markOneFingerException(); public abstract boolean isExceptionTypeTitleDisplayed(); diff --git a/ui-test/src/main/java/regclient/page/UpdateOperatorBiometricspage.java b/ui-test/src/main/java/regclient/page/UpdateOperatorBiometricspage.java index 530e5933e..dcb72a8b0 100644 --- a/ui-test/src/main/java/regclient/page/UpdateOperatorBiometricspage.java +++ b/ui-test/src/main/java/regclient/page/UpdateOperatorBiometricspage.java @@ -109,5 +109,9 @@ public UpdateOperatorBiometricspage(AppiumDriver driver) { public abstract void clickOnBackButton(); public abstract boolean isUpdateOperatorBiometricsPageLoaded(); + + public abstract boolean validateThreshold(int expected); + + public abstract void updateBiometricsAndWaitPopup(); } diff --git a/ui-test/src/main/java/regclient/pages/arabic/AuthenticationPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/AuthenticationPageArabic.java index bdb4d12f5..949a60bf5 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/AuthenticationPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/AuthenticationPageArabic.java @@ -21,7 +21,7 @@ public class AuthenticationPageArabic extends AuthenticationPage { @AndroidFindBy(accessibility = "المصادقة") private WebElement authenticateButton; - @AndroidFindBy(xpath = "//android.view.View[@content-desc='content-desc='المصادقة باستخدام كلمة المرور'']/preceding-sibling::android.widget.ImageView") + @AndroidFindBy(xpath = "//android.view.View[@content-desc='المصادقة باستخدام كلمة المرور']/preceding-sibling::android.widget.ImageView") private WebElement authenticationImage; public AuthenticationPageArabic(AppiumDriver driver) { diff --git a/ui-test/src/main/java/regclient/pages/arabic/AutoLogoutPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/AutoLogoutPageArabic.java new file mode 100644 index 000000000..b6ea427e7 --- /dev/null +++ b/ui-test/src/main/java/regclient/pages/arabic/AutoLogoutPageArabic.java @@ -0,0 +1,51 @@ +package regclient.pages.arabic; + +import java.time.Duration; + +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; + +import io.appium.java_client.AppiumDriver; +import io.appium.java_client.pagefactory.AndroidFindBy; +import regclient.page.AutoLogoutPage; +import regclient.page.LoginPage; +import regclient.page.RegistrationTasksPage; +import regclient.pages.english.LoginPageEnglish; +import regclient.pages.english.RegistrationTasksPageEnglish; + +public class AutoLogoutPageArabic extends AutoLogoutPage { + + @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"You have been idle\")") + private WebElement autoLogoutPopup; + + @AndroidFindBy(accessibility = "LOG OUT") + private WebElement logoutButton; + + @AndroidFindBy(accessibility = "STAY LOGGED IN") + private WebElement stayLoggedInButton; + + public AutoLogoutPageArabic(AppiumDriver driver) { + super(driver); + } + + public boolean isAutoLogoutPopupDisplayed() { + try { + WebDriverWait wait = new WebDriverWait(driver, Duration.ofMinutes(10)); + wait.until(ExpectedConditions.visibilityOf(autoLogoutPopup)); + return true; + } catch (Exception e) { + return false; + } + } + + public RegistrationTasksPage clickOnStayLoggedInButton() { + clickOnElement(stayLoggedInButton); + return new RegistrationTasksPageArabic(driver); + } + + public LoginPage clickOnStayLogoutButton() { + clickOnElement(logoutButton); + return new LoginPageArabic(driver); + } +} diff --git a/ui-test/src/main/java/regclient/pages/arabic/DemographicDetailsPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/DemographicDetailsPageArabic.java index 5a991896d..f5aba731b 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/DemographicDetailsPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/DemographicDetailsPageArabic.java @@ -20,7 +20,7 @@ import regclient.page.DemographicDetailsPage; import regclient.page.DocumentUploadPage; import regclient.pages.english.ConsentPageEnglish; -import regclient.pages.english.DocumentuploadPageEnglish; +import regclient.pages.english.DocumentUploadPageEnglish; import regclient.utils.TestDataReader; public class DemographicDetailsPageArabic extends DemographicDetailsPage { @@ -188,7 +188,7 @@ else if (age.equals("currentCalenderDate")) { waitTime(1); clickOnElement(backgroundScreen); waitTime(1); - assertTrue(checkDateFormatAndCurrectDate(id), + assertTrue(checkDateFormatAndCurrentDate(id), "Verify date format and current date and time while selecting age date"); } } @@ -309,7 +309,7 @@ else if (age.equals("currentCalenderDate")) { waitTime(1); clickOnElement(backgroundScreen); waitTime(1); - assertTrue(checkDateFormatAndCurrectDate(id), + assertTrue(checkDateFormatAndCurrentDate(id), "Verify date format and current date and time while selecting age date"); } } @@ -361,7 +361,7 @@ public boolean checkSecondLanguageTextBoxNotNull(String id) { return value != null && !value.isEmpty(); } - public boolean checkDateFormatAndCurrectDate(String id) { + public boolean checkDateFormatAndCurrentDate(String id) { if (getTextFromLocator(findElementWithRetry( By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View"))) diff --git a/ui-test/src/main/java/regclient/pages/arabic/PendingApprovalArabic.java b/ui-test/src/main/java/regclient/pages/arabic/PendingApprovalArabic.java index c287f3f92..bfaa2b316 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/PendingApprovalArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/PendingApprovalArabic.java @@ -191,7 +191,7 @@ public boolean isSubmitButtonEnabled() { return isElementEnabled(submitButton); } - public boolean isInvalidemptyUsernameSumbitButtonEnbled() { + public boolean isInvalidEmptyUsernameSubmitButtonEnabled() { return isElementEnabled(invalidUsernameMessageForempty); } @@ -246,4 +246,5 @@ public boolean isAuthenticateButtonEnabled() { return isElementEnabled(authenticateButton); } + } diff --git a/ui-test/src/main/java/regclient/pages/arabic/PreviewPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/PreviewPageArabic.java index cab339610..bf6a07f9a 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/PreviewPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/PreviewPageArabic.java @@ -49,6 +49,9 @@ public class PreviewPageArabic extends PreviewPage { @AndroidFindBy(accessibility = "فقدت UIN") private WebElement lostUinTitle; + + @AndroidFindBy(accessibility = "تصحيح البيانات البيومترية") + private WebElement biometricCorrectionTitle; public PreviewPageArabic(AppiumDriver driver) { super(driver); @@ -131,5 +134,9 @@ public String getEmailId() { public boolean isLostUinTitleDisplayed() { return isElementDisplayed(lostUinTitle); } + + public boolean isBiometricCorrectionTitleDisplayed() { + return isElementDisplayed(biometricCorrectionTitle); + } } diff --git a/ui-test/src/main/java/regclient/pages/arabic/RegistrationTasksPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/RegistrationTasksPageArabic.java index aa9f76a40..97fd53633 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/RegistrationTasksPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/RegistrationTasksPageArabic.java @@ -172,4 +172,8 @@ public void clickOnRegistrationTasksTab() { clickOnElement(registrationTasksTitle); } + public boolean isSettingsButtonDisplayed() { + return isElementDisplayed(settingsButton); + } + } diff --git a/ui-test/src/main/java/regclient/pages/arabic/SettingsPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/SettingsPageArabic.java index ae9a5f5d4..6d8132276 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/SettingsPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/SettingsPageArabic.java @@ -66,6 +66,27 @@ public class SettingsPageArabic extends SettingsPage{ @AndroidFindBy(accessibility = "CANCEL") private WebElement changesCancelButton; + + @AndroidFindBy(accessibility = "Scheduled Job Settings") + private WebElement scheduledJobSettingsPageHeader; + + @AndroidFindBy(xpath = "//*[@content-desc[contains(.,'Master Data Sync')]]") + private WebElement masterDataSyncCard; + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc,'Master Data Sync')]//android.widget.Button") + private WebElement masterDataSyncButton; + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc,'thumbs_fingerprint_threshold')]//android.widget.EditText") + private WebElement thumbsThresholdField; + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc,'iris_threshold')]//android.widget.EditText") + private WebElement irisThresholdField; + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc,'rightslap_fingerprint_threshold')]//android.widget.EditText") + private WebElement rightSlapThresholdField; + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc,'leftslap_fingerprint_threshold')]//android.widget.EditText") + private WebElement leftSlapThresholdField; public SettingsPageArabic(AppiumDriver driver) { super(driver); @@ -173,4 +194,42 @@ public boolean isSubmitChangesPopupDisplayed() { public void clickOnChangesConfirmButton() { clickOnElement(changesConfirmButton); } + + public boolean isScheduledJobSettingsPageHeaderDisplayed() { + return isElementDisplayed(scheduledJobSettingsPageHeader); + } + + public boolean isMasterDataSyncCardDisplayed() { + return isElementDisplayed(masterDataSyncCard); + } + + public void clickOnMasterDataSyncButton() { + clickOnElement(masterDataSyncButton); + } + + public boolean isToastVisible(String toastMessage) { + for (int i = 0; i < 15; i++) { // ~3 seconds + if (driver.getPageSource().contains(toastMessage)) { + return true; + } + try { + Thread.sleep(200); + } catch (Exception ignored) { + } + } + return false; + } + + public WebElement getSyncButton(String jobName) { + return driver.findElement( + By.xpath("//android.view.View[contains(@content-desc,'" + jobName + "')]//*[@clickable='true']")); + } + + public boolean validateJobCardFields(String jobName) { + WebElement card = driver + .findElement(By.xpath("//android.view.View[contains(@content-desc,'" + jobName + "')]")); + String cd = card.getAttribute("content-desc"); + return cd.contains(jobName) && cd.contains("Next Run") && cd.contains("Last Sync") + && cd.contains("Cron Expression"); + } } diff --git a/ui-test/src/main/java/regclient/pages/arabic/SupervisorBiometricVerificationpageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/SupervisorBiometricVerificationpageArabic.java index a0207f08f..a526d9edd 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/SupervisorBiometricVerificationpageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/SupervisorBiometricVerificationpageArabic.java @@ -243,7 +243,7 @@ public void markOneEyeException() { clickOnElement(oneEyeException); } - public void markOneFingreException() { + public void markOneFingerException() { clickOnElement(firstFingureExceptionImage); } diff --git a/ui-test/src/main/java/regclient/pages/arabic/UpdateOperatorBiometricspageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/UpdateOperatorBiometricspageArabic.java index 5d068637a..e3de200e0 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/UpdateOperatorBiometricspageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/UpdateOperatorBiometricspageArabic.java @@ -1,8 +1,13 @@ package regclient.pages.arabic; +import java.time.Duration; + import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; import io.appium.java_client.AppiumDriver; +import io.appium.java_client.MobileBy; import io.appium.java_client.pagefactory.AndroidFindBy; import regclient.page.UpdateOperatorBiometricspage; @@ -378,4 +383,29 @@ public boolean isUpdateOperatorBiometricsPageLoaded() { return isElementDisplayed(updateOperatorBiometrics); } + public boolean validateThreshold(int expected) { + WebElement el = driver.findElement(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true))" + + ".scrollIntoView(new UiSelector().descriptionContains(\"Threshold\"));" + )); + + String text = el.getAttribute("content-desc"); // "Threshold 75%" + int actual = Integer.parseInt(text.replaceAll("[^0-9]", "")); // extract 75 + + return actual == expected; + } + + public void updateBiometricsAndWaitPopup() { + for (int i = 1; i <= 5; i++) { + clickOnVerifyAndSaveButton(); + try { + new WebDriverWait(driver, Duration.ofSeconds(60)) + .until(ExpectedConditions.visibilityOf(successPopup)); + return; // success + } catch (Exception ignored) {} + try { Thread.sleep(2000); } catch (InterruptedException ignored) {} + } + throw new AssertionError("Biometrics update success popup not displayed after 5 retries."); + } + } diff --git a/ui-test/src/main/java/regclient/pages/english/AutoLogoutPageEnglish.java b/ui-test/src/main/java/regclient/pages/english/AutoLogoutPageEnglish.java new file mode 100644 index 000000000..9aab6d983 --- /dev/null +++ b/ui-test/src/main/java/regclient/pages/english/AutoLogoutPageEnglish.java @@ -0,0 +1,53 @@ +package regclient.pages.english; + +import java.time.Duration; + +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; + +import io.appium.java_client.AppiumDriver; +import io.appium.java_client.pagefactory.AndroidFindBy; +import regclient.page.AcknowledgementPage; +import regclient.page.AuthenticationPage; +import regclient.page.AutoLogoutPage; +import regclient.page.LoginPage; +import regclient.page.RegistrationTasksPage; + +public class AutoLogoutPageEnglish extends AutoLogoutPage{ + + @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"You have been idle\")") + private WebElement autoLogoutPopup; + + @AndroidFindBy(accessibility = "LOG OUT") + private WebElement logoutButton; + + @AndroidFindBy(accessibility = "STAY LOGGED IN") + private WebElement stayLoggedInButton; + + public AutoLogoutPageEnglish(AppiumDriver driver) { + super(driver); + } + + public boolean isAutoLogoutPopupDisplayed() { + try { + WebDriverWait wait = new WebDriverWait(driver, Duration.ofMinutes(10)); + wait.until(ExpectedConditions.visibilityOf(autoLogoutPopup)); + return true; + } catch (Exception e) { + return false; + } + } + + public RegistrationTasksPage clickOnStayLoggedInButton() { + clickOnElement(stayLoggedInButton); + return new RegistrationTasksPageEnglish(driver); + } + + public LoginPage clickOnStayLogoutButton() { + clickOnElement(logoutButton); + return new LoginPageEnglish(driver); + } + + +} diff --git a/ui-test/src/main/java/regclient/pages/english/BiometricDetailsPageEnglish.java b/ui-test/src/main/java/regclient/pages/english/BiometricDetailsPageEnglish.java index 7b14bbbb9..40d677d75 100644 --- a/ui-test/src/main/java/regclient/pages/english/BiometricDetailsPageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/BiometricDetailsPageEnglish.java @@ -1,18 +1,32 @@ package regclient.pages.english; +import static org.testng.Assert.assertTrue; + +import java.time.Duration; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.TimeUnit; + import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebElement; +import org.openqa.selenium.remote.RemoteWebElement; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; import io.appium.java_client.AppiumDriver; import io.appium.java_client.MobileBy; import io.appium.java_client.pagefactory.AndroidFindBy; +import io.appium.java_client.remote.SupportsContextSwitching; import io.mosip.testrig.apirig.testrunner.OTPListener; import regclient.api.FetchUiSpec; import regclient.page.ApplicantBiometricsPage; +import regclient.page.AutoLogoutPage; import regclient.page.BiometricDetailsPage; import regclient.page.IntroducerBiometricPage; import regclient.page.PreviewPage; +import regclient.page.RegistrationTasksPage; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -45,6 +59,15 @@ public class BiometricDetailsPageEnglish extends BiometricDetailsPage { @AndroidFindBy(xpath = "//android.widget.EditText[contains(@hint, 'Additional Info Request ID')]") private WebElement additionalInfoRequestIdTextbox; + @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"You have been idle\")") + private WebElement autoLogoutPopup; + + @AndroidFindBy(accessibility = "LOG OUT") + private WebElement logoutButton; + + @AndroidFindBy(accessibility = "STAY LOGGED IN") + private WebElement stayLoggedInButton; + public BiometricDetailsPageEnglish(AppiumDriver driver) { super(driver); } @@ -143,47 +166,123 @@ public boolean isAdditionalInfoRequestIdTextboxDisplayed() { return isElementDisplayed(additionalInfoRequestIdTextbox); } - public void enterAdditionalInfoUsingEmail(String emailId) { - int retries = 20, waitSeconds = 10; - final String SUFFIX = "-BIOMETRIC_CORRECTION-1"; - - for (int i = 1; i <= retries; i++) { - String id = OTPListener.getAdditionalReqId(emailId); - if (id != null && !id.isEmpty() && !id.equals("{Failed}")) { - String sanitized = id.trim().replaceAll("\\p{C}", ""); - String finalId = sanitized.endsWith(SUFFIX) ? sanitized : sanitized + SUFFIX; - - try { - WebElement el = additionalInfoRequestIdTextbox; - try { - el.clear(); - el.sendKeys(finalId); - } catch (Exception ignored) { - } - if (finalId.equals(el.getAttribute("value"))) - return; - - ((JavascriptExecutor) driver).executeScript( - "arguments[0].value=arguments[1];arguments[0].dispatchEvent(new Event('input',{bubbles:true}));", - el, finalId); - if (finalId.equals(el.getAttribute("value"))) - return; - } catch (Exception e) { - logger.error("Enter ID failed: ", e); - } - throw new RuntimeException("Textbox not accepting: " + finalId); - } - sleepSeconds(waitSeconds); + public boolean isAutoLogoutPopupDisplayed() { + try { + WebDriverWait wait = new WebDriverWait(driver, Duration.ofMinutes(10)); + wait.until(ExpectedConditions.visibilityOf(autoLogoutPopup)); + return true; + } catch (Exception e) { + return false; } - throw new RuntimeException("AdditionalInfoReqId not found after wait."); } + public RegistrationTasksPage clickOnStayLoggedInButton() { + clickOnElement(stayLoggedInButton); + return new RegistrationTasksPageEnglish(driver); + } + + public void enterAdditionalInfoUsingEmail(String emailId) { + final int totalTimeoutMinutes = 10; // stop after this many minutes + final int pollIntervalSeconds = 10; // poll every N seconds + final String SUFFIX = "-BIOMETRIC_CORRECTION-1"; + + long startMs = System.currentTimeMillis(); + long timeoutMs = TimeUnit.MINUTES.toMillis(totalTimeoutMinutes); + + while (System.currentTimeMillis() - startMs < timeoutMs) { + String id = null; + try { + id = OTPListener.getAdditionalReqId(emailId); + } catch (Exception e) { + // If getAdditionalReqId can throw, log and continue polling + System.out.println("OTPListener.getAdditionalReqId threw: " + e.getMessage()); + } + + if (id != null && !id.isEmpty() && !"{Failed}".equals(id)) { + String finalId = id.trim() + (id.endsWith(SUFFIX) ? "" : SUFFIX); + System.out.println("Found id: " + id + " -> finalId: " + finalId); + + // typeAndVerify should return true on success; handle its failure/exception + try { + if (typeAndVerify(additionalInfoRequestIdTextbox, finalId)) { + System.out.println("typeAndVerify succeeded."); + return; // success + } else { + throw new AssertionError("Textbox did not accept the id: " + finalId); + } + } catch (Exception e) { + // Fail fast if typing fails unexpectedly + throw new AssertionError("Failed while typing/verifying finalId: " + finalId + " : " + e.getMessage()); + } + } + + // handle auto logout popup + try { + if (isAutoLogoutPopupDisplayed()) { + System.out.println("Auto-logout popup displayed — staying logged in."); + clickOnStayLoggedInButton(); + } + } catch (Exception ignored) {} + + // log remaining time + long elapsed = System.currentTimeMillis() - startMs; + long remainingMs = Math.max(0, timeoutMs - elapsed); + System.out.println("ID not found yet. Elapsed " + (elapsed/1000) + "s, remaining " + (remainingMs/1000) + "s. Sleeping " + pollIntervalSeconds + "s."); + + try { + Thread.sleep(TimeUnit.SECONDS.toMillis(pollIntervalSeconds)); + } catch (InterruptedException ie) { + Thread.currentThread().interrupt(); + throw new AssertionError("Interrupted while waiting for AdditionalInfoReqId", ie); + } + } + + // If we reach here, timeout expired + throw new AssertionError("AdditionalInfoReqId not found within " + totalTimeoutMinutes + " minutes for " + emailId); + } + + private boolean typeAndVerify(WebElement el, String value) { + el.click(); + el.clear(); + el.sendKeys(value); + + // read the visible/real value in a safe way + String curr = readElementValue(el); + + // exact match (keeps your previous behavior) + return value.equals(curr); + } + + private String readElementValue(WebElement el) { + try { + String ctx = ""; + try { ctx = ((SupportsContextSwitching) driver).getContext(); } catch (Exception ignored) {} + + if (ctx != null && ctx.toUpperCase().contains("WEBVIEW")) { + String v = el.getAttribute("value"); + return v == null ? "" : v; + } + } catch (Exception ignored) {} + + try { + String t = el.getText(); + if (t != null && !t.isEmpty()) return t; + } catch (Exception ignored) {} + + for (String attr : new String[] {"text", "hint", "content-desc", "name"}) { + try { + String v = el.getAttribute(attr); + if (v != null && !v.isEmpty()) return v; + } catch (Exception ignored) {} + } + + return ""; + } + + private void sleepSeconds(int s) { - try { - Thread.sleep(s * 1000L); - } catch (InterruptedException ignored) { - Thread.currentThread().interrupt(); - } + try { Thread.sleep(s * 1000L); } + catch (InterruptedException ignored) { Thread.currentThread().interrupt(); } } private static final Logger logger = LoggerFactory.getLogger(BiometricDetailsPageEnglish.class); diff --git a/ui-test/src/main/java/regclient/pages/english/DemographicDetailsPageEnglish.java b/ui-test/src/main/java/regclient/pages/english/DemographicDetailsPageEnglish.java index 4af7870dc..a052a1798 100644 --- a/ui-test/src/main/java/regclient/pages/english/DemographicDetailsPageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/DemographicDetailsPageEnglish.java @@ -108,7 +108,7 @@ public ConsentPage clickOnPageTitle(String pageKey) { public DocumentUploadPage clickOnContinueButton() { clickOnElement(continueButton); - return new DocumentuploadPageEnglish(driver); + return new DocumentUploadPageEnglish(driver); } @@ -219,7 +219,7 @@ else if (age.equals("currentCalenderDate")) { waitTime(1); clickOnElement(backgroundScreen); waitTime(1); - assertTrue(checkDateFormatAndCurrectDate(id), + assertTrue(checkDateFormatAndCurrentDate(id), "Verify date format and current date and time while selecting age date"); } } @@ -340,7 +340,7 @@ else if (age.equals("currentCalenderDate")) { waitTime(1); clickOnElement(backgroundScreen); waitTime(1); - assertTrue(checkDateFormatAndCurrectDate(id), + assertTrue(checkDateFormatAndCurrentDate(id), "Verify date format and current date and time while selecting age date"); } } @@ -396,7 +396,7 @@ public boolean checkSecondLanguageTextBoxNotNull(String id) { return true; } - public boolean checkDateFormatAndCurrectDate(String id) { + public boolean checkDateFormatAndCurrentDate(String id) { if (getTextFromLocator(findElementWithRetry( By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View"))) @@ -452,11 +452,9 @@ public void fetchPreregApplicationId(String age) { By appIdLabel = By.xpath("//android.widget.EditText[contains(@hint,'Application ID')]"); By appIdTextbox = By.xpath("//android.widget.EditText[contains(@hint,'Please Enter Application ID')]"); - // Verify label is displayed boolean isDisplayed = isElementDisplayed(appIdLabel); assertTrue(isDisplayed, "Verify if Application ID label is displayed"); - // Enter prereg ID applicationIdTextBox = findElementWithRetry(appIdTextbox); clickAndsendKeysToTextBox(applicationIdTextBox, AdminTestUtil.getPreRegistrationFlow(age)); clickOnElement(fetchDataButton); diff --git a/ui-test/src/main/java/regclient/pages/english/DocumentuploadPageEnglish.java b/ui-test/src/main/java/regclient/pages/english/DocumentuploadPageEnglish.java index fc9ef60ef..27926cad2 100644 --- a/ui-test/src/main/java/regclient/pages/english/DocumentuploadPageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/DocumentuploadPageEnglish.java @@ -15,7 +15,7 @@ import regclient.page.CameraPage; import regclient.page.DocumentUploadPage; -public class DocumentuploadPageEnglish extends DocumentUploadPage { +public class DocumentUploadPageEnglish extends DocumentUploadPage { @AndroidFindBy(accessibility = "Scrim") private WebElement PopUpCloseButton; @@ -41,7 +41,7 @@ public class DocumentuploadPageEnglish extends DocumentUploadPage { @AndroidFindBy(className = "android.widget.ImageView") private WebElement captureImage; - public DocumentuploadPageEnglish(AppiumDriver driver) { + public DocumentUploadPageEnglish(AppiumDriver driver) { super(driver); } @@ -58,7 +58,7 @@ public boolean isDoccumentUploadPageDisplayed() { public DocumentUploadPage clickOnSaveButton() { clickOnElement(saveButton); - return new DocumentuploadPageEnglish(driver); + return new DocumentUploadPageEnglish(driver); } public boolean isRetakeButtonDisplayed() { @@ -71,6 +71,7 @@ public void cropCaptureImage() { } public void uploadDoccuments(String age, String type) { + scrollToTop(); List idList = FetchUiSpec.getAllIds("Documents"); for (String id : idList) { if (FetchUiSpec.getRequiredTypeUsingId(id)) { diff --git a/ui-test/src/main/java/regclient/pages/english/IdentityProofPageEnglish.java b/ui-test/src/main/java/regclient/pages/english/IdentityProofPageEnglish.java index 3cba80407..20cf9c6c7 100644 --- a/ui-test/src/main/java/regclient/pages/english/IdentityProofPageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/IdentityProofPageEnglish.java @@ -27,7 +27,7 @@ public IdentityProofPageEnglish(AppiumDriver driver) { public DocumentUploadPage clickOnSaveButton() { clickOnElement(saveButton); - return new DocumentuploadPageEnglish(driver); + return new DocumentUploadPageEnglish(driver); } public boolean isRetakeButtonDisplayed() { diff --git a/ui-test/src/main/java/regclient/pages/english/LoginPageEnglish.java b/ui-test/src/main/java/regclient/pages/english/LoginPageEnglish.java index c7514cf8b..d5ade46d3 100644 --- a/ui-test/src/main/java/regclient/pages/english/LoginPageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/LoginPageEnglish.java @@ -143,8 +143,6 @@ public boolean isLoginButtonEnabled() { public boolean isLoginPageLoaded() { return true; -// return isElementDisplayed(loginMessage); - } public boolean isPasswordHeaderDisplayed() { @@ -165,8 +163,6 @@ public boolean isMachineNotFoundMessageDisplayed() { public boolean isWelcomeMessageInSelectedLanguageDisplayed() { return true; -// return isElementDisplayed(welcomeMessageEnglish); - } public boolean isHelpButtonDisplayed() { diff --git a/ui-test/src/main/java/regclient/pages/english/PendingApprovalEnglish.java b/ui-test/src/main/java/regclient/pages/english/PendingApprovalEnglish.java index 6f6aca1b9..52c715948 100644 --- a/ui-test/src/main/java/regclient/pages/english/PendingApprovalEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/PendingApprovalEnglish.java @@ -132,7 +132,7 @@ public boolean isInvalidUsernameMessageDisplayed() { return isElementDisplayed(invalidUsernameMessage); } - public boolean isInvalidemptyUsernameSumbitButtonEnbled() { + public boolean isInvalidEmptyUsernameSubmitButtonEnabled() { return isElementEnabled(invalidUsernameMessageForempty); } diff --git a/ui-test/src/main/java/regclient/pages/english/PreviewPageEnglish.java b/ui-test/src/main/java/regclient/pages/english/PreviewPageEnglish.java index e37e4f823..cd3671805 100644 --- a/ui-test/src/main/java/regclient/pages/english/PreviewPageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/PreviewPageEnglish.java @@ -48,6 +48,9 @@ public class PreviewPageEnglish extends PreviewPage { @AndroidFindBy(accessibility = "Lost UIN") private WebElement lostUinTitle; + + @AndroidFindBy(accessibility = "Biometric correction") + private WebElement biometricCorrectionTitle; public PreviewPageEnglish(AppiumDriver driver) { super(driver); @@ -132,5 +135,9 @@ public String getEmailId() { public boolean isLostUinTitleDisplayed() { return isElementDisplayed(lostUinTitle); } + + public boolean isBiometricCorrectionTitleDisplayed() { + return isElementDisplayed(biometricCorrectionTitle); + } } diff --git a/ui-test/src/main/java/regclient/pages/english/RegistrationTasksPageEnglish.java b/ui-test/src/main/java/regclient/pages/english/RegistrationTasksPageEnglish.java index ba60f040d..c04d19c79 100644 --- a/ui-test/src/main/java/regclient/pages/english/RegistrationTasksPageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/RegistrationTasksPageEnglish.java @@ -45,7 +45,7 @@ public class RegistrationTasksPageEnglish extends RegistrationTasksPage { @AndroidFindBy(xpath = "//android.widget.Toast[@text=\"Script Sync Completed\"]") private WebElement scriptSyncCompletedMessage; - @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"Synchronize Data\")") + @AndroidFindBy(xpath = "//android.widget.ImageView[contains(@content-desc,'Synchronize Data')]") private WebElement synchronizeDataButton; @AndroidFindBy(accessibility = "Settings\nTab 2 of 4") @@ -170,5 +170,9 @@ public void handleLocationPermission() { public void clickOnRegistrationTasksTab() { clickOnElement(registrationTasksTitle); } + + public boolean isSettingsButtonDisplayed() { + return isElementDisplayed(settingsButton); + } } diff --git a/ui-test/src/main/java/regclient/pages/english/SettingsPageEnglish.java b/ui-test/src/main/java/regclient/pages/english/SettingsPageEnglish.java index fc44344cb..487e9d8dd 100644 --- a/ui-test/src/main/java/regclient/pages/english/SettingsPageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/SettingsPageEnglish.java @@ -70,7 +70,7 @@ public class SettingsPageEnglish extends SettingsPage { @AndroidFindBy(accessibility = "Device Settings\nTab 3 of 3") private WebElement deviceSettingsTab; - @AndroidFindBy(accessibility = "Key\nServer Value\nLocal Value") + @AndroidFindBy(accessibility = "Global Config Settings\nKey\nServer Value\nLocal Value") private WebElement globalConfigSettingsHeader; @AndroidFindBy(accessibility = "SUBMIT") @@ -106,6 +106,27 @@ public class SettingsPageEnglish extends SettingsPage { @AndroidFindBy(accessibility = "CANCEL") private WebElement changesCancelButton; + @AndroidFindBy(accessibility = "Scheduled Job Settings") + private WebElement scheduledJobSettingsPageHeader; + + @AndroidFindBy(xpath = "//*[@content-desc[contains(.,'Master Data Sync')]]") + private WebElement masterDataSyncCard; + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc,'Master Data Sync')]//android.widget.Button") + private WebElement masterDataSyncButton; + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc,'thumbs_fingerprint_threshold')]//android.widget.EditText") + private WebElement thumbsThresholdField; + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc,'iris_threshold')]//android.widget.EditText") + private WebElement irisThresholdField; + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc,'rightslap_fingerprint_threshold')]//android.widget.EditText") + private WebElement rightSlapThresholdField; + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc,'leftslap_fingerprint_threshold')]//android.widget.EditText") + private WebElement leftSlapThresholdField; + public SettingsPageEnglish(AppiumDriver driver) { super(driver); this.driver = driver; @@ -213,4 +234,42 @@ public void clickOnChangesConfirmButton() { clickOnElement(changesConfirmButton); } + public boolean isScheduledJobSettingsPageHeaderDisplayed() { + return isElementDisplayed(scheduledJobSettingsPageHeader); + } + + public boolean isMasterDataSyncCardDisplayed() { + return isElementDisplayed(masterDataSyncCard); + } + + public void clickOnMasterDataSyncButton() { + clickOnElement(masterDataSyncButton); + } + + public boolean isToastVisible(String toastMessage) { + for (int i = 0; i < 15; i++) { // ~3 seconds + if (driver.getPageSource().contains(toastMessage)) { + return true; + } + try { + Thread.sleep(200); + } catch (Exception ignored) { + } + } + return false; + } + + public WebElement getSyncButton(String jobName) { + return driver.findElement( + By.xpath("//android.view.View[contains(@content-desc,'" + jobName + "')]//*[@clickable='true']")); + } + + public boolean validateJobCardFields(String jobName) { + WebElement card = driver + .findElement(By.xpath("//android.view.View[contains(@content-desc,'" + jobName + "')]")); + String cd = card.getAttribute("content-desc"); + return cd.contains(jobName) && cd.contains("Next Run") && cd.contains("Last Sync") + && cd.contains("Cron Expression"); + } + } diff --git a/ui-test/src/main/java/regclient/pages/english/SupervisorBiometricVerificationpageEnglish.java b/ui-test/src/main/java/regclient/pages/english/SupervisorBiometricVerificationpageEnglish.java index 847a2a29c..dc5188aa4 100644 --- a/ui-test/src/main/java/regclient/pages/english/SupervisorBiometricVerificationpageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/SupervisorBiometricVerificationpageEnglish.java @@ -9,7 +9,7 @@ public class SupervisorBiometricVerificationpageEnglish extends SupervisorBiometricVerificationpage { - @AndroidFindBy(accessibility = "Supervisor's Biometric Onboarding") + @AndroidFindBy(accessibility = "Onboard Operator Biometrics") private WebElement supervisorBiometricVerificationPageTitle; @AndroidFindBy(uiAutomator = "new UiScrollable(new UiSelector().scrollable(true).instance(0)) .scrollIntoView(new UiSelector().descriptionContains(\"Iris\"))") @@ -248,7 +248,7 @@ public void markOneEyeException() { clickOnElement(oneEyeException); } - public void markOneFingreException() { + public void markOneFingerException() { clickOnElement(firstFingureExceptionImage); } @@ -355,13 +355,10 @@ public boolean checkThresholdValueFace() { public boolean isVerifyAndSaveButtonEnabled() { return isElementDisplayed(verifyAndSaveButton); - } - @Override public void clickOnVerifyAndSaveButton() { clickOnElement(verifyAndSaveButton); - } public boolean isDismissPageLoaded() { diff --git a/ui-test/src/main/java/regclient/pages/english/UpdateOperatorBiometricspageEnglish.java b/ui-test/src/main/java/regclient/pages/english/UpdateOperatorBiometricspageEnglish.java index 137146fdf..1891123a1 100644 --- a/ui-test/src/main/java/regclient/pages/english/UpdateOperatorBiometricspageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/UpdateOperatorBiometricspageEnglish.java @@ -1,8 +1,13 @@ package regclient.pages.english; +import java.time.Duration; + import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; import io.appium.java_client.AppiumDriver; +import io.appium.java_client.MobileBy; import io.appium.java_client.pagefactory.AndroidFindBy; import regclient.page.UpdateOperatorBiometricspage; @@ -137,6 +142,8 @@ public UpdateOperatorBiometricspageEnglish(AppiumDriver driver) { @AndroidFindBy(accessibility = "Update Operator Biometrics") private WebElement updateOperatorBiometrics; + + public void clickOnIrisScan() { clickOnElement(irisScanIcon); @@ -384,4 +391,31 @@ public void clickOnBackButton() { public boolean isUpdateOperatorBiometricsPageLoaded() { return isElementDisplayed(updateOperatorBiometrics); } + + public boolean validateThreshold(int expected) { + WebElement el = driver.findElement(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true))" + + ".scrollIntoView(new UiSelector().descriptionContains(\"Threshold\"));" + )); + + String text = el.getAttribute("content-desc"); // "Threshold 75%" + int actual = Integer.parseInt(text.replaceAll("[^0-9]", "")); // extract 75 + + return actual == expected; + } + + public void updateBiometricsAndWaitPopup() { + for (int i = 1; i <= 5; i++) { + clickOnVerifyAndSaveButton(); + try { + new WebDriverWait(driver, Duration.ofSeconds(60)) + .until(ExpectedConditions.visibilityOf(successPopup)); + return; // success + } catch (Exception ignored) {} + try { Thread.sleep(2000); } catch (InterruptedException ignored) {} + } + throw new AssertionError("Biometrics update success popup not displayed after 5 retries."); + } + + } diff --git a/ui-test/src/main/java/regclient/pages/french/AutoLogoutPageFrench.java b/ui-test/src/main/java/regclient/pages/french/AutoLogoutPageFrench.java new file mode 100644 index 000000000..ba1e02bf1 --- /dev/null +++ b/ui-test/src/main/java/regclient/pages/french/AutoLogoutPageFrench.java @@ -0,0 +1,51 @@ +package regclient.pages.french; + +import java.time.Duration; + +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; + +import io.appium.java_client.AppiumDriver; +import io.appium.java_client.pagefactory.AndroidFindBy; +import regclient.page.AutoLogoutPage; +import regclient.page.LoginPage; +import regclient.page.RegistrationTasksPage; + +public class AutoLogoutPageFrench extends AutoLogoutPage { + + @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"You have been idle\")") + private WebElement autoLogoutPopup; + + @AndroidFindBy(accessibility = "LOG OUT") + private WebElement logoutButton; + + @AndroidFindBy(accessibility = "STAY LOGGED IN") + private WebElement stayLoggedInButton; + + public AutoLogoutPageFrench(AppiumDriver driver) { + super(driver); + // TODO Auto-generated constructor stub + } + + public boolean isAutoLogoutPopupDisplayed() { + try { + WebDriverWait wait = new WebDriverWait(driver, Duration.ofMinutes(10)); + wait.until(ExpectedConditions.visibilityOf(autoLogoutPopup)); + return true; + } catch (Exception e) { + return false; + } + } + + public RegistrationTasksPage clickOnStayLoggedInButton() { + clickOnElement(stayLoggedInButton); + return new RegistrationTasksPageFrench(driver); + } + + public LoginPage clickOnStayLogoutButton() { + clickOnElement(logoutButton); + return new LoginPageFrench(driver); + } + +} diff --git a/ui-test/src/main/java/regclient/pages/french/DemographicDetailsPageFrench.java b/ui-test/src/main/java/regclient/pages/french/DemographicDetailsPageFrench.java index 2717bc2b6..1ff0b1429 100644 --- a/ui-test/src/main/java/regclient/pages/french/DemographicDetailsPageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/DemographicDetailsPageFrench.java @@ -21,7 +21,7 @@ import regclient.page.DemographicDetailsPage; import regclient.page.DocumentUploadPage; import regclient.pages.english.ConsentPageEnglish; -import regclient.pages.english.DocumentuploadPageEnglish; +import regclient.pages.english.DocumentUploadPageEnglish; import regclient.utils.TestDataReader; public class DemographicDetailsPageFrench extends DemographicDetailsPage { @@ -187,7 +187,7 @@ else if (age.equals("currentCalenderDate")) { waitTime(1); clickOnElement(backgroundScreen); waitTime(1); - assertTrue(checkDateFormatAndCurrectDate(id), + assertTrue(checkDateFormatAndCurrentDate(id), "Verify date format and current date and time while selecting age date"); } } @@ -308,7 +308,7 @@ else if (age.equals("currentCalenderDate")) { waitTime(1); clickOnElement(backgroundScreen); waitTime(1); - assertTrue(checkDateFormatAndCurrectDate(id), + assertTrue(checkDateFormatAndCurrentDate(id), "Verify date format and current date and time while selecting age date"); } } @@ -364,7 +364,7 @@ public boolean checkSecondLanguageTextBoxNotNull(String id) { return true; } - public boolean checkDateFormatAndCurrectDate(String id) { + public boolean checkDateFormatAndCurrentDate(String id) { if (getTextFromLocator(findElementWithRetry( By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View"))) diff --git a/ui-test/src/main/java/regclient/pages/french/DocumentUploadPageFrench.java b/ui-test/src/main/java/regclient/pages/french/DocumentUploadPageFrench.java index 715d84c8f..01b6b892d 100644 --- a/ui-test/src/main/java/regclient/pages/french/DocumentUploadPageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/DocumentUploadPageFrench.java @@ -15,7 +15,7 @@ import regclient.page.CameraPage; import regclient.page.DocumentUploadPage; import regclient.pages.english.BiometricDetailsPageEnglish; -import regclient.pages.english.DocumentuploadPageEnglish; +import regclient.pages.english.DocumentUploadPageEnglish; public class DocumentUploadPageFrench extends DocumentUploadPage { diff --git a/ui-test/src/main/java/regclient/pages/french/PendingApprovalFrench.java b/ui-test/src/main/java/regclient/pages/french/PendingApprovalFrench.java index a2fadfe08..a5e767d73 100644 --- a/ui-test/src/main/java/regclient/pages/french/PendingApprovalFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/PendingApprovalFrench.java @@ -192,7 +192,7 @@ public boolean isSubmitButtonEnabled() { return isElementEnabled(submitButton); } - public boolean isInvalidemptyUsernameSumbitButtonEnbled() { + public boolean isInvalidEmptyUsernameSubmitButtonEnabled() { return isElementEnabled(invalidUsernameMessageForempty); } diff --git a/ui-test/src/main/java/regclient/pages/french/PreviewPageFrench.java b/ui-test/src/main/java/regclient/pages/french/PreviewPageFrench.java index 8fef6de0a..4b40ed07e 100644 --- a/ui-test/src/main/java/regclient/pages/french/PreviewPageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/PreviewPageFrench.java @@ -45,6 +45,9 @@ public class PreviewPageFrench extends PreviewPage { @AndroidFindBy(accessibility = "UIN perdu") private WebElement lostUinTitle; + + @AndroidFindBy(accessibility = "Correction biométrique") + private WebElement biometricCorrectionTitle; public PreviewPageFrench(AppiumDriver driver) { super(driver); @@ -127,4 +130,8 @@ public String getEmailId() { public boolean isLostUinTitleDisplayed() { return isElementDisplayed(lostUinTitle); } + + public boolean isBiometricCorrectionTitleDisplayed() { + return isElementDisplayed(biometricCorrectionTitle); + } } diff --git a/ui-test/src/main/java/regclient/pages/french/RegistrationTasksPageFrench.java b/ui-test/src/main/java/regclient/pages/french/RegistrationTasksPageFrench.java index 3a242d642..809d10cde 100644 --- a/ui-test/src/main/java/regclient/pages/french/RegistrationTasksPageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/RegistrationTasksPageFrench.java @@ -171,4 +171,8 @@ public void handleLocationPermission() { public void clickOnRegistrationTasksTab() { clickOnElement(registrationTasksTitle); } + + public boolean isSettingsButtonDisplayed() { + return isElementDisplayed(settingsButton); + } } diff --git a/ui-test/src/main/java/regclient/pages/french/SettingsPageFrench.java b/ui-test/src/main/java/regclient/pages/french/SettingsPageFrench.java index 9589654a0..5924741dd 100644 --- a/ui-test/src/main/java/regclient/pages/french/SettingsPageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/SettingsPageFrench.java @@ -66,6 +66,27 @@ public class SettingsPageFrench extends SettingsPage { @AndroidFindBy(accessibility = "CANCEL") private WebElement changesCancelButton; + + @AndroidFindBy(accessibility = "Scheduled Job Settings") + private WebElement scheduledJobSettingsPageHeader; + + @AndroidFindBy(xpath = "//*[@content-desc[contains(.,'Master Data Sync')]]") + private WebElement masterDataSyncCard; + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc,'Master Data Sync')]//android.widget.Button") + private WebElement masterDataSyncButton; + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc,'thumbs_fingerprint_threshold')]//android.widget.EditText") + private WebElement thumbsThresholdField; + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc,'iris_threshold')]//android.widget.EditText") + private WebElement irisThresholdField; + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc,'rightslap_fingerprint_threshold')]//android.widget.EditText") + private WebElement rightSlapThresholdField; + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc,'leftslap_fingerprint_threshold')]//android.widget.EditText") + private WebElement leftSlapThresholdField; public SettingsPageFrench(AppiumDriver driver) { super(driver); @@ -174,4 +195,41 @@ public void clickOnChangesConfirmButton() { clickOnElement(changesConfirmButton); } + public boolean isScheduledJobSettingsPageHeaderDisplayed() { + return isElementDisplayed(scheduledJobSettingsPageHeader); + } + + public boolean isMasterDataSyncCardDisplayed() { + return isElementDisplayed(masterDataSyncCard); + } + + public void clickOnMasterDataSyncButton() { + clickOnElement(masterDataSyncButton); + } + + public boolean isToastVisible(String toastMessage) { + for (int i = 0; i < 15; i++) { // ~3 seconds + if (driver.getPageSource().contains(toastMessage)) { + return true; + } + try { + Thread.sleep(200); + } catch (Exception ignored) { + } + } + return false; + } + + public WebElement getSyncButton(String jobName) { + return driver.findElement( + By.xpath("//android.view.View[contains(@content-desc,'" + jobName + "')]//*[@clickable='true']")); + } + + public boolean validateJobCardFields(String jobName) { + WebElement card = driver + .findElement(By.xpath("//android.view.View[contains(@content-desc,'" + jobName + "')]")); + String cd = card.getAttribute("content-desc"); + return cd.contains(jobName) && cd.contains("Next Run") && cd.contains("Last Sync") + && cd.contains("Cron Expression"); + } } diff --git a/ui-test/src/main/java/regclient/pages/french/SupervisorBiometricVerificationpageFrench.java b/ui-test/src/main/java/regclient/pages/french/SupervisorBiometricVerificationpageFrench.java index 096572263..2636b5404 100644 --- a/ui-test/src/main/java/regclient/pages/french/SupervisorBiometricVerificationpageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/SupervisorBiometricVerificationpageFrench.java @@ -243,7 +243,7 @@ public void markOneEyeException() { clickOnElement(oneEyeException); } - public void markOneFingreException() { + public void markOneFingerException() { clickOnElement(firstFingureExceptionImage); } diff --git a/ui-test/src/main/java/regclient/pages/french/UpdateOperatorBiometricspageFrench.java b/ui-test/src/main/java/regclient/pages/french/UpdateOperatorBiometricspageFrench.java index c1c4aaa59..562889856 100644 --- a/ui-test/src/main/java/regclient/pages/french/UpdateOperatorBiometricspageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/UpdateOperatorBiometricspageFrench.java @@ -1,8 +1,13 @@ package regclient.pages.french; +import java.time.Duration; + import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; import io.appium.java_client.AppiumDriver; +import io.appium.java_client.MobileBy; import io.appium.java_client.pagefactory.AndroidFindBy; import regclient.page.UpdateOperatorBiometricspage; @@ -378,5 +383,30 @@ public void clickOnBackButton() { public boolean isUpdateOperatorBiometricsPageLoaded() { return isElementDisplayed(updateOperatorBiometrics); } + + public boolean validateThreshold(int expected) { + WebElement el = driver.findElement(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true))" + + ".scrollIntoView(new UiSelector().descriptionContains(\"Threshold\"));" + )); + + String text = el.getAttribute("content-desc"); // "Threshold 75%" + int actual = Integer.parseInt(text.replaceAll("[^0-9]", "")); // extract 75 + + return actual == expected; + } + + public void updateBiometricsAndWaitPopup() { + for (int i = 1; i <= 5; i++) { + clickOnVerifyAndSaveButton(); + try { + new WebDriverWait(driver, Duration.ofSeconds(60)) + .until(ExpectedConditions.visibilityOf(successPopup)); + return; // success + } catch (Exception ignored) {} + try { Thread.sleep(2000); } catch (InterruptedException ignored) {} + } + throw new AssertionError("Biometrics update success popup not displayed after 5 retries."); + } } diff --git a/ui-test/src/main/java/regclient/pages/hindi/AutoLogoutPageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/AutoLogoutPageHindi.java new file mode 100644 index 000000000..eb4f95424 --- /dev/null +++ b/ui-test/src/main/java/regclient/pages/hindi/AutoLogoutPageHindi.java @@ -0,0 +1,52 @@ +package regclient.pages.hindi; + +import java.time.Duration; + +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; + +import io.appium.java_client.AppiumDriver; +import io.appium.java_client.pagefactory.AndroidFindBy; +import regclient.page.AutoLogoutPage; +import regclient.page.LoginPage; +import regclient.page.RegistrationTasksPage; + +public class AutoLogoutPageHindi extends AutoLogoutPage{ + + + @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"You have been idle\")") + private WebElement autoLogoutPopup; + + @AndroidFindBy(accessibility = "LOG OUT") + private WebElement logoutButton; + + @AndroidFindBy(accessibility = "STAY LOGGED IN") + private WebElement stayLoggedInButton; + + public AutoLogoutPageHindi(AppiumDriver driver) { + super(driver); + // TODO Auto-generated constructor stub + } + + public boolean isAutoLogoutPopupDisplayed() { + try { + WebDriverWait wait = new WebDriverWait(driver, Duration.ofMinutes(10)); + wait.until(ExpectedConditions.visibilityOf(autoLogoutPopup)); + return true; + } catch (Exception e) { + return false; + } + } + + public RegistrationTasksPage clickOnStayLoggedInButton() { + clickOnElement(stayLoggedInButton); + return new RegistrationTasksPageHindi(driver); + } + + public LoginPage clickOnStayLogoutButton() { + clickOnElement(logoutButton); + return new LoginPageHindi(driver); + } + +} diff --git a/ui-test/src/main/java/regclient/pages/hindi/DemographicDetailsPageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/DemographicDetailsPageHindi.java index 0269eb304..d9bea9e9a 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/DemographicDetailsPageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/DemographicDetailsPageHindi.java @@ -20,7 +20,7 @@ import regclient.page.DemographicDetailsPage; import regclient.page.DocumentUploadPage; import regclient.pages.english.ConsentPageEnglish; -import regclient.pages.english.DocumentuploadPageEnglish; +import regclient.pages.english.DocumentUploadPageEnglish; import regclient.utils.TestDataReader; public class DemographicDetailsPageHindi extends DemographicDetailsPage { @@ -186,7 +186,7 @@ else if (age.equals("currentCalenderDate")) { waitTime(1); clickOnElement(backgroundScreen); waitTime(1); - assertTrue(checkDateFormatAndCurrectDate(id), + assertTrue(checkDateFormatAndCurrentDate(id), "Verify date format and current date and time while selecting age date"); } } @@ -307,7 +307,7 @@ else if (age.equals("currentCalenderDate")) { waitTime(1); clickOnElement(backgroundScreen); waitTime(1); - assertTrue(checkDateFormatAndCurrectDate(id), + assertTrue(checkDateFormatAndCurrentDate(id), "Verify date format and current date and time while selecting age date"); } } @@ -363,7 +363,7 @@ public boolean checkSecondLanguageTextBoxNotNull(String id) { return true; } - public boolean checkDateFormatAndCurrectDate(String id) { + public boolean checkDateFormatAndCurrentDate(String id) { if (getTextFromLocator(findElementWithRetry( By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View"))) diff --git a/ui-test/src/main/java/regclient/pages/hindi/DocumentUploadPageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/DocumentUploadPageHindi.java index 6d1d7ec5e..31a1c90ba 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/DocumentUploadPageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/DocumentUploadPageHindi.java @@ -15,7 +15,7 @@ import regclient.page.CameraPage; import regclient.page.DocumentUploadPage; import regclient.pages.english.BiometricDetailsPageEnglish; -import regclient.pages.english.DocumentuploadPageEnglish; +import regclient.pages.english.DocumentUploadPageEnglish; public class DocumentUploadPageHindi extends DocumentUploadPage{ diff --git a/ui-test/src/main/java/regclient/pages/hindi/PendingApprovalHindi.java b/ui-test/src/main/java/regclient/pages/hindi/PendingApprovalHindi.java index affbd7950..7941509bf 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/PendingApprovalHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/PendingApprovalHindi.java @@ -146,7 +146,7 @@ public boolean isInvalidUsernameMessageDisplayed() { return isElementDisplayed(invalidUsernameMessage); } - public boolean isInvalidemptyUsernameSumbitButtonEnbled() { + public boolean isInvalidEmptyUsernameSubmitButtonEnabled() { return isElementEnabled(invalidUsernameMessageForempty); } diff --git a/ui-test/src/main/java/regclient/pages/hindi/PreviewPageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/PreviewPageHindi.java index fcd17d60d..3e9cb8262 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/PreviewPageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/PreviewPageHindi.java @@ -45,6 +45,9 @@ public class PreviewPageHindi extends PreviewPage { @AndroidFindBy(accessibility = "खोया हुआ UIN") private WebElement lostUinTitle; + + @AndroidFindBy(accessibility = "बायोमेट्रिक सुधार") + private WebElement biometricCorrectionTitle; public PreviewPageHindi(AppiumDriver driver) { super(driver); @@ -125,4 +128,8 @@ public String getEmailId() { public boolean isLostUinTitleDisplayed() { return isElementDisplayed(lostUinTitle); } + + public boolean isBiometricCorrectionTitleDisplayed() { + return isElementDisplayed(biometricCorrectionTitle); + } } diff --git a/ui-test/src/main/java/regclient/pages/hindi/RegistrationTasksPageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/RegistrationTasksPageHindi.java index 080c39b62..16dabc684 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/RegistrationTasksPageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/RegistrationTasksPageHindi.java @@ -171,5 +171,9 @@ public void handleLocationPermission() { public void clickOnRegistrationTasksTab() { clickOnElement(registrationTasksTitle); } + + public boolean isSettingsButtonDisplayed() { + return isElementDisplayed(settingsButton); + } } diff --git a/ui-test/src/main/java/regclient/pages/hindi/SettingsPageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/SettingsPageHindi.java index fc5c3adc6..306a505b2 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/SettingsPageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/SettingsPageHindi.java @@ -66,6 +66,27 @@ public class SettingsPageHindi extends SettingsPage{ @AndroidFindBy(accessibility = "CANCEL") private WebElement changesCancelButton; + + @AndroidFindBy(accessibility = "Scheduled Job Settings") + private WebElement scheduledJobSettingsPageHeader; + + @AndroidFindBy(xpath = "//*[@content-desc[contains(.,'Master Data Sync')]]") + private WebElement masterDataSyncCard; + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc,'Master Data Sync')]//android.widget.Button") + private WebElement masterDataSyncButton; + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc,'thumbs_fingerprint_threshold')]//android.widget.EditText") + private WebElement thumbsThresholdField; + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc,'iris_threshold')]//android.widget.EditText") + private WebElement irisThresholdField; + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc,'rightslap_fingerprint_threshold')]//android.widget.EditText") + private WebElement rightSlapThresholdField; + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc,'leftslap_fingerprint_threshold')]//android.widget.EditText") + private WebElement leftSlapThresholdField; public SettingsPageHindi(AppiumDriver driver) { super(driver); @@ -173,5 +194,43 @@ public boolean isSubmitChangesPopupDisplayed() { public void clickOnChangesConfirmButton() { clickOnElement(changesConfirmButton); } + + public boolean isScheduledJobSettingsPageHeaderDisplayed() { + return isElementDisplayed(scheduledJobSettingsPageHeader); + } + + public boolean isMasterDataSyncCardDisplayed() { + return isElementDisplayed(masterDataSyncCard); + } + + public void clickOnMasterDataSyncButton() { + clickOnElement(masterDataSyncButton); + } + + public boolean isToastVisible(String toastMessage) { + for (int i = 0; i < 15; i++) { // ~3 seconds + if (driver.getPageSource().contains(toastMessage)) { + return true; + } + try { + Thread.sleep(200); + } catch (Exception ignored) { + } + } + return false; + } + + public WebElement getSyncButton(String jobName) { + return driver.findElement( + By.xpath("//android.view.View[contains(@content-desc,'" + jobName + "')]//*[@clickable='true']")); + } + + public boolean validateJobCardFields(String jobName) { + WebElement card = driver + .findElement(By.xpath("//android.view.View[contains(@content-desc,'" + jobName + "')]")); + String cd = card.getAttribute("content-desc"); + return cd.contains(jobName) && cd.contains("Next Run") && cd.contains("Last Sync") + && cd.contains("Cron Expression"); + } } diff --git a/ui-test/src/main/java/regclient/pages/hindi/SupervisorBiometricVerificationpageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/SupervisorBiometricVerificationpageHindi.java index 50a077ee2..c397ce2ba 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/SupervisorBiometricVerificationpageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/SupervisorBiometricVerificationpageHindi.java @@ -258,7 +258,7 @@ public void markOneEyeException() { clickOnElement(oneEyeException); } - public void markOneFingreException() { + public void markOneFingerException() { clickOnElement(firstFingureExceptionImage); } diff --git a/ui-test/src/main/java/regclient/pages/hindi/UpdateOperatorBiometricspageHindi.java b/ui-test/src/main/java/regclient/pages/hindi/UpdateOperatorBiometricspageHindi.java index 3a0c4531e..9b132231f 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/UpdateOperatorBiometricspageHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/UpdateOperatorBiometricspageHindi.java @@ -1,8 +1,13 @@ package regclient.pages.hindi; +import java.time.Duration; + import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; import io.appium.java_client.AppiumDriver; +import io.appium.java_client.MobileBy; import io.appium.java_client.pagefactory.AndroidFindBy; import regclient.page.UpdateOperatorBiometricspage; @@ -394,4 +399,26 @@ public boolean isUpdateOperatorBiometricsPageLoaded() { return isElementDisplayed(updateOperatorBiometrics); } + public boolean validateThreshold(int expected) { + WebElement el = driver.findElement(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true))" + + ".scrollIntoView(new UiSelector().descriptionContains(\"Threshold\"));")); + String text = el.getAttribute("content-desc"); // "Threshold 75%" + int actual = Integer.parseInt(text.replaceAll("[^0-9]", "")); // extract 75 + + return actual == expected; + } + + public void updateBiometricsAndWaitPopup() { + for (int i = 1; i <= 5; i++) { + clickOnVerifyAndSaveButton(); + try { + new WebDriverWait(driver, Duration.ofSeconds(60)) + .until(ExpectedConditions.visibilityOf(successPopup)); + return; // success + } catch (Exception ignored) {} + try { Thread.sleep(2000); } catch (InterruptedException ignored) {} + } + throw new AssertionError("Biometrics update success popup not displayed after 5 retries."); + } } diff --git a/ui-test/src/main/java/regclient/pages/kannada/AutoLogoutPageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/AutoLogoutPageKannada.java new file mode 100644 index 000000000..1c3742a20 --- /dev/null +++ b/ui-test/src/main/java/regclient/pages/kannada/AutoLogoutPageKannada.java @@ -0,0 +1,53 @@ +package regclient.pages.kannada; + +import java.time.Duration; + +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; + +import io.appium.java_client.AppiumDriver; +import io.appium.java_client.pagefactory.AndroidFindBy; +import regclient.page.AutoLogoutPage; +import regclient.page.LoginPage; +import regclient.page.RegistrationTasksPage; +import regclient.pages.english.RegistrationTasksPageEnglish; + +public class AutoLogoutPageKannada extends AutoLogoutPage{ + + + @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"You have been idle\")") + private WebElement autoLogoutPopup; + + @AndroidFindBy(accessibility = "LOG OUT") + private WebElement logoutButton; + + @AndroidFindBy(accessibility = "STAY LOGGED IN") + private WebElement stayLoggedInButton; + + public AutoLogoutPageKannada(AppiumDriver driver) { + super(driver); + // TODO Auto-generated constructor stub + } + + public boolean isAutoLogoutPopupDisplayed() { + try { + WebDriverWait wait = new WebDriverWait(driver, Duration.ofMinutes(10)); + wait.until(ExpectedConditions.visibilityOf(autoLogoutPopup)); + return true; + } catch (Exception e) { + return false; + } + } + + public RegistrationTasksPage clickOnStayLoggedInButton() { + clickOnElement(stayLoggedInButton); + return new RegistrationTasksPageKannada(driver); + } + + public LoginPage clickOnStayLogoutButton() { + clickOnElement(logoutButton); + return new LoginPageKannada(driver); + } + +} diff --git a/ui-test/src/main/java/regclient/pages/kannada/DemographicDetailsPageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/DemographicDetailsPageKannada.java index f3eb9f7c5..889b47c06 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/DemographicDetailsPageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/DemographicDetailsPageKannada.java @@ -20,7 +20,7 @@ import regclient.page.DemographicDetailsPage; import regclient.page.DocumentUploadPage; import regclient.pages.english.ConsentPageEnglish; -import regclient.pages.english.DocumentuploadPageEnglish; +import regclient.pages.english.DocumentUploadPageEnglish; import regclient.utils.TestDataReader; public class DemographicDetailsPageKannada extends DemographicDetailsPage { @@ -86,7 +86,7 @@ public ConsentPage clickOnPageTitle(String pageKey) { public DocumentUploadPage clickOnContinueButton() { clickOnElement(continueButton); - return new DocumentuploadPageKannada(driver); + return new DocumentUploadPageKannada(driver); } public boolean isContinueButtonEnable() { @@ -184,7 +184,7 @@ else if (age.equals("currentCalenderDate")) { waitTime(1); clickOnElement(backgroundScreen); waitTime(1); - assertTrue(checkDateFormatAndCurrectDate(id), + assertTrue(checkDateFormatAndCurrentDate(id), "Verify date format and current date and time while selecting age date"); } } @@ -305,7 +305,7 @@ else if (age.equals("currentCalenderDate")) { waitTime(1); clickOnElement(backgroundScreen); waitTime(1); - assertTrue(checkDateFormatAndCurrectDate(id), + assertTrue(checkDateFormatAndCurrentDate(id), "Verify date format and current date and time while selecting age date"); } } @@ -361,7 +361,7 @@ public boolean checkSecondLanguageTextBoxNotNull(String id) { return true; } - public boolean checkDateFormatAndCurrectDate(String id) { + public boolean checkDateFormatAndCurrentDate(String id) { if (getTextFromLocator(findElementWithRetry( By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View"))) diff --git a/ui-test/src/main/java/regclient/pages/kannada/DocumentuploadPageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/DocumentuploadPageKannada.java index 38d4bb669..6a7051899 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/DocumentuploadPageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/DocumentuploadPageKannada.java @@ -15,10 +15,10 @@ import regclient.page.CameraPage; import regclient.page.DocumentUploadPage; import regclient.pages.english.BiometricDetailsPageEnglish; -import regclient.pages.english.DocumentuploadPageEnglish; +import regclient.pages.english.DocumentUploadPageEnglish; -public class DocumentuploadPageKannada extends DocumentUploadPage{ +public class DocumentUploadPageKannada extends DocumentUploadPage{ @AndroidFindBy(accessibility = "ಸ್ಕ್ರಿಮ್") private WebElement PopUpCloseButton; @@ -44,7 +44,7 @@ public class DocumentuploadPageKannada extends DocumentUploadPage{ @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.view.View\").instance(8)") private WebElement imageleftCorner; - public DocumentuploadPageKannada(AppiumDriver driver) { + public DocumentUploadPageKannada(AppiumDriver driver) { super(driver); } @@ -60,7 +60,7 @@ public boolean isDoccumentUploadPageDisplayed() { public DocumentUploadPage clickOnSaveButton() { clickOnElement(saveButton); - return new DocumentuploadPageKannada(driver); + return new DocumentUploadPageKannada(driver); } public boolean isRetakeButtonDisplayed() { diff --git a/ui-test/src/main/java/regclient/pages/kannada/IdentityProofPageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/IdentityProofPageKannada.java index f781f8550..31381bcb8 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/IdentityProofPageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/IdentityProofPageKannada.java @@ -27,7 +27,7 @@ public IdentityProofPageKannada(AppiumDriver driver) { public DocumentUploadPage clickOnSaveButton() { clickOnElement(saveButton); - return new DocumentuploadPageKannada(driver); + return new DocumentUploadPageKannada(driver); } public boolean isRetakeButtonDisplayed() { diff --git a/ui-test/src/main/java/regclient/pages/kannada/PendingApprovalKannada.java b/ui-test/src/main/java/regclient/pages/kannada/PendingApprovalKannada.java index 7b992a26e..a1367962b 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/PendingApprovalKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/PendingApprovalKannada.java @@ -193,7 +193,7 @@ public boolean isSubmitButtonEnabled() { return isElementEnabled(submitButton); } - public boolean isInvalidemptyUsernameSumbitButtonEnbled() { + public boolean isInvalidEmptyUsernameSubmitButtonEnabled() { return isElementEnabled(invalidUsernameMessageForempty); } diff --git a/ui-test/src/main/java/regclient/pages/kannada/PreviewPageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/PreviewPageKannada.java index 56c86e604..15e3c8443 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/PreviewPageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/PreviewPageKannada.java @@ -45,6 +45,9 @@ public class PreviewPageKannada extends PreviewPage { @AndroidFindBy(accessibility = "ಕಳೆದುಹೋದ UIN") private WebElement lostUinTitle; + + @AndroidFindBy(accessibility = "ಜೈವಿಕ ಗುರುತುಗಳ ತಿದ್ದುಪಡಿ") + private WebElement biometricCorrectionTitle; public PreviewPageKannada(AppiumDriver driver) { super(driver); @@ -127,5 +130,9 @@ public String getEmailId() { public boolean isLostUinTitleDisplayed() { return isElementDisplayed(lostUinTitle); } + + public boolean isBiometricCorrectionTitleDisplayed() { + return isElementDisplayed(biometricCorrectionTitle); + } } diff --git a/ui-test/src/main/java/regclient/pages/kannada/RegistrationTasksPageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/RegistrationTasksPageKannada.java index dd5d991ff..d205e05e1 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/RegistrationTasksPageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/RegistrationTasksPageKannada.java @@ -172,4 +172,7 @@ public void clickOnRegistrationTasksTab() { clickOnElement(registrationTasksTitle); } + public boolean isSettingsButtonDisplayed() { + return isElementDisplayed(settingsButton); + } } diff --git a/ui-test/src/main/java/regclient/pages/kannada/SettingsPageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/SettingsPageKannada.java index 4c94f8154..0b6cdc238 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/SettingsPageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/SettingsPageKannada.java @@ -66,6 +66,27 @@ public class SettingsPageKannada extends SettingsPage { @AndroidFindBy(accessibility = "CANCEL") private WebElement changesCancelButton; + + @AndroidFindBy(accessibility = "Scheduled Job Settings") + private WebElement scheduledJobSettingsPageHeader; + + @AndroidFindBy(xpath = "//*[@content-desc[contains(.,'Master Data Sync')]]") + private WebElement masterDataSyncCard; + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc,'Master Data Sync')]//android.widget.Button") + private WebElement masterDataSyncButton; + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc,'thumbs_fingerprint_threshold')]//android.widget.EditText") + private WebElement thumbsThresholdField; + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc,'iris_threshold')]//android.widget.EditText") + private WebElement irisThresholdField; + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc,'rightslap_fingerprint_threshold')]//android.widget.EditText") + private WebElement rightSlapThresholdField; + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc,'leftslap_fingerprint_threshold')]//android.widget.EditText") + private WebElement leftSlapThresholdField; public SettingsPageKannada(AppiumDriver driver) { super(driver); @@ -170,5 +191,43 @@ public boolean isSubmitChangesPopupDisplayed() { public void clickOnChangesConfirmButton() { clickOnElement(changesConfirmButton); } + + public boolean isScheduledJobSettingsPageHeaderDisplayed() { + return isElementDisplayed(scheduledJobSettingsPageHeader); + } + + public boolean isMasterDataSyncCardDisplayed() { + return isElementDisplayed(masterDataSyncCard); + } + + public void clickOnMasterDataSyncButton() { + clickOnElement(masterDataSyncButton); + } + + public boolean isToastVisible(String toastMessage) { + for (int i = 0; i < 15; i++) { // ~3 seconds + if (driver.getPageSource().contains(toastMessage)) { + return true; + } + try { + Thread.sleep(200); + } catch (Exception ignored) { + } + } + return false; + } + + public WebElement getSyncButton(String jobName) { + return driver.findElement( + By.xpath("//android.view.View[contains(@content-desc,'" + jobName + "')]//*[@clickable='true']")); + } + + public boolean validateJobCardFields(String jobName) { + WebElement card = driver + .findElement(By.xpath("//android.view.View[contains(@content-desc,'" + jobName + "')]")); + String cd = card.getAttribute("content-desc"); + return cd.contains(jobName) && cd.contains("Next Run") && cd.contains("Last Sync") + && cd.contains("Cron Expression"); + } } diff --git a/ui-test/src/main/java/regclient/pages/kannada/SupervisorBiometricVerificationpageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/SupervisorBiometricVerificationpageKannada.java index a623482ae..5a4d89803 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/SupervisorBiometricVerificationpageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/SupervisorBiometricVerificationpageKannada.java @@ -258,7 +258,7 @@ public void markOneEyeException() { clickOnElement(oneEyeException); } - public void markOneFingreException() { + public void markOneFingerException() { clickOnElement(firstFingureExceptionImage); } diff --git a/ui-test/src/main/java/regclient/pages/kannada/UpdateOperatorBiometricspageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/UpdateOperatorBiometricspageKannada.java index 58b546893..4a298ca7a 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/UpdateOperatorBiometricspageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/UpdateOperatorBiometricspageKannada.java @@ -1,8 +1,13 @@ package regclient.pages.kannada; +import java.time.Duration; + import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; import io.appium.java_client.AppiumDriver; +import io.appium.java_client.MobileBy; import io.appium.java_client.pagefactory.AndroidFindBy; import regclient.page.UpdateOperatorBiometricspage; @@ -393,5 +398,30 @@ public void clickOnBackButton() { public boolean isUpdateOperatorBiometricsPageLoaded() { return isElementDisplayed(updateOperatorBiometrics); } + + public boolean validateThreshold(int expected) { + WebElement el = driver.findElement(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true))" + + ".scrollIntoView(new UiSelector().descriptionContains(\"Threshold\"));" + )); + + String text = el.getAttribute("content-desc"); // "Threshold 75%" + int actual = Integer.parseInt(text.replaceAll("[^0-9]", "")); // extract 75 + + return actual == expected; + } + + public void updateBiometricsAndWaitPopup() { + for (int i = 1; i <= 5; i++) { + clickOnVerifyAndSaveButton(); + try { + new WebDriverWait(driver, Duration.ofSeconds(60)) + .until(ExpectedConditions.visibilityOf(successPopup)); + return; // success + } catch (Exception ignored) {} + try { Thread.sleep(2000); } catch (InterruptedException ignored) {} + } + throw new AssertionError("Biometrics update success popup not displayed after 5 retries."); + } } diff --git a/ui-test/src/main/java/regclient/pages/tamil/AutoLogoutPageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/AutoLogoutPageTamil.java new file mode 100644 index 000000000..e4c01004c --- /dev/null +++ b/ui-test/src/main/java/regclient/pages/tamil/AutoLogoutPageTamil.java @@ -0,0 +1,52 @@ +package regclient.pages.tamil; + +import java.time.Duration; + +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; + +import io.appium.java_client.AppiumDriver; +import io.appium.java_client.pagefactory.AndroidFindBy; +import regclient.page.AutoLogoutPage; +import regclient.page.LoginPage; +import regclient.page.RegistrationTasksPage; + +public class AutoLogoutPageTamil extends AutoLogoutPage{ + + + @AndroidFindBy(uiAutomator = "new UiSelector().descriptionContains(\"You have been idle\")") + private WebElement autoLogoutPopup; + + @AndroidFindBy(accessibility = "LOG OUT") + private WebElement logoutButton; + + @AndroidFindBy(accessibility = "STAY LOGGED IN") + private WebElement stayLoggedInButton; + + public AutoLogoutPageTamil(AppiumDriver driver) { + super(driver); + // TODO Auto-generated constructor stub + } + + public boolean isAutoLogoutPopupDisplayed() { + try { + WebDriverWait wait = new WebDriverWait(driver, Duration.ofMinutes(10)); + wait.until(ExpectedConditions.visibilityOf(autoLogoutPopup)); + return true; + } catch (Exception e) { + return false; + } + } + + public RegistrationTasksPage clickOnStayLoggedInButton() { + clickOnElement(stayLoggedInButton); + return new RegistrationTasksPageTamil(driver); + } + + public LoginPage clickOnStayLogoutButton() { + clickOnElement(logoutButton); + return new LoginPageTamil(driver); + } + +} diff --git a/ui-test/src/main/java/regclient/pages/tamil/DemographicDetailsPageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/DemographicDetailsPageTamil.java index c2f6644ad..7ea8667c2 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/DemographicDetailsPageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/DemographicDetailsPageTamil.java @@ -20,7 +20,7 @@ import regclient.page.DemographicDetailsPage; import regclient.page.DocumentUploadPage; import regclient.pages.english.ConsentPageEnglish; -import regclient.pages.english.DocumentuploadPageEnglish; +import regclient.pages.english.DocumentUploadPageEnglish; import regclient.utils.TestDataReader; public class DemographicDetailsPageTamil extends DemographicDetailsPage { @@ -86,7 +86,7 @@ public boolean isErrorMessageInvalidInputTextDisplayed() { public DocumentUploadPage clickOnContinueButton() { clickOnElement(continueButton); - return new DocumentuploadPageTamil(driver); + return new DocumentUploadPageTamil(driver); } public boolean isContinueButtonEnable() { @@ -184,7 +184,7 @@ else if (age.equals("currentCalenderDate")) { waitTime(1); clickOnElement(backgroundScreen); waitTime(1); - assertTrue(checkDateFormatAndCurrectDate(id), + assertTrue(checkDateFormatAndCurrentDate(id), "Verify date format and current date and time while selecting age date"); } } @@ -305,7 +305,7 @@ else if (age.equals("currentCalenderDate")) { waitTime(1); clickOnElement(backgroundScreen); waitTime(1); - assertTrue(checkDateFormatAndCurrectDate(id), + assertTrue(checkDateFormatAndCurrentDate(id), "Verify date format and current date and time while selecting age date"); } } @@ -361,7 +361,7 @@ public boolean checkSecondLanguageTextBoxNotNull(String id) { return true; } - public boolean checkDateFormatAndCurrectDate(String id) { + public boolean checkDateFormatAndCurrentDate(String id) { if (getTextFromLocator(findElementWithRetry( By.xpath("//android.view.View[contains(@content-desc, \"" + FetchUiSpec.getValueUsingId(id) + "\")]/parent::android.view.View/following-sibling::android.view.View"))) diff --git a/ui-test/src/main/java/regclient/pages/tamil/DocumentuploadPageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/DocumentuploadPageTamil.java index 8083d2f10..f9fd5caf2 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/DocumentuploadPageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/DocumentuploadPageTamil.java @@ -15,9 +15,9 @@ import regclient.page.CameraPage; import regclient.page.DocumentUploadPage; import regclient.pages.english.BiometricDetailsPageEnglish; -import regclient.pages.english.DocumentuploadPageEnglish; +import regclient.pages.english.DocumentUploadPageEnglish; -public class DocumentuploadPageTamil extends DocumentUploadPage { +public class DocumentUploadPageTamil extends DocumentUploadPage { @AndroidFindBy(accessibility = "ஸ்க்ரிம்") private WebElement PopUpCloseButton; @@ -43,7 +43,7 @@ public class DocumentuploadPageTamil extends DocumentUploadPage { @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.view.View\").instance(8)") private WebElement imageleftCorner; - public DocumentuploadPageTamil(AppiumDriver driver) { + public DocumentUploadPageTamil(AppiumDriver driver) { super(driver); } @@ -59,7 +59,7 @@ public boolean isDoccumentUploadPageDisplayed() { public DocumentUploadPage clickOnSaveButton() { clickOnElement(saveButton); - return new DocumentuploadPageEnglish(driver); + return new DocumentUploadPageEnglish(driver); } public boolean isRetakeButtonDisplayed() { diff --git a/ui-test/src/main/java/regclient/pages/tamil/IdentityProofPageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/IdentityProofPageTamil.java index 39734af01..6f359ae0a 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/IdentityProofPageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/IdentityProofPageTamil.java @@ -29,7 +29,7 @@ public IdentityProofPageTamil(AppiumDriver driver) { public DocumentUploadPage clickOnSaveButton() { clickOnElement(saveButton); - return new DocumentuploadPageTamil(driver); + return new DocumentUploadPageTamil(driver); } public boolean isRetakeButtonDisplayed() { diff --git a/ui-test/src/main/java/regclient/pages/tamil/PendingApprovalTamil.java b/ui-test/src/main/java/regclient/pages/tamil/PendingApprovalTamil.java index d742c4a34..7e3a1bedd 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/PendingApprovalTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/PendingApprovalTamil.java @@ -193,7 +193,7 @@ public boolean isSubmitButtonEnabled() { return isElementEnabled(submitButton); } - public boolean isInvalidemptyUsernameSumbitButtonEnbled() { + public boolean isInvalidEmptyUsernameSubmitButtonEnabled() { return isElementEnabled(invalidUsernameMessageForempty); } diff --git a/ui-test/src/main/java/regclient/pages/tamil/PreviewPageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/PreviewPageTamil.java index 62a1ca512..7ab4f6fc1 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/PreviewPageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/PreviewPageTamil.java @@ -45,6 +45,9 @@ public class PreviewPageTamil extends PreviewPage { @AndroidFindBy(accessibility = "இழந்த UIN") private WebElement lostUinTitle; + + @AndroidFindBy(accessibility = "பயோமெட்ரிக் திருத்தம்") + private WebElement biometricCorrectionTitle; public PreviewPageTamil(AppiumDriver driver) { super(driver); @@ -125,4 +128,8 @@ public String getEmailId() { public boolean isLostUinTitleDisplayed() { return isElementDisplayed(lostUinTitle); } + + public boolean isBiometricCorrectionTitleDisplayed() { + return isElementDisplayed(biometricCorrectionTitle); + } } diff --git a/ui-test/src/main/java/regclient/pages/tamil/RegistrationTasksPageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/RegistrationTasksPageTamil.java index 255e3c267..0af10692c 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/RegistrationTasksPageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/RegistrationTasksPageTamil.java @@ -171,4 +171,8 @@ public void handleLocationPermission() { public void clickOnRegistrationTasksTab() { clickOnElement(registrationTasksTitle); } + + public boolean isSettingsButtonDisplayed() { + return isElementDisplayed(settingsButton); + } } diff --git a/ui-test/src/main/java/regclient/pages/tamil/SettingsPageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/SettingsPageTamil.java index cb9c6edad..4677d523a 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/SettingsPageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/SettingsPageTamil.java @@ -66,6 +66,27 @@ public class SettingsPageTamil extends SettingsPage { @AndroidFindBy(accessibility = "CANCEL") private WebElement changesCancelButton; + + @AndroidFindBy(accessibility = "Scheduled Job Settings") + private WebElement scheduledJobSettingsPageHeader; + + @AndroidFindBy(xpath = "//*[@content-desc[contains(.,'Master Data Sync')]]") + private WebElement masterDataSyncCard; + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc,'Master Data Sync')]//android.widget.Button") + private WebElement masterDataSyncButton; + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc,'thumbs_fingerprint_threshold')]//android.widget.EditText") + private WebElement thumbsThresholdField; + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc,'iris_threshold')]//android.widget.EditText") + private WebElement irisThresholdField; + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc,'rightslap_fingerprint_threshold')]//android.widget.EditText") + private WebElement rightSlapThresholdField; + + @AndroidFindBy(xpath = "//android.view.View[contains(@content-desc,'leftslap_fingerprint_threshold')]//android.widget.EditText") + private WebElement leftSlapThresholdField; public SettingsPageTamil(AppiumDriver driver) { super(driver); @@ -173,5 +194,43 @@ public boolean isSubmitChangesPopupDisplayed() { public void clickOnChangesConfirmButton() { clickOnElement(changesConfirmButton); } + + public boolean isScheduledJobSettingsPageHeaderDisplayed() { + return isElementDisplayed(scheduledJobSettingsPageHeader); + } + + public boolean isMasterDataSyncCardDisplayed() { + return isElementDisplayed(masterDataSyncCard); + } + + public void clickOnMasterDataSyncButton() { + clickOnElement(masterDataSyncButton); + } + + public boolean isToastVisible(String toastMessage) { + for (int i = 0; i < 15; i++) { // ~3 seconds + if (driver.getPageSource().contains(toastMessage)) { + return true; + } + try { + Thread.sleep(200); + } catch (Exception ignored) { + } + } + return false; + } + + public WebElement getSyncButton(String jobName) { + return driver.findElement( + By.xpath("//android.view.View[contains(@content-desc,'" + jobName + "')]//*[@clickable='true']")); + } + + public boolean validateJobCardFields(String jobName) { + WebElement card = driver + .findElement(By.xpath("//android.view.View[contains(@content-desc,'" + jobName + "')]")); + String cd = card.getAttribute("content-desc"); + return cd.contains(jobName) && cd.contains("Next Run") && cd.contains("Last Sync") + && cd.contains("Cron Expression"); + } } diff --git a/ui-test/src/main/java/regclient/pages/tamil/SupervisorBiometricVerificationpageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/SupervisorBiometricVerificationpageTamil.java index 78c18f88c..52eaf7f0a 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/SupervisorBiometricVerificationpageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/SupervisorBiometricVerificationpageTamil.java @@ -258,7 +258,7 @@ public void markOneEyeException() { clickOnElement(oneEyeException); } - public void markOneFingreException() { + public void markOneFingerException() { clickOnElement(firstFingureExceptionImage); } diff --git a/ui-test/src/main/java/regclient/pages/tamil/UpdateOperatorBiometricspageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/UpdateOperatorBiometricspageTamil.java index 9e04442fc..1b7b4ce91 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/UpdateOperatorBiometricspageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/UpdateOperatorBiometricspageTamil.java @@ -1,8 +1,13 @@ package regclient.pages.tamil; +import java.time.Duration; + import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; import io.appium.java_client.AppiumDriver; +import io.appium.java_client.MobileBy; import io.appium.java_client.pagefactory.AndroidFindBy; import regclient.page.UpdateOperatorBiometricspage; @@ -393,4 +398,29 @@ public void clickOnBackButton() { public boolean isUpdateOperatorBiometricsPageLoaded() { return isElementDisplayed(updateOperatorBiometrics); } + + public boolean validateThreshold(int expected) { + WebElement el = driver.findElement(MobileBy.AndroidUIAutomator( + "new UiScrollable(new UiSelector().scrollable(true))" + + ".scrollIntoView(new UiSelector().descriptionContains(\"Threshold\"));" + )); + + String text = el.getAttribute("content-desc"); // "Threshold 75%" + int actual = Integer.parseInt(text.replaceAll("[^0-9]", "")); // extract 75 + + return actual == expected; + } + + public void updateBiometricsAndWaitPopup() { + for (int i = 1; i <= 5; i++) { + clickOnVerifyAndSaveButton(); + try { + new WebDriverWait(driver, Duration.ofSeconds(60)) + .until(ExpectedConditions.visibilityOf(successPopup)); + return; // success + } catch (Exception ignored) {} + try { Thread.sleep(2000); } catch (InterruptedException ignored) {} + } + throw new AssertionError("Biometrics update success popup not displayed after 5 retries."); + } } diff --git a/ui-test/src/main/java/regclient/utils/EmailableReport.java b/ui-test/src/main/java/regclient/utils/EmailableReport.java index 91f2c5716..ad0d29928 100644 --- a/ui-test/src/main/java/regclient/utils/EmailableReport.java +++ b/ui-test/src/main/java/regclient/utils/EmailableReport.java @@ -28,10 +28,6 @@ import regclient.api.ArcConfigManager; - - - - /** * Reporter that generates a single-page HTML report of the test results. */ @@ -124,27 +120,73 @@ protected void writeHead() { } protected void writeStylesheet() { - writer.print(""); + writer.print(""); } + + + + + protected void writeBody() { writer.print(""); writeSuiteSummary(); @@ -158,197 +200,198 @@ protected void writeDocumentEnd() { } protected void writeSuiteSummary() { - NumberFormat integerFormat = NumberFormat.getIntegerInstance(); - NumberFormat decimalFormat = NumberFormat.getNumberInstance(); - - totalPassedTests = 0; - totalSkippedTests = 0; - totalFailedTests = 0; - long totalDuration = 0; - writer.print(""); - int testIndex = 0; - for (SuiteResult suiteResult : suiteResults) { - - writer.print(""); - writer.print(""); - // writer.print(""); - writer.print(""); - writer.print(""); - writer.print(""); - writer.print(""); - // writer.print(""); - // writer.print(""); - writer.print(""); - - for (TestResult testResult : suiteResult.getTestResults()) { - int passedTests = testResult.getPassedTestCount(); - int skippedTests = testResult.getSkippedTestCount(); - int failedTests = testResult.getFailedTestCount(); - long duration = testResult.getDuration(); - - writer.print(""); - - buffer.setLength(0); - // writeTableData(buffer.append("") - // .append(Utils.escapeHtml(testResult.getTestName())).append("").toString()); - writeTableData(integerFormat.format(passedTests), (passedTests > 0 ? "num green-bg" : "num")); - writeTableData(integerFormat.format(skippedTests), (skippedTests > 0 ? "num orange-bg" : "num")); - writeTableData(integerFormat.format(failedTests), (failedTests > 0 ? "num attn" : "num")); - writeTableData(decimalFormat.format(duration), "num"); - /* - * writeTableData(testResult.getIncludedGroups()); - * writeTableData(testResult.getExcludedGroups()); - */ - - writer.print(""); - - totalPassedTests += passedTests; - totalSkippedTests += skippedTests; - totalFailedTests += failedTests; - totalDuration += duration; - - testIndex++; - } - } - - // Print totals if there was more than one test - if (testIndex > 1) { - writer.print(""); - writer.print(""); - writeTableHeader(integerFormat.format(totalPassedTests), "num"); - writeTableHeader(integerFormat.format(totalSkippedTests), (totalSkippedTests > 0 ? "num attn" : "num")); - writeTableHeader(integerFormat.format(totalFailedTests), (totalFailedTests > 0 ? "num attn" : "num")); - writeTableHeader(decimalFormat.format(totalDuration), "num"); - writer.print(""); - writer.print(""); - } + NumberFormat integerFormat = NumberFormat.getIntegerInstance(); + + totalPassedTests = 0; + totalSkippedTests = 0; + totalFailedTests = 0; + long totalDuration = 0; + + // compute totals across suites + for (SuiteResult suiteResult : suiteResults) { + for (TestResult testResult : suiteResult.getTestResults()) { + totalPassedTests += testResult.getPassedTestCount(); + totalSkippedTests += testResult.getSkippedTestCount(); + totalFailedTests += testResult.getFailedTestCount(); + totalDuration += testResult.getDuration(); + } + } - writer.print("
"); - writer.print(Utils.escapeHtml("Android Regclient Ui Automation ------- Env - "+ArcConfigManager.getEnv() )); - writer.print("
");
-			writer.print(Utils.escapeHtml("Date and Time  ")+printCurrentDateTime());
-			writer.print("
"); - // writer.print(GlobalConstants.TRTR); - - writer.print("
Test Suite# Passed# Skipped# FailedTime (ms)Included GroupsExcluded Groups
Total
"); + // top block (env info) + writer.print(""); + writer.print(""); + writer.print("
"); + writer.print(Utils.escapeHtml("Use Cases Test Report ---- Report Date: " + printCurrentDateTime() + + " ---- Tested Environment: " + ArcConfigManager.getEnv())); + writer.print("
"); + + // summary-of-test-results block + writer.print(""); + + // define columns widths: tweak percentages to match screenshot proportions + writer.print(""); + writer.print(""); // # Total + writer.print(""); // # Passed + writer.print(""); // # Ignored + writer.print(""); // # Known Issues + writer.print(""); // # Skipped + writer.print(""); // # Failed + writer.print(""); // Time + writer.print(""); + + // Title row + writer.print(""); + writer.print(""); + writer.print(""); + + // Labels row + writer.print(""); + writer.print(""); + writer.print(""); + writer.print(""); + writer.print(""); + writer.print(""); + writer.print(""); + writer.print(""); + writer.print(""); + + // Values row (colored bars) + writer.print(""); + writer.print(""); + writer.print(""); + // If you have an 'ignored' concept use it; here using 0 placeholder or compute if available + int totalIgnored = 0; + writer.print(""); + // If you track known issues, compute; placeholder 0 here + int totalKnown = 0; + writer.print(""); + writer.print(""); + writer.print(""); + writer.print(""); + writer.print(""); + + writer.print("
Summary of Test Results
# Total# Passed# Ignored# Known Issues# Skipped# FailedTime (HH:MM:SS)
" + integerFormat.format(totalPassedTests + totalFailedTests + totalSkippedTests) + "" + integerFormat.format(totalPassedTests) + "" + integerFormat.format(totalIgnored) + "" + integerFormat.format(totalKnown) + "" + integerFormat.format(totalSkippedTests) + "" + integerFormat.format(totalFailedTests) + "" + formatDurationMillis(totalDuration) + "
"); } /** * Writes a summary of all the test scenarios. */ protected void writeScenarioSummary() { - writer.print(""); - writer.print(""); - writer.print(""); - // writer.print(""); - writer.print(""); - writer.print(""); - writer.print(""); - writer.print(""); - - int testIndex = 0; - int scenarioIndex = 0; - for (SuiteResult suiteResult : suiteResults) { - /* - * writer.print(""); - */ - - for (TestResult testResult : suiteResult.getTestResults()) { - writer.print(""); - - String testName = Utils.escapeHtml("Scenarios"); - - scenarioIndex += writeScenarioSummary(testName + " — Failed (configuration methods)", - testResult.getFailedConfigurationResults(), "failed", scenarioIndex); - scenarioIndex += writeScenarioSummary(testName + " — Failed", testResult.getFailedTestResults(), - "failed", scenarioIndex); - scenarioIndex += writeScenarioSummary(testName + " — Skipped (configuration methods)", - testResult.getSkippedConfigurationResults(), "skipped", scenarioIndex); - scenarioIndex += writeScenarioSummary(testName + " — Skipped", testResult.getSkippedTestResults(), - "skipped", scenarioIndex); - scenarioIndex += writeScenarioSummary(testName + " — Passed", testResult.getPassedTestResults(), - "passed", scenarioIndex); - - writer.print(""); - - testIndex++; - } - } + writer.print("
Class Test Time (ms)
"); // - * writer.print(Utils.escapeHtml(suiteResult.getSuiteName())); - * writer.print("
"); + + // fixed columns widths: method 25%, desc 65%, time 10% (tweak if you like) + writer.print(""); + writer.print(""); + writer.print(""); + writer.print(""); + writer.print(""); + + writer.print(""); + writer.print(""); + writer.print(""); + writer.print(""); + writer.print(""); + writer.print(""); + writer.print(""); + + int testIndex = 0; + int scenarioIndex = 0; + for (SuiteResult suiteResult : suiteResults) { + for (TestResult testResult : suiteResult.getTestResults()) { + writer.print(""); + + String testName = Utils.escapeHtml("Scenarios"); + + // The calls below print blocks for Failed / Skipped / Passed etc. + scenarioIndex += writeScenarioSummary(testName + " — Failed (configuration methods)", + testResult.getFailedConfigurationResults(), "failed", scenarioIndex); + scenarioIndex += writeScenarioSummary(testName + " — Failed", testResult.getFailedTestResults(), + "failed", scenarioIndex); + scenarioIndex += writeScenarioSummary(testName + " — Skipped (configuration methods)", + testResult.getSkippedConfigurationResults(), "skipped", scenarioIndex); + scenarioIndex += writeScenarioSummary(testName + " — Skipped", testResult.getSkippedTestResults(), + "skipped", scenarioIndex); + scenarioIndex += writeScenarioSummary(testName + " — Passed", testResult.getPassedTestResults(), + "passed", scenarioIndex); + + writer.print(""); + + testIndex++; + } + } - writer.print("
Test Description Time (HH:MM:SS)
"); + writer.print(""); } + + + + /** * Writes the scenario summary for the results of a given state for a single * test. */ private int writeScenarioSummary(String description, List classResults, String cssClassPrefix, - int startingScenarioIndex) { - int scenarioCount = 0; - if (!classResults.isEmpty()) { - writer.print(""); - writer.print(description); - writer.print(""); - - int scenarioIndex = startingScenarioIndex; - int classIndex = 0; - for (ClassResult classResult : classResults) { - String cssClass = cssClassPrefix + ((classIndex % 2) == 0 ? "even" : "odd"); - - buffer.setLength(0); - int scenariosPerClass = 0; - int methodIndex = 0; - - for (MethodResult methodResult : classResult.getMethodResults()) { - List results = methodResult.getResults(); - int resultsCount = results.size(); - assert resultsCount > 0; - ITestResult firstResult = results.iterator().next(); - String methodName=firstResult.getName(); - // Write the remaining scenarios for the method - - for (int i = 0; i < resultsCount; i++) { - - ITestResult result = results.get(i); - // String [] scenarioDetails = getScenarioDetails(result); - - // String scenarioName = Utils.escapeHtml("Scenario_" + scenarioDetails[0]); - // String scenarioDescription = Utils.escapeHtml(scenarioDetails[1]); - - long scenarioStart = result.getStartMillis(); - long scenarioDuration = result.getEndMillis() - scenarioStart; - - // buffer.append("").append("").append(scenarioName).append("") - // .append("").append(scenarioDescription).append("") - // .append("").append(scenarioDuration).append(""); - buffer.append("") // Start of table row with a specified CSS class - .append("").append(methodName).append("") // Table cell with a hyperlink - .append("").append(scenarioDuration).append(""); // Table cell with scenario duration - - scenarioIndex++; - } - scenariosPerClass += resultsCount; - methodIndex++; - } - - // Write the test results for the class - writer.print(buffer); - classIndex++; - } - scenarioCount = scenarioIndex - startingScenarioIndex; - } - return scenarioCount; + int startingScenarioIndex) { + int scenarioCount = 0; + if (!classResults.isEmpty()) { + // Apply result-based class to the block header row so it adopts the correct color. + // e.g. cssClassPrefix == "failed" -> header row class "failedodd" (uses CSS rule for that class) + writer.print(""); + writer.print(description); + writer.print(""); + + int scenarioIndex = startingScenarioIndex; + int classIndex = 0; + for (ClassResult classResult : classResults) { + int methodIndex = 0; + + for (MethodResult methodResult : classResult.getMethodResults()) { + List results = methodResult.getResults(); + int resultsCount = results.size(); + assert resultsCount > 0; + ITestResult firstResult = results.iterator().next(); + + String methodName = Utils.escapeHtml(firstResult.getMethod().getMethodName()); + String methodDesc = firstResult.getMethod().getDescription(); + if (methodDesc == null) { + methodDesc = ""; + } else { + methodDesc = Utils.escapeHtml(methodDesc); + } + + // pick odd/even suffix based on methodIndex to alternate row classes + String suffix = ((methodIndex % 2) == 0) ? "even" : "odd"; + String rowClassPrefix = cssClassPrefix + suffix; // e.g., "failedeven" or "passedeven" + + for (int i = 0; i < resultsCount; i++) { + ITestResult result = results.get(i); + long scenarioStart = result.getStartMillis(); + long scenarioDuration = result.getEndMillis() - scenarioStart; + + // each row: method | description | time (HH:MM:SS) + writer.print(""); + writer.print("" + methodName + ""); + writer.print("" + methodDesc + ""); + writer.print("" + formatDurationMillis(scenarioDuration) + ""); + writer.print(""); + + scenarioIndex++; + } + methodIndex++; + } + classIndex++; + } + scenarioCount = scenarioIndex - startingScenarioIndex; + } + return scenarioCount; } + + + public static String printCurrentDateTime() { LocalDateTime localDateTime = LocalDateTime.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEEE dd MMMM HH:mm:ss",Locale.ENGLISH); @@ -407,50 +450,39 @@ private int writeScenarioDetails(List classResults, int startingSce * Writes the details for an individual test scenario. */ private void writeScenario(int scenarioIndex, String label, ITestResult result) { - writer.print("

"); - writer.print(label); - writer.print("

"); - - writer.print(""); - - // Write test parameters (if any) - Object[] parameters = result.getParameters(); - int parameterCount = (parameters == null ? 0 : parameters.length); - - /* - * if (parameterCount > 0) { writer.print(""); for (int i = - * 1; i <= parameterCount; i++) { writer.print(""); } - * writer.print(""); for (Object parameter : - * parameters) { writer.print(""); } writer.print(""); } - */ - - // Write reporter messages (if any) - List reporterMessages = Reporter.getOutput(result); - if (!reporterMessages.isEmpty()) { - writer.print(""); - } + writer.print("

"); + writer.print(label); + writer.print("

"); + + writer.print("
Parameter #"); - * writer.print(i); writer.print("
"); - * writer.print(Utils.escapeHtml(Utils.toString(parameter))); - * writer.print("
"); - writeReporterMessages(reporterMessages); - writer.print("
"); + + // Reporter messages (if any) + List reporterMessages = Reporter.getOutput(result); + if (!reporterMessages.isEmpty()) { + writer.print(""); + } - // Write exception (if any) - Throwable throwable = result.getThrowable(); - if (throwable != null) { - writer.print(""); - writer.print(""); - } + // Exception (if any) + Throwable throwable = result.getThrowable(); + if (throwable != null) { + // nicer exception header + writer.print(""); + writer.print(""); + } - writer.print("
"); + writeReporterMessages(reporterMessages); + writer.print("
" - + (result.getStatus() == ITestResult.SUCCESS ? "Expected Exception" : "Exception") + "
"); - writeStackTrace(throwable); - writer.print("
Exception
"); + writer.print("
"); + writer.print(Utils.shortStackTrace(throwable, true)); + writer.print("
"); + writer.print("
"); - writer.print("

back to summary

"); + writer.print(""); + writer.print("

back to summary

"); } + protected void writeReporterMessages(List reporterMessages) { writer.print("
"); Iterator iterator = reporterMessages.iterator(); @@ -799,5 +831,17 @@ public List getResults() { return results; } } + + private String formatDurationMillis(long millis) { + if (millis < 0) { + millis = 0; + } + long totalSeconds = millis / 1000; + long hours = totalSeconds / 3600; + long minutes = (totalSeconds % 3600) / 60; + long seconds = totalSeconds % 60; + return String.format("%02d:%02d:%02d", hours, minutes, seconds); + } + } diff --git a/ui-test/src/main/java/regclient/utils/TestRunner.java b/ui-test/src/main/java/regclient/utils/TestRunner.java index dbe97b9f4..ed2b81de1 100644 --- a/ui-test/src/main/java/regclient/utils/TestRunner.java +++ b/ui-test/src/main/java/regclient/utils/TestRunner.java @@ -14,6 +14,7 @@ import regclient.api.AdminTestUtil; import regclient.api.ArcConfigManager; import regclient.api.FetchUiSpec; +import regclient.api.KeycloakUserManager; public class TestRunner { @@ -31,10 +32,9 @@ public static void main(String[] args) { io.mosip.testrig.apirig.utils.AdminTestUtil.init(); FetchUiSpec.getBiometricDetails("individualBiometrics"); System.out.println("BaseTestCase.ApplnURI : " + BaseTestCase.ApplnURI); - AdminTestUtil.getPreRegistrationFlow("adult"); - AdminTestUtil.getPreRegistrationFlow("minor"); - AdminTestUtil.getPreRegistrationFlow("infant"); - +// AdminTestUtil.getPreRegistrationFlow("adult"); +// AdminTestUtil.getPreRegistrationFlow("minor"); +// AdminTestUtil.getPreRegistrationFlow("infant"); File homeDir = null; TestNG runner = new TestNG(); if (!ArcConfigManager.gettestcases().equals("")) { @@ -44,7 +44,7 @@ public static void main(String[] args) { XmlClass addMachineDetails = new XmlClass("regclient.androidTestCases.AddMachineDetails"); XmlClass initialLaunch = new XmlClass("regclient.androidTestCases.InitialLaunch"); - XmlClass logintest = new XmlClass("regclient.androidTestCases.logintest"); + XmlClass logintest = new XmlClass("regclient.androidTestCases.Logintest"); XmlClass newRegistrationAdult = new XmlClass("regclient.androidTestCases.NewRegistrationAdult"); XmlClass newRegistrationAdultException = new XmlClass( "regclient.androidTestCases.NewRegistrationAdultException"); @@ -54,13 +54,17 @@ public static void main(String[] args) { "regclient.androidTestCases.NewRegistrationMinorException"); XmlClass updateMyUinInfant = new XmlClass("regclient.androidTestCases.UpdateMyUinInfant"); XmlClass updateMyUinMinor = new XmlClass("regclient.androidTestCases.UpdateMyUinMinor"); - XmlClass updateMyUINUpdatebiometrics = new XmlClass( + XmlClass updateMyUinUpdatebiometrics = new XmlClass( "regclient.androidTestCases.UpdateMyUinUpdateBiometrics"); - XmlClass updateMyUINUpdateDemographicDetails = new XmlClass( - "regclient.androidTestCases.UpdateMyUINUpdateDemographicDetails"); + XmlClass updateMyUinUpdateDemographicDetails = new XmlClass( + "regclient.androidTestCases.UpdateMyUinUpdateDemographicDetails"); XmlClass updateMyUinUpdateDocuments = new XmlClass("regclient.androidTestCases.UpdateMyUinUpdateDocuments"); XmlClass lostUin = new XmlClass("regclient.androidTestCases.LostUin"); XmlClass settings = new XmlClass("regclient.androidTestCases.Settings"); + XmlClass resetPassword = new XmlClass("regclient.androidTestCases.ResetPassword"); + XmlClass autoLogout = new XmlClass("regclient.androidTestCases.AutoLogout"); + XmlClass biometricCorrection = new XmlClass("regclient.androidTestCases.BiometricCorrection"); + XmlClass preRegFetchingPacket = new XmlClass("regclient.androidTestCases.PreRegFetchingPacket"); List classes = new ArrayList<>(); String[] Scenarionames = ArcConfigManager.gettestcases().split(","); @@ -78,7 +82,7 @@ public static void main(String[] args) { if (Scenarioname.equalsIgnoreCase("newRegistrationAdult")) classes.add(newRegistrationAdult); - + if (Scenarioname.equalsIgnoreCase("newRegistrationAdultException")) classes.add(newRegistrationAdultException); @@ -97,11 +101,11 @@ public static void main(String[] args) { if (Scenarioname.equalsIgnoreCase("updateMyUinMinor")) classes.add(updateMyUinMinor); - if (Scenarioname.equalsIgnoreCase("updateMyUINUpdatebiometrics")) - classes.add(updateMyUINUpdatebiometrics); + if (Scenarioname.equalsIgnoreCase("updateMyUinUpdateDemographicDetails")) + classes.add(updateMyUinUpdatebiometrics); - if (Scenarioname.equalsIgnoreCase("updateMyUINUpdateDemographicDetails")) - classes.add(updateMyUINUpdateDemographicDetails); + if (Scenarioname.equalsIgnoreCase("updateMyUinUpdateDemographicDetails")) + classes.add(updateMyUinUpdateDemographicDetails); if (Scenarioname.equalsIgnoreCase("updateMyUinUpdateDocuments")) classes.add(updateMyUinUpdateDocuments); @@ -111,6 +115,18 @@ public static void main(String[] args) { if (Scenarioname.equalsIgnoreCase("settings")) classes.add(settings); + + if (Scenarioname.equalsIgnoreCase("resetPassword")) + classes.add(resetPassword); + + if (Scenarioname.equalsIgnoreCase("autoLogout")) + classes.add(autoLogout); + + if (Scenarioname.equalsIgnoreCase("biometricCorrection")) + classes.add(biometricCorrection); + + if (Scenarioname.equalsIgnoreCase("preRegFetchingPacket")) + classes.add(preRegFetchingPacket); } XmlTest test = new XmlTest(suite); diff --git a/ui-test/src/main/resources/testdata.json b/ui-test/src/main/resources/testdata.json index 1b4e8907b..366a52e81 100644 --- a/ui-test/src/main/resources/testdata.json +++ b/ui-test/src/main/resources/testdata.json @@ -1,11 +1,11 @@ { - "UIN": "3054097528", + "UIN": "2153672893", "UINinfant": "5074162518", "UINminor": "2312798573", "language": "eng", "defaultlanguage": "eng", "notificationLanguage": "eng", - "RID": "10001105671003120240215071549", + "RID": "10001142850000120251130090022", "id": "com.motorola.camera3:id/capture_bar_shutter_button", "fingerprint_threshold": "45" } diff --git a/ui-test/testng.xml b/ui-test/testng.xml index 98fd05fa5..2ea6aa912 100644 --- a/ui-test/testng.xml +++ b/ui-test/testng.xml @@ -3,21 +3,17 @@ - + + + + + + + - - @@ -50,14 +46,14 @@ - + - + - + @@ -65,36 +61,39 @@ + + + + + + - + + + + + + + + + + + + + - + - + - + \ No newline at end of file From 6f6439c921df6f3efda460d975b9353f2558d96b Mon Sep 17 00:00:00 2001 From: damodarguru Date: Tue, 2 Dec 2025 02:07:49 +0530 Subject: [PATCH 12/21] MOSIP-43667:ARC UI automation add testcases and move to develop branch Signed-off-by: damodarguru --- .../androidTestCases/AutoLogout.java | 298 ++++++++---------- .../regclient/api/KeycloakUserManager.java | 4 +- .../UpdateOperatorBiometricspageArabic.java | 3 +- .../UpdateOperatorBiometricspageFrench.java | 2 +- .../pages/kannada/AutoLogoutPageKannada.java | 1 - .../pages/tamil/DocumentuploadPageTamil.java | 2 +- .../UpdateOperatorBiometricspageTamil.java | 2 +- .../main/java/regclient/utils/TestRunner.java | 2 +- 8 files changed, 147 insertions(+), 167 deletions(-) diff --git a/ui-test/src/main/java/regclient/androidTestCases/AutoLogout.java b/ui-test/src/main/java/regclient/androidTestCases/AutoLogout.java index 9a47ef786..4f35477a4 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/AutoLogout.java +++ b/ui-test/src/main/java/regclient/androidTestCases/AutoLogout.java @@ -3,31 +3,16 @@ import static org.testng.Assert.assertTrue; import java.io.IOException; -import java.util.List; import org.testng.annotations.Test; import regclient.BaseTest.AndroidBaseTest; import regclient.api.ArcConfigManager; -import regclient.api.FetchUiSpec; import regclient.api.KeycloakUserManager; -import regclient.page.AcknowledgementPage; -import regclient.page.ApplicantBiometricsPage; -import regclient.page.AuthenticationPage; import regclient.page.AutoLogoutPage; import regclient.page.BasePage; -import regclient.page.BiometricDetailsPage; -import regclient.page.ConsentPage; -import regclient.page.DemographicDetailsPage; -import regclient.page.DocumentUploadPage; import regclient.page.LoginPage; -import regclient.page.ManageApplicationsPage; -import regclient.page.OperationalTaskPage; -import regclient.page.PendingApproval; -import regclient.page.PreviewPage; -import regclient.page.ProfilePage; import regclient.page.RegistrationTasksPage; -import regclient.page.SelectLanguagePage; import regclient.pages.arabic.AutoLogoutPageArabic; import regclient.pages.arabic.LoginPageArabic; import regclient.pages.arabic.RegistrationTasksPageArabic; @@ -48,8 +33,8 @@ import regclient.pages.tamil.RegistrationTasksPageTamil; import regclient.utils.TestDataReader; -public class AutoLogout extends AndroidBaseTest{ - +public class AutoLogout extends AndroidBaseTest { + @Test(priority = 0, description = "Verify auto-logout when the machine is online") public void onlineAutoLogout() throws InterruptedException { BasePage.disableAutoRotation(); @@ -103,7 +88,7 @@ public void onlineAutoLogout() throws InterruptedException { registrationTasksPage.handleLocationPermission(); assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); - + if ("eng".equalsIgnoreCase(language)) { autoLogoutPage = new AutoLogoutPageEnglish(driver); } else if ("hin".equalsIgnoreCase(language)) { @@ -119,12 +104,11 @@ public void onlineAutoLogout() throws InterruptedException { } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } - - assertTrue(autoLogoutPage.isAutoLogoutPopupDisplayed(), - "Verify if auto-logout popup is displayed"); - + + assertTrue(autoLogoutPage.isAutoLogoutPopupDisplayed(), "Verify if auto-logout popup is displayed"); + autoLogoutPage.clickOnStayLoggedInButton(); - + if ("eng".equalsIgnoreCase(language)) { registrationTasksPage = new RegistrationTasksPageEnglish(driver); } else if ("hin".equalsIgnoreCase(language)) { @@ -143,7 +127,7 @@ public void onlineAutoLogout() throws InterruptedException { registrationTasksPage.handleLocationPermission(); assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); - + if ("eng".equalsIgnoreCase(language)) { autoLogoutPage = new AutoLogoutPageEnglish(driver); } else if ("hin".equalsIgnoreCase(language)) { @@ -159,12 +143,11 @@ public void onlineAutoLogout() throws InterruptedException { } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } - - assertTrue(autoLogoutPage.isAutoLogoutPopupDisplayed(), - "Verify if auto-logout popup is displayed"); - + + assertTrue(autoLogoutPage.isAutoLogoutPopupDisplayed(), "Verify if auto-logout popup is displayed"); + autoLogoutPage.clickOnStayLogoutButton(); - + if ("eng".equalsIgnoreCase(language)) { loginPage = new LoginPageEnglish(driver); } else if ("hin".equalsIgnoreCase(language)) { @@ -183,147 +166,146 @@ public void onlineAutoLogout() throws InterruptedException { assertTrue(loginPage.isWelcomeMessageInSelectedLanguageDisplayed(), "verify if the welcome msg in selected language displayed"); - + } - + @Test(priority = 1, description = "Verify auto-logout when the machine is offline") public void offlineAutoLogout() throws InterruptedException, IOException { + try { + BasePage.disableAutoRotation(); + LoginPage loginPage = null; + RegistrationTasksPage registrationTasksPage = null; + AutoLogoutPage autoLogoutPage = null; - BasePage.disableAutoRotation(); - LoginPage loginPage = null; - RegistrationTasksPage registrationTasksPage = null; - AutoLogoutPage autoLogoutPage = null; + final String language = TestDataReader.readData("language"); - final String language = TestDataReader.readData("language"); - - BasePage.disableWifiAndData(); + BasePage.disableWifiAndData(); - if ("eng".equalsIgnoreCase(language)) { - loginPage = new LoginPageEnglish(driver); - } else if ("hin".equalsIgnoreCase(language)) { - loginPage = new LoginPageHindi(driver); - } else if ("fra".equalsIgnoreCase(language)) { - loginPage = new LoginPageFrench(driver); - } else if ("kan".equalsIgnoreCase(language)) { - loginPage = new LoginPageKannada(driver); - } else if ("tam".equalsIgnoreCase(language)) { - loginPage = new LoginPageTamil(driver); - } else if ("ara".equalsIgnoreCase(language)) { - loginPage = new LoginPageArabic(driver); - } else { - throw new IllegalStateException("Unsupported language in testdata.json: " + language); - } + if ("eng".equalsIgnoreCase(language)) { + loginPage = new LoginPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + loginPage = new LoginPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + loginPage = new LoginPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + loginPage = new LoginPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + loginPage = new LoginPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + loginPage = new LoginPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } - loginPage.selectLanguage(); + loginPage.selectLanguage(); - assertTrue(loginPage.isWelcomeMessageInSelectedLanguageDisplayed(), - "verify if the welcome msg in selected language displayed"); - loginPage.enterUserName(KeycloakUserManager.moduleSpecificUser); - loginPage.clickOnNextButton(); + assertTrue(loginPage.isWelcomeMessageInSelectedLanguageDisplayed(), + "verify if the welcome msg in selected language displayed"); + loginPage.enterUserName(KeycloakUserManager.moduleSpecificUser); + loginPage.clickOnNextButton(); - loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); - loginPage.clickOnloginButton(); + loginPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); + loginPage.clickOnloginButton(); - if ("eng".equalsIgnoreCase(language)) { - registrationTasksPage = new RegistrationTasksPageEnglish(driver); - } else if ("hin".equalsIgnoreCase(language)) { - registrationTasksPage = new RegistrationTasksPageHindi(driver); - } else if ("fra".equalsIgnoreCase(language)) { - registrationTasksPage = new RegistrationTasksPageFrench(driver); - } else if ("kan".equalsIgnoreCase(language)) { - registrationTasksPage = new RegistrationTasksPageKannada(driver); - } else if ("tam".equalsIgnoreCase(language)) { - registrationTasksPage = new RegistrationTasksPageTamil(driver); - } else if ("ara".equalsIgnoreCase(language)) { - registrationTasksPage = new RegistrationTasksPageArabic(driver); - } else { - throw new IllegalStateException("Unsupported language in testdata.json: " + language); - } - registrationTasksPage.handleLocationPermission(); - assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), - "Verify if registration tasks page is loaded"); - - if ("eng".equalsIgnoreCase(language)) { - autoLogoutPage = new AutoLogoutPageEnglish(driver); - } else if ("hin".equalsIgnoreCase(language)) { - autoLogoutPage = new AutoLogoutPageHindi(driver); - } else if ("fra".equalsIgnoreCase(language)) { - autoLogoutPage = new AutoLogoutPageFrench(driver); - } else if ("kan".equalsIgnoreCase(language)) { - autoLogoutPage = new AutoLogoutPageKannada(driver); - } else if ("tam".equalsIgnoreCase(language)) { - autoLogoutPage = new AutoLogoutPageTamil(driver); - } else if ("ara".equalsIgnoreCase(language)) { - autoLogoutPage = new AutoLogoutPageArabic(driver); - } else { - throw new IllegalStateException("Unsupported language in testdata.json: " + language); - } - - assertTrue(autoLogoutPage.isAutoLogoutPopupDisplayed(), - "Verify if auto-logout popup is displayed"); - - autoLogoutPage.clickOnStayLoggedInButton(); - - if ("eng".equalsIgnoreCase(language)) { - registrationTasksPage = new RegistrationTasksPageEnglish(driver); - } else if ("hin".equalsIgnoreCase(language)) { - registrationTasksPage = new RegistrationTasksPageHindi(driver); - } else if ("fra".equalsIgnoreCase(language)) { - registrationTasksPage = new RegistrationTasksPageFrench(driver); - } else if ("kan".equalsIgnoreCase(language)) { - registrationTasksPage = new RegistrationTasksPageKannada(driver); - } else if ("tam".equalsIgnoreCase(language)) { - registrationTasksPage = new RegistrationTasksPageTamil(driver); - } else if ("ara".equalsIgnoreCase(language)) { - registrationTasksPage = new RegistrationTasksPageArabic(driver); - } else { - throw new IllegalStateException("Unsupported language in testdata.json: " + language); - } + if ("eng".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + registrationTasksPage.handleLocationPermission(); + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); - assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), - "Verify if registration tasks page is loaded"); - - if ("eng".equalsIgnoreCase(language)) { - autoLogoutPage = new AutoLogoutPageEnglish(driver); - } else if ("hin".equalsIgnoreCase(language)) { - autoLogoutPage = new AutoLogoutPageHindi(driver); - } else if ("fra".equalsIgnoreCase(language)) { - autoLogoutPage = new AutoLogoutPageFrench(driver); - } else if ("kan".equalsIgnoreCase(language)) { - autoLogoutPage = new AutoLogoutPageKannada(driver); - } else if ("tam".equalsIgnoreCase(language)) { - autoLogoutPage = new AutoLogoutPageTamil(driver); - } else if ("ara".equalsIgnoreCase(language)) { - autoLogoutPage = new AutoLogoutPageArabic(driver); - } else { - throw new IllegalStateException("Unsupported language in testdata.json: " + language); - } - - assertTrue(autoLogoutPage.isAutoLogoutPopupDisplayed(), - "Verify if auto-logout popup is displayed"); - - autoLogoutPage.clickOnStayLogoutButton(); - - if ("eng".equalsIgnoreCase(language)) { - loginPage = new LoginPageEnglish(driver); - } else if ("hin".equalsIgnoreCase(language)) { - loginPage = new LoginPageHindi(driver); - } else if ("fra".equalsIgnoreCase(language)) { - loginPage = new LoginPageFrench(driver); - } else if ("kan".equalsIgnoreCase(language)) { - loginPage = new LoginPageKannada(driver); - } else if ("tam".equalsIgnoreCase(language)) { - loginPage = new LoginPageTamil(driver); - } else if ("ara".equalsIgnoreCase(language)) { - loginPage = new LoginPageArabic(driver); - } else { - throw new IllegalStateException("Unsupported language in testdata.json: " + language); + if ("eng".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + + assertTrue(autoLogoutPage.isAutoLogoutPopupDisplayed(), "Verify if auto-logout popup is displayed"); + + autoLogoutPage.clickOnStayLoggedInButton(); + + if ("eng".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + registrationTasksPage = new RegistrationTasksPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), + "Verify if registration tasks page is loaded"); + + if ("eng".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + autoLogoutPage = new AutoLogoutPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + + assertTrue(autoLogoutPage.isAutoLogoutPopupDisplayed(), "Verify if auto-logout popup is displayed"); + + autoLogoutPage.clickOnStayLogoutButton(); + + if ("eng".equalsIgnoreCase(language)) { + loginPage = new LoginPageEnglish(driver); + } else if ("hin".equalsIgnoreCase(language)) { + loginPage = new LoginPageHindi(driver); + } else if ("fra".equalsIgnoreCase(language)) { + loginPage = new LoginPageFrench(driver); + } else if ("kan".equalsIgnoreCase(language)) { + loginPage = new LoginPageKannada(driver); + } else if ("tam".equalsIgnoreCase(language)) { + loginPage = new LoginPageTamil(driver); + } else if ("ara".equalsIgnoreCase(language)) { + loginPage = new LoginPageArabic(driver); + } else { + throw new IllegalStateException("Unsupported language in testdata.json: " + language); + } + + assertTrue(loginPage.isWelcomeMessageInSelectedLanguageDisplayed(), + "verify if the welcome msg in selected language displayed"); + } finally { + BasePage.enableWifiAndData(); } - assertTrue(loginPage.isWelcomeMessageInSelectedLanguageDisplayed(), - "verify if the welcome msg in selected language displayed"); - BasePage.enableWifiAndData(); - } } - diff --git a/ui-test/src/main/java/regclient/api/KeycloakUserManager.java b/ui-test/src/main/java/regclient/api/KeycloakUserManager.java index 844f3a6a5..680522ead 100644 --- a/ui-test/src/main/java/regclient/api/KeycloakUserManager.java +++ b/ui-test/src/main/java/regclient/api/KeycloakUserManager.java @@ -41,8 +41,8 @@ private static Keycloak getKeycloakInstance() { Keycloak key = KeycloakBuilder.builder().serverUrl(ArcConfigManager.getIAMUrl()).realm(ArcConfigManager.getIAMRealmId()) .grantType(OAuth2Constants.CLIENT_CREDENTIALS).clientId(ArcConfigManager.getAutomationClientId()).clientSecret(ArcConfigManager.getAutomationClientSecret()) .build(); - System.out.println(ArcConfigManager.getIAMUrl()); - System.out.println(key.toString() + key.realms()); + logger.info("Keycloak URL: {}", ArcConfigManager.getIAMUrl()); + logger.debug("Keycloak instance initialized: {}", key); return key; } catch (Exception e) { logger.error("Failed to initialize Keycloak client", e); diff --git a/ui-test/src/main/java/regclient/pages/arabic/UpdateOperatorBiometricspageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/UpdateOperatorBiometricspageArabic.java index e3de200e0..207b2df8e 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/UpdateOperatorBiometricspageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/UpdateOperatorBiometricspageArabic.java @@ -386,8 +386,7 @@ public boolean isUpdateOperatorBiometricsPageLoaded() { public boolean validateThreshold(int expected) { WebElement el = driver.findElement(MobileBy.AndroidUIAutomator( "new UiScrollable(new UiSelector().scrollable(true))" + - ".scrollIntoView(new UiSelector().descriptionContains(\"Threshold\"));" - )); + ".scrollIntoView(new UiSelector().descriptionContains(\"الحد\"));")); String text = el.getAttribute("content-desc"); // "Threshold 75%" int actual = Integer.parseInt(text.replaceAll("[^0-9]", "")); // extract 75 diff --git a/ui-test/src/main/java/regclient/pages/french/UpdateOperatorBiometricspageFrench.java b/ui-test/src/main/java/regclient/pages/french/UpdateOperatorBiometricspageFrench.java index 562889856..5b4eb6af2 100644 --- a/ui-test/src/main/java/regclient/pages/french/UpdateOperatorBiometricspageFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/UpdateOperatorBiometricspageFrench.java @@ -387,7 +387,7 @@ public boolean isUpdateOperatorBiometricsPageLoaded() { public boolean validateThreshold(int expected) { WebElement el = driver.findElement(MobileBy.AndroidUIAutomator( "new UiScrollable(new UiSelector().scrollable(true))" + - ".scrollIntoView(new UiSelector().descriptionContains(\"Threshold\"));" + ".scrollIntoView(new UiSelector().descriptionContains(\"Seuil\"));" )); String text = el.getAttribute("content-desc"); // "Threshold 75%" diff --git a/ui-test/src/main/java/regclient/pages/kannada/AutoLogoutPageKannada.java b/ui-test/src/main/java/regclient/pages/kannada/AutoLogoutPageKannada.java index 1c3742a20..ad2036e45 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/AutoLogoutPageKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/AutoLogoutPageKannada.java @@ -11,7 +11,6 @@ import regclient.page.AutoLogoutPage; import regclient.page.LoginPage; import regclient.page.RegistrationTasksPage; -import regclient.pages.english.RegistrationTasksPageEnglish; public class AutoLogoutPageKannada extends AutoLogoutPage{ diff --git a/ui-test/src/main/java/regclient/pages/tamil/DocumentuploadPageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/DocumentuploadPageTamil.java index f9fd5caf2..fbdadbbf3 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/DocumentuploadPageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/DocumentuploadPageTamil.java @@ -59,7 +59,7 @@ public boolean isDoccumentUploadPageDisplayed() { public DocumentUploadPage clickOnSaveButton() { clickOnElement(saveButton); - return new DocumentUploadPageEnglish(driver); + return new DocumentUploadPageTamil(driver); } public boolean isRetakeButtonDisplayed() { diff --git a/ui-test/src/main/java/regclient/pages/tamil/UpdateOperatorBiometricspageTamil.java b/ui-test/src/main/java/regclient/pages/tamil/UpdateOperatorBiometricspageTamil.java index 1b7b4ce91..6546cea46 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/UpdateOperatorBiometricspageTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/UpdateOperatorBiometricspageTamil.java @@ -402,7 +402,7 @@ public boolean isUpdateOperatorBiometricsPageLoaded() { public boolean validateThreshold(int expected) { WebElement el = driver.findElement(MobileBy.AndroidUIAutomator( "new UiScrollable(new UiSelector().scrollable(true))" + - ".scrollIntoView(new UiSelector().descriptionContains(\"Threshold\"));" + ".scrollIntoView(new UiSelector().descriptionContains(\"வரம்பு\"));" )); String text = el.getAttribute("content-desc"); // "Threshold 75%" diff --git a/ui-test/src/main/java/regclient/utils/TestRunner.java b/ui-test/src/main/java/regclient/utils/TestRunner.java index ed2b81de1..79e115ac6 100644 --- a/ui-test/src/main/java/regclient/utils/TestRunner.java +++ b/ui-test/src/main/java/regclient/utils/TestRunner.java @@ -101,7 +101,7 @@ public static void main(String[] args) { if (Scenarioname.equalsIgnoreCase("updateMyUinMinor")) classes.add(updateMyUinMinor); - if (Scenarioname.equalsIgnoreCase("updateMyUinUpdateDemographicDetails")) + if (Scenarioname.equalsIgnoreCase("updateMyUinUpdateBiometrics")) classes.add(updateMyUinUpdatebiometrics); if (Scenarioname.equalsIgnoreCase("updateMyUinUpdateDemographicDetails")) From 62556f78d29563561332d73fc41c0a588d7defe9 Mon Sep 17 00:00:00 2001 From: damodarguru Date: Tue, 2 Dec 2025 10:26:22 +0530 Subject: [PATCH 13/21] MOSIP-43667:ARC UI automation add testcases and move to develop branch Signed-off-by: damodarguru --- .../UpdateOperatorBiometricspageArabic.java | 37 ++++++++++--------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/ui-test/src/main/java/regclient/pages/arabic/UpdateOperatorBiometricspageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/UpdateOperatorBiometricspageArabic.java index 207b2df8e..d8d356919 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/UpdateOperatorBiometricspageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/UpdateOperatorBiometricspageArabic.java @@ -384,27 +384,30 @@ public boolean isUpdateOperatorBiometricsPageLoaded() { } public boolean validateThreshold(int expected) { - WebElement el = driver.findElement(MobileBy.AndroidUIAutomator( - "new UiScrollable(new UiSelector().scrollable(true))" + - ".scrollIntoView(new UiSelector().descriptionContains(\"الحد\"));")); + WebElement el = driver + .findElement(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true))" + + ".scrollIntoView(new UiSelector().descriptionContains(\"الحد\"));")); - String text = el.getAttribute("content-desc"); // "Threshold 75%" - int actual = Integer.parseInt(text.replaceAll("[^0-9]", "")); // extract 75 + String text = el.getAttribute("contentDescription"); + int actual = Integer.parseInt(text.replaceAll("[^0-9]", "")); - return actual == expected; + return actual >= expected; } - + public void updateBiometricsAndWaitPopup() { - for (int i = 1; i <= 5; i++) { - clickOnVerifyAndSaveButton(); - try { - new WebDriverWait(driver, Duration.ofSeconds(60)) - .until(ExpectedConditions.visibilityOf(successPopup)); - return; // success - } catch (Exception ignored) {} - try { Thread.sleep(2000); } catch (InterruptedException ignored) {} - } - throw new AssertionError("Biometrics update success popup not displayed after 5 retries."); + for (int i = 1; i <= 5; i++) { + clickOnVerifyAndSaveButton(); + try { + new WebDriverWait(driver, Duration.ofSeconds(60)).until(ExpectedConditions.visibilityOf(successPopup)); + return; // success + } catch (Exception ignored) { + } + try { + Thread.sleep(2000); + } catch (InterruptedException ignored) { + } + } + throw new AssertionError("Biometrics update success popup not displayed after 5 retries."); } } From b1e9686ff4726dbdd76ae6830f0ac56a5802e1a2 Mon Sep 17 00:00:00 2001 From: damodarguru Date: Thu, 4 Dec 2025 01:46:10 +0530 Subject: [PATCH 14/21] MOSIP-43667:ARC UI automation add testcases and move to develop branch Signed-off-by: damodarguru --- .../java/regclient/androidTestCases/AutoLogout.java | 2 +- .../androidTestCases/BiometricCorrection.java | 4 ++-- .../androidTestCases/NewRegistrationAdult.java | 2 -- .../androidTestCases/PreRegFetchingPacket.java | 12 +++++------- .../java/regclient/androidTestCases/logintest.java | 2 +- .../pages/english/ManageApplicationsPageEnglish.java | 7 ++++++- 6 files changed, 15 insertions(+), 14 deletions(-) diff --git a/ui-test/src/main/java/regclient/androidTestCases/AutoLogout.java b/ui-test/src/main/java/regclient/androidTestCases/AutoLogout.java index 4f35477a4..3f7587803 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/AutoLogout.java +++ b/ui-test/src/main/java/regclient/androidTestCases/AutoLogout.java @@ -222,7 +222,7 @@ public void offlineAutoLogout() throws InterruptedException, IOException { } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } - registrationTasksPage.handleLocationPermission(); + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); diff --git a/ui-test/src/main/java/regclient/androidTestCases/BiometricCorrection.java b/ui-test/src/main/java/regclient/androidTestCases/BiometricCorrection.java index 3d6a951f9..2b59c86a1 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/BiometricCorrection.java +++ b/ui-test/src/main/java/regclient/androidTestCases/BiometricCorrection.java @@ -597,7 +597,7 @@ public void adultBiometricCorrection() throws InterruptedException { mockSBIPage.switchToMockSBI(); mockSBIPage.setAllModalityHighScore(); mockSBIPage.switchBackToArcApp(); -// biocorrection flow + // biocorrection flow if ("eng".equalsIgnoreCase(language)) { loginPage = new LoginPageEnglish(driver); } else if ("hin".equalsIgnoreCase(language)) { @@ -1041,7 +1041,7 @@ public void minorBiometricCorrection() throws InterruptedException { } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } - registrationTasksPage.handleLocationPermission(); + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnNewRegistrationButton(); diff --git a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdult.java b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdult.java index 64bf87316..acb011211 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdult.java +++ b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdult.java @@ -663,8 +663,6 @@ public void newRegistrationAdultUploadMultipleDoccuments() throws InterruptedExc throw new IllegalStateException("Unsupported language in testdata.json: " + language); } - registrationTasksPage.handleLocationPermission(); - assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); diff --git a/ui-test/src/main/java/regclient/androidTestCases/PreRegFetchingPacket.java b/ui-test/src/main/java/regclient/androidTestCases/PreRegFetchingPacket.java index 202c1e15b..e8bd8caea 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/PreRegFetchingPacket.java +++ b/ui-test/src/main/java/regclient/androidTestCases/PreRegFetchingPacket.java @@ -594,7 +594,7 @@ public void adultPreRegFetching() throws InterruptedException { } - @Test(priority = 1, description = "Verify minor pre-reg fetching registration") +// @Test(priority = 1, description = "Verify minor pre-reg fetching registration") public void minorPreRegFetching() throws InterruptedException { BasePage.disableAutoRotation(); @@ -660,7 +660,7 @@ public void minorPreRegFetching() throws InterruptedException { } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } - registrationTasksPage.handleLocationPermission(); + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnNewRegistrationButton(); @@ -681,10 +681,7 @@ public void minorPreRegFetching() throws InterruptedException { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), "Verify if select language page is loaded"); - selectLanguagePage.clickOnSubmitButtonWithoutSelectingLanguage(); - - assertTrue(selectLanguagePage.isSelectLanguagePageLoaded(), - "Verify if user should not be allow to navigate to next screen."); + selectLanguagePage.selectSecondLanguage(); assertTrue(selectLanguagePage.isNotificationLanguageEnglishDisplayed(), @@ -988,6 +985,7 @@ public void minorPreRegFetching() throws InterruptedException { // assertTrue(previewPage.isBiometricsInformationInPreviewPagePageDisplayed(),"Verify if Biometrics Information In PreviewPage is displayed"); String Aid = previewPage.getAID(); + previewPage.clickOnContinueButton(); if ("eng".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageEnglish(driver); @@ -1219,7 +1217,7 @@ public void infantPreRegFetching() throws InterruptedException { } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } - registrationTasksPage.handleLocationPermission(); + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnNewRegistrationButton(); diff --git a/ui-test/src/main/java/regclient/androidTestCases/logintest.java b/ui-test/src/main/java/regclient/androidTestCases/logintest.java index d95828aef..9de86ffac 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/logintest.java +++ b/ui-test/src/main/java/regclient/androidTestCases/logintest.java @@ -497,7 +497,7 @@ public void updateOperatorBiometrics() { } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } - registrationTasksPage.handleLocationPermission(); + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); diff --git a/ui-test/src/main/java/regclient/pages/english/ManageApplicationsPageEnglish.java b/ui-test/src/main/java/regclient/pages/english/ManageApplicationsPageEnglish.java index 0d9db6501..1689d4bfd 100644 --- a/ui-test/src/main/java/regclient/pages/english/ManageApplicationsPageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/ManageApplicationsPageEnglish.java @@ -232,8 +232,13 @@ public boolean isDeletionDropdownOptionDisplayed() { return isElementDisplayed(deletionValueDropdown); } +// public void clickOnBackButton() { +// driver.navigate().back(); +// } + public void clickOnBackButton() { - driver.navigate().back(); + // Most reliable when no ID or content-desc exists + driver.findElement(By.xpath("(//android.widget.ImageButton)[1]")).click(); } public void clickOnExportButton() { From ffba7b19580961e3fa4f50e5cfee16bc504041d9 Mon Sep 17 00:00:00 2001 From: damodarguru Date: Thu, 4 Dec 2025 01:54:07 +0530 Subject: [PATCH 15/21] MOSIP-43667:ARC UI automation add testcases and move to develop branch Signed-off-by: damodarguru --- .../java/regclient/androidTestCases/NewRegistrationAdult.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdult.java b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdult.java index acb011211..6786b3de2 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdult.java +++ b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdult.java @@ -903,7 +903,7 @@ public void newRegistrationAdultUploadMultipleDoccuments() throws InterruptedExc previewPage.clickOnDemographicDetailsTitle(); for (String screen : screenOrder) { - if (screen.equals("DemographicDetails") || screen.equals("DemographicDetails")) { + if (screen.equals("DemographicDetails")) { if ("eng".equalsIgnoreCase(language)) { demographicPage = new DemographicDetailsPageEnglish(driver); } else if ("hin".equalsIgnoreCase(language)) { From 9448a75492e88cac2ca44b2d3781ac7910180b0a Mon Sep 17 00:00:00 2001 From: damodarguru Date: Thu, 4 Dec 2025 10:15:19 +0530 Subject: [PATCH 16/21] MOSIP-43667:ARC UI automation add testcases and move to develop branch Signed-off-by: damodarguru --- ui-test/src/main/java/regclient/androidTestCases/LostUin.java | 2 +- .../java/regclient/androidTestCases/NewRegistrationAdult.java | 3 +-- ui-test/src/main/java/regclient/page/PendingApproval.java | 2 +- .../java/regclient/pages/arabic/PendingApprovalArabic.java | 2 +- .../java/regclient/pages/english/PendingApprovalEnglish.java | 2 +- .../java/regclient/pages/french/PendingApprovalFrench.java | 2 +- .../main/java/regclient/pages/hindi/PendingApprovalHindi.java | 2 +- .../java/regclient/pages/kannada/PendingApprovalKannada.java | 2 +- .../main/java/regclient/pages/tamil/PendingApprovalTamil.java | 2 +- 9 files changed, 9 insertions(+), 10 deletions(-) diff --git a/ui-test/src/main/java/regclient/androidTestCases/LostUin.java b/ui-test/src/main/java/regclient/androidTestCases/LostUin.java index affb244d6..fc8ee342f 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/LostUin.java +++ b/ui-test/src/main/java/regclient/androidTestCases/LostUin.java @@ -524,7 +524,7 @@ public void lostUinAdult() { "Verify if Supervisor Authentication page displayed"); pendingApproval.clickOnSubmitButton(); - assertTrue(pendingApproval.isInvalidEmptyUsernameSubmitButtonEnabled(), + assertTrue(pendingApproval.isSubmitButtonEnabledWithEmptyUsername(), "Verify if error empty username submit button enabled"); pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser + "123"); diff --git a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdult.java b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdult.java index 6786b3de2..522b7bebd 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdult.java +++ b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdult.java @@ -542,7 +542,7 @@ public void newRegistrationAdult() throws InterruptedException { assertTrue(isPageDisplayed, "Supervisor Authentication page not displayed after retries"); pendingApproval.clickOnSubmitButton(); - assertTrue(pendingApproval.isInvalidEmptyUsernameSubmitButtonEnabled(), + assertTrue(pendingApproval.isSubmitButtonEnabledWithEmptyUsername(), "Verify if error empty username submit button enabled"); pendingApproval.enterUserName(KeycloakUserManager.moduleSpecificUser + "123"); @@ -595,7 +595,6 @@ public void newRegistrationAdult() throws InterruptedException { } - @SuppressWarnings("null") @Test(priority = 1, description = "Verify adult new registration") public void newRegistrationAdultUploadMultipleDoccuments() throws InterruptedException { BasePage.disableAutoRotation(); diff --git a/ui-test/src/main/java/regclient/page/PendingApproval.java b/ui-test/src/main/java/regclient/page/PendingApproval.java index daea8c972..44b347bcb 100644 --- a/ui-test/src/main/java/regclient/page/PendingApproval.java +++ b/ui-test/src/main/java/regclient/page/PendingApproval.java @@ -50,7 +50,7 @@ public PendingApproval(AppiumDriver driver) { public abstract boolean isInvalidUsernameMessageDisplayed(); - public abstract boolean isInvalidEmptyUsernameSubmitButtonEnabled(); + public abstract boolean isSubmitButtonEnabledWithEmptyUsername(); public abstract boolean isNumberOfApplicationDisplayed(); diff --git a/ui-test/src/main/java/regclient/pages/arabic/PendingApprovalArabic.java b/ui-test/src/main/java/regclient/pages/arabic/PendingApprovalArabic.java index bfaa2b316..0eef9485d 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/PendingApprovalArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/PendingApprovalArabic.java @@ -191,7 +191,7 @@ public boolean isSubmitButtonEnabled() { return isElementEnabled(submitButton); } - public boolean isInvalidEmptyUsernameSubmitButtonEnabled() { + public boolean isSubmitButtonEnabledWithEmptyUsername() { return isElementEnabled(invalidUsernameMessageForempty); } diff --git a/ui-test/src/main/java/regclient/pages/english/PendingApprovalEnglish.java b/ui-test/src/main/java/regclient/pages/english/PendingApprovalEnglish.java index 52c715948..6f9b0b099 100644 --- a/ui-test/src/main/java/regclient/pages/english/PendingApprovalEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/PendingApprovalEnglish.java @@ -132,7 +132,7 @@ public boolean isInvalidUsernameMessageDisplayed() { return isElementDisplayed(invalidUsernameMessage); } - public boolean isInvalidEmptyUsernameSubmitButtonEnabled() { + public boolean isSubmitButtonEnabledWithEmptyUsername() { return isElementEnabled(invalidUsernameMessageForempty); } diff --git a/ui-test/src/main/java/regclient/pages/french/PendingApprovalFrench.java b/ui-test/src/main/java/regclient/pages/french/PendingApprovalFrench.java index a5e767d73..fb383c6ad 100644 --- a/ui-test/src/main/java/regclient/pages/french/PendingApprovalFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/PendingApprovalFrench.java @@ -192,7 +192,7 @@ public boolean isSubmitButtonEnabled() { return isElementEnabled(submitButton); } - public boolean isInvalidEmptyUsernameSubmitButtonEnabled() { + public boolean isSubmitButtonEnabledWithEmptyUsername() { return isElementEnabled(invalidUsernameMessageForempty); } diff --git a/ui-test/src/main/java/regclient/pages/hindi/PendingApprovalHindi.java b/ui-test/src/main/java/regclient/pages/hindi/PendingApprovalHindi.java index 7941509bf..aa53d500e 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/PendingApprovalHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/PendingApprovalHindi.java @@ -146,7 +146,7 @@ public boolean isInvalidUsernameMessageDisplayed() { return isElementDisplayed(invalidUsernameMessage); } - public boolean isInvalidEmptyUsernameSubmitButtonEnabled() { + public boolean isSubmitButtonEnabledWithEmptyUsername() { return isElementEnabled(invalidUsernameMessageForempty); } diff --git a/ui-test/src/main/java/regclient/pages/kannada/PendingApprovalKannada.java b/ui-test/src/main/java/regclient/pages/kannada/PendingApprovalKannada.java index a1367962b..839b1e7c8 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/PendingApprovalKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/PendingApprovalKannada.java @@ -193,7 +193,7 @@ public boolean isSubmitButtonEnabled() { return isElementEnabled(submitButton); } - public boolean isInvalidEmptyUsernameSubmitButtonEnabled() { + public boolean isSubmitButtonEnabledWithEmptyUsername() { return isElementEnabled(invalidUsernameMessageForempty); } diff --git a/ui-test/src/main/java/regclient/pages/tamil/PendingApprovalTamil.java b/ui-test/src/main/java/regclient/pages/tamil/PendingApprovalTamil.java index 7e3a1bedd..4fe5d7a6f 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/PendingApprovalTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/PendingApprovalTamil.java @@ -193,7 +193,7 @@ public boolean isSubmitButtonEnabled() { return isElementEnabled(submitButton); } - public boolean isInvalidEmptyUsernameSubmitButtonEnabled() { + public boolean isSubmitButtonEnabledWithEmptyUsername() { return isElementEnabled(invalidUsernameMessageForempty); } From c23865dd9f58ac376319e267ed00cf088be474fd Mon Sep 17 00:00:00 2001 From: damodarguru Date: Wed, 10 Dec 2025 15:13:03 +0530 Subject: [PATCH 17/21] MOSIP-43667:ARC UI automation add testcases and move to develop branch Signed-off-by: damodarguru --- .../androidTestCases/BiometricCorrection.java | 34 +++++++++---------- .../androidTestCases/ResetPassword.java | 2 -- .../java/regclient/driver/DriverManager.java | 4 +-- .../main/java/regclient/page/MockSBIPage.java | 4 +-- 4 files changed, 20 insertions(+), 24 deletions(-) diff --git a/ui-test/src/main/java/regclient/androidTestCases/BiometricCorrection.java b/ui-test/src/main/java/regclient/androidTestCases/BiometricCorrection.java index 2b59c86a1..0aabffa30 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/BiometricCorrection.java +++ b/ui-test/src/main/java/regclient/androidTestCases/BiometricCorrection.java @@ -341,9 +341,16 @@ public void adultBiometricCorrection() throws InterruptedException { assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); + + applicantBiometricsPage.clickOnScanButton(); + assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 2nd attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + + applicantBiometricsPage.clickOnScanButton(); + assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 3rd attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); } @@ -404,14 +411,6 @@ public void adultBiometricCorrection() throws InterruptedException { assertTrue(applicantBiometricsPage.isFaceScan(), "Verify if face scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isFaceScan(), "Verify if face scan 2nd attempt"); - applicantBiometricsPage.closeScanCapturePopUp(); - - applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isFaceScan(), "Verify if face scan 3rd attempt"); - applicantBiometricsPage.closeScanCapturePopUp(); - applicantBiometricsPage.clickOnBackButton(); } assertTrue(biometricDetailsPage.isBiometricDetailsPageDisplayed(), @@ -1174,9 +1173,16 @@ public void minorBiometricCorrection() throws InterruptedException { assertTrue(applicantBiometricsPage.isApplicantBiometricsPageDisplayed(), "Verify if applicant biometric page is displayed"); applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); + + applicantBiometricsPage.clickOnScanButton(); + assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 2nd attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); + + applicantBiometricsPage.clickOnScanButton(); + assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 2nd attempt"); + applicantBiometricsPage.closeScanCapturePopUp(); biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); } @@ -1234,14 +1240,6 @@ public void minorBiometricCorrection() throws InterruptedException { assertTrue(applicantBiometricsPage.isFaceScan(), "Verify if face scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isFaceScan(), "Verify if face scan 2nd attempt"); - applicantBiometricsPage.closeScanCapturePopUp(); - - applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isFaceScan(), "Verify if face scan 3rd attempt"); - applicantBiometricsPage.closeScanCapturePopUp(); - applicantBiometricsPage.clickOnBackButton(); } diff --git a/ui-test/src/main/java/regclient/androidTestCases/ResetPassword.java b/ui-test/src/main/java/regclient/androidTestCases/ResetPassword.java index e86741fff..7ba409bfd 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/ResetPassword.java +++ b/ui-test/src/main/java/regclient/androidTestCases/ResetPassword.java @@ -34,7 +34,6 @@ public class ResetPassword extends AndroidBaseTest { - @SuppressWarnings("null") @Test(priority = 0, description = "Verify reset password") public void resetPassword() throws IOException { BasePage.disableAutoRotation(); @@ -220,7 +219,6 @@ public void resetPassword() throws IOException { } - @SuppressWarnings("null") @Test(priority = 1, description = "Reset to default password") public void resetToDefaultPassword() throws IOException { BasePage.disableAutoRotation(); diff --git a/ui-test/src/main/java/regclient/driver/DriverManager.java b/ui-test/src/main/java/regclient/driver/DriverManager.java index 8bf2eb990..c5849780c 100644 --- a/ui-test/src/main/java/regclient/driver/DriverManager.java +++ b/ui-test/src/main/java/regclient/driver/DriverManager.java @@ -31,7 +31,7 @@ public static AppiumDriver getDriver() throws MalformedURLException, Interrupted return getAndroidDriver(); } - public synchronized static void startAppiumServer() { + public static void startAppiumServer() { PropertiesReader propertiesReader = new PropertiesReader(); String ipAddress = System.getProperty("ipAddress") != null ? System.getProperty("ipAddress") : propertiesReader.getIpAddress(); @@ -44,7 +44,7 @@ public synchronized static void startAppiumServer() { service.start(); } - public synchronized static void stopAppiumServer() { + public static void stopAppiumServer() { if (service != null) service.stop(); } diff --git a/ui-test/src/main/java/regclient/page/MockSBIPage.java b/ui-test/src/main/java/regclient/page/MockSBIPage.java index b62429aaf..fab657c79 100644 --- a/ui-test/src/main/java/regclient/page/MockSBIPage.java +++ b/ui-test/src/main/java/regclient/page/MockSBIPage.java @@ -105,13 +105,13 @@ public void setAllToReadyAndSave() { public void setAllModalityLowScore() { // ModalityScore should be (20-5=15) - setModalityScore("Face", 20); + setModalityScore("Iris", 20); swipeOrScroll(); clickOnElement(mockSbiSaveButton); } public void setAllModalityHighScore() { - setModalityScore("Face", 90); + setModalityScore("Iris", 90); scrollUntilElementVisible(AppiumBy.id("io.mosip.mock.sbi:id/button12")); clickOnElement(mockSbiSaveButton); } From 1724c694f8d455f829f641e6eca72a75b00cde21 Mon Sep 17 00:00:00 2001 From: damodarguru Date: Wed, 10 Dec 2025 15:29:36 +0530 Subject: [PATCH 18/21] MOSIP-43667:ARC UI automation add testcases and move to develop branch Signed-off-by: damodarguru --- .../androidTestCases/BiometricCorrection.java | 28 ++++++++++--------- .../androidTestCases/ResetPassword.java | 1 - 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/ui-test/src/main/java/regclient/androidTestCases/BiometricCorrection.java b/ui-test/src/main/java/regclient/androidTestCases/BiometricCorrection.java index 0aabffa30..e2d178fc8 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/BiometricCorrection.java +++ b/ui-test/src/main/java/regclient/androidTestCases/BiometricCorrection.java @@ -343,11 +343,11 @@ public void adultBiometricCorrection() throws InterruptedException { applicantBiometricsPage.clickOnScanButton(); assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - + applicantBiometricsPage.clickOnScanButton(); assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 2nd attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - + applicantBiometricsPage.clickOnScanButton(); assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 3rd attempt"); applicantBiometricsPage.closeScanCapturePopUp(); @@ -575,7 +575,7 @@ public void adultBiometricCorrection() throws InterruptedException { } assertTrue(manageApplicationsPage.isManageApplicationPageDisplayed(), "Verify if manage Applications Page displayed"); - + manageApplicationsPage.enterAID(Aid); assertTrue(manageApplicationsPage.isSearchAIDDisplayed(Aid), "Verify if Search Aid should displayed"); @@ -590,13 +590,12 @@ public void adultBiometricCorrection() throws InterruptedException { break; } manageApplicationsPage.clickOnBackButton(); - // Return to mocksbi page mockSBIPage.switchToMockSBI(); mockSBIPage.setAllModalityHighScore(); mockSBIPage.switchBackToArcApp(); - // biocorrection flow + // biocorrection flow if ("eng".equalsIgnoreCase(language)) { loginPage = new LoginPageEnglish(driver); } else if ("hin".equalsIgnoreCase(language)) { @@ -638,7 +637,7 @@ public void adultBiometricCorrection() throws InterruptedException { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } registrationTasksPage.handleLocationPermission(); - + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); @@ -730,7 +729,7 @@ public void adultBiometricCorrection() throws InterruptedException { assertTrue(biometricDetailsPage.isAdditionalInfoRequestIdTextboxDisplayed(), "Additional info Request ID textbox should be displayed"); - + biometricDetailsPage.enterAdditionalInfoUsingEmail(BasePage.email); if (FetchUiSpec.eye.equals("yes")) { @@ -816,8 +815,9 @@ public void adultBiometricCorrection() throws InterruptedException { } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } - assertTrue(previewPage.isBiometricCorrectionTitleDisplayed(), "Verify if biometric correction title is displayed"); - + assertTrue(previewPage.isBiometricCorrectionTitleDisplayed(), + "Verify if biometric correction title is displayed"); + previewPage.clickOnContinueButton(); if ("eng".equalsIgnoreCase(language)) { authenticationPage = new AuthenticationPageEnglish(driver); @@ -1040,7 +1040,7 @@ public void minorBiometricCorrection() throws InterruptedException { } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } - + assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnNewRegistrationButton(); @@ -1175,13 +1175,13 @@ public void minorBiometricCorrection() throws InterruptedException { applicantBiometricsPage.clickOnScanButton(); assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 1st attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - + applicantBiometricsPage.clickOnScanButton(); assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 2nd attempt"); applicantBiometricsPage.closeScanCapturePopUp(); - + applicantBiometricsPage.clickOnScanButton(); - assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 2nd attempt"); + assertTrue(applicantBiometricsPage.isIrisScan(), "Verify if iris scan 3rd attempt"); applicantBiometricsPage.closeScanCapturePopUp(); biometricDetailsPage = applicantBiometricsPage.clickOnBackButton(); @@ -1503,6 +1503,8 @@ public void minorBiometricCorrection() throws InterruptedException { manageApplicationsPage.clickOnBackButton(); // Biometric correction packet process + // Reset biometric capabilities back to individual biometrics for correction flow + FetchUiSpec.getBiometricDetails("individualBiometrics"); assertTrue(registrationTasksPage.isOperationalTaskDisplayed(), "Verify if operation tasks page is loaded"); registrationTasksPage.clickOnRegistrationTasksTab(); diff --git a/ui-test/src/main/java/regclient/androidTestCases/ResetPassword.java b/ui-test/src/main/java/regclient/androidTestCases/ResetPassword.java index 7ba409bfd..1eba9ad88 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/ResetPassword.java +++ b/ui-test/src/main/java/regclient/androidTestCases/ResetPassword.java @@ -139,7 +139,6 @@ public void resetPassword() throws IOException { keycloakPage = new KeycloakPage(driver); -// assertTrue(keycloakPage.openKeycloakWebView(), "Verify if keycloak login page displayed"); keycloakPage.enterUserName(KeycloakUserManager.onlyOperatorRoleUser); keycloakPage.enterPassword(ArcConfigManager.getIAMUsersPassword()); keycloakPage.clickOnLoginButton(); From 6ca07a5072e846031f7ac00e80d9fb3979e19845 Mon Sep 17 00:00:00 2001 From: damodarguru Date: Wed, 10 Dec 2025 15:42:47 +0530 Subject: [PATCH 19/21] MOSIP-43667:ARC UI automation add testcases and move to develop branch Signed-off-by: damodarguru --- .../main/java/regclient/androidTestCases/ResetPassword.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ui-test/src/main/java/regclient/androidTestCases/ResetPassword.java b/ui-test/src/main/java/regclient/androidTestCases/ResetPassword.java index 1eba9ad88..cb9eba188 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/ResetPassword.java +++ b/ui-test/src/main/java/regclient/androidTestCases/ResetPassword.java @@ -218,7 +218,7 @@ public void resetPassword() throws IOException { } - @Test(priority = 1, description = "Reset to default password") + @Test(priority = 1, description = "Reset to default password", dependsOnMethods = "resetPassword") public void resetToDefaultPassword() throws IOException { BasePage.disableAutoRotation(); LoginPage loginPage = null; @@ -265,6 +265,7 @@ public void resetToDefaultPassword() throws IOException { } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } + registrationTasksPage.handleLocationPermission(); assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickSynchronizeDataButton(); From a6a011622aa9cd16137bdc96bd8156f58b6ac797 Mon Sep 17 00:00:00 2001 From: damodarguru Date: Fri, 19 Dec 2025 15:56:54 +0530 Subject: [PATCH 20/21] MOSIP-43667:ARC UI automation add testcases and move to develop branch Signed-off-by: damodarguru --- .../PreRegFetchingPacket.java | 2 +- .../main/java/regclient/api/FetchUiSpec.java | 2 +- .../java/regclient/page/KeycloakPage.java | 92 +++++++++---------- .../main/java/regclient/page/MockSBIPage.java | 7 +- .../pages/arabic/LoginPageArabic.java | 2 +- .../ManageApplicationsPageEnglish.java | 5 - .../main/java/regclient/utils/TestRunner.java | 6 +- ui-test/src/main/resources/testdata.json | 2 +- 8 files changed, 58 insertions(+), 60 deletions(-) diff --git a/ui-test/src/main/java/regclient/androidTestCases/PreRegFetchingPacket.java b/ui-test/src/main/java/regclient/androidTestCases/PreRegFetchingPacket.java index e8bd8caea..8146ccd63 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/PreRegFetchingPacket.java +++ b/ui-test/src/main/java/regclient/androidTestCases/PreRegFetchingPacket.java @@ -594,7 +594,7 @@ public void adultPreRegFetching() throws InterruptedException { } -// @Test(priority = 1, description = "Verify minor pre-reg fetching registration") + @Test(priority = 1, description = "Verify minor pre-reg fetching registration") public void minorPreRegFetching() throws InterruptedException { BasePage.disableAutoRotation(); diff --git a/ui-test/src/main/java/regclient/api/FetchUiSpec.java b/ui-test/src/main/java/regclient/api/FetchUiSpec.java index a8d2872ce..ea1625a59 100644 --- a/ui-test/src/main/java/regclient/api/FetchUiSpec.java +++ b/ui-test/src/main/java/regclient/api/FetchUiSpec.java @@ -420,7 +420,7 @@ public static List getDropdownOptions(String id) { case "gender": return Arrays.asList("Male", "Female", "Other"); - case "residencestatus": + case "residenceStatus": return Arrays.asList("Foreigner", "Non-Foreigner"); default: diff --git a/ui-test/src/main/java/regclient/page/KeycloakPage.java b/ui-test/src/main/java/regclient/page/KeycloakPage.java index 842dd167a..9301eb074 100644 --- a/ui-test/src/main/java/regclient/page/KeycloakPage.java +++ b/ui-test/src/main/java/regclient/page/KeycloakPage.java @@ -5,7 +5,6 @@ import java.util.Set; import org.openqa.selenium.By; -import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.ui.ExpectedConditions; @@ -17,8 +16,6 @@ public class KeycloakPage extends BasePage { - private WebDriverWait wait; - public KeycloakPage(AppiumDriver driver) { super(driver); } @@ -66,44 +63,51 @@ public KeycloakPage(AppiumDriver driver) { private WebElement logoutButton; public boolean openKeycloakWebView() { - String webCtx = findWebViewContext(Duration.ofSeconds(5)); - if (webCtx != null) { - ((SupportsContextSwitching) driver).context(webCtx); - try { Thread.sleep(250); } catch (InterruptedException ignored) {} - } else { - try { ((SupportsContextSwitching) driver).context("NATIVE_APP"); } catch (Exception ignored) {} - } - - retryFindElement(keycloakPageTitle, Duration.ofSeconds(10)); - return isElementDisplayed(keycloakPageTitle); + String webCtx = findWebViewContext(Duration.ofSeconds(5)); + if (webCtx != null) { + ((SupportsContextSwitching) driver).context(webCtx); + try { + Thread.sleep(250); + } catch (InterruptedException ignored) { + } + } else { + try { + ((SupportsContextSwitching) driver).context("NATIVE_APP"); + } catch (Exception ignored) { + } + } + + retryFindElement(keycloakPageTitle, Duration.ofSeconds(10)); + return isElementDisplayed(keycloakPageTitle); } public boolean openKeycloakPassword() { - scrollToTopSafe(); - - By nativePwd = By.xpath("//android.widget.TextView[@text='Password']"); - - try { - ((SupportsContextSwitching) driver).context("NATIVE_APP"); - new WebDriverWait(driver, Duration.ofSeconds(8)) - .until(ExpectedConditions.visibilityOfElementLocated(nativePwd)); - return true; - } catch (Exception e) { - System.out.println("Password not found in native."); - } - - for (String c : ((SupportsContextSwitching) driver).getContextHandles()) { - if (c.contains("WEBVIEW")) { - ((SupportsContextSwitching) driver).context(c); - try { - new WebDriverWait(driver, Duration.ofSeconds(8)) - .until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#password"))); - return true; - } catch (Exception ignore) {} - } - } - return false; + scrollToTopSafe(); + + By nativePwd = By.xpath("//android.widget.TextView[@text='Password']"); + + try { + ((SupportsContextSwitching) driver).context("NATIVE_APP"); + new WebDriverWait(driver, Duration.ofSeconds(8)) + .until(ExpectedConditions.visibilityOfElementLocated(nativePwd)); + return true; + } catch (Exception e) { + System.out.println("Password not found in native."); + } + + for (String c : ((SupportsContextSwitching) driver).getContextHandles()) { + if (c.contains("WEBVIEW")) { + ((SupportsContextSwitching) driver).context(c); + try { + new WebDriverWait(driver, Duration.ofSeconds(8)) + .until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#password"))); + return true; + } catch (Exception ignore) { + } + } + } + return false; } public String getPageTitle() { @@ -135,34 +139,28 @@ public void clickOnLoginButton() { public void clickOnPasswordOption() { clickOnElement(passwordOption); } - + public void enterExistPassword(String password) { -// switchContext("WEBVIEW_chrome"); sendKeysToTextBox(passwordField, password); } - + public void enterNewPassword(String password) { -// switchContext("WEBVIEW_chrome"); clickAndsendKeysToTextBox(newPasswordField, password); } - + public void enterConfirmPassword(String password) { -// switchContext("WEBVIEW_chrome"); clickAndsendKeysToTextBox(confirmPasswordField, password); } - + public void clickOnSaveButton() { -// switchContext("WEBVIEW_chrome"); clickOnElement(saveButton); } public boolean isPasswordUpdatedMessageDisplayed() { -// switchContext("WEBVIEW_chrome"); return isElementDisplayed(passwordUpdatedMessage); } public void clickOnSignoutButton() { -// switchContext("WEBVIEW_chrome"); scrollToTop(); clickOnElement(signoutButton); } diff --git a/ui-test/src/main/java/regclient/page/MockSBIPage.java b/ui-test/src/main/java/regclient/page/MockSBIPage.java index fab657c79..2c2a4f54e 100644 --- a/ui-test/src/main/java/regclient/page/MockSBIPage.java +++ b/ui-test/src/main/java/regclient/page/MockSBIPage.java @@ -75,15 +75,19 @@ public void setAllToNotReadyAndSave() { public void switchBackToArcApp() { AndroidDriver driver = (AndroidDriver) this.driver; try { + // detect the package from session capability String mainPackage = String.valueOf(driver.getCapabilities().getCapability("appium:appPackage")); String mainActivity = String.valueOf(driver.getCapabilities().getCapability("appium:appActivity")); + // if current package already matches, nothing to do if (mainPackage != null && mainPackage.equals(driver.getCurrentPackage())) { return; } + // Try to simply bring ARC app to foreground if installed if (driver.isAppInstalled(mainPackage)) { driver.activateApp(mainPackage); return; } + // Fallback: use startActivity if activateApp didn't work if (mainActivity != null && !mainActivity.isEmpty()) { driver.startActivity(new Activity(mainPackage, mainActivity)); } @@ -150,12 +154,13 @@ private void setModalityScore(String modality, int score) { modLower, modality); WebElement seekBar = findElementIfExists(By.xpath(xpath)); // non-throwing - + // fallback: a few swipes + re-checks for (int i = 0; i < 5 && seekBar == null; i++) { swipeOrScroll(); waitTime(1); seekBar = findElementIfExists(By.xpath(xpath)); } + // final attempt using retry (may throw) — catch below if (seekBar == null) { seekBar = findElementWithRetry(By.xpath(xpath)); } diff --git a/ui-test/src/main/java/regclient/pages/arabic/LoginPageArabic.java b/ui-test/src/main/java/regclient/pages/arabic/LoginPageArabic.java index a90d771e4..cb89c9799 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/LoginPageArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/LoginPageArabic.java @@ -51,7 +51,7 @@ public class LoginPageArabic extends LoginPage { @AndroidFindBy(accessibility = "كلمة المرور غير صحيحة!") private WebElement passwordIncorrectErrorMessage; - @AndroidFindBy(accessibility = "العربية") + @AndroidFindBy(accessibility = "عربي") private WebElement arabicButton; @AndroidFindBy(accessibility = "انتقل إلى المنزل") diff --git a/ui-test/src/main/java/regclient/pages/english/ManageApplicationsPageEnglish.java b/ui-test/src/main/java/regclient/pages/english/ManageApplicationsPageEnglish.java index 1689d4bfd..4761a202a 100644 --- a/ui-test/src/main/java/regclient/pages/english/ManageApplicationsPageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/ManageApplicationsPageEnglish.java @@ -231,13 +231,8 @@ public boolean isAcceptedDropdownOptionDisplayed() { public boolean isDeletionDropdownOptionDisplayed() { return isElementDisplayed(deletionValueDropdown); } - -// public void clickOnBackButton() { -// driver.navigate().back(); -// } public void clickOnBackButton() { - // Most reliable when no ID or content-desc exists driver.findElement(By.xpath("(//android.widget.ImageButton)[1]")).click(); } diff --git a/ui-test/src/main/java/regclient/utils/TestRunner.java b/ui-test/src/main/java/regclient/utils/TestRunner.java index 79e115ac6..950b73609 100644 --- a/ui-test/src/main/java/regclient/utils/TestRunner.java +++ b/ui-test/src/main/java/regclient/utils/TestRunner.java @@ -32,9 +32,9 @@ public static void main(String[] args) { io.mosip.testrig.apirig.utils.AdminTestUtil.init(); FetchUiSpec.getBiometricDetails("individualBiometrics"); System.out.println("BaseTestCase.ApplnURI : " + BaseTestCase.ApplnURI); -// AdminTestUtil.getPreRegistrationFlow("adult"); -// AdminTestUtil.getPreRegistrationFlow("minor"); -// AdminTestUtil.getPreRegistrationFlow("infant"); + AdminTestUtil.getPreRegistrationFlow("adult"); + AdminTestUtil.getPreRegistrationFlow("minor"); + AdminTestUtil.getPreRegistrationFlow("infant"); File homeDir = null; TestNG runner = new TestNG(); if (!ArcConfigManager.gettestcases().equals("")) { diff --git a/ui-test/src/main/resources/testdata.json b/ui-test/src/main/resources/testdata.json index 366a52e81..2d28de1d9 100644 --- a/ui-test/src/main/resources/testdata.json +++ b/ui-test/src/main/resources/testdata.json @@ -2,7 +2,7 @@ "UIN": "2153672893", "UINinfant": "5074162518", "UINminor": "2312798573", - "language": "eng", + "language": "ara", "defaultlanguage": "eng", "notificationLanguage": "eng", "RID": "10001142850000120251130090022", From e84a07b420a7a35623e59dc2251b1a5f7f6d576b Mon Sep 17 00:00:00 2001 From: damodarguru Date: Fri, 19 Dec 2025 17:05:42 +0530 Subject: [PATCH 21/21] MOSIP-43667:ARC UI automation add testcases and move to develop branch Signed-off-by: damodarguru --- ui-test/README.md | 2 +- .../java/regclient/androidTestCases/PreRegFetchingPacket.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ui-test/README.md b/ui-test/README.md index 9d4b15d47..a0cf6c905 100644 --- a/ui-test/README.md +++ b/ui-test/README.md @@ -154,7 +154,7 @@ Update these files before execution: * `resources/testdata.json` — Test data (uin, language, rid, camera id) * `resources/config.properties` — `nodePath`, `appiumServerExecutable` * `resources/DesiredCapabilies.json` — `udid`, app path -* `camara.java` — Update camera & retake button coordinates +* `camera.java` — Update camera & retake button coordinates 📌 Any runtime properties (e.g. `bioValue.properties`) must be placed under: ``` diff --git a/ui-test/src/main/java/regclient/androidTestCases/PreRegFetchingPacket.java b/ui-test/src/main/java/regclient/androidTestCases/PreRegFetchingPacket.java index 8146ccd63..b37843846 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/PreRegFetchingPacket.java +++ b/ui-test/src/main/java/regclient/androidTestCases/PreRegFetchingPacket.java @@ -660,7 +660,7 @@ public void minorPreRegFetching() throws InterruptedException { } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } - + registrationTasksPage.handleLocationPermission(); assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnNewRegistrationButton(); @@ -1217,7 +1217,7 @@ public void infantPreRegFetching() throws InterruptedException { } else { throw new IllegalStateException("Unsupported language in testdata.json: " + language); } - + registrationTasksPage.handleLocationPermission(); assertTrue(registrationTasksPage.isRegistrationTasksPageLoaded(), "Verify if registration tasks page is loaded"); registrationTasksPage.clickOnNewRegistrationButton();