Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MOSIP-30292 | New regression test cases added #1011

Merged
merged 9 commits into from
Nov 16, 2023
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>