Skip to content

Commit

Permalink
MOSIP-30292 | New regression test cases added (#1011)
Browse files Browse the repository at this point in the history
* Test script updated for new apk

Signed-off-by: kamalsingh <kamal.singh@thoughtworks.com>

* new test cases added

Signed-off-by: kamalsingh <kamal.singh@thoughtworks.com>

* new test cases added from master sheet

Signed-off-by: kamalsingh <kamal.singh@thoughtworks.com>

* Test cases added from regression sheet

Signed-off-by: kamalsingh <kamal.singh@thoughtworks.com>

* new test cases added

Signed-off-by: kamalsingh <kamal.singh@thoughtworks.com>

---------

Signed-off-by: kamalsingh <kamal.singh@thoughtworks.com>
  • Loading branch information
kamalsinghthoughtworks authored Nov 16, 2023
1 parent b0ebef0 commit e501f9f
Show file tree
Hide file tree
Showing 6 changed files with 241 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@
import io.appium.java_client.pagefactory.iOSXCUITFindBy;
import org.openqa.selenium.WebElement;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.stream.Collectors;

public class SettingsPage extends BasePage {

@AndroidFindBy(accessibility = "settingsScreen")
Expand All @@ -27,6 +33,21 @@ public class SettingsPage extends BasePage {
@iOSXCUITFindBy(iOSClassChain = "**/XCUIElementTypeStaticText[`label == \"Wika\"`]")
private WebElement wikaButton;

@AndroidFindBy(uiAutomator = "new UiSelector().resourceId(\"listItemTitle\")")
private List<WebElement> languages;

@AndroidFindBy(uiAutomator = "new UiSelector().resourceId(\"aboutInji\")")
private WebElement aboutInji;

@AndroidFindBy(xpath = "//*[contains(@text,'Tuvali-version: v')]")
private WebElement tuvaliVersion;

@AndroidFindBy(accessibility = "injiTourGuide")
private WebElement injiTourGuide;

@AndroidFindBy(accessibility = "receivedCards")
private WebElement receivedCards;

public SettingsPage(AppiumDriver driver) {
super(driver);
}
Expand All @@ -53,4 +74,31 @@ public boolean verifyFilipinoLanguage() {
return this.isElementDisplayed(wikaButton, "Filipino language");
}

public boolean verifyLanguagesInLanguageFilter() {
List<String> expectedLanguages = Arrays.asList("English", "Filipino", "عربى", "हिंदी", "ಕನ್ನಡ", "தமிழ்");

List<String> actualLanguages = languages.stream()
.map(WebElement::getText)
.collect(Collectors.toList());

return new HashSet<>(expectedLanguages).equals(new HashSet<>(actualLanguages));
}

public SettingsPage clickOnAboutInji(){
clickOnElement(aboutInji);
return this;
}

public boolean isTuvaliVersionPresent() {
return this.isElementDisplayed(tuvaliVersion, "Tuvali-version");
}

public void clickOnInjiTourGuide(){
clickOnElement(injiTourGuide);
}

public boolean isReceivedCardsPresent() {
return this.isElementDisplayed(receivedCards, "Received Cards");
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,58 @@ public void changeLanguage() {

assertTrue(settingsPage.verifyFilipinoLanguage(), "Verify if language is changed to filipino");
}

@Test
public void languageShouldBeInNativeLanguages() {
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();

assertTrue(settingsPage.verifyLanguagesInLanguageFilter(), "Verify if all languages are shown in language filter");
}

@Test
public void verifyTuvaliVersion() {
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");
assertTrue(settingsPage.clickOnAboutInji().isTuvaliVersionPresent());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -123,4 +123,34 @@ public void activateVcWithoutInternet() throws InterruptedException {
CommonMethods.disableAirplaneMode();

}

@Test
public void verifyListOfLanguagesInOfflineMode() {
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();

assertTrue(settingsPage.isSettingPageLoaded(), "Verify if setting page is displayed");
settingsPage.clickOnLanguage();

assertTrue(settingsPage.verifyLanguagesInLanguageFilter(), "Verify if all languages are shown in language filter");
CommonMethods.disableAirplaneMode();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,31 @@ public void noCardsAvailableToShare() {
ScanPage scanPage = homePage.clickOnScanButton();
assertTrue(scanPage.isNoShareableCardsMessageDisplayed(), "Verify if no shareable cards are available message is displayed");
}

@Test
public void verifyReceivedCardTabPresent() {
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");
assertTrue(settingsPage.isReceivedCardsPresent(), "Verify if received cards tab is displayed");

}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package io.mosip.test.mob.inji.testcases;

import io.mosip.test.mob.inji.utils.TestDataReader;
import org.testng.annotations.Test;
import io.mosip.test.mob.inji.pages.*;
import static org.testng.Assert.assertEquals;
Expand Down Expand Up @@ -29,6 +30,49 @@ public void verifyWelcomePagesContent() {
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.");
}
@Test
public void verifyWelcomePagesFromInjiTourGuide() {
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.");
Expand Down
44 changes: 38 additions & 6 deletions injitest/testng.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,51 +12,61 @@
<include name="downloadAndVerifyVcUsingUin"/>
<include name="downloadWithEmptyUin"/>
<include name="genrateMultipleVcWithSameUin"/>
<include name="downloadMultipleVcUsingDifferentUin"/>
<include name="verifyInvalidUinErrorMessage"/>
</methods>
</class>
<class name="io.mosip.test.mob.inji.testcases.VerifyWelcomePagesTest">
<methods>
<include name="verifyWelcomePagesContent"/>
<include name="verifyWelcomePagesFromInjiTourGuide"/>
</methods>
</class>
<class name="io.mosip.test.mob.inji.testcases.VcDownloadAndVerifyUsingVidTest">
<methods>
<include name="downloadAndVerifyVcUsingVid"/>
<include name="downloadTwoVcDeleteUsingVid"/>
<include name="verifyInvalidVidErrorMessage"/>
</methods>
</class>
<class name="io.mosip.test.mob.inji.testcases.UnlockWithPasscodeTest">
<class name="io.mosip.test.mob.inji.testcases.UnlockWithPasscodeTest">
<methods>
<include name="logoutAndLoginWithPasscode"/>
<include name="loginWithInvalidPasscode"/>
</methods>
</class>
<class name="io.mosip.test.mob.inji.testcases.VerifyHelpPageTest">
<class name="io.mosip.test.mob.inji.testcases.VerifyHelpPageTest">
<methods>
<include name="verifyHelpPage"/>
</methods>
</class>
<class name="io.mosip.test.mob.inji.testcases.DeletingVcTest">
<methods>
<include name="deleteVc"/>
<include name="deleteVcAndVerifyInHistory"/>
<include name="cancelDeleteVc"/>
<include name="closingEllipsis"/>
<include name="DownloadingDeletedVc"/>
</methods>
</class>
<class name="io.mosip.test.mob.inji.testcases.VerifyHistoryTest">
<class name="io.mosip.test.mob.inji.testcases.VerifyHistoryTest">
<methods>
<include name="generateAndVerifyHistory"/>
<include name="verifyActivationFailedRecordInHistory"/>
<include name="verifyActivationFailedRecordInHistoryFromDetailedView"/>
<include name="activateVcAndVerifyInHistory"/>
</methods>
</class>
<class name="io.mosip.test.mob.inji.testcases.GenerateUinOrVidTest">
<class name="io.mosip.test.mob.inji.testcases.GenerateUinOrVidTest">
<methods>
<include name="generateUinOrVidUsingAid"/>
<include name="goBackToGenerateUinOrVidUsingAidFromOtpVerificationPage"/>
</methods>
</class>
<class name="io.mosip.test.mob.inji.testcases.ActivateVcTest">
<methods>
<include name="activateVc"/>
<include name="noPreDownloadedVCAndNoHistoryInFreshInstallation"/>
<include name="verifyInvalidOtpMessage"/>
<include name="verifyTuvaliVersion"/>
</methods>
</class>
<class name="io.mosip.test.mob.inji.testcases.PinVcTest">
Expand All @@ -65,6 +75,28 @@
<include name="VerifyCameraAfterPinVc"/>
</methods>
</class>
<class name="io.mosip.test.mob.inji.testcases.ChangeLanguageTest">
<methods>
<include name="changeLanguage"/>
<include name="languageShouldBeInNativeLanguages"/>
<include name="changeLanguage"/>
</methods>
</class>
<class name="io.mosip.test.mob.inji.testcases.ShareVcTest">
<methods>
<include name="noCardsAvailableToShare"/>
<include name="verifyReceivedCardTabPresent"/>
</methods>
</class>
<class name="io.mosip.test.mob.inji.testcases.NoNetworkAndroidTest">
<methods>
<include name="setupPasscodeAndDownloadCardWithoutInternet"/>
<include name="openCameraOnFlightMode"/>
<include name="activateVcWithoutInternet"/>
<include name="verifyListOfLanguagesInOfflineMode"/>
</methods>
</class>
</classes>
</test>
</suite>

0 comments on commit e501f9f

Please sign in to comment.