diff --git a/ui-test/src/main/java/regclient/BaseTest/AndroidBaseTest.java b/ui-test/src/main/java/regclient/BaseTest/AndroidBaseTest.java index 51272ff11..604337fa4 100644 --- a/ui-test/src/main/java/regclient/BaseTest/AndroidBaseTest.java +++ b/ui-test/src/main/java/regclient/BaseTest/AndroidBaseTest.java @@ -11,6 +11,7 @@ public class AndroidBaseTest extends BaseTest { @BeforeMethod(alwaysRun = true) public void setup() { try { + DriverManager.startAppiumServer(); this.driver = DriverManager.getDriver(); } catch (Exception e) { throw new RuntimeException(); diff --git a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdult.java b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdult.java index ee6b10092..c18228f76 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdult.java +++ b/ui-test/src/main/java/regclient/androidTestCases/NewRegistrationAdult.java @@ -539,7 +539,15 @@ else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ pendingApproval.clickOnSubmitButton(); 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(ConfigManager.getIAMUsersPassword()); pendingApproval.clickOnSubmitButton(); pendingApproval.clickOnBackButton(); @@ -1131,6 +1139,9 @@ 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(ConfigManager.getIAMUsersPassword()); authenticationPage.clickOnAuthenticatenButton(); diff --git a/ui-test/src/main/java/regclient/androidTestCases/logintest.java b/ui-test/src/main/java/regclient/androidTestCases/logintest.java index b94abdcdc..3fb49b005 100644 --- a/ui-test/src/main/java/regclient/androidTestCases/logintest.java +++ b/ui-test/src/main/java/regclient/androidTestCases/logintest.java @@ -119,7 +119,7 @@ else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ //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"); @@ -340,8 +340,8 @@ else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ assertTrue(supervisorBiometricVerificationpage.isExceptionTypeTitleDisplyed(),"Verify if mark exception is displayed"); supervisorBiometricVerificationpage.markOneEyeException(); - supervisorBiometricVerificationpage.clickOnExceptionTypeTemporaryButton(); - assertTrue(supervisorBiometricVerificationpage.isCommentHeaderDisplyed(),"Verify if Comments header is displayed"); +// supervisorBiometricVerificationpage.clickOnExceptionTypeTemporaryButton(); +// assertTrue(supervisorBiometricVerificationpage.isCommentHeaderDisplyed(),"Verify if Comments header is displayed"); supervisorBiometricVerificationpage.clickOnIrisScanTitle(); supervisorBiometricVerificationpage.clickOnScanButton(); @@ -560,9 +560,9 @@ else if(TestDataReader.readData("language").equalsIgnoreCase("ara")){ assertTrue(UpdateOperatorBiometricspage.isExceptionTypeTitleDisplyed(),"Verify if mark exception is displayed"); UpdateOperatorBiometricspage.markOneEyeException(); - UpdateOperatorBiometricspage.clickOnExceptionTypeTemporaryButton(); + // UpdateOperatorBiometricspage.clickOnExceptionTypeTemporaryButton(); - assertTrue(UpdateOperatorBiometricspage.isCommentHeaderDisplyed(),"Verify if Comments header is displayed"); +// assertTrue(UpdateOperatorBiometricspage.isCommentHeaderDisplyed(),"Verify if Comments header is displayed"); UpdateOperatorBiometricspage.clickOnIrisScanTitle(); UpdateOperatorBiometricspage.clickOnScanButton(); diff --git a/ui-test/src/main/java/regclient/page/BasePage.java b/ui-test/src/main/java/regclient/page/BasePage.java index c8be843b1..200b22728 100644 --- a/ui-test/src/main/java/regclient/page/BasePage.java +++ b/ui-test/src/main/java/regclient/page/BasePage.java @@ -96,7 +96,7 @@ protected void clickAndsendKeysToTextBox(WebElement element, String text) { ((HidesKeyboard) driver).hideKeyboard(); } - protected void sendKeysToTextBox(WebElement element, String text) { + protected void clickAndsendKeysToTextBox2(WebElement element, String text) { this.waitForElementToBeVisible(element); element.click(); waitTime(1); @@ -106,6 +106,16 @@ protected void sendKeysToTextBox(WebElement element, String text) { waitTime(1); driver.navigate().back(); } + + protected void sendKeysToTextBox(WebElement element, String text) { + this.waitForElementToBeVisible(element); + waitTime(1); + element.clear(); + waitTime(1); + element.sendKeys(text); + waitTime(1); + driver.navigate().back(); + } protected String getTextFromLocator(WebElement element) { this.waitForElementToBeVisible(element); @@ -354,8 +364,8 @@ public static String generateData(String validator) { case "^(?=.{2,50}$).*": return generateStringOfLength(2, 30); - case "^[0-9]{6}[/][0-9]{2}[/][0-9]{1}$": - return generateSixDigitNumber() + "/" + generateTwoDigitNumber() + "/" + generateOneDigitNumber(); + 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(); @@ -411,6 +421,15 @@ private static String generateDateInRange() { 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"}; diff --git a/ui-test/src/main/java/regclient/page/CameraPage.java b/ui-test/src/main/java/regclient/page/CameraPage.java index 04007c873..216f2fd7c 100644 --- a/ui-test/src/main/java/regclient/page/CameraPage.java +++ b/ui-test/src/main/java/regclient/page/CameraPage.java @@ -22,14 +22,13 @@ public void clickOkButton() { // clickOnElement(okButton); // else { waitTime(7); - clickAtCoordinates(633,2042); -// } +// clickAtCoordinates(633,2042); +// }22222222222222222222222222222222222222222223222 } public void clickimage() { - waitTime(2); - isElementDisplayed(driver.findElement(By.id(TestDataReader.readData("id")))); - clickOnElement(driver.findElement(By.id(TestDataReader.readData("id")))); + waitTime(7); + clickAtCoordinates(401,1128); } diff --git a/ui-test/src/main/java/regclient/page/PendingApproval.java b/ui-test/src/main/java/regclient/page/PendingApproval.java index b75355816..bc5e76bb7 100644 --- a/ui-test/src/main/java/regclient/page/PendingApproval.java +++ b/ui-test/src/main/java/regclient/page/PendingApproval.java @@ -47,5 +47,11 @@ public PendingApproval(AppiumDriver driver) { public abstract boolean isRejectPacketTitleDisplayed(); public abstract boolean isSubmitButtonEnabled(); + + public abstract boolean isInvalidUsernameMessageDisplayed(); + + public abstract boolean isInvalidemptyUsernameSumbitButtonEnbled(); + + } 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 42c76cb22..c5d2ef010 100644 --- a/ui-test/src/main/java/regclient/pages/arabic/PendingApprovalArabic.java +++ b/ui-test/src/main/java/regclient/pages/arabic/PendingApprovalArabic.java @@ -29,6 +29,11 @@ public class PendingApprovalArabic extends PendingApproval{ @AndroidFindBy(accessibility = "يُقدِّم") private WebElement submitButton; + + @AndroidFindBy(accessibility = "اسم المستخدم غير صالح!") + private WebElement invalidUsernameMessage; + + @AndroidFindBy(accessibility = "مصادقة المشرف") private WebElement supervisorAuthenticationTitle; @@ -116,6 +121,11 @@ public boolean isRejectButtonDisplayed() { return isElementDisplayed(rejectButton); } + public boolean isInvalidUsernameMessageDisplayed() { + return isElementDisplayed(invalidUsernameMessage); + } + + public boolean isPageAttributesDisplayed() { return isElementDisplayed(pageAttributes); } 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 2fc296d05..f76be7dcf 100644 --- a/ui-test/src/main/java/regclient/pages/english/AuthenticationPageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/AuthenticationPageEnglish.java @@ -37,6 +37,10 @@ public boolean isAuthenticationPageDisplayed() { return isElementDisplayed(authenticationPageTitle); } + + + + public AcknowledgementPage clickOnAuthenticatenButton() { clickOnElement(authenticateButton); return new AcknowledgementPageEnglish(driver); 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 a9e27b4a1..dcf0d3df1 100644 --- a/ui-test/src/main/java/regclient/pages/english/DemographicDetailsPageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/DemographicDetailsPageEnglish.java @@ -69,6 +69,7 @@ public DocumentUploadPage clickOnContinueButton() { public boolean isContinueButtonEnable() { return isElementEnabled(continueButton); + } 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 7c6ab24c2..aa9fd84cc 100644 --- a/ui-test/src/main/java/regclient/pages/english/LoginPageEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/LoginPageEnglish.java @@ -31,6 +31,7 @@ public LoginPageEnglish(AppiumDriver driver) { @AndroidFindBy(xpath = "//android.widget.EditText") private WebElement passwordTextBox; + @AndroidFindBy(accessibility = "LOGIN") private WebElement loginButton; @@ -68,7 +69,7 @@ public LoginPageEnglish(AppiumDriver driver) { @AndroidFindBy(accessibility = "BACK") private WebElement backButton; - @AndroidFindBy(accessibility = "Forgot Password?") + @AndroidFindBy(accessibility = "FORGOT PASSWORD?") private WebElement forgetPasswordButton; @AndroidFindBy(accessibility = "User not found!") 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 01cdc99cc..f2cce4bd6 100644 --- a/ui-test/src/main/java/regclient/pages/english/PendingApprovalEnglish.java +++ b/ui-test/src/main/java/regclient/pages/english/PendingApprovalEnglish.java @@ -32,6 +32,14 @@ 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; @@ -95,13 +103,21 @@ public void clickOnSubmitButton() { public boolean isSupervisorAuthenticationTitleDisplayed() { return isElementDisplayed(supervisorAuthenticationTitle); } + + public boolean isInvalidUsernameMessageDisplayed() { + return isElementDisplayed(invalidUsernameMessage); + } + + public boolean isInvalidemptyUsernameSumbitButtonEnbled() { + return isElementEnabled(invalidUsernameMessageForempty); + } public void enterUserName(String username) { - sendKeysToTextBox(userNameTextBox,username); + clickAndsendKeysToTextBox2(userNameTextBox,username); } public void enterPassword(String password) { - sendKeysToTextBox(passwordTextBox,password); + clickAndsendKeysToTextBox2(passwordTextBox,password); } public void clickOnBackButton() { 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 f747da797..0768524e9 100644 --- a/ui-test/src/main/java/regclient/pages/french/PendingApprovalFrench.java +++ b/ui-test/src/main/java/regclient/pages/french/PendingApprovalFrench.java @@ -62,6 +62,9 @@ public class PendingApprovalFrench extends PendingApproval{ @AndroidFindBy(accessibility = "Please select a value") private WebElement rejectReasonDropdown; + + @AndroidFindBy(accessibility = "اسم المستخدم غير صالح!") + private WebElement invalidUsernameMessage; public PendingApprovalFrench(AppiumDriver driver) { super(driver); @@ -132,6 +135,10 @@ public void enterAID(String AID) { clickAndsendKeysToTextBox(applicationIdTextbox,AID); } + public boolean isInvalidUsernameMessageDisplayed() { + return isElementDisplayed(invalidUsernameMessage); + } + public void clickOnRejectButton() { clickOnElement(rejectButton); } 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 1eed65cbe..7515c8140 100644 --- a/ui-test/src/main/java/regclient/pages/hindi/PendingApprovalHindi.java +++ b/ui-test/src/main/java/regclient/pages/hindi/PendingApprovalHindi.java @@ -23,6 +23,9 @@ public class PendingApprovalHindi extends PendingApproval{ @AndroidFindBy(accessibility = "स्क्रिम") private WebElement backGroundScreen; + + @AndroidFindBy(accessibility = "उपयोगकर्ता नाम अमान्य!") + private WebElement invalidUsernameMessage; @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.CheckBox\").instance(0)") private WebElement searchCheckBoxButton; @@ -112,6 +115,10 @@ public boolean isApprovalButtonDisplayed() { return isElementDisplayed(approveButton); } + public boolean isInvalidUsernameMessageDisplayed() { + return isElementDisplayed(invalidUsernameMessage); + } + public boolean isRejectButtonDisplayed() { return isElementDisplayed(rejectButton); } 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 18df5507c..80247fd1c 100644 --- a/ui-test/src/main/java/regclient/pages/kannada/PendingApprovalKannada.java +++ b/ui-test/src/main/java/regclient/pages/kannada/PendingApprovalKannada.java @@ -23,6 +23,8 @@ public class PendingApprovalKannada extends PendingApproval{ @AndroidFindBy(accessibility = "ಸ್ಕ್ರಿಮ್") private WebElement backGroundScreen; + @AndroidFindBy(accessibility = "ಬಳಕೆದಾರ ಹೆಸರು ಅಮಾನ್ಯ!") + private WebElement invalidUsernameMessage; @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.CheckBox\").instance(0)") private WebElement searchCheckBoxButton; @@ -116,6 +118,7 @@ public boolean isRejectButtonDisplayed() { return isElementDisplayed(rejectButton); } + public boolean isPageAttributesDisplayed() { return isElementDisplayed(pageAttributes); } @@ -135,11 +138,15 @@ public void enterAID(String AID) { public void clickOnRejectButton() { clickOnElement(rejectButton); } + public boolean isInvalidUsernameMessageDisplayed() { + return isElementDisplayed(invalidUsernameMessage); + } public boolean isRejectPacketTitleDisplayed() { return isElementDisplayed(rejectPacketTitle); } + public void selectRejectionReasonDropdown() { boolean isdisplayed =isElementDisplayed(rejectReasonDropdown); assertTrue(isdisplayed,"Verify if "+rejectReasonDropdown+" header is displayed"); 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 e5136a7a3..1fdd5445d 100644 --- a/ui-test/src/main/java/regclient/pages/tamil/PendingApprovalTamil.java +++ b/ui-test/src/main/java/regclient/pages/tamil/PendingApprovalTamil.java @@ -20,6 +20,8 @@ public class PendingApprovalTamil extends PendingApproval{ @AndroidFindBy(accessibility = "ஒப்புதல்") private WebElement approveButton; + @AndroidFindBy(accessibility = "பயனர்பெயர் செல்லாது!") + private WebElement invalidUsernameMessage; @AndroidFindBy(accessibility = "ஸ்க்ரிம்") private WebElement backGroundScreen; @@ -70,6 +72,9 @@ public PendingApprovalTamil(AppiumDriver driver) { public boolean isPendingApprovalTitleDisplayed() { return isElementDisplayed(pendingApprovalTitle); } + public boolean isInvalidUsernameMessageDisplayed() { + return isElementDisplayed(invalidUsernameMessage); + } @SuppressWarnings("deprecation") public void clickOnAID(String AID) { diff --git a/ui-test/src/main/resources/DesiredCapabilities.json b/ui-test/src/main/resources/DesiredCapabilities.json index 59d1b2fdc..69d2edbd1 100644 --- a/ui-test/src/main/resources/DesiredCapabilities.json +++ b/ui-test/src/main/resources/DesiredCapabilities.json @@ -2,16 +2,18 @@ { "name": "androidDevice", "caps": { - "appium:udid": "ZD222L7BGN", + "appium:udid": "60d498fb", "appium:automationName": "UiAutomator2", - "appium:app": "D:/app-release.apk", + "appium:app": "C:/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:disableSuppressAccessibilityService": true, + "appium:ignoreHiddenApiPolicyError": 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 959f514f7..bf1f6ec20 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/jayesh.kharode/AppData/Roaming/npm/node_modules/appium/build/lib/main.js +appiumServerExecutable=C:/Users/Basant kumar/AppData/Roaming/npm/node_modules/appium/build/lib/main.js appiumLogFilePath=report/appiumLogs.txt startAppiumServer=true \ No newline at end of file