diff --git a/.talismanrc b/.talismanrc index 4269688593..fa3e228fcd 100644 --- a/.talismanrc +++ b/.talismanrc @@ -1,10 +1,10 @@ fileignoreconfig: - filename: ios/Podfile.lock - checksum: cc123c3e1f04d41b394ceb16843b15c08bac3ba619ae853ff322717739761a85 + checksum: cc123c3e1f04d41b394ceb16843b15c08bac3ba619ae853ff322717739761a85 - filename: package.json checksum: fdd5905228a1afbfb004c710fd6c61adf073a12840200327c0592b76bea5e7e3 - filename: package-lock.json - checksum: 179883df6d414d82b7f54353a3a4cc75e6a681224f4b6d1831ce85de27de2726 + checksum: 489ccd69f2deecedb8b2ff9a3a02d74c704dfba01fdfb6179316a9df698c4562 - filename: components/PasscodeVerify.tsx checksum: 14654c0f038979fcd0d260170a45894a072f81e0767ca9a0e66935d33b5cc703 - filename: i18n.ts @@ -80,7 +80,43 @@ fileignoreconfig: checksum: a0686e9a5c006176fd720b84bc36ca947db1422caf65c90cd0c2d1102a9e96df - filename: ios/fastlane/Fastfile checksum: feea5a7f044ef6961d53e7d1e1ffb92a3e0f72761496424f6e64288e3718d605 +- filename: machines/bleShare/scan/scanMachine.ts + checksum: a514c958ca3da3c5b22a1a95ad680af8f05fb22638fab79b3842aa8fcc1b4a17 version: "" - filename: locales/spa.json checksum: 8dc09111bbff5df996703d6bf843f5a2f51bd327014009d12ab492ecfc58dd77 version: "" +- filename: machines/bleShare/scan/scanMachine.ts + checksum: 399f08e25bfa9e25e6505801f2fbc94c20779cbad5010392275d0cd21824b3ac +- filename: package-lock.json + checksum: d1586de91f5118385740f3cd0db39c199ec069d7bd1d5fc8598673ac60c85f0f +- filename: injitest/src/main/java/io/mosip/test/mob/inji/testcases/ChangeLanguageTest.java + checksum: 479d372f179d96529956cad1f8a4c593874e4da8b3bebc3e7d972cf686819b9d +- filename: injitest/src/main/java/io/mosip/test/mob/inji/pages/CredentialRegistryPage.java + checksum: eb9fbe80e519f963fba2da13b2e26c41a1f4e469b6e2e39ef2916948a1bc82b1 +- filename: injitest/src/main/java/io/mosip/test/mob/inji/testcases/DeletingVcTest.java + checksum: f2180f64a09311b7f1dc32e22242486e15938763e87733d08052ad86883f21e9 +- filename: injitest/src/main/java/io/mosip/test/mob/inji/testcases/UnlockWithPasscodeTest.java + checksum: 8d518d68fd627f6bfd3f6bbbd0a90b3c5635d7e4eeb0caaf359b2bb109424aa5 +- filename: injitest/src/main/java/io/mosip/test/mob/inji/testcases/ReceiveCardTest.java + checksum: 81db2472cdf5b150539de491083c08f1011dfde213563ced6e071c7afd8ab2be +- filename: injitest/src/main/java/io/mosip/test/mob/inji/testcases/VcDownloadAndVerifyUsingVidTest.java + checksum: 733b9cb60b804cb7d1e09de6e58c316c0c72cd2bf2e9d68114689bbcf26108f8 +- filename: injitest/src/main/java/io/mosip/test/mob/inji/testcases/CredentialRegistryTest.java + checksum: 8f9ae584507b64407257ac7ca05c89eed74d3ceb3a8139d69e3fb19543055da3 +- filename: injitest/src/main/java/io/mosip/test/mob/inji/testcases/NoNetworkAndroidTest.java + checksum: 7af40c9d3f0f2485cfddba32f899c3c7dcfa6aeadbc9529858dece8d4576286d +- filename: injitest/src/main/java/io/mosip/test/mob/inji/testcases/AboutInjiTest.java + checksum: 8085f083e51569b242d5cad7681f870181196e479285ec0a8f5528b99f12efd2 +- filename: injitest/src/main/java/io/mosip/test/mob/inji/testcases/VerifyWelcomePagesTest.java + checksum: 570e61a37b646d5c5c0ebde1936add37a0dd5b0a6d7715fca48bba5329a282a2 +- filename: injitest/src/main/resources/TestData.json + checksum: b42a037962399128f0dff22af77dae71389101af2defa7609a71b213b1c42107 +- filename: injitest/src/main/java/io/mosip/test/mob/inji/pages/BasePage.java + checksum: 877e9c9cb8db70ce0d0d3f79434afa1610013689f71c5f50ff355e49d80d27e1 + version: "" +- filename: machines/bleShare/scan/scanMachine.ts + checksum: 399f08e25bfa9e25e6505801f2fbc94c20779cbad5010392275d0cd21824b3ac +- filename: package-lock.json + checksum: d1586de91f5118385740f3cd0db39c199ec069d7bd1d5fc8598673ac60c85f0f + version: "" \ No newline at end of file diff --git a/assets/pending_activation.png b/assets/pending_activation.png deleted file mode 100644 index b094a451da..0000000000 Binary files a/assets/pending_activation.png and /dev/null differ diff --git a/components/VC/MosipVCItem/MosipVCItemDetails.tsx b/components/VC/MosipVCItem/MosipVCItemDetails.tsx index 014013ade8..384964b4ea 100644 --- a/components/VC/MosipVCItem/MosipVCItemDetails.tsx +++ b/components/VC/MosipVCItem/MosipVCItemDetails.tsx @@ -368,7 +368,16 @@ export const MosipVCItemDetails: React.FC< props.isBindingPending ? ( - + elements = driver.findElements(locator); return elements.size(); } @@ -63,7 +69,7 @@ public boolean verifyHistory(String vcNumber, Target os) { return false; } - public int getNumberOfRecordsInHistory(String vcNumber, Target os, String string) throws InterruptedException { + public int getNumberOfRecordsInHistory(String vcNumber, Target os) throws InterruptedException { switch (os) { case ANDROID: return verifyNumberOfRecordsInHistoryAndroid(vcNumber); @@ -81,7 +87,9 @@ public boolean verifyDeleteHistory(String vcNumber, Target os) { switch (os) { case ANDROID: return verifyDeleteHistoryAndroid(vcNumber); - + + case IOS: + return verifyDeletedHistoryIos(vcNumber); } return false; } @@ -109,9 +117,9 @@ private boolean verifyActivationFailedRecordAndroid(String vcNumber) { public boolean verifyActivationSuccessfulRecordInHistory(String vcNumber, Target os) { switch (os) { case ANDROID: - return verifyActivationFailedRecordAndroid(vcNumber); + return verifyActivationSuccessfulRecordAndroid(vcNumber); case IOS: - return verifyActivationFailedRecordIos(vcNumber); + return verifyActivationSuccessfulRecordIos(vcNumber); } return false; } diff --git a/injitest/src/main/java/io/mosip/test/mob/inji/pages/HomePage.java b/injitest/src/main/java/io/mosip/test/mob/inji/pages/HomePage.java index 904b5cd2a6..d51913622b 100644 --- a/injitest/src/main/java/io/mosip/test/mob/inji/pages/HomePage.java +++ b/injitest/src/main/java/io/mosip/test/mob/inji/pages/HomePage.java @@ -8,7 +8,7 @@ public class HomePage extends BasePage { @AndroidFindBy(uiAutomator = "new UiSelector().resourceId(\"downloadIcon\")") - @iOSXCUITFindBy(iOSClassChain = "**/XCUIElementTypeButton[`label == \"Download Card\"`]") + @iOSXCUITFindBy(accessibility = "downloadIcon") private WebElement downloadCardButton; @AndroidFindBy(xpath = "//*[contains(@text,'Home')]") @@ -16,18 +16,18 @@ public class HomePage extends BasePage { private WebElement homeButton; @AndroidFindBy(xpath = "//*[@resource-id=\"iconIcon\"]") - @iOSXCUITFindBy(iOSClassChain = "**/XCUIElementTypeOther[`label == \"\uE09A\"`][6]") + @iOSXCUITFindBy(accessibility = "\uE09A") private WebElement settingButton; @AndroidFindBy(xpath = "(//*[@class=\"android.widget.ImageView\"])[2]") - @iOSXCUITFindBy(iOSClassChain = "**/XCUIElementTypeOther[`label == \"\uE09A\"`][5]/XCUIElementTypeOther[1]") + @iOSXCUITFindBy(iOSClassChain = "**/XCUIElementTypeNavigationBar[`name == \"RNSScreen\"`]/XCUIElementTypeOther[2]") private WebElement helpButton; @AndroidFindBy(xpath = "//*[contains(@text,'History')]") @iOSXCUITFindBy(accessibility = "History, tab, 3 of 3") private WebElement historyButton; - @iOSXCUITFindBy(iOSClassChain = "Need to update") + @iOSXCUITFindBy(accessibility = "ellipsis") @AndroidFindBy(accessibility = "ellipsis") private WebElement moreOptionsButton; @@ -44,19 +44,26 @@ public class HomePage extends BasePage { private WebElement okButton; @AndroidFindBy(accessibility = "pinIcon") + @iOSXCUITFindBy(accessibility = "pinIcon") private WebElement pinIcon; @AndroidFindBy(accessibility = "bringYourDigitalID") + @iOSXCUITFindBy(accessibility = "bringYourDigitalID") private WebElement bringYourDigitalIdentity; @AndroidFindBy(accessibility = "errorTitle") private WebElement noInternetConnection; @AndroidFindBy(xpath = "//*[contains(@text,'Scan')]") + @iOSXCUITFindBy(accessibility = "Scan, tab, 2 of 3") private WebElement scanButton; @AndroidFindBy(accessibility = "nationalCard") + @iOSXCUITFindBy(accessibility = "nationalCard") private WebElement idTypeValue; + + @AndroidFindBy(uiAutomator = "new UiSelector().textContains(\"Try again\")") + private WebElement tryAgainButton; public HomePage(AppiumDriver driver) { @@ -79,18 +86,18 @@ public AddNewCardPage downloadCard() { } public boolean isNameDisplayed(String name) { - By fullName = By.xpath("//*[contains(@name,'" + name + "') or contains(@text,'" + name + "')]"); + By fullName = By.xpath("//*[contains(@value,'" + name + "') or contains(@text,'" + name + "')]"); return this.isElementDisplayed(fullName, 60, "Name on downloaded card"); } public boolean isSecondNameDisplayed(String name) { - By fullName = By.xpath("(//*[contains(@text,'" + name + "')])[2]"); - return this.isElementDisplayed(fullName, 60, "Name on downloaded card"); + By fullName = By.xpath("(//*[contains(@value,'" + name + "') or contains(@text,'" + name + "')])[2]"); + return this.isElementDisplayed(fullName, 60, "Name on downloaded card"); } public DetailedVcViewPage openDetailedVcView(String name) { - By fullName = By.xpath("//*[contains(@name,'" + name + "') or contains(@text,'" + name + "')]"); + By fullName = By.xpath("//*[contains(@value,'" + name + "') or contains(@text,'" + name + "')]"); clickOnElement(fullName); return new DetailedVcViewPage(driver); } @@ -136,5 +143,17 @@ public ScanPage clickOnScanButton(){ public boolean isIdTypeDisplayed() { return this.isElementDisplayed(idTypeValue, "Name on downloaded card"); } + + public boolean isTryAgainButtonDisplayed() { + return this.isElementDisplayed(tryAgainButton, "Try again"); + } + + public boolean isTryAgainButtonNotDisplayed() { + return this.isElementInvisibleYet(tryAgainButton, "Try again"); + } + public HomePage clickOnTryAgainButton() { + clickOnElement(tryAgainButton); + return this; + } } diff --git a/injitest/src/main/java/io/mosip/test/mob/inji/pages/MoreOptionsPage.java b/injitest/src/main/java/io/mosip/test/mob/inji/pages/MoreOptionsPage.java index ebe5993dd1..b5a74017cc 100644 --- a/injitest/src/main/java/io/mosip/test/mob/inji/pages/MoreOptionsPage.java +++ b/injitest/src/main/java/io/mosip/test/mob/inji/pages/MoreOptionsPage.java @@ -8,26 +8,31 @@ public class MoreOptionsPage extends BasePage { @AndroidFindBy(accessibility = "removeFromWallet") - @iOSXCUITFindBy(iOSClassChain = "**/XCUIElementTypeStaticText[`name == \"listItemTitle\"`][4]") + @iOSXCUITFindBy(accessibility = "removeFromWallet") private WebElement removeFromWalletButton; @AndroidFindBy(accessibility = "kebabTitle") - @iOSXCUITFindBy(accessibility = "More Options") + @iOSXCUITFindBy(accessibility = "kebabTitle") private WebElement moreOptionsText; @AndroidFindBy(accessibility = "pinOrUnPinCard") + @iOSXCUITFindBy(accessibility = "pinOrUnPinCard") private WebElement pinOrUnPinCardButton; @AndroidFindBy(accessibility = "pendingActivationOrActivated") - @iOSXCUITFindBy(iOSClassChain = "**/XCUIElementTypeStaticText[`label == \"Activation pending for online login!\"`]") + @iOSXCUITFindBy(accessibility = "pendingActivationOrActivated") private WebElement activationPending; @AndroidFindBy(accessibility = "profileAuthenticated") - @iOSXCUITFindBy(iOSClassChain = "**/XCUIElementTypeOther[`label == \"\uE8E8 Activated for online login!\"`][4]") + @iOSXCUITFindBy(accessibility = "profileAuthenticated") private WebElement activatedForOnlineLoginButton; - @AndroidFindBy(xpath = "//*[@resource-id=\"iconIcon\"]") - private WebElement CloseButton; + @AndroidFindBy(uiAutomator = "new UiSelector().resourceId(\"iconIcon\")") + @iOSXCUITFindBy(iOSClassChain ="**/XCUIElementTypeOther[`label == \"\uE5CD\"`][1]") + private WebElement closeButton; + + @AndroidFindBy(uiAutomator = "new UiSelector().textContains(\"Something is wrong. Please try again later!\")") + public WebElement somthingIsWrongPopup; public MoreOptionsPage(AppiumDriver driver) { super(driver); @@ -55,8 +60,12 @@ public boolean isVcActivatedForOnlineLogin() { return this.isElementDisplayed(activatedForOnlineLoginButton, "Activated for online login text"); } - public HomePage ClickOnCloseButton() { - clickOnElement(CloseButton); + public HomePage clickOnCloseButton() { + clickOnElement(closeButton); return new HomePage(driver); } + + public boolean isSomthingIsWrongPopupVisible() { + return this.isElementDisplayed(somthingIsWrongPopup, "Something is wrong. Please try again later!"); + } } diff --git a/injitest/src/main/java/io/mosip/test/mob/inji/pages/OtpVerificationPage.java b/injitest/src/main/java/io/mosip/test/mob/inji/pages/OtpVerificationPage.java index 40cb335231..015a967e22 100644 --- a/injitest/src/main/java/io/mosip/test/mob/inji/pages/OtpVerificationPage.java +++ b/injitest/src/main/java/io/mosip/test/mob/inji/pages/OtpVerificationPage.java @@ -13,16 +13,23 @@ public class OtpVerificationPage extends BasePage { private WebElement otpVerificationText; @AndroidFindBy(xpath = "//*[contains(@text,'OTP is invalid')]") + @iOSXCUITFindBy(accessibility = "OTP is invalid") private WebElement invalidOtpMessage; @AndroidFindBy(xpath = "//*[contains(@text,'Something is wrong. Please try again later!')]") + @iOSXCUITFindBy(iOSClassChain = "**/XCUIElementTypeStaticText[`label == \"Something is wrong. Please try again later!\"`]") private WebElement invalidOtpMessageInVcActivation; @AndroidFindBy(xpath = "//*[contains(@text,'Cancel')]") + @iOSXCUITFindBy(iOSClassChain = "**/XCUIElementTypeButton[`label == \"Cancel\"`]") private WebElement cancelButton; @AndroidFindBy(accessibility = "close") + @iOSXCUITFindBy(accessibility = "close") private WebElement crossIcon; + + @AndroidFindBy(uiAutomator = "new UiSelector().textContains(\"VID not available in database\")") + private WebElement vidNotAvailableMessage; public OtpVerificationPage(AppiumDriver driver) { super(driver); @@ -57,4 +64,8 @@ public MoreOptionsPage clickOnCancelButton(){ public void clickOnCrossIcon(){ clickOnElement(crossIcon); } + + public boolean vidNotAvailableDisplayed() { + return this.isElementDisplayed(vidNotAvailableMessage, "VID not available in database"); + } } diff --git a/injitest/src/main/java/io/mosip/test/mob/inji/pages/PleaseConfirmPopupPage.java b/injitest/src/main/java/io/mosip/test/mob/inji/pages/PleaseConfirmPopupPage.java index bfc3844171..e0466c3689 100644 --- a/injitest/src/main/java/io/mosip/test/mob/inji/pages/PleaseConfirmPopupPage.java +++ b/injitest/src/main/java/io/mosip/test/mob/inji/pages/PleaseConfirmPopupPage.java @@ -7,10 +7,11 @@ public class PleaseConfirmPopupPage extends BasePage { @AndroidFindBy(accessibility = "yesConfirm") - @iOSXCUITFindBy(iOSClassChain = "**/XCUIElementTypeButton[`label == \"Yes, I confirm\"`]") + @iOSXCUITFindBy(accessibility = "yesConfirm") private WebElement yesButton; @AndroidFindBy(accessibility = "no") + @iOSXCUITFindBy(accessibility = "no") private WebElement noButton; public PleaseConfirmPopupPage(AppiumDriver driver) { diff --git a/injitest/src/main/java/io/mosip/test/mob/inji/pages/ReceiveCardPage.java b/injitest/src/main/java/io/mosip/test/mob/inji/pages/ReceiveCardPage.java new file mode 100644 index 0000000000..dd91b6c3c8 --- /dev/null +++ b/injitest/src/main/java/io/mosip/test/mob/inji/pages/ReceiveCardPage.java @@ -0,0 +1,50 @@ +package io.mosip.test.mob.inji.pages; + +import io.mosip.test.mob.inji.constants.Target; +import io.appium.java_client.AppiumDriver; +import io.appium.java_client.pagefactory.AndroidFindBy; +import io.appium.java_client.pagefactory.iOSXCUITFindBy; +import org.openqa.selenium.WebElement; + +public class ReceiveCardPage extends BasePage { + @AndroidFindBy(uiAutomator = "new UiSelector().textContains(\"Allow\")") + private WebElement allowButton; + + @AndroidFindBy(uiAutomator = "new UiSelector().textContains(\"Display this QR code to request resident Card\")") + private WebElement receiveCardHeder; + + @AndroidFindBy(uiAutomator = "new UiSelector().textContains(\"Ipakita ang QR code na ito para humiling ng resident card\")") + private WebElement receiveCardHederInFilipinoLanguage; + + @AndroidFindBy(xpath = "//android.view.ViewGroup/descendant::android.view.ViewGroup[last()]") + private WebElement qrCode; + + @AndroidFindBy(uiAutomator = "new UiSelector().textContains(\"Waiting for connection...\")") + private WebElement watitingForConnection; + + public ReceiveCardPage(AppiumDriver driver) { + super(driver); + } + + public ReceiveCardPage clickOnAllowButton() { + clickOnElement(allowButton); + return this; + } + + public boolean isReceiveCardHederDisplayed() { + return this.isElementDisplayed(receiveCardHeder, "Display this QR code to request resident Card"); + } + + public boolean isReceiveCardHederInFilipinoLanguageDisplayed() { + return this.isElementDisplayed(receiveCardHederInFilipinoLanguage, "Ipakita ang QR code na ito para humiling ng resident card"); + } + + public boolean isWaitingForConnectionDisplayed() { + return this.isElementDisplayed(watitingForConnection, "Waiting for connection..."); + } + + public boolean isQrCodeEnabled() { + return this.isElementEnabled(qrCode); + } + +} diff --git a/injitest/src/main/java/io/mosip/test/mob/inji/pages/RetrieveIdPage.java b/injitest/src/main/java/io/mosip/test/mob/inji/pages/RetrieveIdPage.java index 2f99aeb322..be9db62ae6 100644 --- a/injitest/src/main/java/io/mosip/test/mob/inji/pages/RetrieveIdPage.java +++ b/injitest/src/main/java/io/mosip/test/mob/inji/pages/RetrieveIdPage.java @@ -13,14 +13,15 @@ public class RetrieveIdPage extends BasePage { private WebElement retrieveIdText; @AndroidFindBy(xpath = "//*[contains(@text,'Enter ID')]") - @iOSXCUITFindBy(accessibility = "RNE__Input__text-input") + @iOSXCUITFindBy(accessibility = "idInput") private WebElement enterIdTextBox; @AndroidFindBy(xpath = "//*[contains(@text,'Generate Card')]") - @iOSXCUITFindBy(iOSClassChain = "**/XCUIElementTypeButton[`label == \"Generate Card\"`]") + @iOSXCUITFindBy(accessibility = "generateVc") private WebElement generateCardButton; - @iOSXCUITFindBy(iOSClassChain = "**/XCUIElementTypePickerWheel[`value == \"UIN\"`]") + @iOSXCUITFindBy(className = "XCUIElementTypePickerWheel") + @iOSXCUITFindBy(iOSClassChain = "**/XCUIElementTypeStaticText[`label == \"UIN invalid\"`]") private WebElement vidDropDownValueIos; @AndroidFindBy(xpath = "//*[contains(@text,'VID')]") @@ -30,17 +31,18 @@ public class RetrieveIdPage extends BasePage { private WebElement spinnerButton; @AndroidFindBy(xpath = "//*[contains(@text,'Get it now')]") - @iOSXCUITFindBy(accessibility = "Get it now") + @iOSXCUITFindBy(accessibility = "getItHere") private WebElement getItNowText; @AndroidFindBy(xpath = "//*[contains(@text,'UIN invalid')]") private WebElement invalidUin; - - @AndroidFindBy(xpath = "//*[contains(@text,'The input format is incorrect')]") + @iOSXCUITFindBy(iOSClassChain = "**/XCUIElementTypeStaticText[`label == \"The input format is incorrect\"`]") private WebElement inputFormatErrorMessage; + @AndroidFindBy(xpath = "//*[contains(@text,'AID is not ready yet')]") + private WebElement aidIsNotReadyYetMessage; public RetrieveIdPage(AppiumDriver driver) { super(driver); @@ -73,6 +75,10 @@ public GenerateUinOrVidPage clickOnGetItNowText() { public boolean isInvalidUinMassageLoaded() { return this.isElementDisplayed(invalidUin, "UIN invalid"); } + + public boolean isAidIsNotReadyYetErrorDisplayed() { + return this.isElementDisplayed(aidIsNotReadyYetMessage, "Retrieve your id page"); + } public RetrieveIdPage clickOnVid(Target os) { diff --git a/injitest/src/main/java/io/mosip/test/mob/inji/pages/SecureSharingPage.java b/injitest/src/main/java/io/mosip/test/mob/inji/pages/SecureSharingPage.java index 218d6ee215..6c627f23c6 100644 --- a/injitest/src/main/java/io/mosip/test/mob/inji/pages/SecureSharingPage.java +++ b/injitest/src/main/java/io/mosip/test/mob/inji/pages/SecureSharingPage.java @@ -8,7 +8,7 @@ public class SecureSharingPage extends BasePage { @AndroidFindBy(xpath = "//*[contains(@text,'Secure Sharing')]") - @iOSXCUITFindBy(accessibility = "Secure Sharing") + @iOSXCUITFindBy(iOSClassChain = "**/XCUIElementTypeStaticText[`label == \"Secure Sharing\"`]") private WebElement secureSharingText; @AndroidFindBy(xpath = "(//*[@class='android.widget.TextView'])[3]") diff --git a/injitest/src/main/java/io/mosip/test/mob/inji/pages/SetPasscode.java b/injitest/src/main/java/io/mosip/test/mob/inji/pages/SetPasscode.java index ed91f11ba6..b85684d9f2 100644 --- a/injitest/src/main/java/io/mosip/test/mob/inji/pages/SetPasscode.java +++ b/injitest/src/main/java/io/mosip/test/mob/inji/pages/SetPasscode.java @@ -9,7 +9,7 @@ public class SetPasscode extends BasePage { - @iOSXCUITFindBy(accessibility = "Set Passcode") + @iOSXCUITFindBy(accessibility = "setPasscode") @AndroidFindBy(xpath = "//*[contains(@text,'Set Passcode')]") private WebElement setPasscode; diff --git a/injitest/src/main/java/io/mosip/test/mob/inji/pages/SettingsPage.java b/injitest/src/main/java/io/mosip/test/mob/inji/pages/SettingsPage.java index a4199227e8..ec2a8c4771 100644 --- a/injitest/src/main/java/io/mosip/test/mob/inji/pages/SettingsPage.java +++ b/injitest/src/main/java/io/mosip/test/mob/inji/pages/SettingsPage.java @@ -14,15 +14,15 @@ public class SettingsPage extends BasePage { @AndroidFindBy(accessibility = "settingsScreen") - @iOSXCUITFindBy(iOSClassChain = "**/XCUIElementTypeStaticText[`label == \"Settings\"`]") + @iOSXCUITFindBy(accessibility = "settingsScreen") private WebElement settingsTittle; @AndroidFindBy(accessibility = "logout") - @iOSXCUITFindBy(iOSClassChain = "**/XCUIElementTypeStaticText[`label == \"Logout\"`]") + @iOSXCUITFindBy(accessibility = "Logout") private WebElement logoutButton; @AndroidFindBy(xpath = "//*[contains(@text,'Language')]") - @iOSXCUITFindBy(iOSClassChain = "**/XCUIElementTypeOther[`label == \"Language\"`]") + @iOSXCUITFindBy(iOSClassChain = "**/XCUIElementTypeStaticText[`label == \"Language\"`]") private WebElement languageButton; @AndroidFindBy(xpath = "//*[contains(@text,'Filipino')]") @@ -37,17 +37,36 @@ public class SettingsPage extends BasePage { private List languages; @AndroidFindBy(uiAutomator = "new UiSelector().resourceId(\"aboutInji\")") + @iOSXCUITFindBy(iOSClassChain = "**/XCUIElementTypeStaticText[`label == \"About Inji\"`]") private WebElement aboutInji; @AndroidFindBy(xpath = "//*[contains(@text,'Tuvali-version: v')]") + @iOSXCUITFindBy(xpath = "//*[contains(@name,'Tuvali-version: v')]") private WebElement tuvaliVersion; @AndroidFindBy(accessibility = "injiTourGuide") + @iOSXCUITFindBy(accessibility = "injiTourGuide") private WebElement injiTourGuide; @AndroidFindBy(accessibility = "receivedCards") + @iOSXCUITFindBy(accessibility = "injiTourGuide") private WebElement receivedCards; + @AndroidFindBy(xpath = "//*[contains(@text,'Credential Registry')]") + public WebElement credentialRegistryText; + + @AndroidFindBy(xpath = "//*[contains(@text,'Receive Card')]") + public WebElement receiveCardText; + + @AndroidFindBy(xpath = "//*[contains(@text,'Tumanggap ng Card')]") + public WebElement receiveCardInfilipinoLanguageText; + + @AndroidFindBy(xpath = "(//*[@resource-id=\"padView\"])[3]") + private WebElement arabicLanguageButton; + + @AndroidFindBy(uiAutomator = "new UiSelector().textContains(\"فتح التطبيق\")") + private WebElement chooseLanguageInArabic; + public SettingsPage(AppiumDriver driver) { super(driver); } @@ -84,7 +103,7 @@ public boolean verifyLanguagesInLanguageFilter() { return new HashSet<>(expectedLanguages).equals(new HashSet<>(actualLanguages)); } - public SettingsPage clickOnAboutInji(){ + public SettingsPage clickOnAboutInji() { clickOnElement(aboutInji); return this; } @@ -93,12 +112,39 @@ public boolean isTuvaliVersionPresent() { return this.isElementDisplayed(tuvaliVersion, "Tuvali-version"); } - public void clickOnInjiTourGuide(){ + public void clickOnInjiTourGuide() { clickOnElement(injiTourGuide); } public boolean isReceivedCardsPresent() { return this.isElementDisplayed(receivedCards, "Received Cards"); } + + public boolean verifyArabicLanguage() { + return this.isElementDisplayed(chooseLanguageInArabic, "فتح التطبيق"); + } + + public CredentialRegistryPage clickOnCredentialRegistry() { + clickOnElement(credentialRegistryText); + return new CredentialRegistryPage(driver); + } + public ReceiveCardPage clickOnReceiveCard() { + clickOnElement(receiveCardText); + return new ReceiveCardPage(driver); + } + + public ReceiveCardPage clickOnReceiveCardFilipinoLanguage() { + clickOnElement(receiveCardInfilipinoLanguageText); + return new ReceiveCardPage(driver); + } + + public AboutInjiPage clickOnAbouInji() { + clickOnElement(aboutInji); + return new AboutInjiPage(driver); + } + + public void clickOnArabicLanguageButton() { + clickOnElement(arabicLanguageButton); + } } diff --git a/injitest/src/main/java/io/mosip/test/mob/inji/pages/TrustedDigitalWalletPage.java b/injitest/src/main/java/io/mosip/test/mob/inji/pages/TrustedDigitalWalletPage.java index acbacf183e..327b6d7e52 100644 --- a/injitest/src/main/java/io/mosip/test/mob/inji/pages/TrustedDigitalWalletPage.java +++ b/injitest/src/main/java/io/mosip/test/mob/inji/pages/TrustedDigitalWalletPage.java @@ -8,7 +8,7 @@ public class TrustedDigitalWalletPage extends BasePage { @AndroidFindBy(xpath = "//*[contains(@text,'Trusted Digital Wallet')]") - @iOSXCUITFindBy(accessibility = "Trusted Digital Wallet") + @iOSXCUITFindBy(iOSClassChain = "**/XCUIElementTypeStaticText[`label == \"Trusted Digital Wallet\"`]") private WebElement trustedDigitalWalletText; @AndroidFindBy(xpath = "(//*[@class='android.widget.TextView'])[3]") diff --git a/injitest/src/main/java/io/mosip/test/mob/inji/pages/UnlockApplicationPage.java b/injitest/src/main/java/io/mosip/test/mob/inji/pages/UnlockApplicationPage.java index 30389627b2..a06577097f 100644 --- a/injitest/src/main/java/io/mosip/test/mob/inji/pages/UnlockApplicationPage.java +++ b/injitest/src/main/java/io/mosip/test/mob/inji/pages/UnlockApplicationPage.java @@ -8,7 +8,7 @@ public class UnlockApplicationPage extends BasePage { @AndroidFindBy(accessibility = "unlockApplication") - @iOSXCUITFindBy(iOSClassChain = "**/XCUIElementTypeButton[`label == \"Unlock application\"`]") + @iOSXCUITFindBy(accessibility = "unlockApplication") private WebElement unlockApplicationButton; public UnlockApplicationPage(AppiumDriver driver) { diff --git a/injitest/src/main/java/io/mosip/test/mob/inji/pages/WelcomePage.java b/injitest/src/main/java/io/mosip/test/mob/inji/pages/WelcomePage.java index fb28c573e6..535ebe460c 100644 --- a/injitest/src/main/java/io/mosip/test/mob/inji/pages/WelcomePage.java +++ b/injitest/src/main/java/io/mosip/test/mob/inji/pages/WelcomePage.java @@ -8,7 +8,7 @@ public class WelcomePage extends BasePage { @AndroidFindBy(accessibility = "introTitle") - @iOSXCUITFindBy(accessibility = "Welcome!") + @iOSXCUITFindBy(iOSClassChain = "**/XCUIElementTypeStaticText[`label == \"Welcome!\"`]") private WebElement welcomeText; @AndroidFindBy(accessibility = "introText") @@ -22,6 +22,9 @@ public class WelcomePage extends BasePage { @AndroidFindBy(accessibility = "next") @iOSXCUITFindBy(iOSClassChain = "**/XCUIElementTypeOther[`label == \"Next\"`][4]") private WebElement nextButton; + + @AndroidFindBy(uiAutomator = "new UiSelector().textContains(\"Back\")") + public WebElement backButton; public WelcomePage(AppiumDriver driver) { @@ -46,5 +49,7 @@ public String getWelcomeDescription() { return this.getTextFromLocator(welcomeTextDescription); } - + public void clickOnBackButton() { + this.clickOnElement(backButton); + } } diff --git a/injitest/src/main/java/io/mosip/test/mob/inji/testcases/AboutInjiTest.java b/injitest/src/main/java/io/mosip/test/mob/inji/testcases/AboutInjiTest.java new file mode 100644 index 0000000000..778aac58fb --- /dev/null +++ b/injitest/src/main/java/io/mosip/test/mob/inji/testcases/AboutInjiTest.java @@ -0,0 +1,43 @@ +package io.mosip.test.mob.inji.testcases; + +import io.mosip.test.mob.inji.pages.*; +import io.mosip.test.mob.inji.utils.TestDataReader; +import org.testng.annotations.Test; + +import static org.testng.Assert.*; + +public class AboutInjiTest extends BaseTest { + @Test + public void copyAppId() throws InterruptedException { + ChooseLanguagePage chooseLanguagePage = new ChooseLanguagePage(driver); + + assertTrue(chooseLanguagePage.isChooseLanguagePageLoaded(), "Verify if choose language page is displayed"); + WelcomePage welcomePage = chooseLanguagePage.clickOnSavePreference(); + + assertTrue(welcomePage.isWelcomePageLoaded(), "Verify if welcome page is loaded"); + AppUnlockMethodPage appUnlockMethodPage = welcomePage.clickOnSkipButton(); + + assertTrue(appUnlockMethodPage.isAppUnlockMethodPageLoaded(), "Verify if app unlocked page is displayed"); + SetPasscode setPasscode = appUnlockMethodPage.clickOnUsePasscode(); + + assertTrue(setPasscode.isSetPassCodePageLoaded(), "Verify if set passcode page is displayed"); + ConfirmPasscode confirmPasscode = setPasscode.enterPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(confirmPasscode.isConfirmPassCodePageLoaded(), "Verify if confirm passcode page is displayed"); + HomePage homePage = confirmPasscode.confirmPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); + SettingsPage settingsPage = homePage.clickOnSettingIcon(); + + assertTrue(settingsPage.isSettingPageLoaded(), "Verify if setting page is displayed"); + AboutInjiPage aboutInjiPage = settingsPage.clickOnAbouInji(); + + assertTrue(aboutInjiPage.isaboutInjiHeaderDisplayed(),"Verify id about inji page displayed"); + + aboutInjiPage.clickOnCopy(); + assertTrue(aboutInjiPage.isAppidIsCopied(),"verify if app id is copied"); + + aboutInjiPage.clickOnBack(); + assertTrue(aboutInjiPage.isCopyTextDisplayed(),"verify if copy text displayed"); + } +} \ No newline at end of file diff --git a/injitest/src/main/java/io/mosip/test/mob/inji/testcases/ActivateVcTest.java b/injitest/src/main/java/io/mosip/test/mob/inji/testcases/ActivateVcTest.java index a8d4f8b99e..73bdae405e 100644 --- a/injitest/src/main/java/io/mosip/test/mob/inji/testcases/ActivateVcTest.java +++ b/injitest/src/main/java/io/mosip/test/mob/inji/testcases/ActivateVcTest.java @@ -35,10 +35,10 @@ public void activateVc() throws InterruptedException { RetrieveIdPage retrieveIdPage = addNewCardPage.clickOnDownloadViaUin(); assertTrue(retrieveIdPage.isRetrieveIdPageLoaded(), "Verify if retrieve id page is displayed"); - OtpVerificationPage otpVerification = retrieveIdPage.setEnterIdTextBox(BaseTestCase.uin).clickOnGenerateCardButton(); + OtpVerificationPage otpVerification = retrieveIdPage.setEnterIdTextBox(TestDataReader.readData("uin")).clickOnGenerateCardButton(); assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); - otpVerification.enterOtp(GetOtp(), target); + otpVerification.enterOtp(BaseTestCase.getOtp(), target); assertTrue(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verify if full name is displayed"); MoreOptionsPage moreOptionsPage = homePage.clickOnMoreOptionsButton(); @@ -113,7 +113,7 @@ public void verifyInvalidOtpMessage() { RetrieveIdPage retrieveIdPage = addNewCardPage.clickOnDownloadViaUin(); assertTrue(retrieveIdPage.isRetrieveIdPageLoaded(), "Verify if retrieve id page is displayed"); - OtpVerificationPage otpVerification = retrieveIdPage.setEnterIdTextBox(BaseTestCase.uin).clickOnGenerateCardButton(); + OtpVerificationPage otpVerification = retrieveIdPage.setEnterIdTextBox(TestDataReader.readData("uin")).clickOnGenerateCardButton(); assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); otpVerification.enterOtp(TestDataReader.readData("invalidOtp"), target); @@ -152,7 +152,7 @@ public void activateVcFromDetailedViewPage() throws InterruptedException { OtpVerificationPage otpVerification = retrieveIdPage.setEnterIdTextBox(TestDataReader.readData("uin")).clickOnGenerateCardButton(); assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); - otpVerification.enterOtp(GetOtp(), target); + otpVerification.enterOtp(BaseTestCase.getOtp(), target); assertTrue(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verify if full name is displayed"); diff --git a/injitest/src/main/java/io/mosip/test/mob/inji/testcases/BaseTest.java b/injitest/src/main/java/io/mosip/test/mob/inji/testcases/BaseTest.java index 1d3fb68490..0dd11209eb 100644 --- a/injitest/src/main/java/io/mosip/test/mob/inji/testcases/BaseTest.java +++ b/injitest/src/main/java/io/mosip/test/mob/inji/testcases/BaseTest.java @@ -14,7 +14,6 @@ import java.net.MalformedURLException; public class BaseTest { - public static String NewOtp=GetOtp(); protected AppiumDriver driver; Target target = null; @@ -46,12 +45,4 @@ public void afterSuite() { DriverManager.stopAppiumServer(); } - public static String GetOtp() { - String otp=""; - String externalemail = TestDataReader.readData("externalemail"); - otp = MockSMTPListener.getOtp(externalemail); - System.out.println(otp); - return otp; - } - -} +} \ No newline at end of file diff --git a/injitest/src/main/java/io/mosip/test/mob/inji/testcases/ChangeLanguageTest.java b/injitest/src/main/java/io/mosip/test/mob/inji/testcases/ChangeLanguageTest.java index 6a0bae64ac..c018716592 100644 --- a/injitest/src/main/java/io/mosip/test/mob/inji/testcases/ChangeLanguageTest.java +++ b/injitest/src/main/java/io/mosip/test/mob/inji/testcases/ChangeLanguageTest.java @@ -89,4 +89,32 @@ public void verifyTuvaliVersion() { assertTrue(settingsPage.isSettingPageLoaded(), "Verify if setting page is displayed"); assertTrue(settingsPage.clickOnAboutInji().isTuvaliVersionPresent()); } + + @Test + public void changeLanguageToArabic() { + ChooseLanguagePage chooseLanguagePage = new ChooseLanguagePage(driver); + + assertTrue(chooseLanguagePage.isChooseLanguagePageLoaded(), "Verify if choose language page is displayed"); + WelcomePage welcomePage = chooseLanguagePage.clickOnSavePreference(); + + assertTrue(welcomePage.isWelcomePageLoaded(), "Verify if welcome page is loaded"); + AppUnlockMethodPage appUnlockMethodPage = welcomePage.clickOnSkipButton(); + + assertTrue(appUnlockMethodPage.isAppUnlockMethodPageLoaded(), "Verify if app unlocked page is displayed"); + SetPasscode setPasscode = appUnlockMethodPage.clickOnUsePasscode(); + + assertTrue(setPasscode.isSetPassCodePageLoaded(), "Verify if set passcode page is displayed"); + ConfirmPasscode confirmPasscode = setPasscode.enterPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(confirmPasscode.isConfirmPassCodePageLoaded(), "Verify if confirm passcode page is displayed"); + HomePage homePage = confirmPasscode.confirmPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); + SettingsPage settingsPage = homePage.clickOnSettingIcon(); + + assertTrue(settingsPage.isSettingPageLoaded(), "Verify if setting page is displayed"); + settingsPage.clickOnLanguage().clickOnArabicLanguageButton(); + + assertTrue(settingsPage.verifyArabicLanguage(), "Verify if language is changed to arabic"); + } } diff --git a/injitest/src/main/java/io/mosip/test/mob/inji/testcases/CredentialRegistryTest.java b/injitest/src/main/java/io/mosip/test/mob/inji/testcases/CredentialRegistryTest.java new file mode 100644 index 0000000000..41f6d186ea --- /dev/null +++ b/injitest/src/main/java/io/mosip/test/mob/inji/testcases/CredentialRegistryTest.java @@ -0,0 +1,383 @@ +package io.mosip.test.mob.inji.testcases; + +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertTrue; + +import org.testng.annotations.Test; + +import io.mosip.test.mob.inji.api.BaseTestCase; +import io.mosip.test.mob.inji.pages.AddNewCardPage; +import io.mosip.test.mob.inji.pages.AppUnlockMethodPage; +import io.mosip.test.mob.inji.pages.ChooseLanguagePage; +import io.mosip.test.mob.inji.pages.ConfirmPasscode; +import io.mosip.test.mob.inji.pages.CredentialRegistryPage; +import io.mosip.test.mob.inji.pages.GenerateUinOrVidPage; +import io.mosip.test.mob.inji.pages.HomePage; +import io.mosip.test.mob.inji.pages.MoreOptionsPage; +import io.mosip.test.mob.inji.pages.OtpVerificationPage; +import io.mosip.test.mob.inji.pages.PleaseConfirmPopupPage; +import io.mosip.test.mob.inji.pages.RetrieveIdPage; +import io.mosip.test.mob.inji.pages.SetPasscode; +import io.mosip.test.mob.inji.pages.SettingsPage; +import io.mosip.test.mob.inji.pages.WelcomePage; +import io.mosip.test.mob.inji.utils.TestDataReader; + +public class CredentialRegistryTest extends BaseTest { + + @Test + public void downloadAndVerifyVcInNewEnv() throws InterruptedException { + ChooseLanguagePage chooseLanguagePage = new ChooseLanguagePage(driver); + + assertTrue(chooseLanguagePage.isChooseLanguagePageLoaded(), "Verify if choose language page is displayed"); + WelcomePage welcomePage = chooseLanguagePage.clickOnSavePreference(); + + assertTrue(welcomePage.isWelcomePageLoaded(), "Verify if welcome page is loaded"); + AppUnlockMethodPage appUnlockMethodPage = welcomePage.clickOnSkipButton(); + + assertTrue(appUnlockMethodPage.isAppUnlockMethodPageLoaded(), "Verify if app unlocked page is displayed"); + SetPasscode setPasscode = appUnlockMethodPage.clickOnUsePasscode(); + + assertTrue(setPasscode.isSetPassCodePageLoaded(), "Verify if set passcode page is displayed"); + ConfirmPasscode confirmPasscode = setPasscode.enterPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(confirmPasscode.isConfirmPassCodePageLoaded(), "Verify if confirm passcode page is displayed"); + HomePage homePage = confirmPasscode.confirmPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); + SettingsPage settingsPage = homePage.clickOnSettingIcon(); + + assertTrue(settingsPage.isSettingPageLoaded(), "Verify if setting page is displayed"); + CredentialRegistryPage credentialRegistryPage =settingsPage.clickOnCredentialRegistry(); + + assertTrue(credentialRegistryPage.isCredentialRegistryTextBoxHeaderDisplayed(), "Verify if CredentialRegistry page is displayed"); + credentialRegistryPage.setEnterIdTextBox(TestDataReader.readData("newEnv")).clickOnSaveButton(); + + assertTrue(settingsPage.isSettingPageLoaded(), "Verify if setting page is displayed"); + credentialRegistryPage.clickOnBackArrow(); + AddNewCardPage addNewCardPage = homePage.downloadCard(); + + assertTrue(addNewCardPage.isAddNewCardPageLoaded(), "Verify if add new card page is displayed"); + RetrieveIdPage retrieveIdPage = addNewCardPage.clickOnDownloadViaUin(); + + assertTrue(retrieveIdPage.isRetrieveIdPageLoaded(), "Verify if retrieve id page is displayed"); + OtpVerificationPage otpVerification = retrieveIdPage.setEnterIdTextBox(TestDataReader.readData("newuin")).clickOnGenerateCardButton(); + + assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); + otpVerification.enterOtp(TestDataReader.readData("otp"), target); + + assertTrue(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verify if full name is displayed"); + MoreOptionsPage moreOptionsPage = homePage.clickOnMoreOptionsButton(); + + assertTrue(moreOptionsPage.isMoreOptionsPageLoaded(), "Verify if more options page is displayed"); + PleaseConfirmPopupPage pleaseConfirmPopupPage = moreOptionsPage.clickOnActivationPending(); + + assertTrue(pleaseConfirmPopupPage.isPleaseConfirmPopupPageLoaded(), "Verify if pop up page is displayed"); + OtpVerificationPage otpVerificationPage = pleaseConfirmPopupPage.clickOnConfirmButton(); + + assertTrue(otpVerificationPage.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); + otpVerificationPage.enterOtp(TestDataReader.readData("otp"), target); + + assertTrue(moreOptionsPage.isVcActivatedForOnlineLogin(), "Verify if VC is activated"); + } + + @Test + public void cancelChangeEnvAndVerify() throws InterruptedException { + ChooseLanguagePage chooseLanguagePage = new ChooseLanguagePage(driver); + + assertTrue(chooseLanguagePage.isChooseLanguagePageLoaded(), "Verify if choose language page is displayed"); + WelcomePage welcomePage = chooseLanguagePage.clickOnSavePreference(); + + assertTrue(welcomePage.isWelcomePageLoaded(), "Verify if welcome page is loaded"); + AppUnlockMethodPage appUnlockMethodPage = welcomePage.clickOnSkipButton(); + + assertTrue(appUnlockMethodPage.isAppUnlockMethodPageLoaded(), "Verify if app unlocked page is displayed"); + SetPasscode setPasscode = appUnlockMethodPage.clickOnUsePasscode(); + + assertTrue(setPasscode.isSetPassCodePageLoaded(), "Verify if set passcode page is displayed"); + ConfirmPasscode confirmPasscode = setPasscode.enterPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(confirmPasscode.isConfirmPassCodePageLoaded(), "Verify if confirm passcode page is displayed"); + HomePage homePage = confirmPasscode.confirmPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); + SettingsPage settingsPage = homePage.clickOnSettingIcon(); + + assertTrue(settingsPage.isSettingPageLoaded(), "Verify if setting page is displayed"); + CredentialRegistryPage credentialRegistryPage =settingsPage.clickOnCredentialRegistry(); + + assertTrue(credentialRegistryPage.isCredentialRegistryTextBoxHeaderDisplayed(), "Verify if CredentialRegistry page is displayed"); + credentialRegistryPage.setEnterIdTextBox(TestDataReader.readData("newEnv")).clickOnCancelButton(); + + assertTrue(settingsPage.isSettingPageLoaded(), "Verify if setting page is displayed"); + credentialRegistryPage.clickOnBackArrow(); + + homePage.clickOnSettingIcon(); + assertTrue(settingsPage.isSettingPageLoaded(), "Verify if setting page is displayed"); + + settingsPage.clickOnCredentialRegistry(); + assertEquals(credentialRegistryPage.checkEnvNotChanged(),"https://api.qa-inji.mosip.net"); + } + + @Test + public void downloadAndVerifyVcInInvalidEnv() throws InterruptedException { + ChooseLanguagePage chooseLanguagePage = new ChooseLanguagePage(driver); + + assertTrue(chooseLanguagePage.isChooseLanguagePageLoaded(), "Verify if choose language page is displayed"); + WelcomePage welcomePage = chooseLanguagePage.clickOnSavePreference(); + + assertTrue(welcomePage.isWelcomePageLoaded(), "Verify if welcome page is loaded"); + AppUnlockMethodPage appUnlockMethodPage = welcomePage.clickOnSkipButton(); + + assertTrue(appUnlockMethodPage.isAppUnlockMethodPageLoaded(), "Verify if app unlocked page is displayed"); + SetPasscode setPasscode = appUnlockMethodPage.clickOnUsePasscode(); + + assertTrue(setPasscode.isSetPassCodePageLoaded(), "Verify if set passcode page is displayed"); + ConfirmPasscode confirmPasscode = setPasscode.enterPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(confirmPasscode.isConfirmPassCodePageLoaded(), "Verify if confirm passcode page is displayed"); + HomePage homePage = confirmPasscode.confirmPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); + SettingsPage settingsPage = homePage.clickOnSettingIcon(); + + assertTrue(settingsPage.isSettingPageLoaded(), "Verify if setting page is displayed"); + CredentialRegistryPage credentialRegistryPage =settingsPage.clickOnCredentialRegistry(); + + assertTrue(credentialRegistryPage.isCredentialRegistryTextBoxHeaderDisplayed(), "Verify if CredentialRegistry page is displayed"); + credentialRegistryPage.setEnterIdTextBox(TestDataReader.readData("invalidenv")).clickOnSaveButton(); + + assertTrue(settingsPage.isSettingPageLoaded(), "Verify if setting page is displayed"); + credentialRegistryPage.clickOnBackArrow(); + + AddNewCardPage addNewCardPage = homePage.downloadCard(); + assertTrue(homePage.isNoInternetConnectionDisplayed(), "Verify if no internet connection is displayed"); + } + + @Test + public void generateUinInNewEnv() throws InterruptedException { + ChooseLanguagePage chooseLanguagePage = new ChooseLanguagePage(driver); + + assertTrue(chooseLanguagePage.isChooseLanguagePageLoaded(), "Verify if choose language page is displayed"); + WelcomePage welcomePage = chooseLanguagePage.clickOnSavePreference(); + + assertTrue(welcomePage.isWelcomePageLoaded(), "Verify if welcome page is loaded"); + AppUnlockMethodPage appUnlockMethodPage = welcomePage.clickOnSkipButton(); + + assertTrue(appUnlockMethodPage.isAppUnlockMethodPageLoaded(), "Verify if app unlocked page is displayed"); + SetPasscode setPasscode = appUnlockMethodPage.clickOnUsePasscode(); + + assertTrue(setPasscode.isSetPassCodePageLoaded(), "Verify if set passcode page is displayed"); + ConfirmPasscode confirmPasscode = setPasscode.enterPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(confirmPasscode.isConfirmPassCodePageLoaded(), "Verify if confirm passcode page is displayed"); + HomePage homePage = confirmPasscode.confirmPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); + SettingsPage settingsPage = homePage.clickOnSettingIcon(); + + assertTrue(settingsPage.isSettingPageLoaded(), "Verify if setting page is displayed"); + CredentialRegistryPage credentialRegistryPage =settingsPage.clickOnCredentialRegistry(); + + assertTrue(credentialRegistryPage.isCredentialRegistryTextBoxHeaderDisplayed(), "Verify if CredentialRegistry page is displayed"); + credentialRegistryPage.setEnterIdTextBox(TestDataReader.readData("newEnv")).clickOnSaveButton(); + + assertTrue(settingsPage.isSettingPageLoaded(), "Verify if setting page is displayed"); + credentialRegistryPage.clickOnBackArrow(); + + AddNewCardPage addNewCardPage = homePage.downloadCard(); + assertTrue(addNewCardPage.isAddNewCardPageLoaded(), "Verify if add new card page is displayed"); + RetrieveIdPage retrieveIdPage = addNewCardPage.clickOnDownloadViaUin(); + + assertTrue(retrieveIdPage.isRetrieveIdPageLoaded(), "Verify if retrieve id page is displayed"); + GenerateUinOrVidPage generateUinOrVidPage = retrieveIdPage.clickOnGetItNowText(); + + assertTrue(generateUinOrVidPage.isGenerateUinOrVidPageLoaded(), "Verify if generate uin or vid page page is displayed"); + OtpVerificationPage otpVerification = generateUinOrVidPage.enterApplicationID(TestDataReader.readData("newaid")).clickOnGetUinOrVidButton(); + + assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); + otpVerification.enterOtp(TestDataReader.readData("otp"), target); + + assertTrue(retrieveIdPage.isRetrieveIdPageLoaded(), "Verify if retrieve id page is displayed"); + retrieveIdPage.clickOnGenerateCardButton(); + + assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); + otpVerification.enterOtp(TestDataReader.readData("otp"), target); + + assertTrue(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verify if full name is displayed"); + } + + @Test + public void retrivingUinInOtherEnv() throws InterruptedException { + ChooseLanguagePage chooseLanguagePage = new ChooseLanguagePage(driver); + + assertTrue(chooseLanguagePage.isChooseLanguagePageLoaded(), "Verify if choose language page is displayed"); + WelcomePage welcomePage = chooseLanguagePage.clickOnSavePreference(); + + assertTrue(welcomePage.isWelcomePageLoaded(), "Verify if welcome page is loaded"); + AppUnlockMethodPage appUnlockMethodPage = welcomePage.clickOnSkipButton(); + + assertTrue(appUnlockMethodPage.isAppUnlockMethodPageLoaded(), "Verify if app unlocked page is displayed"); + SetPasscode setPasscode = appUnlockMethodPage.clickOnUsePasscode(); + + assertTrue(setPasscode.isSetPassCodePageLoaded(), "Verify if set passcode page is displayed"); + ConfirmPasscode confirmPasscode = setPasscode.enterPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(confirmPasscode.isConfirmPassCodePageLoaded(), "Verify if confirm passcode page is displayed"); + HomePage homePage = confirmPasscode.confirmPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); + SettingsPage settingsPage = homePage.clickOnSettingIcon(); + + assertTrue(settingsPage.isSettingPageLoaded(), "Verify if setting page is displayed"); + CredentialRegistryPage credentialRegistryPage =settingsPage.clickOnCredentialRegistry(); + + assertTrue(credentialRegistryPage.isCredentialRegistryTextBoxHeaderDisplayed(), "Verify if CredentialRegistry page is displayed"); + credentialRegistryPage.setEnterIdTextBox(TestDataReader.readData("newEnv")).clickOnSaveButton(); + + assertTrue(settingsPage.isSettingPageLoaded(), "Verify if setting page is displayed"); + credentialRegistryPage.clickOnBackArrow(); + + AddNewCardPage addNewCardPage = homePage.downloadCard(); + assertTrue(addNewCardPage.isAddNewCardPageLoaded(), "Verify if add new card page is displayed"); + RetrieveIdPage retrieveIdPage = addNewCardPage.clickOnDownloadViaUin(); + + assertTrue(retrieveIdPage.isRetrieveIdPageLoaded(), "Verify if retrieve id page is displayed"); + GenerateUinOrVidPage generateUinOrVidPage = retrieveIdPage.clickOnGetItNowText(); + + assertTrue(generateUinOrVidPage.isGenerateUinOrVidPageLoaded(), "Verify if generate uin or vid page page is displayed"); + OtpVerificationPage otpVerification = generateUinOrVidPage.enterApplicationID(TestDataReader.readData("aid")).clickOnGetUinOrVidButton(); + + assertTrue(retrieveIdPage.isAidIsNotReadyYetErrorDisplayed(), "Verify if aid is not ready displayed"); + } + + @Test + public void downloadAndVerifyVcInTwoEnv() throws InterruptedException { + ChooseLanguagePage chooseLanguagePage = new ChooseLanguagePage(driver); + + assertTrue(chooseLanguagePage.isChooseLanguagePageLoaded(), "Verify if choose language page is displayed"); + WelcomePage welcomePage = chooseLanguagePage.clickOnSavePreference(); + + assertTrue(welcomePage.isWelcomePageLoaded(), "Verify if welcome page is loaded"); + AppUnlockMethodPage appUnlockMethodPage = welcomePage.clickOnSkipButton(); + + assertTrue(appUnlockMethodPage.isAppUnlockMethodPageLoaded(), "Verify if app unlocked page is displayed"); + SetPasscode setPasscode = appUnlockMethodPage.clickOnUsePasscode(); + + assertTrue(setPasscode.isSetPassCodePageLoaded(), "Verify if set passcode page is displayed"); + ConfirmPasscode confirmPasscode = setPasscode.enterPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(confirmPasscode.isConfirmPassCodePageLoaded(), "Verify if confirm passcode page is displayed"); + HomePage homePage = confirmPasscode.confirmPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); + SettingsPage settingsPage = homePage.clickOnSettingIcon(); + + assertTrue(settingsPage.isSettingPageLoaded(), "Verify if setting page is displayed"); + CredentialRegistryPage credentialRegistryPage =settingsPage.clickOnCredentialRegistry(); + + assertTrue(credentialRegistryPage.isCredentialRegistryTextBoxHeaderDisplayed(), "Verify if CredentialRegistry page is displayed"); + credentialRegistryPage.setEnterIdTextBox(TestDataReader.readData("newEnv")).clickOnSaveButton(); + + assertTrue(settingsPage.isSettingPageLoaded(), "Verify if setting page is displayed"); + credentialRegistryPage.clickOnBackArrow(); + + AddNewCardPage addNewCardPage = homePage.downloadCard(); + assertTrue(addNewCardPage.isAddNewCardPageLoaded(), "Verify if add new card page is displayed"); + RetrieveIdPage retrieveIdPage = addNewCardPage.clickOnDownloadViaUin(); + + assertTrue(retrieveIdPage.isRetrieveIdPageLoaded(), "Verify if retrieve id page is displayed"); + OtpVerificationPage otpVerification = retrieveIdPage.setEnterIdTextBox(TestDataReader.readData("newuin")).clickOnGenerateCardButton(); + + assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); + otpVerification.enterOtp(TestDataReader.readData("otp"), target); + + assertTrue(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verify if full name is displayed"); + homePage.clickOnSettingIcon(); + + assertTrue(settingsPage.isSettingPageLoaded(), "Verify if setting page is displayed"); + settingsPage.clickOnCredentialRegistry(); + + assertTrue(credentialRegistryPage.isCredentialRegistryTextBoxHeaderDisplayed(), "Verify if CredentialRegistry page is displayed"); + credentialRegistryPage.setEnterIdTextBox(TestDataReader.readData("injiEnv")).clickOnSaveButton(); + + assertTrue(settingsPage.isSettingPageLoaded(), "Verify if setting page is displayed"); + credentialRegistryPage.clickOnBackArrow(); + + homePage.downloadCard(); + assertTrue(addNewCardPage.isAddNewCardPageLoaded(), "Verify if add new card page is displayed"); + addNewCardPage.clickOnDownloadViaUin(); + + assertTrue(retrieveIdPage.isRetrieveIdPageLoaded(), "Verify if retrieve id page is displayed"); + retrieveIdPage.setEnterIdTextBox(TestDataReader.readData("uin")).clickOnGenerateCardButton(); + + assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); + otpVerification.enterOtp(BaseTestCase.getOtp(), target); + + assertTrue(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verify if full name is displayed"); + assertTrue(homePage.isSecondNameDisplayed(TestDataReader.readData("fullName")), "Verify if full name is displayed"); + } + + @Test + public void downloadVcAndActivateItInOtherEnv() throws InterruptedException { + ChooseLanguagePage chooseLanguagePage = new ChooseLanguagePage(driver); + + assertTrue(chooseLanguagePage.isChooseLanguagePageLoaded(), "Verify if choose language page is displayed"); + WelcomePage welcomePage = chooseLanguagePage.clickOnSavePreference(); + + assertTrue(welcomePage.isWelcomePageLoaded(), "Verify if welcome page is loaded"); + AppUnlockMethodPage appUnlockMethodPage = welcomePage.clickOnSkipButton(); + + assertTrue(appUnlockMethodPage.isAppUnlockMethodPageLoaded(), "Verify if app unlocked page is displayed"); + SetPasscode setPasscode = appUnlockMethodPage.clickOnUsePasscode(); + + assertTrue(setPasscode.isSetPassCodePageLoaded(), "Verify if set passcode page is displayed"); + ConfirmPasscode confirmPasscode = setPasscode.enterPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(confirmPasscode.isConfirmPassCodePageLoaded(), "Verify if confirm passcode page is displayed"); + HomePage homePage = confirmPasscode.confirmPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); + SettingsPage settingsPage = homePage.clickOnSettingIcon(); + + assertTrue(settingsPage.isSettingPageLoaded(), "Verify if setting page is displayed"); + CredentialRegistryPage credentialRegistryPage =settingsPage.clickOnCredentialRegistry(); + + assertTrue(credentialRegistryPage.isCredentialRegistryTextBoxHeaderDisplayed(), "Verify if CredentialRegistry page is displayed"); + credentialRegistryPage.setEnterIdTextBox(TestDataReader.readData("newEnv")).clickOnSaveButton(); + + assertTrue(settingsPage.isSettingPageLoaded(), "Verify if setting page is displayed"); + credentialRegistryPage.clickOnBackArrow(); + + AddNewCardPage addNewCardPage = homePage.downloadCard(); + assertTrue(addNewCardPage.isAddNewCardPageLoaded(), "Verify if add new card page is displayed"); + RetrieveIdPage retrieveIdPage = addNewCardPage.clickOnDownloadViaUin(); + + assertTrue(retrieveIdPage.isRetrieveIdPageLoaded(), "Verify if retrieve id page is displayed"); + OtpVerificationPage otpVerification = retrieveIdPage.setEnterIdTextBox(TestDataReader.readData("newuin")).clickOnGenerateCardButton(); + + assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); + otpVerification.enterOtp(TestDataReader.readData("otp"), target); + + assertTrue(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verify if full name is displayed"); + homePage.clickOnSettingIcon(); + + assertTrue(settingsPage.isSettingPageLoaded(), "Verify if setting page is displayed"); + settingsPage.clickOnCredentialRegistry(); + + assertTrue(credentialRegistryPage.isCredentialRegistryTextBoxHeaderDisplayed(), "Verify if CredentialRegistry page is displayed"); + credentialRegistryPage.setEnterIdTextBox(TestDataReader.readData("injiEnv")).clickOnSaveButton(); + + assertTrue(settingsPage.isSettingPageLoaded(), "Verify if setting page is displayed"); + credentialRegistryPage.clickOnBackArrow(); + + MoreOptionsPage moreOptionsPage = homePage.clickOnMoreOptionsButton(); + + assertTrue(moreOptionsPage.isMoreOptionsPageLoaded(), "Verify if more options page is displayed"); + PleaseConfirmPopupPage pleaseConfirmPopupPage = moreOptionsPage.clickOnActivationPending(); + + assertTrue(pleaseConfirmPopupPage.isPleaseConfirmPopupPageLoaded(), "Verify if pop up page is displayed"); + OtpVerificationPage otpVerificationPage = pleaseConfirmPopupPage.clickOnConfirmButton(); + + assertTrue(moreOptionsPage.isSomthingIsWrongPopupVisible(), "Verify if somthing went wrong please try again popup displayed"); + } +} diff --git a/injitest/src/main/java/io/mosip/test/mob/inji/testcases/DeletingVcTest.java b/injitest/src/main/java/io/mosip/test/mob/inji/testcases/DeletingVcTest.java index e61a390f84..ced5f0d415 100644 --- a/injitest/src/main/java/io/mosip/test/mob/inji/testcases/DeletingVcTest.java +++ b/injitest/src/main/java/io/mosip/test/mob/inji/testcases/DeletingVcTest.java @@ -37,10 +37,10 @@ public void deleteVcAndVerifyInHistory() throws InterruptedException { RetrieveIdPage retrieveIdPage = addNewCardPage.clickOnDownloadViaUin(); assertTrue(retrieveIdPage.isRetrieveIdPageLoaded(), "Verify if retrieve id page is displayed"); - OtpVerificationPage otpVerification = retrieveIdPage.setEnterIdTextBox(BaseTestCase.uin).clickOnGenerateCardButton(); + OtpVerificationPage otpVerification = retrieveIdPage.setEnterIdTextBox(TestDataReader.readData("uin")).clickOnGenerateCardButton(); assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); - otpVerification.enterOtp(GetOtp(), target); + otpVerification.enterOtp(BaseTestCase.getOtp(), target); assertTrue(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verify if full name is displayed"); @@ -51,14 +51,15 @@ public void deleteVcAndVerifyInHistory() throws InterruptedException { assertTrue(pleaseConfirmPopupPage.isPleaseConfirmPopupPageLoaded(), "Verify if pop up page is displayed"); pleaseConfirmPopupPage.clickOnConfirmButton(); - assertFalse(homePage.isNoVCDownloaded(), "Verify if VC is removed"); + assertTrue(homePage.isNoVCDownloaded(), "Verify if VC is removed"); HistoryPage historyPage = homePage.clickOnHistoryButton(); assertTrue(historyPage.isHistoryPageLoaded(), "Verify if history page is displayed"); - historyPage.verifyHistory(BaseTestCase.uin + " Removed from wallet", target); + historyPage.verifyHistory(TestDataReader.readData("uin") + " Removed from wallet", target); + assertTrue(historyPage.verifyDeleteHistory(TestDataReader.readData("uin"), target), "Verify if deleted history is displayed"); } - + @Test public void cancelDeleteVc() throws InterruptedException { ChooseLanguagePage chooseLanguagePage = new ChooseLanguagePage(driver); @@ -85,10 +86,10 @@ public void cancelDeleteVc() throws InterruptedException { RetrieveIdPage retrieveIdPage = addNewCardPage.clickOnDownloadViaUin(); assertTrue(retrieveIdPage.isRetrieveIdPageLoaded(), "Verify if retrieve id page is displayed"); - OtpVerificationPage otpVerification = retrieveIdPage.setEnterIdTextBox(BaseTestCase.uin).clickOnGenerateCardButton(); + OtpVerificationPage otpVerification = retrieveIdPage.setEnterIdTextBox(TestDataReader.readData("uin")).clickOnGenerateCardButton(); assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); - otpVerification.enterOtp(GetOtp(), target); + otpVerification.enterOtp(BaseTestCase.getOtp(), target); assertTrue(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verify if full name is displayed"); @@ -100,78 +101,72 @@ public void cancelDeleteVc() throws InterruptedException { pleaseConfirmPopupPage.clickOnNoButton(); assertTrue(moreOptionsPage.isMoreOptionsPageLoaded(), "Verify if more options page is displayed"); - - moreOptionsPage.ClickOnCloseButton(); + + moreOptionsPage.clickOnCloseButton(); assertTrue(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verify if full name is displayed"); } - - @Test - public void DownloadingDeletedVc() throws InterruptedException { - ChooseLanguagePage chooseLanguagePage = new ChooseLanguagePage(driver); - assertTrue(chooseLanguagePage.isChooseLanguagePageLoaded(), "Verify if choose language page is displayed"); - WelcomePage welcomePage = chooseLanguagePage.clickOnSavePreference(); + @Test + public void DownloadingDeletedVc() throws InterruptedException { + ChooseLanguagePage chooseLanguagePage = new ChooseLanguagePage(driver); + + assertTrue(chooseLanguagePage.isChooseLanguagePageLoaded(), "Verify if choose language page is displayed"); + WelcomePage welcomePage = chooseLanguagePage.clickOnSavePreference(); - assertTrue(welcomePage.isWelcomePageLoaded(), "Verify if welcome page is loaded"); - AppUnlockMethodPage appUnlockMethodPage = welcomePage.clickOnSkipButton(); + assertTrue(welcomePage.isWelcomePageLoaded(), "Verify if welcome page is loaded"); + AppUnlockMethodPage appUnlockMethodPage = welcomePage.clickOnSkipButton(); - assertTrue(appUnlockMethodPage.isAppUnlockMethodPageLoaded(), "Verify if app unlocked page is displayed"); - SetPasscode setPasscode = appUnlockMethodPage.clickOnUsePasscode(); + assertTrue(appUnlockMethodPage.isAppUnlockMethodPageLoaded(), "Verify if app unlocked page is displayed"); + SetPasscode setPasscode = appUnlockMethodPage.clickOnUsePasscode(); - assertTrue(setPasscode.isSetPassCodePageLoaded(), "Verify if set passcode page is displayed"); - ConfirmPasscode confirmPasscode = setPasscode.enterPasscode(TestDataReader.readData("passcode"), target); + assertTrue(setPasscode.isSetPassCodePageLoaded(), "Verify if set passcode page is displayed"); + ConfirmPasscode confirmPasscode = setPasscode.enterPasscode(TestDataReader.readData("passcode"), target); - assertTrue(confirmPasscode.isConfirmPassCodePageLoaded(), "Verify if confirm passcode page is displayed"); - HomePage homePage = confirmPasscode.confirmPasscode(TestDataReader.readData("passcode"), target); + assertTrue(confirmPasscode.isConfirmPassCodePageLoaded(), "Verify if confirm passcode page is displayed"); + HomePage homePage = confirmPasscode.confirmPasscode(TestDataReader.readData("passcode"), target); - assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); - AddNewCardPage addNewCardPage = homePage.downloadCard(); + assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); + AddNewCardPage addNewCardPage = homePage.downloadCard(); - assertTrue(addNewCardPage.isAddNewCardPageLoaded(), "Verify if add new card page is displayed"); - RetrieveIdPage retrieveIdPage = addNewCardPage.clickOnDownloadViaUin(); + assertTrue(addNewCardPage.isAddNewCardPageLoaded(), "Verify if add new card page is displayed"); + RetrieveIdPage retrieveIdPage = addNewCardPage.clickOnDownloadViaUin(); - assertTrue(retrieveIdPage.isRetrieveIdPageLoaded(), "Verify if retrieve id page is displayed"); - OtpVerificationPage otpVerification = retrieveIdPage.setEnterIdTextBox(BaseTestCase.uin).clickOnGenerateCardButton(); + assertTrue(retrieveIdPage.isRetrieveIdPageLoaded(), "Verify if retrieve id page is displayed"); + OtpVerificationPage otpVerification = retrieveIdPage.setEnterIdTextBox(TestDataReader.readData("uin")).clickOnGenerateCardButton(); - assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); - otpVerification.enterOtp(GetOtp(), target); + assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); + otpVerification.enterOtp(BaseTestCase.getOtp(), target); - assertTrue(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verify if full name is displayed"); + assertTrue(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verify if full name is displayed"); - MoreOptionsPage moreOptionsPage = homePage.clickOnMoreOptionsButton(); - assertTrue(moreOptionsPage.isMoreOptionsPageLoaded(), "Verify if more options page is displayed"); + MoreOptionsPage moreOptionsPage = homePage.clickOnMoreOptionsButton(); + assertTrue(moreOptionsPage.isMoreOptionsPageLoaded(), "Verify if more options page is displayed"); - PleaseConfirmPopupPage pleaseConfirmPopupPage = moreOptionsPage.clickOnRemoveFromWallet(); - assertTrue(pleaseConfirmPopupPage.isPleaseConfirmPopupPageLoaded(), "Verify if pop up page is displayed"); + PleaseConfirmPopupPage pleaseConfirmPopupPage = moreOptionsPage.clickOnRemoveFromWallet(); + assertTrue(pleaseConfirmPopupPage.isPleaseConfirmPopupPageLoaded(), "Verify if pop up page is displayed"); - pleaseConfirmPopupPage.clickOnConfirmButton(); - assertFalse(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verify if VC is removed"); + pleaseConfirmPopupPage.clickOnConfirmButton(); + assertFalse(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verify if VC is removed"); homePage.downloadCard(); - assertTrue(addNewCardPage.isAddNewCardPageLoaded(), "Verify if add new card page is displayed"); - addNewCardPage.clickOnDownloadViaUin(); - - assertTrue(retrieveIdPage.isRetrieveIdPageLoaded(), "Verify if retrieve id page is displayed"); - retrieveIdPage.setEnterIdTextBox(BaseTestCase.uin).clickOnGenerateCardButton(); - - assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); - otpVerification.enterOtp(GetOtp(), target); - - assertTrue(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verify if full name is displayed"); - - HistoryPage historyPage = homePage.clickOnHistoryButton(); - assertTrue(historyPage.isHistoryPageLoaded(), "Verify if history page is displayed"); - - assertTrue(historyPage.verifyHistory(BaseTestCase.uin, target)); - - historyPage.getNumberOfRecordsInHistory(BaseTestCase.uin, target,"Verify two download records in history page"); - assertEquals(historyPage.getNumberOfRecordsInHistory(BaseTestCase.uin, target,"Asserting two records"),2); - - - assertTrue(historyPage.verifyDeleteHistory(BaseTestCase.uin, target), "Verify if deleted history is displayed"); - - - } - + assertTrue(addNewCardPage.isAddNewCardPageLoaded(), "Verify if add new card page is displayed"); + addNewCardPage.clickOnDownloadViaUin(); + + assertTrue(retrieveIdPage.isRetrieveIdPageLoaded(), "Verify if retrieve id page is displayed"); + retrieveIdPage.setEnterIdTextBox(TestDataReader.readData("uin")).clickOnGenerateCardButton(); + + assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); + otpVerification.enterOtp(BaseTestCase.getOtp(), target); + + assertTrue(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verify if full name is displayed"); + + HistoryPage historyPage = homePage.clickOnHistoryButton(); + assertTrue(historyPage.isHistoryPageLoaded(), "Verify if history page is displayed"); + + assertTrue(historyPage.verifyHistory(TestDataReader.readData("uin"), target)); + + assertEquals(historyPage.getNumberOfRecordsInHistory(TestDataReader.readData("uin"), target), 2,"Verify two download records in history page"); + assertTrue(historyPage.verifyDeleteHistory(TestDataReader.readData("uin"), target), "Verify if deleted history is displayed"); + } } \ No newline at end of file diff --git a/injitest/src/main/java/io/mosip/test/mob/inji/testcases/GenerateUinOrVidTest.java b/injitest/src/main/java/io/mosip/test/mob/inji/testcases/GenerateUinOrVidTest.java index a8ddb56a91..4b2dcbe72c 100644 --- a/injitest/src/main/java/io/mosip/test/mob/inji/testcases/GenerateUinOrVidTest.java +++ b/injitest/src/main/java/io/mosip/test/mob/inji/testcases/GenerateUinOrVidTest.java @@ -1,6 +1,8 @@ package io.mosip.test.mob.inji.testcases; import org.testng.annotations.Test; + +import io.mosip.test.mob.inji.api.BaseTestCase; import io.mosip.test.mob.inji.pages.*; import io.mosip.test.mob.inji.utils.TestDataReader; @@ -40,13 +42,13 @@ public void generateUinOrVidUsingAid() { OtpVerificationPage otpVerification = generateUinOrVidPage.enterApplicationID(TestDataReader.readData("aid")).clickOnGetUinOrVidButton(); assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); - otpVerification.enterOtp(GetOtp(), target); + otpVerification.enterOtp(BaseTestCase.getOtp(), target); assertTrue(retrieveIdPage.isRetrieveIdPageLoaded(), "Verify if retrieve id page is displayed"); retrieveIdPage.clickOnGenerateCardButton(); assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); - otpVerification.enterOtp(GetOtp(), target); + otpVerification.enterOtp(BaseTestCase.getOtp(), target); assertTrue(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verify if full name is displayed"); diff --git a/injitest/src/main/java/io/mosip/test/mob/inji/testcases/NoNetworkAndroidTest.java b/injitest/src/main/java/io/mosip/test/mob/inji/testcases/NoNetworkAndroidTest.java index 1aece85978..e763fea37d 100644 --- a/injitest/src/main/java/io/mosip/test/mob/inji/testcases/NoNetworkAndroidTest.java +++ b/injitest/src/main/java/io/mosip/test/mob/inji/testcases/NoNetworkAndroidTest.java @@ -35,8 +35,16 @@ public void setupPasscodeAndDownloadCardWithoutInternet() { AddNewCardPage addNewCardPage = homePage.downloadCard(); assertTrue(homePage.isNoInternetConnectionDisplayed(), "Verify if no internet connection is displayed"); - + assertTrue(homePage.isTryAgainButtonDisplayed(), "Verify if Try again button displayed"); CommonMethods.disableAirplaneMode(); + + assertTrue(homePage.isTryAgainButtonDisplayed(), "Verify if Try again button displayed"); + + homePage.clickOnTryAgainButton(); + assertTrue(homePage.isTryAgainButtonDisplayed(), "Verify if Try again button displayed"); + + addNewCardPage.clickOnBack(); + assertTrue(homePage.isNoVCDownloaded(), "Verify if VC is removed"); } @Test @@ -65,10 +73,10 @@ public void openCameraOnFlightMode() { RetrieveIdPage retrieveIdPage = addNewCardPage.clickOnDownloadViaUin(); assertTrue(retrieveIdPage.isRetrieveIdPageLoaded(), "Verify if retrieve id page is displayed"); - OtpVerificationPage otpVerification = retrieveIdPage.setEnterIdTextBox(BaseTestCase.uin).clickOnGenerateCardButton(); + OtpVerificationPage otpVerification = retrieveIdPage.setEnterIdTextBox(TestDataReader.readData("uin")).clickOnGenerateCardButton(); assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); - otpVerification.enterOtp(GetOtp(), target); + otpVerification.enterOtp(BaseTestCase.getOtp(), target); assertTrue(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verify if full name is displayed"); @@ -106,7 +114,7 @@ public void activateVcWithoutInternet() throws InterruptedException { OtpVerificationPage otpVerification = retrieveIdPage.setEnterIdTextBox(TestDataReader.readData("uin")).clickOnGenerateCardButton(); assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); - otpVerification.enterOtp(GetOtp(), target); + otpVerification.enterOtp(BaseTestCase.getOtp(), target); assertTrue(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verify if full name is displayed"); CommonMethods.enableAirplaneMode(); @@ -153,4 +161,190 @@ public void verifyListOfLanguagesInOfflineMode() { assertTrue(settingsPage.verifyLanguagesInLanguageFilter(), "Verify if all languages are shown in language filter"); CommonMethods.disableAirplaneMode(); } -} + + @Test + public void verifyHelpPageOfflineMode() { + CommonMethods.enableAirplaneMode(); + + ChooseLanguagePage chooseLanguagePage = new ChooseLanguagePage(driver); + + assertTrue(chooseLanguagePage.isChooseLanguagePageLoaded(), "Verify if choose language page is displayed"); + WelcomePage welcomePage = chooseLanguagePage.clickOnSavePreference(); + + assertTrue(welcomePage.isWelcomePageLoaded(), "Verify if welcome page is loaded"); + AppUnlockMethodPage appUnlockMethodPage = welcomePage.clickOnSkipButton(); + + assertTrue(appUnlockMethodPage.isAppUnlockMethodPageLoaded(), "Verify if app unlocked page is displayed"); + SetPasscode setPasscode = appUnlockMethodPage.clickOnUsePasscode(); + + assertTrue(setPasscode.isSetPassCodePageLoaded(), "Verify if set passcode page is displayed"); + ConfirmPasscode confirmPasscode = setPasscode.enterPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(confirmPasscode.isConfirmPassCodePageLoaded(), "Verify if confirm passcode page is displayed"); + HomePage homePage = confirmPasscode.confirmPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); + HelpPage helpPage = homePage.clickOnHelpIcon(); + + assertTrue(helpPage.isHelpPageLoaded(), "Verify if help page is displayed"); + helpPage.exitHelpPage(); + + assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); + CommonMethods.disableAirplaneMode(); + } + + @Test + public void deleteDownloadedVcInOfflineMode() throws InterruptedException { + ChooseLanguagePage chooseLanguagePage = new ChooseLanguagePage(driver); + + assertTrue(chooseLanguagePage.isChooseLanguagePageLoaded(), "Verify if choose language page is displayed"); + WelcomePage welcomePage = chooseLanguagePage.clickOnSavePreference(); + + assertTrue(welcomePage.isWelcomePageLoaded(), "Verify if welcome page is loaded"); + AppUnlockMethodPage appUnlockMethodPage = welcomePage.clickOnSkipButton(); + + assertTrue(appUnlockMethodPage.isAppUnlockMethodPageLoaded(), "Verify if app unlocked page is displayed"); + SetPasscode setPasscode = appUnlockMethodPage.clickOnUsePasscode(); + + assertTrue(setPasscode.isSetPassCodePageLoaded(), "Verify if set passcode page is displayed"); + ConfirmPasscode confirmPasscode = setPasscode.enterPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(confirmPasscode.isConfirmPassCodePageLoaded(), "Verify if confirm passcode page is displayed"); + HomePage homePage = confirmPasscode.confirmPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); + AddNewCardPage addNewCardPage = homePage.downloadCard(); + + assertTrue(addNewCardPage.isAddNewCardPageLoaded(), "Verify if add new card page is displayed"); + RetrieveIdPage retrieveIdPage = addNewCardPage.clickOnDownloadViaUin(); + + assertTrue(retrieveIdPage.isRetrieveIdPageLoaded(), "Verify if retrieve id page is displayed"); + OtpVerificationPage otpVerification = retrieveIdPage.setEnterIdTextBox(TestDataReader.readData("uin")).clickOnGenerateCardButton(); + + assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); + otpVerification.enterOtp(BaseTestCase.getOtp(), target); + + assertTrue(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verify if full name is displayed"); + CommonMethods.enableAirplaneMode(); + + MoreOptionsPage moreOptionsPage = homePage.clickOnMoreOptionsButton(); + assertTrue(moreOptionsPage.isMoreOptionsPageLoaded(), "Verify if more options page is displayed"); + + PleaseConfirmPopupPage pleaseConfirmPopupPage = moreOptionsPage.clickOnRemoveFromWallet(); + assertTrue(pleaseConfirmPopupPage.isPleaseConfirmPopupPageLoaded(), "Verify if pop up page is displayed"); + + pleaseConfirmPopupPage.clickOnConfirmButton(); + + CommonMethods.disableAirplaneMode(); + assertTrue(homePage.isNoVCDownloaded(), "Verify if VC is removed"); + } + + @Test + public void openQrOffline() throws InterruptedException { + ChooseLanguagePage chooseLanguagePage = new ChooseLanguagePage(driver); + + assertTrue(chooseLanguagePage.isChooseLanguagePageLoaded(), "Verify if choose language page is displayed"); + WelcomePage welcomePage = chooseLanguagePage.clickOnSavePreference(); + + assertTrue(welcomePage.isWelcomePageLoaded(), "Verify if welcome page is loaded"); + AppUnlockMethodPage appUnlockMethodPage = welcomePage.clickOnSkipButton(); + + assertTrue(appUnlockMethodPage.isAppUnlockMethodPageLoaded(), "Verify if app unlocked page is displayed"); + SetPasscode setPasscode = appUnlockMethodPage.clickOnUsePasscode(); + + assertTrue(setPasscode.isSetPassCodePageLoaded(), "Verify if set passcode page is displayed"); + ConfirmPasscode confirmPasscode = setPasscode.enterPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(confirmPasscode.isConfirmPassCodePageLoaded(), "Verify if confirm passcode page is displayed"); + HomePage homePage = confirmPasscode.confirmPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); + + AddNewCardPage addNewCardPage = homePage.downloadCard(); + + assertTrue(addNewCardPage.isAddNewCardPageLoaded(), "Verify if add new card page is displayed"); + RetrieveIdPage retrieveIdPage = addNewCardPage.clickOnDownloadViaUin(); + + assertTrue(retrieveIdPage.isRetrieveIdPageLoaded(), "Verify if retrieve id page is displayed"); + OtpVerificationPage otpVerification = retrieveIdPage.setEnterIdTextBox(TestDataReader.readData("uin")).clickOnGenerateCardButton(); + + assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); + otpVerification.enterOtp(BaseTestCase.getOtp(), target); + + assertTrue(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verify if full name is displayed"); + CommonMethods.enableAirplaneMode(); + + DetailedVcViewPage detailedVcViewPage = homePage.openDetailedVcView(TestDataReader.readData("fullName")); + detailedVcViewPage.clickOnQrCodeButton(); + assertTrue(detailedVcViewPage.isQrCodeDisplayed(), "Verify if QR Code header is displayed"); + + detailedVcViewPage.clickOnQrCrossIcon(); + assertTrue(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verify if full name is displayed"); + + CommonMethods.disableAirplaneMode(); + } + + @Test + public void verifyRecivedCardOffline() throws InterruptedException { + CommonMethods.enableAirplaneMode(); + ChooseLanguagePage chooseLanguagePage = new ChooseLanguagePage(driver); + + assertTrue(chooseLanguagePage.isChooseLanguagePageLoaded(), "Verify if choose language page is displayed"); + WelcomePage welcomePage = chooseLanguagePage.clickOnSavePreference(); + + assertTrue(welcomePage.isWelcomePageLoaded(), "Verify if welcome page is loaded"); + AppUnlockMethodPage appUnlockMethodPage = welcomePage.clickOnSkipButton(); + + assertTrue(appUnlockMethodPage.isAppUnlockMethodPageLoaded(), "Verify if app unlocked page is displayed"); + SetPasscode setPasscode = appUnlockMethodPage.clickOnUsePasscode(); + + assertTrue(setPasscode.isSetPassCodePageLoaded(), "Verify if set passcode page is displayed"); + ConfirmPasscode confirmPasscode = setPasscode.enterPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(confirmPasscode.isConfirmPassCodePageLoaded(), "Verify if confirm passcode page is displayed"); + HomePage homePage = confirmPasscode.confirmPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); + SettingsPage settingsPage = homePage.clickOnSettingIcon(); + + ReceiveCardPage receiveCardPage = settingsPage.clickOnReceiveCard(); + assertTrue(receiveCardPage.isReceiveCardHederDisplayed(), "Verify if QR code header is displayed"); + + assertTrue(receiveCardPage.isWaitingForConnectionDisplayed(), "Verify if waiting for connection displayed"); + CommonMethods.disableAirplaneMode(); + } + + @Test + public void downloadCardWithoutInternetRetryWithInternet() throws InterruptedException { + CommonMethods.enableAirplaneMode(); + + ChooseLanguagePage chooseLanguagePage = new ChooseLanguagePage(driver); + + assertTrue(chooseLanguagePage.isChooseLanguagePageLoaded(), "Verify if choose language page is displayed"); + WelcomePage welcomePage = chooseLanguagePage.clickOnSavePreference(); + + assertTrue(welcomePage.isWelcomePageLoaded(), "Verify if welcome page is loaded"); + AppUnlockMethodPage appUnlockMethodPage = welcomePage.clickOnSkipButton(); + + assertTrue(appUnlockMethodPage.isAppUnlockMethodPageLoaded(), "Verify if app unlocked page is displayed"); + SetPasscode setPasscode = appUnlockMethodPage.clickOnUsePasscode(); + + assertTrue(setPasscode.isSetPassCodePageLoaded(), "Verify if set passcode page is displayed"); + ConfirmPasscode confirmPasscode = setPasscode.enterPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(confirmPasscode.isConfirmPassCodePageLoaded(), "Verify if confirm passcode page is displayed"); + HomePage homePage = confirmPasscode.confirmPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); + AddNewCardPage addNewCardPage = homePage.downloadCard(); + + assertTrue(homePage.isNoInternetConnectionDisplayed(), "Verify if no internet connection is displayed"); + assertTrue(homePage.isTryAgainButtonDisplayed(), "Verify if try again button displayed"); + + CommonMethods.disableAirplaneMode(); + assertTrue(homePage.isTryAgainButtonNotDisplayed(), "Wating for network come online"); + + homePage.clickOnTryAgainButton(); + assertTrue(addNewCardPage.isAddNewCardPageLoaded(), "Verify if add new card page is displayed"); + } +} \ No newline at end of file diff --git a/injitest/src/main/java/io/mosip/test/mob/inji/testcases/PinVcTest.java b/injitest/src/main/java/io/mosip/test/mob/inji/testcases/PinVcTest.java index ce8905657d..a46aafc5aa 100644 --- a/injitest/src/main/java/io/mosip/test/mob/inji/testcases/PinVcTest.java +++ b/injitest/src/main/java/io/mosip/test/mob/inji/testcases/PinVcTest.java @@ -37,10 +37,10 @@ public void pinVc() throws InterruptedException { RetrieveIdPage retrieveIdPage = addNewCardPage.clickOnDownloadViaUin(); assertTrue(retrieveIdPage.isRetrieveIdPageLoaded(), "Verify if retrieve id page is displayed"); - OtpVerificationPage otpVerification = retrieveIdPage.setEnterIdTextBox(BaseTestCase.uin).clickOnGenerateCardButton(); + OtpVerificationPage otpVerification = retrieveIdPage.setEnterIdTextBox(TestDataReader.readData("uin")).clickOnGenerateCardButton(); assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); - otpVerification.enterOtp(GetOtp(), target); + otpVerification.enterOtp(BaseTestCase.getOtp(), target); assertTrue(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verify if full name is displayed"); MoreOptionsPage moreOptionsPage = homePage.clickOnMoreOptionsButton(); @@ -77,10 +77,10 @@ public void VerifyCameraOpenAfterPinVc() throws InterruptedException { RetrieveIdPage retrieveIdPage = addNewCardPage.clickOnDownloadViaUin(); assertTrue(retrieveIdPage.isRetrieveIdPageLoaded(), "Verify if retrieve id page is displayed"); - OtpVerificationPage otpVerification = retrieveIdPage.setEnterIdTextBox(BaseTestCase.uin).clickOnGenerateCardButton(); + OtpVerificationPage otpVerification = retrieveIdPage.setEnterIdTextBox(TestDataReader.readData("uin")).clickOnGenerateCardButton(); assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); - otpVerification.enterOtp(GetOtp(), target); + otpVerification.enterOtp(BaseTestCase.getOtp(), target); assertTrue(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verify if full name is displayed"); MoreOptionsPage moreOptionsPage = homePage.clickOnMoreOptionsButton(); diff --git a/injitest/src/main/java/io/mosip/test/mob/inji/testcases/ReceiveCardTest.java b/injitest/src/main/java/io/mosip/test/mob/inji/testcases/ReceiveCardTest.java new file mode 100644 index 0000000000..6f9ad87523 --- /dev/null +++ b/injitest/src/main/java/io/mosip/test/mob/inji/testcases/ReceiveCardTest.java @@ -0,0 +1,76 @@ +package io.mosip.test.mob.inji.testcases; + +import static org.testng.Assert.assertTrue; + +import org.testng.annotations.Test; + +import io.mosip.test.mob.inji.pages.AppUnlockMethodPage; +import io.mosip.test.mob.inji.pages.ChooseLanguagePage; +import io.mosip.test.mob.inji.pages.ConfirmPasscode; +import io.mosip.test.mob.inji.pages.HomePage; +import io.mosip.test.mob.inji.pages.ReceiveCardPage; +import io.mosip.test.mob.inji.pages.SetPasscode; +import io.mosip.test.mob.inji.pages.SettingsPage; +import io.mosip.test.mob.inji.pages.WelcomePage; +import io.mosip.test.mob.inji.utils.TestDataReader; + +public class ReceiveCardTest extends BaseTest { + + @Test + public void verifyRecivedCardAndQrCode() { + ChooseLanguagePage chooseLanguagePage = new ChooseLanguagePage(driver); + + assertTrue(chooseLanguagePage.isChooseLanguagePageLoaded(), "Verify if choose language page is displayed"); + WelcomePage welcomePage = chooseLanguagePage.clickOnSavePreference(); + + assertTrue(welcomePage.isWelcomePageLoaded(), "Verify if welcome page is loaded"); + AppUnlockMethodPage appUnlockMethodPage = welcomePage.clickOnSkipButton(); + + assertTrue(appUnlockMethodPage.isAppUnlockMethodPageLoaded(), "Verify if app unlocked page is displayed"); + SetPasscode setPasscode = appUnlockMethodPage.clickOnUsePasscode(); + + assertTrue(setPasscode.isSetPassCodePageLoaded(), "Verify if set passcode page is displayed"); + ConfirmPasscode confirmPasscode = setPasscode.enterPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(confirmPasscode.isConfirmPassCodePageLoaded(), "Verify if confirm passcode page is displayed"); + HomePage homePage = confirmPasscode.confirmPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); + SettingsPage settingsPage = homePage.clickOnSettingIcon(); + + ReceiveCardPage receiveCardPage = settingsPage.clickOnReceiveCard(); + assertTrue(receiveCardPage.isReceiveCardHederDisplayed(), "Verify if QR code header is displayed"); + assertTrue(receiveCardPage.isWaitingForConnectionDisplayed(), "Verify if waiting for connection displayed"); + } + + @Test + public void verifyRecivedCardAndQrCodeInFilipinoLanguage() { + ChooseLanguagePage chooseLanguagePage = new ChooseLanguagePage(driver); + + assertTrue(chooseLanguagePage.isChooseLanguagePageLoaded(), "Verify if choose language page is displayed"); + WelcomePage welcomePage = chooseLanguagePage.clickOnSavePreference(); + + assertTrue(welcomePage.isWelcomePageLoaded(), "Verify if welcome page is loaded"); + AppUnlockMethodPage appUnlockMethodPage = welcomePage.clickOnSkipButton(); + + assertTrue(appUnlockMethodPage.isAppUnlockMethodPageLoaded(), "Verify if app unlocked page is displayed"); + SetPasscode setPasscode = appUnlockMethodPage.clickOnUsePasscode(); + + assertTrue(setPasscode.isSetPassCodePageLoaded(), "Verify if set passcode page is displayed"); + ConfirmPasscode confirmPasscode = setPasscode.enterPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(confirmPasscode.isConfirmPassCodePageLoaded(), "Verify if confirm passcode page is displayed"); + HomePage homePage = confirmPasscode.confirmPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); + SettingsPage settingsPage = homePage.clickOnSettingIcon(); + + assertTrue(settingsPage.isSettingPageLoaded(), "Verify if setting page is displayed"); + settingsPage.clickOnLanguage().clickOnFilipinoLanguage(); + + assertTrue(settingsPage.verifyFilipinoLanguage(), "Verify if language is changed to filipino"); + ReceiveCardPage receiveCardPage =settingsPage.clickOnReceiveCardFilipinoLanguage(); + + assertTrue(receiveCardPage.isReceiveCardHederInFilipinoLanguageDisplayed(), "Verify if QR code header is displayed filipino"); + } +} diff --git a/injitest/src/main/java/io/mosip/test/mob/inji/testcases/UnlockWithPasscodeTest.java b/injitest/src/main/java/io/mosip/test/mob/inji/testcases/UnlockWithPasscodeTest.java index b9f96241f4..1e8f96b496 100644 --- a/injitest/src/main/java/io/mosip/test/mob/inji/testcases/UnlockWithPasscodeTest.java +++ b/injitest/src/main/java/io/mosip/test/mob/inji/testcases/UnlockWithPasscodeTest.java @@ -45,7 +45,7 @@ public void logoutAndLoginWithPasscode() { @Test public void loginWithInvalidPasscode() { - ChooseLanguagePage chooseLanguagePage = new ChooseLanguagePage(driver); + ChooseLanguagePage chooseLanguagePage = new ChooseLanguagePage(driver); assertTrue(chooseLanguagePage.isChooseLanguagePageLoaded(), "Verify if choose language page is displayed"); WelcomePage welcomePage = chooseLanguagePage.clickOnSavePreference(); @@ -57,11 +57,23 @@ public void loginWithInvalidPasscode() { SetPasscode setPasscode = appUnlockMethodPage.clickOnUsePasscode(); assertTrue(setPasscode.isSetPassCodePageLoaded(), "Verify if set passcode page is displayed"); - ConfirmPasscode confirmPasscode = setPasscode.enterPasscode(TestDataReader.readData("invalidpasscode"), target); + ConfirmPasscode confirmPasscode = setPasscode.enterPasscode(TestDataReader.readData("passcode"), target); assertTrue(confirmPasscode.isConfirmPassCodePageLoaded(), "Verify if confirm passcode page is displayed"); HomePage homePage = confirmPasscode.confirmPasscode(TestDataReader.readData("passcode"), target); + assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); + SettingsPage settingsPage = homePage.clickOnSettingIcon(); + + assertTrue(settingsPage.isSettingPageLoaded(), "Verify if setting page is displayed"); + UnlockApplicationPage unlockApplicationPage = settingsPage.clickOnLogoutButton(); + + assertTrue(unlockApplicationPage.isUnlockApplicationPageLoaded(), "Verify if unlock application page is displayed"); + EnterYourPasscodePage enterYourPasscodePage = unlockApplicationPage.clickOnUnlockApplicationButton(); + + assertTrue(enterYourPasscodePage.isEnterYourPasscodePageLoaded(), "Verify if enter your passcode page is displayed"); + enterYourPasscodePage.enterYourPasscode(TestDataReader.readData("invalidPasscode"), target); + assertTrue(confirmPasscode.isPasscodeInvalidMessageDisplayed(), "verify if invalid passcode is displayed"); } diff --git a/injitest/src/main/java/io/mosip/test/mob/inji/testcases/VcDownloadAndVerifyUsingUinTest.java b/injitest/src/main/java/io/mosip/test/mob/inji/testcases/VcDownloadAndVerifyUsingUinTest.java index d1a4507f70..7350bad702 100644 --- a/injitest/src/main/java/io/mosip/test/mob/inji/testcases/VcDownloadAndVerifyUsingUinTest.java +++ b/injitest/src/main/java/io/mosip/test/mob/inji/testcases/VcDownloadAndVerifyUsingUinTest.java @@ -39,13 +39,16 @@ public void downloadAndVerifyVcUsingUin() { OtpVerificationPage otpVerification = retrieveIdPage.setEnterIdTextBox(TestDataReader.readData("uin")).clickOnGenerateCardButton(); assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); - otpVerification.enterOtp(GetOtp(), target); + otpVerification.enterOtp(BaseTestCase.getOtp(), target); assertTrue(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verify if full name is displayed"); assertTrue(homePage.isIdTypeDisplayed(), "Verify if id type is displayed"); DetailedVcViewPage detailedVcViewPage = homePage.openDetailedVcView(TestDataReader.readData("fullName")); + detailedVcViewPage.clickOnQrCodeButton(); + assertTrue(detailedVcViewPage.isQrCodeDisplayed(), "Verify if QR Code header is displayed"); + detailedVcViewPage.clickOnQrCrossIcon(); assertTrue(detailedVcViewPage.isDetailedVcViewPageLoaded(), "Verify if detailed Vc view page is displayed"); assertEquals(detailedVcViewPage.getNameInDetailedVcView(), TestDataReader.readData("fullName"), "Verify if full name is displayed"); assertEquals(detailedVcViewPage.getDateOfBirthInDetailedVcView(), TestDataReader.readData("dateOfBirth"), "Verify if date of birth is displayed"); @@ -84,10 +87,10 @@ public void downloadMultipleVcUsingDifferentUin() { RetrieveIdPage retrieveIdPage = addNewCardPage.clickOnDownloadViaUin(); assertTrue(retrieveIdPage.isRetrieveIdPageLoaded(), "Verify if retrieve id page is displayed"); - OtpVerificationPage otpVerification = retrieveIdPage.setEnterIdTextBox(BaseTestCase.uin).clickOnGenerateCardButton(); + OtpVerificationPage otpVerification = retrieveIdPage.setEnterIdTextBox(TestDataReader.readData("uin")).clickOnGenerateCardButton(); assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); - otpVerification.enterOtp(GetOtp(), target); + otpVerification.enterOtp(BaseTestCase.getOtp(), target); assertTrue(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verify if full name is displayed"); @@ -100,7 +103,7 @@ public void downloadMultipleVcUsingDifferentUin() { retrieveIdPage.setEnterIdTextBox(TestDataReader.readData("uin2")).clickOnGenerateCardButton(); assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); - otpVerification.enterOtp(GetOtp(), target); + otpVerification.enterOtp(BaseTestCase.getOtp(), target); assertTrue(homePage.isNameDisplayed(TestDataReader.readData("uin2FullName")), "Verify if second VC is displayed"); assertTrue(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verifying again if first VC is still exists."); @@ -164,10 +167,10 @@ public void generateMultipleVcWithSameUin() throws InterruptedException { RetrieveIdPage retrieveIdPage = addNewCardPage.clickOnDownloadViaUin(); assertTrue(retrieveIdPage.isRetrieveIdPageLoaded(), "Verify if retrieve id page is displayed"); - OtpVerificationPage otpVerification = retrieveIdPage.setEnterIdTextBox(BaseTestCase.uin).clickOnGenerateCardButton(); + OtpVerificationPage otpVerification = retrieveIdPage.setEnterIdTextBox(TestDataReader.readData("uin")).clickOnGenerateCardButton(); assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); - otpVerification.enterOtp(GetOtp(), target); + otpVerification.enterOtp(BaseTestCase.getOtp(), target); assertTrue(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verify if full name is displayed"); @@ -177,19 +180,17 @@ public void generateMultipleVcWithSameUin() throws InterruptedException { addNewCardPage.clickOnDownloadViaUin(); assertTrue(retrieveIdPage.isRetrieveIdPageLoaded(), "Verify if retrieve id page is displayed"); - retrieveIdPage.setEnterIdTextBox(BaseTestCase.uin).clickOnGenerateCardButton(); + retrieveIdPage.setEnterIdTextBox(TestDataReader.readData("uin")).clickOnGenerateCardButton(); assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); - otpVerification.enterOtp(GetOtp(), target); + otpVerification.enterOtp(BaseTestCase.getOtp(), target); - assertTrue(homePage.isSecondNameDisplayed(TestDataReader.readData("fullName")), "Verify if full name is displayed"); + assertTrue(homePage.isSecondNameDisplayed(TestDataReader.readData("fullName")), "Verify if second card name is displayed"); HistoryPage historyPage = homePage.clickOnHistoryButton(); assertTrue(historyPage.isHistoryPageLoaded(), "Verify if history page is displayed"); - assertTrue(historyPage.verifyHistory(BaseTestCase.uin, target)); - historyPage.getNumberOfRecordsInHistory(BaseTestCase.uin, target,"Verify two download records inhistory page"); - assertEquals(historyPage.getNumberOfRecordsInHistory(BaseTestCase.uin, target,""),2); + assertEquals(historyPage.getNumberOfRecordsInHistory(TestDataReader.readData("uin"), target),2, "Verify two download records in history page"); } diff --git a/injitest/src/main/java/io/mosip/test/mob/inji/testcases/VcDownloadAndVerifyUsingVidTest.java b/injitest/src/main/java/io/mosip/test/mob/inji/testcases/VcDownloadAndVerifyUsingVidTest.java index 5f46e34e9a..ae80cd8ea7 100644 --- a/injitest/src/main/java/io/mosip/test/mob/inji/testcases/VcDownloadAndVerifyUsingVidTest.java +++ b/injitest/src/main/java/io/mosip/test/mob/inji/testcases/VcDownloadAndVerifyUsingVidTest.java @@ -38,7 +38,7 @@ public void downloadAndVerifyVcUsingVid() { OtpVerificationPage otpVerification = retrieveIdPage.clickOnVid(target).setEnterIdTextBox(BaseTestCase.perpetualVid).clickOnGenerateCardButton(); assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); - otpVerification.enterOtp(GetOtp(), target); + otpVerification.enterOtp(BaseTestCase.getOtp(), target); assertTrue(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verify if full name is displayed"); DetailedVcViewPage detailedVcViewPage = homePage.openDetailedVcView(TestDataReader.readData("fullName")); @@ -75,7 +75,7 @@ public void downloadTwoVcDeleteOneUsingVid() throws InterruptedException { OtpVerificationPage otpVerification = retrieveIdPage.clickOnVid(target).setEnterIdTextBox(BaseTestCase.perpetualVid).clickOnGenerateCardButton(); assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); - otpVerification.enterOtp(GetOtp(), target); + otpVerification.enterOtp(BaseTestCase.getOtp(), target); assertTrue(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verify if full name is displayed"); @@ -88,7 +88,7 @@ public void downloadTwoVcDeleteOneUsingVid() throws InterruptedException { retrieveIdPage.clickOnVid(target).setEnterIdTextBox(BaseTestCase.perpetualVid).clickOnGenerateCardButton(); assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); - otpVerification.enterOtp(GetOtp(), target); + otpVerification.enterOtp(BaseTestCase.getOtp(), target); assertTrue(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verify if full name is displayed"); // @@ -134,4 +134,34 @@ public void verifyInvalidVidErrorMessage() { assertTrue(retrieveIdPage.isIncorrectInputFormatErrorMessageDisplayed()); } -} + @Test + public void downloadAndVerifyVcUsingRevokeVid() { + ChooseLanguagePage chooseLanguagePage = new ChooseLanguagePage(driver); + + assertTrue(chooseLanguagePage.isChooseLanguagePageLoaded(), "Verify if choose language page is displayed"); + WelcomePage welcomePage = chooseLanguagePage.clickOnSavePreference(); + + assertTrue(welcomePage.isWelcomePageLoaded(), "Verify if welcome page is loaded"); + AppUnlockMethodPage appUnlockMethodPage = welcomePage.clickOnSkipButton(); + + assertTrue(appUnlockMethodPage.isAppUnlockMethodPageLoaded(), "Verify if app unlocked page is displayed"); + SetPasscode setPasscode = appUnlockMethodPage.clickOnUsePasscode(); + + assertTrue(setPasscode.isSetPassCodePageLoaded(), "Verify if set passcode page is displayed"); + ConfirmPasscode confirmPasscode = setPasscode.enterPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(confirmPasscode.isConfirmPassCodePageLoaded(), "Verify if confirm passcode page is displayed"); + HomePage homePage = confirmPasscode.confirmPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); + AddNewCardPage addNewCardPage = homePage.downloadCard(); + + assertTrue(addNewCardPage.isAddNewCardPageLoaded(), "Verify if add new card page is displayed"); + RetrieveIdPage retrieveIdPage = addNewCardPage.clickOnDownloadViaUin(); + + assertTrue(retrieveIdPage.isRetrieveIdPageLoaded(), "Verify if retrieve id page is displayed"); + OtpVerificationPage otpVerification = retrieveIdPage.clickOnVid(target).setEnterIdTextBox(TestDataReader.readData("revokevid")).clickOnGenerateCardButton(); + + assertTrue(otpVerification.vidNotAvailableDisplayed(), "Verify if vid is not available message displayed"); + } +} \ No newline at end of file diff --git a/injitest/src/main/java/io/mosip/test/mob/inji/testcases/VerifyHelpPageTest.java b/injitest/src/main/java/io/mosip/test/mob/inji/testcases/VerifyHelpPageTest.java index 05f0fdf245..54a00f7cc4 100644 --- a/injitest/src/main/java/io/mosip/test/mob/inji/testcases/VerifyHelpPageTest.java +++ b/injitest/src/main/java/io/mosip/test/mob/inji/testcases/VerifyHelpPageTest.java @@ -4,6 +4,7 @@ import io.mosip.test.mob.inji.pages.*; import io.mosip.test.mob.inji.utils.TestDataReader; +import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertTrue; public class VerifyHelpPageTest extends BaseTest { @@ -31,11 +32,13 @@ public void verifyHelpPage() { assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); HelpPage helpPage = homePage.clickOnHelpIcon(); - helpPage.ScrollToViewActivityLog(); + assertEquals(helpPage.ishelpPageContentEmpty(),false,"verifying text is not empty"); + helpPage.scrollPerformInHelpPage(); assertTrue(helpPage.isHelpPageLoaded(), "Verify if help page is displayed"); helpPage.exitHelpPage(); + assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); } diff --git a/injitest/src/main/java/io/mosip/test/mob/inji/testcases/VerifyHistoryTest.java b/injitest/src/main/java/io/mosip/test/mob/inji/testcases/VerifyHistoryTest.java index 909c587db7..87bd026d5f 100644 --- a/injitest/src/main/java/io/mosip/test/mob/inji/testcases/VerifyHistoryTest.java +++ b/injitest/src/main/java/io/mosip/test/mob/inji/testcases/VerifyHistoryTest.java @@ -35,16 +35,16 @@ public void downloadVcAndVerifyHistory() { RetrieveIdPage retrieveIdPage = addNewCardPage.clickOnDownloadViaUin(); assertTrue(retrieveIdPage.isRetrieveIdPageLoaded(), "Verify if retrieve id page is displayed"); - OtpVerificationPage otpVerification = retrieveIdPage.setEnterIdTextBox(BaseTestCase.uin).clickOnGenerateCardButton(); + OtpVerificationPage otpVerification = retrieveIdPage.setEnterIdTextBox(TestDataReader.readData("uin")).clickOnGenerateCardButton(); assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); - otpVerification.enterOtp(GetOtp(), target); + otpVerification.enterOtp(BaseTestCase.getOtp(), target); assertTrue(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verify if full name is displayed"); HistoryPage historyPage = homePage.clickOnHistoryButton(); assertTrue(historyPage.isHistoryPageLoaded(), "Verify if history page is displayed"); - assertTrue(historyPage.verifyHistory(BaseTestCase.uin, target)); + assertTrue(historyPage.verifyHistory(TestDataReader.readData("uin"), target)); } @@ -78,7 +78,7 @@ public void verifyActivationFailedRecordInHistory() throws InterruptedException OtpVerificationPage otpVerification = retrieveIdPage.setEnterIdTextBox(TestDataReader.readData("uin")).clickOnGenerateCardButton(); assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); - otpVerification.enterOtp(GetOtp(), target); + otpVerification.enterOtp(BaseTestCase.getOtp(), target); assertTrue(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verify if full name is displayed"); MoreOptionsPage moreOptionsPage = homePage.clickOnMoreOptionsButton(); @@ -95,7 +95,7 @@ public void verifyActivationFailedRecordInHistory() throws InterruptedException assertTrue(otpVerificationPage.somethingWetWrongInVcActivationDisplayed(), "Verify if Something is wrong. Please try again later displayed"); assertTrue(otpVerificationPage.isCancelButtonDisplayed(), "Verify if cancel button is displayed"); - HistoryPage historyPage = otpVerificationPage.clickOnCancelButton().ClickOnCloseButton().clickOnHistoryButton(); + HistoryPage historyPage = otpVerificationPage.clickOnCancelButton().clickOnCloseButton().clickOnHistoryButton(); assertTrue(historyPage.isHistoryPageLoaded(), "Verify if history page is displayed"); assertTrue(historyPage.verifyActivationFailedRecordInHistory(TestDataReader.readData("uin"), target)); } @@ -130,7 +130,7 @@ public void verifyActivationFailedRecordInHistoryFromDetailedView() throws Inter OtpVerificationPage otpVerification = retrieveIdPage.setEnterIdTextBox(TestDataReader.readData("uin")).clickOnGenerateCardButton(); assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); - otpVerification.enterOtp(GetOtp(), target); + otpVerification.enterOtp(BaseTestCase.getOtp(), target); assertTrue(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verify if full name is displayed"); DetailedVcViewPage detailedVcViewPage = homePage.openDetailedVcView(TestDataReader.readData("fullName")); @@ -182,7 +182,7 @@ public void activateVcAndVerifyInHistory() throws InterruptedException { OtpVerificationPage otpVerification = retrieveIdPage.setEnterIdTextBox(TestDataReader.readData("uin")).clickOnGenerateCardButton(); assertTrue(otpVerification.isOtpVerificationPageLoaded(), "Verify if otp verification page is displayed"); - otpVerification.enterOtp(GetOtp(), target); + otpVerification.enterOtp(BaseTestCase.getOtp(), target); assertTrue(homePage.isNameDisplayed(TestDataReader.readData("fullName")), "Verify if full name is displayed"); MoreOptionsPage moreOptionsPage = homePage.clickOnMoreOptionsButton(); @@ -197,7 +197,7 @@ public void activateVcAndVerifyInHistory() throws InterruptedException { otpVerificationPage.enterOtp(TestDataReader.readData("passcode"), target); assertTrue(moreOptionsPage.isVcActivatedForOnlineLogin(), "Verify if VC is activated"); - HistoryPage historyPage = moreOptionsPage.ClickOnCloseButton().clickOnHistoryButton(); + HistoryPage historyPage = moreOptionsPage.clickOnCloseButton().clickOnHistoryButton(); assertTrue(historyPage.isHistoryPageLoaded(), "Verify if history page is displayed"); assertTrue(historyPage.verifyActivationSuccessfulRecordInHistory(TestDataReader.readData("uin"), target)); diff --git a/injitest/src/main/java/io/mosip/test/mob/inji/testcases/VerifyWelcomePagesTest.java b/injitest/src/main/java/io/mosip/test/mob/inji/testcases/VerifyWelcomePagesTest.java index 3e5cc876ee..7337d78fa9 100644 --- a/injitest/src/main/java/io/mosip/test/mob/inji/testcases/VerifyWelcomePagesTest.java +++ b/injitest/src/main/java/io/mosip/test/mob/inji/testcases/VerifyWelcomePagesTest.java @@ -77,4 +77,85 @@ public void verifyWelcomePagesFromInjiTourGuide() { assertTrue(hassleFreeAuthenticationPage.isHassleFreeAuthenticationPageLoaded(), "Verify if hassle free authentication page is loaded"); assertEquals(hassleFreeAuthenticationPage.getHassleFreeAuthenticationDescription(), "Authenticate yourself with ease using the stored digital credential."); } -} + + @Test + public void verifyGoBackFromInjiTourGuide() { + ChooseLanguagePage chooseLanguagePage = new ChooseLanguagePage(driver); + + assertTrue(chooseLanguagePage.isChooseLanguagePageLoaded(), "Verify if choose language page is displayed"); + WelcomePage welcomePage = chooseLanguagePage.clickOnSavePreference(); + + assertTrue(welcomePage.isWelcomePageLoaded(), "Verify if welcome page is loaded"); + AppUnlockMethodPage appUnlockMethodPage = welcomePage.clickOnSkipButton(); + + assertTrue(appUnlockMethodPage.isAppUnlockMethodPageLoaded(), "Verify if app unlocked page is displayed"); + SetPasscode setPasscode = appUnlockMethodPage.clickOnUsePasscode(); + + assertTrue(setPasscode.isSetPassCodePageLoaded(), "Verify if set passcode page is displayed"); + ConfirmPasscode confirmPasscode = setPasscode.enterPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(confirmPasscode.isConfirmPassCodePageLoaded(), "Verify if confirm passcode page is displayed"); + HomePage homePage = confirmPasscode.confirmPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); + SettingsPage settingsPage = homePage.clickOnSettingIcon(); + + assertTrue(settingsPage.isSettingPageLoaded(), "Verify if setting page is displayed"); + settingsPage.clickOnInjiTourGuide(); + + assertTrue(welcomePage.isWelcomePageLoaded(), "Verify if welcome page is loaded"); + assertEquals(welcomePage.getWelcomeDescription(), "Keep your digital credential with you at all times. Inji helps you manage and use them effectively. To get started, add cards to your profile."); + welcomePage.clickOnNextButton(); + + TrustedDigitalWalletPage trustedDigitalWalletPage = new TrustedDigitalWalletPage(driver); + assertTrue(trustedDigitalWalletPage.isTrustedDigitalWalletPageLoaded(), "Verify if trusted digital wallet page is loaded"); + + assertEquals(trustedDigitalWalletPage.getTrustedDigitalWalletDescription(), "Store and carry all your important cards in a single trusted wallet."); + trustedDigitalWalletPage.clickOnNextButton(); + + SecureSharingPage secureSharingPage = new SecureSharingPage(driver); + assertTrue(secureSharingPage.isSecureSharingPageLoaded(), "Verify if secure sharing page is loaded"); + + assertEquals(secureSharingPage.getSecureSharingDescription(), "Share your cards securely in a hassle free way and avail various services."); + secureSharingPage.clickOnNextButton(); + + HassleFreeAuthenticationPage hassleFreeAuthenticationPage = new HassleFreeAuthenticationPage(driver); + assertTrue(hassleFreeAuthenticationPage.isHassleFreeAuthenticationPageLoaded(), "Verify if hassle free authentication page is loaded"); + assertEquals(hassleFreeAuthenticationPage.getHassleFreeAuthenticationDescription(), "Authenticate yourself with ease using the stored digital credential."); + + hassleFreeAuthenticationPage.clickOnGoBack(); + assertTrue(homePage.isNoVCDownloaded(), "Verify if get back to home page"); + } + + @Test + public void verifyClickOnBackFromInjiTourGuide() { + ChooseLanguagePage chooseLanguagePage = new ChooseLanguagePage(driver); + + assertTrue(chooseLanguagePage.isChooseLanguagePageLoaded(), "Verify if choose language page is displayed"); + WelcomePage welcomePage = chooseLanguagePage.clickOnSavePreference(); + + assertTrue(welcomePage.isWelcomePageLoaded(), "Verify if welcome page is loaded"); + AppUnlockMethodPage appUnlockMethodPage = welcomePage.clickOnSkipButton(); + + assertTrue(appUnlockMethodPage.isAppUnlockMethodPageLoaded(), "Verify if app unlocked page is displayed"); + SetPasscode setPasscode = appUnlockMethodPage.clickOnUsePasscode(); + + assertTrue(setPasscode.isSetPassCodePageLoaded(), "Verify if set passcode page is displayed"); + ConfirmPasscode confirmPasscode = setPasscode.enterPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(confirmPasscode.isConfirmPassCodePageLoaded(), "Verify if confirm passcode page is displayed"); + HomePage homePage = confirmPasscode.confirmPasscode(TestDataReader.readData("passcode"), target); + + assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); + SettingsPage settingsPage = homePage.clickOnSettingIcon(); + + assertTrue(settingsPage.isSettingPageLoaded(), "Verify if setting page is displayed"); + settingsPage.clickOnInjiTourGuide(); + + assertTrue(welcomePage.isWelcomePageLoaded(), "Verify if welcome page is loaded"); + assertEquals(welcomePage.getWelcomeDescription(), "Keep your digital credential with you at all times. Inji helps you manage and use them effectively. To get started, add cards to your profile."); + + welcomePage.clickOnBackButton(); + assertTrue(homePage.isNoVCDownloaded(), "Verify if get back to home page"); + } +} \ No newline at end of file diff --git a/injitest/src/main/java/io/mosip/test/mob/inji/utils/CommonMethods.java b/injitest/src/main/java/io/mosip/test/mob/inji/utils/CommonMethods.java index 6a9af164e7..fe53af2bfa 100644 --- a/injitest/src/main/java/io/mosip/test/mob/inji/utils/CommonMethods.java +++ b/injitest/src/main/java/io/mosip/test/mob/inji/utils/CommonMethods.java @@ -25,28 +25,39 @@ public static void invokeAppFromBackGroundAndroid() { } catch (IOException e) { e.printStackTrace(); } - } - + public static void enableAirplaneMode() { try { - ProcessBuilder processBuilder = new ProcessBuilder("/bin/bash", "-c", "adb shell cmd connectivity airplane-mode enable"); + ProcessBuilder processBuilder=null; + String osName = System.getProperty("os.name"); + if (osName.contains("Windows")) { + processBuilder = new ProcessBuilder("cmd.exe", "/c", "adb shell cmd connectivity airplane-mode enable"); + + } else { + processBuilder = new ProcessBuilder("/bin/bash", "-c", "adb shell cmd connectivity airplane-mode enable"); + } processBuilder.redirectErrorStream(true); processBuilder.start(); } catch (IOException e) { e.printStackTrace(); } - } - + public static void disableAirplaneMode() { try { - ProcessBuilder processBuilder = new ProcessBuilder("/bin/bash", "-c", "adb shell cmd connectivity airplane-mode disable"); + ProcessBuilder processBuilder=null; + String osName = System.getProperty("os.name"); + if (osName.contains("Windows")) { + processBuilder = new ProcessBuilder("cmd.exe", "/c", "adb shell cmd connectivity airplane-mode disable"); + + } else { + processBuilder = new ProcessBuilder("/bin/bash\", \"-c\", \"adb shell cmd connectivity airplane-mode disable"); + } processBuilder.redirectErrorStream(true); processBuilder.start(); } catch (IOException e) { e.printStackTrace(); } - } } diff --git a/injitest/src/main/resources/TestData.json b/injitest/src/main/resources/TestData.json index eb50aca075..3446f93176 100644 --- a/injitest/src/main/resources/TestData.json +++ b/injitest/src/main/resources/TestData.json @@ -1,7 +1,13 @@ { "externalemail": "Resident_AddIdentity_ValidParam_smoke_Pos@mosip.net", "passcode": "111111", + "otp":"111111", "invalidOtp":"666666", + "newuin":"7059849273", + "revokevid":"6205860394830280", + "newaid":"10001100400008120231110021527", + "invalidpasscode": "123456", + "invaliduin": "1234567891", "fullName": "TEST_FULLNAMEeng", "idType": "National Card", "gender": "MLEeng", @@ -12,8 +18,11 @@ "aid": "10001100660000620230714065538", "setExcludedGroups":"AVT,PVT", "androidAppPath":"/Users/kamalsingh/TestAutomation/Inji/inji/injitest/apps/android/Inji.apk", - "androidDevice": "nightwatch-android-11", + "androidDevice": "emulator-5554", "uin": "6920386351", "uin2": "5740943928", - "uin2FullName": "fbgfhgfhghd" + "uin2FullName": "fbgfhgfhghd", + "newEnv":"https://api.qa-trinity.mosip.net", + "injiEnv":"https://api.qa-inji.mosip.net", + "invalidenv":"https://api.dev3.mosip" } \ No newline at end of file diff --git a/injitest/testng.xml b/injitest/testng.xml index 99b436a9af..0e9c7b76eb 100644 --- a/injitest/testng.xml +++ b/injitest/testng.xml @@ -20,6 +20,8 @@ + + @@ -27,6 +29,7 @@ + @@ -47,7 +50,7 @@ - + @@ -73,6 +76,7 @@ + @@ -94,6 +98,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/locales/ara.json b/locales/ara.json index e6d099c460..8bc8339dc7 100644 --- a/locales/ara.json +++ b/locales/ara.json @@ -475,6 +475,7 @@ "enableBluetoothMessage": "يرجى تمكين أذونات البلوتوث لدعم المشاركة المحلية", "enableBluetoothButtonText": "السماح لأذونات البلوتوث", "scanningGuide": "امسك الهاتف بثبات وامسح رمز الاستجابة السريعة ضوئيًا", + "invalidQR": "يرجى مسح QR صالح", "sharingVc": "مشاركة بطاقة ", "errors": { "locationDisabled": { diff --git a/locales/en.json b/locales/en.json index c4c636e77b..2706e79965 100644 --- a/locales/en.json +++ b/locales/en.json @@ -477,6 +477,7 @@ "enableBluetoothMessage": "Please enable bluetooth permissions to support local sharing", "enableBluetoothButtonText": "Allow bluetooth permissions", "scanningGuide": "Hold the phone steady and scan the QR code", + "invalidQR": "Please scan a valid QR", "errors": { "locationDisabled": { "message": "To continue, let your device turn on location", diff --git a/locales/fil.json b/locales/fil.json index b86053d5ce..e7c7e42c60 100644 --- a/locales/fil.json +++ b/locales/fil.json @@ -479,6 +479,7 @@ "enableBluetoothMessage": "Mangyaring paganahin ang mga pahintulot ng bluetooth upang suportahan ang lokal na pagbabahagi", "enableBluetoothButtonText": "Payagan ang mga pahintulot ng bluetooth", "scanningGuide": "Panatilihin ang telepono at i-scan ang QR code", + "invalidQR": "Mangyaring mag-scan ng wastong QR", "errors": { "locationDisabled": { "message": "Para magpatuloy, hayaang i-on ng iyong device ang lokasyon", diff --git a/locales/hin.json b/locales/hin.json index cb6bba0e01..a3b02ae7a8 100644 --- a/locales/hin.json +++ b/locales/hin.json @@ -476,6 +476,7 @@ "enableBluetoothMessage": "कृपया स्थानीय साझाकरण का समर्थन करने के लिए ब्लूटूथ अनुमतियाँ सक्षम करें", "enableBluetoothButtonText": "ब्लूटूथ अनुमतियाँ दें", "scanningGuide": "फ़ोन को स्थिर रखें और QR कोड को स्कैन करें", + "invalidQR": "कृपया एक वैध क्यूआर स्कैन करें", "errors": { "locationDisabled": { "message": "जारी रखने के लिए, अपने डिवाइस को स्थान चालू करने दें", diff --git a/locales/kan.json b/locales/kan.json index 9a48a18cc9..7774b29f07 100644 --- a/locales/kan.json +++ b/locales/kan.json @@ -474,6 +474,7 @@ "enableBluetoothMessage": "ದಯವಿಟ್ಟು ಸ್ಥಳೀಯ ಹಂಚಿಕೆಯನ್ನು ಬೆಂಬಲಿಸಲು ಬ್ಲೂಟೂತ್ ಅನುಮತಿಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ", "enableBluetoothButtonText": "ಬ್ಲೂಟೂತ್ ಅನುಮತಿಗಳನ್ನು ಅನುಮತಿಸಿ", "scanningGuide": "ಫೋನ್ ಅನ್ನು ಸ್ಥಿರವಾಗಿ ಹಿಡಿದುಕೊಳ್ಳಿ ಮತ್ತು QR ಕೋಡ್ ಅನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಿ", + "invalidQR": "ದಯವಿಟ್ಟು ಮಾನ್ಯವಾದ QR ಅನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಿ", "errors": { "locationDisabled": { "message": "ಮುಂದುವರಿಸಲು, ನಿಮ್ಮ ಸಾಧನವು ಸ್ಥಳವನ್ನು ಆನ್ ಮಾಡಲು ಅನುಮತಿಸಿ", diff --git a/locales/spa.json b/locales/spa.json index a3ae25b9cd..f12ae87fa6 100644 --- a/locales/spa.json +++ b/locales/spa.json @@ -893,6 +893,7 @@ "bluetoothStateIos": "Por favor, activa el Bluetooth desde el centro de control para admitir el intercambio local", "enableBluetoothMessage": "Por favor, habilita los permisos de Bluetooth para admitir el intercambio local", "enableBluetoothButtonText": "Permitir permisos de Bluetooth", + "invalidQR": "Por favor escanea un QR válido", "errors": { "locationDisabled": { "message": "Los servicios de ubicación deben estar habilitados para compartir la tarjeta", diff --git a/locales/tam.json b/locales/tam.json index 7bcb2115eb..001242e5a9 100644 --- a/locales/tam.json +++ b/locales/tam.json @@ -474,6 +474,7 @@ "enableBluetoothMessage": "உள்ளூர் பகிர்வை ஆதரிக்க புளூடூத் அனுமதிகளை இயக்கவும்", "enableBluetoothButtonText": "புளூடூத் அனுமதிகளை அனுமதிக்கவும்", "scanningGuide": "ஃபோனை நிலையாகப் பிடித்து, QR குறியீட்டை ஸ்கேன் செய்யவும்s", + "invalidQR": "ದಯವಿಟ್ಟು ಮಾನ್ಯವಾದ QR ಅನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಿ", "errors": { "locationDisabled": { "message": "தொடர, இருப்பிடத்தை இயக்க உங்கள் சாதனத்தை அனுமதிக்கவும்", diff --git a/machines/app.typegen.ts b/machines/app.typegen.ts index 6b2a3ad75b..62886cee33 100644 --- a/machines/app.typegen.ts +++ b/machines/app.typegen.ts @@ -9,7 +9,6 @@ export interface Typegen0 { checkFocusState: 'done.invoke.app.ready.focus:invocation[0]'; checkNetworkState: 'done.invoke.app.ready.network:invocation[0]'; getAppInfo: 'done.invoke.app.init.info:invocation[0]'; - getBackendInfo: 'done.invoke.app.init.devinfo:invocation[0]'; }; missingImplementations: { actions: never; @@ -31,7 +30,6 @@ export interface Typegen0 { requestDeviceInfo: 'REQUEST_DEVICE_INFO'; resetKeyInvalidateError: 'READY' | 'RESET_KEY_INVALIDATE_ERROR_DISMISS'; setAppInfo: 'APP_INFO_RECEIVED'; - setBackendInfo: 'BACKEND_INFO_RECEIVED'; setIsDecryptError: 'DECRYPT_ERROR'; setIsReadError: 'ERROR'; spawnServiceActors: 'READY'; @@ -46,15 +44,13 @@ export interface Typegen0 { eventsCausingDelays: {}; eventsCausingGuards: {}; eventsCausingServices: { - checkFocusState: 'BACKEND_INFO_RECEIVED'; - checkNetworkState: 'BACKEND_INFO_RECEIVED'; + checkFocusState: 'APP_INFO_RECEIVED'; + checkNetworkState: 'APP_INFO_RECEIVED'; getAppInfo: 'STORE_RESPONSE'; - getBackendInfo: 'APP_INFO_RECEIVED'; }; matchesStates: | 'init' | 'init.credentialRegistry' - | 'init.devinfo' | 'init.info' | 'init.services' | 'init.store' @@ -69,7 +65,7 @@ export interface Typegen0 { | 'ready.network.online' | 'waiting' | { - init?: 'credentialRegistry' | 'devinfo' | 'info' | 'services' | 'store'; + init?: 'credentialRegistry' | 'info' | 'services' | 'store'; ready?: | 'focus' | 'network' diff --git a/machines/bleShare/scan/scanMachine.ts b/machines/bleShare/scan/scanMachine.ts index 74cca2b15c..d6b5bc2bf8 100644 --- a/machines/bleShare/scan/scanMachine.ts +++ b/machines/bleShare/scan/scanMachine.ts @@ -890,13 +890,9 @@ export const scanMachine = }), setLinkCode: assign({ - linkCode: (_context, event) => - event.params.substring( - event.params.indexOf('linkCode=') + 9, - event.params.indexOf('&'), - ), + linkCode: (_, event) => + new URL(event.params).searchParams.get('linkCode'), }), - setStayInProgress: assign({ stayInProgress: context => !context.stayInProgress, }), @@ -1204,16 +1200,14 @@ export const scanMachine = }, guards: { - isOpenIdQr: (_context, event) => event.params.includes('OPENID4VP://'), - + // sample: 'OPENID4VP://connect:?name=OVPMOSIP&key=69dc92a2cc91f02258aa8094d6e2b62877f5b6498924fbaedaaa46af30abb364' + isOpenIdQr: (_context, event) => + event.params.startsWith('OPENID4VP://'), isQrLogin: (_context, event) => { - let linkCode = ''; try { - linkCode = event.params.substring( - event.params.indexOf('linkCode=') + 9, - event.params.indexOf('&'), - ); - return linkCode !== null; + let linkCode = new URL(event.params); + // sample: 'inji://landing-page-name?linkCode=sTjp0XVH3t3dGCU&linkExpireDateTime=2023-11-09T06:56:18.482Z' + return linkCode.searchParams.get('linkCode') !== null; } catch (e) { return false; } diff --git a/machines/bleShare/scan/scanMachine.typegen.ts b/machines/bleShare/scan/scanMachine.typegen.ts index e69de29bb2..ff138a9ceb 100644 --- a/machines/bleShare/scan/scanMachine.typegen.ts +++ b/machines/bleShare/scan/scanMachine.typegen.ts @@ -0,0 +1,241 @@ +// This file was automatically generated. Edits will be overwritten + +export interface Typegen0 { + '@@xstate/typegen': true; + internalEvents: { + '': {type: ''}; + 'done.invoke.QrLogin': { + type: 'done.invoke.QrLogin'; + data: unknown; + __tip: 'See the XState TS docs to learn how to strongly type this.'; + }; + 'done.invoke.scan.checkStorage:invocation[0]': { + type: 'done.invoke.scan.checkStorage:invocation[0]'; + data: unknown; + __tip: 'See the XState TS docs to learn how to strongly type this.'; + }; + 'done.invoke.scan.reviewing.creatingVp:invocation[0]': { + type: 'done.invoke.scan.reviewing.creatingVp:invocation[0]'; + data: unknown; + __tip: 'See the XState TS docs to learn how to strongly type this.'; + }; + 'xstate.after(CONNECTION_TIMEOUT)#scan.connecting.inProgress': { + type: 'xstate.after(CONNECTION_TIMEOUT)#scan.connecting.inProgress'; + }; + 'xstate.after(DESTROY_TIMEOUT)#scan.clearingConnection': { + type: 'xstate.after(DESTROY_TIMEOUT)#scan.clearingConnection'; + }; + 'xstate.after(SHARING_TIMEOUT)#scan.reviewing.sendingVc.inProgress': { + type: 'xstate.after(SHARING_TIMEOUT)#scan.reviewing.sendingVc.inProgress'; + }; + 'xstate.init': {type: 'xstate.init'}; + 'xstate.stop': {type: 'xstate.stop'}; + }; + invokeSrcNameMap: { + checkBluetoothPermission: 'done.invoke.scan.checkBluetoothPermission.checking:invocation[0]'; + checkBluetoothState: + | 'done.invoke.scan.checkBluetoothState.checking:invocation[0]' + | 'done.invoke.scan.recheckBluetoothState.checking:invocation[0]'; + checkLocationPermission: 'done.invoke.scan.checkingLocationService.checkingPermissionStatus:invocation[0]'; + checkNearByDevicesPermission: 'done.invoke.scan.checkNearbyDevicesPermission.checking:invocation[0]'; + checkStorageAvailability: 'done.invoke.scan.checkStorage:invocation[0]'; + createVp: 'done.invoke.scan.reviewing.creatingVp:invocation[0]'; + disconnect: + | 'done.invoke.scan.clearingConnection:invocation[0]' + | 'done.invoke.scan.disconnectDevice:invocation[0]'; + monitorConnection: 'done.invoke.scan:invocation[0]'; + requestBluetooth: 'done.invoke.scan.checkBluetoothState.requesting:invocation[0]'; + requestNearByDevicesPermission: 'done.invoke.scan.checkNearbyDevicesPermission.requesting:invocation[0]'; + requestToEnableLocationPermission: 'done.invoke.scan.checkingLocationService.requestToEnableLocation:invocation[0]'; + sendVc: 'done.invoke.scan.reviewing.sendingVc:invocation[0]'; + startConnection: 'done.invoke.scan.connecting:invocation[0]'; + }; + missingImplementations: { + actions: never; + delays: never; + guards: never; + services: never; + }; + eventsCausingActions: { + clearCreatedVp: + | '' + | 'BLE_ERROR' + | 'DISCONNECT' + | 'DISMISS' + | 'RESET' + | 'SCREEN_BLUR' + | 'SCREEN_FOCUS' + | 'xstate.stop'; + clearReason: + | '' + | 'BLE_ERROR' + | 'DISCONNECT' + | 'DISMISS' + | 'RESET' + | 'SCREEN_BLUR' + | 'SCREEN_FOCUS' + | 'xstate.stop'; + clearUri: + | 'DISCONNECT' + | 'DISMISS' + | 'xstate.after(DESTROY_TIMEOUT)#scan.clearingConnection'; + logFailedVerification: 'FACE_INVALID'; + logShared: 'VC_ACCEPTED'; + openAppPermission: 'GOTO_SETTINGS' | 'LOCATION_REQUEST'; + openBluetoothSettings: 'GOTO_SETTINGS'; + registerLoggers: + | 'DISCONNECT' + | 'DISMISS' + | 'xstate.after(DESTROY_TIMEOUT)#scan.clearingConnection'; + removeLoggers: + | 'DISCONNECT' + | 'DISMISS' + | 'SCREEN_BLUR' + | 'xstate.after(DESTROY_TIMEOUT)#scan.clearingConnection' + | 'xstate.init'; + resetShouldVerifyPresence: 'CANCEL' | 'CONNECTED' | 'DISMISS' | 'RETRY'; + sendBLEConnectionErrorEvent: 'BLE_ERROR'; + sendScanData: 'SCAN'; + sendVCShareFlowCancelEndEvent: 'CANCEL'; + sendVCShareFlowTimeoutEndEvent: 'CANCEL' | 'RETRY'; + sendVcShareSuccessEvent: 'VC_ACCEPTED'; + sendVcSharingStartEvent: 'SCAN'; + setBleError: 'BLE_ERROR'; + setChildRef: + | 'DISCONNECT' + | 'DISMISS' + | 'xstate.after(DESTROY_TIMEOUT)#scan.clearingConnection'; + setCreatedVp: 'done.invoke.scan.reviewing.creatingVp:invocation[0]'; + setLinkCode: 'SCAN'; + setPromptHint: 'CANCEL' | 'RETRY'; + setReadyForBluetoothStateCheck: 'BLUETOOTH_PERMISSION_ENABLED'; + setReason: 'UPDATE_REASON'; + setReceiverInfo: 'CONNECTED'; + setSelectedVc: 'SELECT_VC'; + setSenderInfo: 'CONNECTED'; + setShareLogTypeUnverified: 'ACCEPT_REQUEST'; + setShareLogTypeVerified: 'FACE_VALID'; + setStayInProgress: + | 'STAY_IN_PROGRESS' + | 'xstate.after(CONNECTION_TIMEOUT)#scan.connecting.inProgress' + | 'xstate.after(SHARING_TIMEOUT)#scan.reviewing.sendingVc.inProgress'; + setUri: 'SCAN'; + storeLoginItem: 'done.invoke.QrLogin'; + storingActivityLog: 'STORE_RESPONSE'; + toggleShouldVerifyPresence: 'TOGGLE_USER_CONSENT'; + }; + eventsCausingDelays: { + CONNECTION_TIMEOUT: 'SCAN'; + DESTROY_TIMEOUT: '' | 'DISMISS' | 'LOCATION_ENABLED'; + SHARING_TIMEOUT: + | 'ACCEPT_REQUEST' + | 'FACE_VALID' + | 'done.invoke.scan.reviewing.creatingVp:invocation[0]'; + }; + eventsCausingGuards: { + isIOS: 'BLUETOOTH_STATE_DISABLED' | 'START_PERMISSION_CHECK'; + isMinimumStorageRequiredForAuditEntryReached: 'done.invoke.scan.checkStorage:invocation[0]'; + isOpenIdQr: 'SCAN'; + isQrLogin: 'SCAN'; + uptoAndroid11: '' | 'START_PERMISSION_CHECK'; + }; + eventsCausingServices: { + QrLogin: 'SCAN'; + checkBluetoothPermission: + | '' + | 'BLUETOOTH_STATE_DISABLED' + | 'NEARBY_ENABLED' + | 'START_PERMISSION_CHECK'; + checkBluetoothState: '' | 'APP_ACTIVE'; + checkLocationPermission: '' | 'APP_ACTIVE'; + checkNearByDevicesPermission: 'APP_ACTIVE' | 'START_PERMISSION_CHECK'; + checkStorageAvailability: 'RESET' | 'SCREEN_FOCUS'; + createVp: never; + disconnect: '' | 'DISMISS' | 'LOCATION_ENABLED' | 'SCREEN_BLUR'; + monitorConnection: 'DISMISS' | 'SCREEN_BLUR' | 'xstate.init'; + requestBluetooth: 'BLUETOOTH_STATE_DISABLED'; + requestNearByDevicesPermission: 'NEARBY_DISABLED'; + requestToEnableLocationPermission: 'LOCATION_DISABLED'; + sendVc: + | 'ACCEPT_REQUEST' + | 'FACE_VALID' + | 'done.invoke.scan.reviewing.creatingVp:invocation[0]'; + startConnection: 'SCAN'; + }; + matchesStates: + | 'bluetoothDenied' + | 'bluetoothPermissionDenied' + | 'checkBluetoothPermission' + | 'checkBluetoothPermission.checking' + | 'checkBluetoothPermission.enabled' + | 'checkBluetoothState' + | 'checkBluetoothState.checking' + | 'checkBluetoothState.enabled' + | 'checkBluetoothState.requesting' + | 'checkNearbyDevicesPermission' + | 'checkNearbyDevicesPermission.checking' + | 'checkNearbyDevicesPermission.enabled' + | 'checkNearbyDevicesPermission.requesting' + | 'checkStorage' + | 'checkingLocationService' + | 'checkingLocationService.checkingPermissionStatus' + | 'checkingLocationService.denied' + | 'checkingLocationService.requestToEnableLocation' + | 'clearingConnection' + | 'connecting' + | 'connecting.inProgress' + | 'connecting.timeout' + | 'disconnectDevice' + | 'disconnected' + | 'findingConnection' + | 'handlingBleError' + | 'inactive' + | 'invalid' + | 'nearByDevicesPermissionDenied' + | 'recheckBluetoothState' + | 'recheckBluetoothState.checking' + | 'recheckBluetoothState.enabled' + | 'restrictSharingVc' + | 'reviewing' + | 'reviewing.accepted' + | 'reviewing.cancelling' + | 'reviewing.creatingVp' + | 'reviewing.invalidIdentity' + | 'reviewing.navigatingToHome' + | 'reviewing.rejected' + | 'reviewing.selectingVc' + | 'reviewing.sendingVc' + | 'reviewing.sendingVc.inProgress' + | 'reviewing.sendingVc.sent' + | 'reviewing.sendingVc.timeout' + | 'reviewing.verifyingIdentity' + | 'showQrLogin' + | 'showQrLogin.idle' + | 'showQrLogin.navigatingToHistory' + | 'showQrLogin.storing' + | 'startPermissionCheck' + | { + checkBluetoothPermission?: 'checking' | 'enabled'; + checkBluetoothState?: 'checking' | 'enabled' | 'requesting'; + checkNearbyDevicesPermission?: 'checking' | 'enabled' | 'requesting'; + checkingLocationService?: + | 'checkingPermissionStatus' + | 'denied' + | 'requestToEnableLocation'; + connecting?: 'inProgress' | 'timeout'; + recheckBluetoothState?: 'checking' | 'enabled'; + reviewing?: + | 'accepted' + | 'cancelling' + | 'creatingVp' + | 'invalidIdentity' + | 'navigatingToHome' + | 'rejected' + | 'selectingVc' + | 'sendingVc' + | 'verifyingIdentity' + | {sendingVc?: 'inProgress' | 'sent' | 'timeout'}; + showQrLogin?: 'idle' | 'navigatingToHistory' | 'storing'; + }; + tags: never; +} diff --git a/machines/store.ts b/machines/store.ts index 943a3d8e79..60b2f6e02a 100644 --- a/machines/store.ts +++ b/machines/store.ts @@ -25,11 +25,11 @@ import { } from '../shared/cryptoutil/cryptoUtil'; import {VCMetadata} from '../shared/VCMetadata'; import {BiometricCancellationError} from '../shared/error/BiometricCancellationError'; +import {TelemetryConstants} from '../shared/telemetry/TelemetryConstants'; import { - getErrorEventData, sendErrorEvent, + getErrorEventData, } from '../shared/telemetry/TelemetryUtils'; -import {TelemetryConstants} from '../shared/telemetry/TelemetryConstants'; export const keyinvalidatedString = 'Key Invalidated due to biometric enrollment'; diff --git a/package-lock.json b/package-lock.json index 88aa85b959..4d929928b0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -110,6 +110,7 @@ "react-native-flipper": "^0.212.0", "react-native-flipper-xstate": "^1.0.5", "react-native-svg-transformer": "^1.1.0", + "react-native-url-polyfill": "^2.0.0", "rn-mmkv-storage-flipper": "^1.1.1", "typescript": "^4.9.4" }, @@ -26284,6 +26285,18 @@ "react-native": "*" } }, + "node_modules/react-native-url-polyfill": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/react-native-url-polyfill/-/react-native-url-polyfill-2.0.0.tgz", + "integrity": "sha512-My330Do7/DvKnEvwQc0WdcBnFPploYKp9CYlefDXzIdEaA+PAhDYllkvGeEroEzvc4Kzzj2O4yVdz8v6fjRvhA==", + "dev": true, + "dependencies": { + "whatwg-url-without-unicode": "8.0.0-3" + }, + "peerDependencies": { + "react-native": "*" + } + }, "node_modules/react-native-vector-icons": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-10.0.0.tgz", @@ -29917,6 +29930,53 @@ "webidl-conversions": "^3.0.0" } }, + "node_modules/whatwg-url-without-unicode": { + "version": "8.0.0-3", + "resolved": "https://registry.npmjs.org/whatwg-url-without-unicode/-/whatwg-url-without-unicode-8.0.0-3.tgz", + "integrity": "sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig==", + "dev": true, + "dependencies": { + "buffer": "^5.4.3", + "punycode": "^2.1.1", + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/whatwg-url-without-unicode/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/whatwg-url-without-unicode/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -50115,6 +50175,15 @@ "from": "react-native-tuvali@github:mosip/tuvali#v0.4.5", "requires": {} }, + "react-native-url-polyfill": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/react-native-url-polyfill/-/react-native-url-polyfill-2.0.0.tgz", + "integrity": "sha512-My330Do7/DvKnEvwQc0WdcBnFPploYKp9CYlefDXzIdEaA+PAhDYllkvGeEroEzvc4Kzzj2O4yVdz8v6fjRvhA==", + "dev": true, + "requires": { + "whatwg-url-without-unicode": "8.0.0-3" + } + }, "react-native-vector-icons": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-10.0.0.tgz", @@ -52913,6 +52982,35 @@ "webidl-conversions": "^3.0.0" } }, + "whatwg-url-without-unicode": { + "version": "8.0.0-3", + "resolved": "https://registry.npmjs.org/whatwg-url-without-unicode/-/whatwg-url-without-unicode-8.0.0-3.tgz", + "integrity": "sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig==", + "dev": true, + "requires": { + "buffer": "^5.4.3", + "punycode": "^2.1.1", + "webidl-conversions": "^5.0.0" + }, + "dependencies": { + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true + } + } + }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", diff --git a/package.json b/package.json index 57c5331f7b..521a419e4c 100644 --- a/package.json +++ b/package.json @@ -112,6 +112,7 @@ "react-native-flipper": "^0.212.0", "react-native-flipper-xstate": "^1.0.5", "react-native-svg-transformer": "^1.1.0", + "react-native-url-polyfill": "^2.0.0", "rn-mmkv-storage-flipper": "^1.1.1", "typescript": "^4.9.4" }, diff --git a/purpleAssets/camera-flip-icon.png b/purpleAssets/camera-flip-icon.png new file mode 100644 index 0000000000..becf8748dd Binary files /dev/null and b/purpleAssets/camera-flip-icon.png differ diff --git a/purpleAssets/capture-button.png b/purpleAssets/capture-button.png new file mode 100644 index 0000000000..90377dcc1c Binary files /dev/null and b/purpleAssets/capture-button.png differ diff --git a/purpleAssets/digital-identity-icon.png b/purpleAssets/digital-identity-icon.png new file mode 100644 index 0000000000..ade9025eb1 Binary files /dev/null and b/purpleAssets/digital-identity-icon.png differ diff --git a/purpleAssets/help-icon.png b/purpleAssets/help-icon.png new file mode 100644 index 0000000000..e8ac0c430f Binary files /dev/null and b/purpleAssets/help-icon.png differ diff --git a/purpleAssets/inji-home-logo.png b/purpleAssets/inji-home-logo.png new file mode 100644 index 0000000000..2732dfd5ba Binary files /dev/null and b/purpleAssets/inji-home-logo.png differ diff --git a/purpleAssets/lock-icon.png b/purpleAssets/lock-icon.png new file mode 100644 index 0000000000..741c12428a Binary files /dev/null and b/purpleAssets/lock-icon.png differ diff --git a/purpleAssets/progressing-logo.png b/purpleAssets/progressing-logo.png new file mode 100644 index 0000000000..31d3b72bbe Binary files /dev/null and b/purpleAssets/progressing-logo.png differ diff --git a/purpleAssets/receive-card-icon.png b/purpleAssets/receive-card-icon.png new file mode 100644 index 0000000000..f5b1a63af9 Binary files /dev/null and b/purpleAssets/receive-card-icon.png differ diff --git a/purpleAssets/received-cards-icon.png b/purpleAssets/received-cards-icon.png new file mode 100644 index 0000000000..98f4ba1d59 Binary files /dev/null and b/purpleAssets/received-cards-icon.png differ diff --git a/screens/Home/MyVcs/IdInputModal.tsx b/screens/Home/MyVcs/IdInputModal.tsx index 89b09b55f8..9e674292a9 100644 --- a/screens/Home/MyVcs/IdInputModal.tsx +++ b/screens/Home/MyVcs/IdInputModal.tsx @@ -92,7 +92,7 @@ export const IdInputModal: React.FC = props => { type="gradient" title={t('generateVc')} disabled={!controller.id} - margin="24 0 0 0" + margin="24 0 6 0" onPress={controller.VALIDATE_INPUT} loading={controller.isRequestingOtp} /> @@ -108,7 +108,7 @@ export const IdInputModal: React.FC = props => { {t('getItHere')} diff --git a/screens/MainLayout.tsx b/screens/MainLayout.tsx index 0a1b807e35..40ead66e73 100644 --- a/screens/MainLayout.tsx +++ b/screens/MainLayout.tsx @@ -32,7 +32,7 @@ export const MainLayout: React.FC< triggerComponent={ } diff --git a/screens/Scan/ScanLayout.tsx b/screens/Scan/ScanLayout.tsx index 9e765174e7..8ef540c896 100644 --- a/screens/Scan/ScanLayout.tsx +++ b/screens/Scan/ScanLayout.tsx @@ -17,7 +17,11 @@ export const ScanLayout: React.FC = () => { const {t} = useTranslation('ScanScreen'); const controller = useScanLayout(); - if (controller.statusOverlay != null && !controller.isAccepted) { + if ( + controller.statusOverlay != null && + !controller.isAccepted && + !controller.isInvalid + ) { return ( { if (controller.isEmpty) { return noShareableVcText(); } + if (controller.selectIsInvalid) { + return displayInvalidQRpopup(); + } if (controller.isNearByDevicesPermissionDenied) { return allowNearbyDevicesPermissionComponent(); } @@ -151,18 +151,46 @@ export const ScanScreen: React.FC = () => { function displayStorageLimitReachedError(): React.ReactNode { return ( !controller.isEmpty && ( - navigation.navigate(BOTTOM_TAB_ROUTES.home)} + onBackdropPress={() => navigation.navigate(BOTTOM_TAB_ROUTES.home)} /> ) ); } + function displayInvalidQRpopup(): React.ReactNode { + return ( + !controller.isEmpty && ( + + +