From d62e4624542e751124300ef1b78419360297a7bd Mon Sep 17 00:00:00 2001 From: Mohanachandran S <165888272+mohanachandran-s@users.noreply.github.com> Date: Tue, 7 Oct 2025 07:54:09 +0530 Subject: [PATCH] MOSIP-43088 - Dockerised the inji mobile ui automation and updated automation to support esignet 1.6.2 (#2096) Signed-off-by: Mohanachandran S --- .github/keys/mosipgpgkey_pub.gpg | Bin 0 -> 1270 bytes .github/keys/mosipgpgkey_sec.gpg | Bin 0 -> 2663 bytes .github/workflows/push-triggers.yml | 90 +++++++++++++++ injitest/Dockerfile | 66 +++++++++++ injitest/browserstack.err | 4 + injitest/entrypoint.sh | 10 ++ injitest/pom.xml | 106 ++++++++++++++++-- .../java/inji/pages/AppUnlockMethodPage.java | 4 +- .../src/main/java/inji/pages/BasePage.java | 6 + .../java/inji/pages/ESignetLoginPage.java | 17 ++- .../java/inji/pages/MockCertifyLoginPage.java | 9 +- .../src/main/java/inji/pages/SetPasscode.java | 26 +++-- .../src/main/java/inji/pages/SharePage.java | 2 +- .../java/inji/pages/SunbirdLoginPage.java | 8 +- .../inji/testcases/BaseTest/BaseTest.java | 22 +--- .../androidTestCases/ChangeLanguageTest.java | 2 +- .../androidTestCases/DeletingVcTest.java | 2 +- .../MosipOtpAlternativeFlow.java | 3 +- ...sipOtpAlternativeFlowForHistoryAndPin.java | 6 +- .../NoNetworkAndroidTest.java | 2 +- .../testcases/androidTestCases/PinVcTest.java | 4 +- .../UnlockWithPasscodeTest.java | 2 +- .../androidTestCases/VerifyHelpPageTest.java | 2 +- .../androidTestCases/VerifyHistoryTest.java | 1 + .../iosTestCases/ActivateVcTest.java | 2 +- .../iosTestCases/ChangeLanguageTest.java | 15 ++- .../iosTestCases/DeletingVcTest.java | 8 +- .../iosTestCases/KeyManagmentTest.java | 8 +- .../iosTestCases/MosipOtpAlternativeFlow.java | 24 ++-- ...sipOtpAlternativeFlowForHistoryAndPin.java | 10 +- .../iosTestCases/NoNetworkIosTest.java | 2 +- .../testcases/iosTestCases/ShareVcTest.java | 2 +- .../iosTestCases/UnlockWithPasscodeTest.java | 2 +- .../VcDownloadAndVerifyUsingEsignetTest.java | 6 +- .../VcDownloadAndVerifyUsingSunbirdTest.java | 4 +- .../iosTestCases/VerifyHelpPageTest.java | 2 +- .../iosTestCases/VerifyHistoryTest.java | 18 +-- .../iosTestCases/VerifyWelcomePagesTest.java | 10 +- .../utils/BrowserStackCapabilitiesLoader.java | 1 + .../inji/utils/BrowserStackLocalManager.java | 56 +++++++++ .../main/java/inji/utils/InjiWalletUtil.java | 8 +- .../CreatePolicySunBirdR.yml | 10 +- .../DeletePolicySunBirdR.yml | 4 +- injitest/testNgXmlFiles/androidTestSuite.xml | 4 +- 44 files changed, 457 insertions(+), 133 deletions(-) create mode 100644 .github/keys/mosipgpgkey_pub.gpg create mode 100644 .github/keys/mosipgpgkey_sec.gpg create mode 100644 injitest/Dockerfile create mode 100644 injitest/entrypoint.sh create mode 100644 injitest/src/main/java/inji/utils/BrowserStackLocalManager.java diff --git a/.github/keys/mosipgpgkey_pub.gpg b/.github/keys/mosipgpgkey_pub.gpg new file mode 100644 index 0000000000000000000000000000000000000000..4bdb1a947beaa877a93b56a2074580cdd9bf0578 GIT binary patch literal 1270 zcmbQq$jcHZy2y@^gW*i(B_ZoOO}xok8QrJ7Cf&}qetdqLrPuP}`P;)T-Y(VI_HkO_ z1{{w_f#RHj!qd-^bJoQmWM7;XW@lbzf|A4J(W)_uZi-T`J_?5k8I!A{8+V6Y2-?iCh1xP-B zIq6E*9lP}7Ro)kBJiO-Q-t)Wj;Fy-k3!e44+^24G7$(eOmrP(w-?^yl?-s_Lj~{U? z|Iz2Tvh0=vd*g}qnQnX5u8!QgWqQ&|20=y!#w{MX`Nf$93K}69nZ*h~1mWf;mZjz? zB&X(;6eZ>;6r~pAYbw})rSwvB6Ek!2@=G$)GE<8j(m_1E^d-NQtB%>uiS4{`PS#`d z!2|Vwjd%R@+!xB97yY%eDJ><;wy?==@1nw%l1YihOg~;t$!Xr>^ncmLm-3sEy5o&z z7@iA#{p{Nz<!2>s$RBXB1ov96vXdr)51sAImSU;o{c6)J0UM44_b zpVf0Mm{D=={>!vRIb z`z+?pC(SfW%+zuj?53RMyjoQ7Nu3fcuhg`sy#Fh4&J!iymvj-SznK9SLE*G_rU-{#+($YQM6^zA8 z7bu5adm9((&-Z%Wg4K*(CprHfSNpfyX0CO^G<~zxx?F0xdnCb$wUg0|MFN<_6quxW z@FgT>9}%#9~XsWKj>S1US}t8BZxbD3G^vqQ&Cgnpb7no=`QThyYOHDz_% zPyV~E60;&o^Q5#s6vChzi|I4kog5a!b&-`}rA>|>XChRoKXOCr47i%DqEc5_q84HM3=sTiyHYODL3TL5is59vl$0S z0P5K9i{z~+wleRGRKMl<*)5aQTBct*FFWudgJRnFET(72mrDmV9;Hd3jpVQFX^}_ z<1>tMeUoTe{<>j4Sl*F^S}yKjYuAJfUm#cR`9!vKOZ5~`EGDHTsLhjaIlqMT|ibes6-JO^oZ;_(fXz-}1m7;Fc0vih~S-l*y`s z+e5k`-!Lb8zU9?SFbX9+4ouyB(rl4dsSn9eZ>+47Ni+amQnP?qW_3)}M$~za7R04; z53Ze2D2hU@KbHu0VW)vjGwRC!h?o0NTvYJPnowNier5fN^RGavD@W6SlFN7T%Uk_? z)Kug6b;6#x>aVobJ+w9VJY5~dXH%QeShiu**;XY0ng6KwdZm5jz^Pnc%D>lM)53>1 z!3?ZAEf&{6G)k@P;r^{@3V=C8x85RXso6eNyC!J1CSl#`EU~oJ`r^Wk+YyME=`N(3 ziCwp&2o#9jpR$@LI5gNJ9beNRf^VuMq*v}9d_sP#cUvB~He+Rn;3Dk~4*CkC8&G~V z%~tY`L|5ag!SpFlU8?(%_VV<$YTX4Uy^Dul7axlELQ*oXu3eiyQeK!-oj{J40+xBF z0|G2&9orf8%9oX_mn(e5^m$)qWGjC1DYjO{$3E;5_NPQ_%87T*NZd1v0^1)L z{+VRC3G!nw5nVIcAg$?!W_)uPO21X^({O*ih~gvNHOYDo4^eYyT008jOUrh$;ZTx( zhuL7fM&N_Ou)#7)D1U62%-{F#i1&>2A;@_95W+(}17$*ef`gQ04E|NA``|sXfrOxN ztS{Cl)Wq+fN!>dLZ=1t0_cIn!4Pgvj=vWHWIx3L;^g9H69IvNASob7G(kj` zEy-wVWn`-ZOPdw6iZmT_^90Cq$|(!L#VPQg&uTK{*ilT^ot#xzcQ<#gZpPNx z*858Olsa4_9@r}Xw(4f$=+Vje8}RFjdAnAjrG9eIjx$jql1m@)r-Ov+G5IREVCCc0 zdTfsCs15mLk72P}+T@5N;#Eg`{E=4kk>y)7Kf!e`Cein%qhUy*QQNbSyW!cMVW9o> zoWP_vX2;L#*Q6V~NbazF%@Op*@~`*uyA-ZjW+9x!D(7*mEjW8|C@Y_OPn>(V;(jh& z929Tr0;FB`P1@pt3M7kmYYb=gHd4zLErQPU&ahIKyV$sFSi!CYqxX`)C3S zsFCL(dlRiaUqr^4bM)ZqF(5H0tPxE~H5^(o_l%?cIc1TOYQcIO>9?bSf zD^v%b0!>vGrcXEkWlP>wKgvP%H*kkasI!79#4x{u*`(6~6&tl#Q8bsJJnRPe+H)a% zUAwF-lkMWAer+YVwjv&2lrzjZ9vZwqJdyQ1u}X~3r1rb?^>7WdW=G@XJsqVrnMYsp z2NZa@y`U`va_m8*C|iUx*NJe7Bx z*utP~`8H~vQh>;Q&ZAyMR;xjYenPH>Hbsp~5&!1&f0b3$uLqw=?|68O5{qzlmCGvS zgv#+dZ2q)&*pYh=6U-6S!KZkYUUD6Y?fn@tFQxO?izh>1pzVEwbw8y87n+3`PF}4R zIxWRXV@q$jE=G%zsVfd3R!DxEO(&Ao-?hmv#ZNuSXh1M9y+}lK(1lCeA}%(IB-{A6 zgt)}E>^;uadQ#c9W8g|zMh*3bK#`K#(s)v|$Zi0qYoEh$$vgd(`ZQsW8>qe*C+)iVx)hWwg)zdwrEa{_G%_ z68Tp`giRFXQ_-f#h=?wT!d?kWbu-nR(edIm3M}h0=65#1d;N)74v&nWsbc$;;htvro%w;%G@v${ z*xxkDfW&$JAAsQh1+d5t!cvf!{3_=ofw(Xpom#0t9iu(hPFsH83m4iS5Xy;ra{iP~ z?1`I{(IE{)wYI0 zp?Lro`tclyiF&K_MBTH9kbUsg=yu-maA!*_U*}`HPj-_Wbh&ke5YP9M2PwKR~+0n z`yU!zDyk)lFb4N<72OjB)L)J#F`fE*5><~{u0AZpb_3h}4U&GS>wU*FJ#yt)=4Y@a SkkiE(Bh1Lh;14qU=Klc8TJt&p literal 0 HcmV?d00001 diff --git a/.github/workflows/push-triggers.yml b/.github/workflows/push-triggers.yml index 172df749..44b168d3 100644 --- a/.github/workflows/push-triggers.yml +++ b/.github/workflows/push-triggers.yml @@ -56,3 +56,93 @@ jobs: SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} ORG_KEY: ${{ secrets.ORG_KEY }} SLACK_WEBHOOK_URL: '${{ secrets.SLACK_WEBHOOK_INJI_TEAM }}' + + build-maven-uitest-inji-wallet: + uses: mosip/kattu/.github/workflows/maven-build.yml@master-java21 + with: + SERVICE_LOCATION: ./injitest + BUILD_ARTIFACT: uitest-inji-wallet + secrets: + OSSRH_USER: ${{ secrets.OSSRH_USER }} + OSSRH_SECRET: ${{ secrets.OSSRH_SECRET }} + OSSRH_TOKEN: ${{ secrets.OSSRH_TOKEN }} + GPG_SECRET: ${{ secrets.GPG_SECRET }} + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_INJI_TEAM }} + + build-uitest-inji-wallet-local: + needs: build-maven-uitest-inji-wallet + runs-on: ubuntu-latest + env: + NAMESPACE: ${{ secrets.dev_namespace_docker_hub }} + SERVICE_NAME: uitest-inji-wallet + SERVICE_LOCATION: injitest + BUILD_ARTIFACT: uitest-inji-wallet-local + steps: + - uses: actions/checkout@v3 + - name: Set up JDK 21 + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: '21' + server-id: ossrh # Value of the distributionManagement/repository/id field of the pom.xml + settings-path: ${{ github.workspace }} # location for the settings.xml file + + - name: Cache local Maven repository + uses: actions/cache@v4 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven- + + - name: Setup the settings file for ossrh server + run: echo " ossrh ${{secrets.ossrh_user}} ${{secrets.ossrh_secret}} ossrh true gpg2 ${{secrets.gpg_secret}} allow-snapshots true snapshots-repo https://oss.sonatype.org/content/repositories/snapshots false true releases-repo https://oss.sonatype.org/service/local/staging/deploy/maven2 true false sonar . https://sonarcloud.io false " > $GITHUB_WORKSPACE/settings.xml + + - name: Build uitest-inji-wallet with Maven + run: | + cd ${{ env.SERVICE_LOCATION}} + mvn -U -B package -DskipTests -Dmaven.wagon.http.retryHandler.count=2 --file pom.xml -s $GITHUB_WORKSPACE/settings.xml + + - name: Ready the springboot artifacts + if: ${{ !contains(github.ref, 'master') || !contains(github.ref, 'main') }} + run: | + ## FIND JARS & COPY ONLY EXECUTABLE JARs STORED UNDER TARGET DIRECTORY + find ${{ env.SERVICE_LOCATION }} -path '*/target/*' -name '*.jar' -type f -exec zip ${{ env.BUILD_ARTIFACT }}.zip {} + + + - name: Upload the springboot jars + if: ${{ !contains(github.ref, 'master') || !contains(github.ref, 'main') }} + uses: actions/upload-artifact@v4 + with: + name: ${{ env.BUILD_ARTIFACT }} + path: ${{ env.BUILD_ARTIFACT }}.zip + + - uses: 8398a7/action-slack@v3 + with: + status: ${{ job.status }} + fields: repo,message,author,commit,workflow,job # selectable (default: repo,message) + env: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} # required + if: failure() # Pick up events even if the job fails or is canceled. + + build-docker-uitest-inji-wallet: + needs: build-uitest-inji-wallet-local + strategy: + matrix: + include: + - SERVICE_LOCATION: 'injitest' + SERVICE_NAME: 'uitest-inji-wallet' + BUILD_ARTIFACT: 'uitest-inji-wallet-local' + ONLY_DOCKER: true + fail-fast: false + name: ${{ matrix.SERVICE_NAME }} + uses: mosip/kattu/.github/workflows/docker-build.yml@master-java21 + with: + SERVICE_LOCATION: ${{ matrix.SERVICE_LOCATION }} + SERVICE_NAME: ${{ matrix.SERVICE_NAME }} + BUILD_ARTIFACT: ${{ matrix.BUILD_ARTIFACT }} + ONLY_DOCKER: ${{ matrix.ONLY_DOCKER }} + secrets: + DEV_NAMESPACE_DOCKER_HUB: ${{ secrets.DEV_NAMESPACE_DOCKER_HUB }} + ACTOR_DOCKER_HUB: ${{ secrets.ACTOR_DOCKER_HUB }} + RELEASE_DOCKER_HUB: ${{ secrets.RELEASE_DOCKER_HUB }} + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_INJI_TEAM }} \ No newline at end of file diff --git a/injitest/Dockerfile b/injitest/Dockerfile new file mode 100644 index 00000000..90fc2844 --- /dev/null +++ b/injitest/Dockerfile @@ -0,0 +1,66 @@ +FROM mosipid/openjdk-21-jre:21.0.4 + +# Define build-time arguments +ARG SOURCE +ARG COMMIT_HASH +ARG COMMIT_ID +ARG BUILD_TIME + +# Set labels for metadata +LABEL source=${SOURCE} +LABEL commit_hash=${COMMIT_HASH} +LABEL commit_id=${COMMIT_ID} +LABEL build_time=${BUILD_TIME} + +# Define build-time arguments for user and group +ARG container_user=mosip +ARG container_user_group=mosip +ARG container_user_uid=1001 +ARG container_user_gid=1001 +ARG KUBECTL_VERSION=1.22.9 + +# Set working directory for the user +WORKDIR /home/${container_user}/ +ENV work_dir=/home/${container_user}/ + +# Copy files +COPY ./injitest/target $work_dir/ +COPY application.properties $work_dir/ +COPY ["Biometric Devices", "$work_dir/Biometric Devices"] +COPY ["resource", "$work_dir/resource"] +COPY testNgXmlFiles $work_dir/testNgXmlFiles +COPY androidConfig.yml $work_dir/ +COPY iosConfig.yml $work_dir/ +COPY entrypoint.sh $work_dir + +# install packages and create user +RUN apt-get -y update \ +&& apt-get install -y unzip jq curl \ +&& groupadd -g ${container_user_gid} ${container_user_group} \ +&& useradd -u ${container_user_uid} -g ${container_user_group} -s /bin/bash -m ${container_user} \ +&& curl -LO "https://storage.googleapis.com/kubernetes-release/release/v${KUBECTL_VERSION}/bin/linux/amd64/kubectl" \ +&& mkdir -p /home/${container_user} \ +&& chmod +x kubectl $work_dir/entrypoint.sh \ +&& mv kubectl /usr/local/bin/ \ +&& chown -R ${container_user}:${container_user} /home/${container_user} /etc/ssl/certs/java/cacerts \ +&& chmod 644 /etc/ssl/certs/java/cacerts + +# Switch to the specified user for the subsequent commands +USER ${container_user_uid}:${container_user_gid} + +# Create necessary directories +RUN mkdir -p /home/mosip/test-output && chmod -R 777 /home/mosip/test-output +RUN mkdir -p /home/mosip/screenshots && chmod -R 777 /home/mosip/screenshots + +# Expose port if needed +EXPOSE 8083 + +# Environment variables +ENV MODULES= +ENV ENV_USER= +ENV ENV_ENDPOINT= +ENV ENV_TESTLEVEL=smokeAndRegression +ENV ENV_TESTNG_XML_FILE= +ENV ENV_BROWSERSTACK_CONFIG= + +ENTRYPOINT ["./entrypoint.sh"] \ No newline at end of file diff --git a/injitest/browserstack.err b/injitest/browserstack.err index c40092e8..ba6a23ee 100644 --- a/injitest/browserstack.err +++ b/injitest/browserstack.err @@ -18,3 +18,7 @@ [Thu, 14 Aug 2025 05:38:21 GMT] Error from server Error: listen EADDRINUSE: address already in use \\.\pipe\browserstack\daemonInstance - \\.\pipe\browserstack\daemonInstance [Thu, 14 Aug 2025 06:21:13 GMT] Error from server Error: listen EADDRINUSE: address already in use \\.\pipe\browserstack\daemonInstance - \\.\pipe\browserstack\daemonInstance [Thu, 14 Aug 2025 07:12:11 GMT] Error from server Error: listen EADDRINUSE: address already in use \\.\pipe\browserstack\daemonInstance - \\.\pipe\browserstack\daemonInstance +[Fri, 19 Sep 2025 11:06:06 GMT] Error from server Error: listen EADDRINUSE: address already in use \\.\pipe\browserstack\daemonInstance - \\.\pipe\browserstack\daemonInstance +[Fri, 19 Sep 2025 12:35:59 GMT] Error from server Error: listen EADDRINUSE: address already in use \\.\pipe\browserstack\RANCHER_AUTOMATION_TUNNELdaemonInstance - \\.\pipe\browserstack\RANCHER_AUTOMATION_TUNNELdaemonInstance +[Fri, 19 Sep 2025 12:50:21 GMT] Error from server Error: listen EADDRINUSE: address already in use \\.\pipe\browserstack\RANCHER_AUTOMATION_TUNNELdaemonInstance - \\.\pipe\browserstack\RANCHER_AUTOMATION_TUNNELdaemonInstance +[Fri, 19 Sep 2025 14:03:23 GMT] Error from server Error: listen EADDRINUSE: address already in use \\.\pipe\browserstack\RANCHER_AUTOMATION_TUNNELdaemonInstance - \\.\pipe\browserstack\RANCHER_AUTOMATION_TUNNELdaemonInstance diff --git a/injitest/entrypoint.sh b/injitest/entrypoint.sh new file mode 100644 index 00000000..2c9ff616 --- /dev/null +++ b/injitest/entrypoint.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +# Run JAR with system properties before -jar +java -Dmodules="$MODULES" \ + -Denv.user="$ENV_USER" \ + -Denv.endpoint="$ENV_ENDPOINT" \ + -Denv.testLevel="$ENV_TESTLEVEL" \ + -DtestngXmlFile="$ENV_TESTNG_XML_FILE" \ + -Dbrowserstack.config="$ENV_BROWSERSTACK_CONFIG" \ + -jar uitest-inji-wallet-*.jar diff --git a/injitest/pom.xml b/injitest/pom.xml index 0e5e2529..2765b0de 100644 --- a/injitest/pom.xml +++ b/injitest/pom.xml @@ -2,13 +2,13 @@ 4.0.0 - inji - injitest + io.mosip.inji + inji-wallet 0.20.0-SNAPSHOT jar - inji-mob-automation - inji-mob-automation - https://github.com/mosip/inji/injitest + uitest-inji-wallet + Project for Inji Mobile UI Automation + https://github.com/mosip/inji-wallet @@ -17,9 +17,9 @@ - scm:git:git://github.com/mosip/admin-ui.git - scm:git:ssh://github.com:mosip/admin-ui.git - https://github.com/mosip/inji/injitest + scm:git:git://github.com/mosip/inji-wallet.git + scm:git:ssh://github.com/mosip/inji-wallet.git + https://github.com/mosip/inji-wallet HEAD @@ -27,9 +27,20 @@ Mosip mosip.emailnotifier@gmail.com io.mosip - https://github.com/mosip/inji/injitest + https://github.com/mosip/inji-wallet + + + ossrh-central + MavenCentralRepository + https://central.sonatype.com/repository/maven-snapshots/ + default + + true + + + UTF-8 21 @@ -37,6 +48,10 @@ 3.5.3 2.25.1 2.14.3 + 1.5 + 3.6.1 + 0.7.0 + uitest-inji-wallet-0.20.0-SNAPSHOT-jar-with-dependencies @@ -192,6 +207,16 @@ 5.1.2 + + + ossrh + https://central.sonatype.com/repository/maven-snapshots/ + + + ossrh + https://central.sonatype.com/api/v1/publisher + + @@ -234,6 +259,69 @@ + + org.sonatype.central + central-publishing-maven-plugin + ${central.publishing.maven.plugin.version} + true + + ossrh + false + + + + org.apache.maven.plugins + maven-shade-plugin + ${maven.shade.plugin.version} + + + package + + shade + + + ${jarName}} + + + inji.runner.MosipTestRunner + + + + + + *:* + + META-INF/*.SF + META-INF/*.DSA + META-INF/*.RSA + + + + + + + + + org.apache.maven.plugins + maven-gpg-plugin + ${maven.gpg.plugin.version} + + + sign-artifacts + verify + + sign + + + + --pinentry-mode + loopback + + + + + diff --git a/injitest/src/main/java/inji/pages/AppUnlockMethodPage.java b/injitest/src/main/java/inji/pages/AppUnlockMethodPage.java index b0dd465a..929adc8e 100644 --- a/injitest/src/main/java/inji/pages/AppUnlockMethodPage.java +++ b/injitest/src/main/java/inji/pages/AppUnlockMethodPage.java @@ -36,7 +36,9 @@ public class AppUnlockMethodPage extends BasePage { } public SetPasscode clickOnUsePasscode() { - click(usePasscodeButton, "Click on 'Use Passcode' button to proceed"); + if (isElementVisible(usePasscodeButton)) { + click(usePasscodeButton, "Click on 'Use Passcode' button to proceed"); + } return new SetPasscode(driver); } diff --git a/injitest/src/main/java/inji/pages/BasePage.java b/injitest/src/main/java/inji/pages/BasePage.java index 8a94c333..6f86c8fb 100644 --- a/injitest/src/main/java/inji/pages/BasePage.java +++ b/injitest/src/main/java/inji/pages/BasePage.java @@ -140,6 +140,8 @@ public class BasePage { ExtentReportManager.getTest().log(Status.FAIL, "Failed to click on element: " + describeElement(element)); throw e; } + } else { + throw new RuntimeException("Element not visible: " + stepDesc); } } @@ -166,6 +168,8 @@ public class BasePage { if (isElementVisible(element)) { element.sendKeys(text); logStep(stepDesc + " - Entered text: '" + text + "'", element); + } else { + throw new RuntimeException("Element not visible: " + stepDesc); } } @@ -174,6 +178,8 @@ public class BasePage { element.clear(); element.sendKeys(text); logStep(stepDesc + " - Cleared and entered: '" + text + "'", element); + } else { + throw new RuntimeException("Element not visible: " + stepDesc); } } diff --git a/injitest/src/main/java/inji/pages/ESignetLoginPage.java b/injitest/src/main/java/inji/pages/ESignetLoginPage.java index ca37395b..b29dac10 100644 --- a/injitest/src/main/java/inji/pages/ESignetLoginPage.java +++ b/injitest/src/main/java/inji/pages/ESignetLoginPage.java @@ -1,5 +1,6 @@ package inji.pages; +import inji.utils.InjiWalletConfigManager; import io.appium.java_client.AppiumDriver; import io.appium.java_client.HidesKeyboard; import io.appium.java_client.pagefactory.AndroidFindBy; @@ -11,6 +12,8 @@ import java.util.Map; public class ESignetLoginPage extends BasePage { + private static final String mosipIssuerCredentialType = InjiWalletConfigManager.getproperty("mosip.issuer.credentialType"); + @iOSXCUITFindBy(iOSClassChain = "**/XCUIElementTypeStaticText[`label == \"“Inji” Wants to Use “mosip.net” to Sign In\"`]") private WebElement iosSignInPermissionPopup; @@ -30,7 +33,7 @@ public class ESignetLoginPage extends BasePage { @iOSXCUITFindBy(xpath = "//android.view.View[@resource-id=\"navbar-header\"]/android.widget.Image[1]") private WebElement ESignetLogo; - @AndroidFindBy(xpath = "//android.widget.EditText[@resource-id=\"Otp_mosip-vid\"]") + @AndroidFindBy(xpath = "//android.widget.EditText[@resource-id=\"Otp_vid\"]") @iOSXCUITFindBy(className = "XCUIElementTypeTextField") private WebElement enterIdTextBox; @@ -38,12 +41,12 @@ public class ESignetLoginPage extends BasePage { @iOSXCUITFindBy(accessibility = "Get OTP") private WebElement getOtpButton; - @AndroidFindBy(uiAutomator = "new UiSelector().className(\"android.widget.Button\").instance(1)") + @AndroidFindBy(xpath = "//android.widget.Button[@resource-id=\"verify_otp\"]") @iOSXCUITFindBy(accessibility = "Verify") private WebElement verifyButton; - @AndroidFindBy(xpath = "//*[contains(@text,'OTP has been sent to your registered Mobile Number')]") - @iOSXCUITFindBy(xpath = "//*[contains(@text,'OTP has been sent to your registered Mobile Number')]") + @AndroidFindBy(xpath = "//*[contains(@text,'Please enter the 6-digit OTP sent to')]") + @iOSXCUITFindBy(xpath = "//*[contains(@text,'Please enter the 6-digit OTP sent to')]") private WebElement otpSendMessage; @AndroidFindBy(className = "android.view.ViewGroup") @@ -122,6 +125,10 @@ public class ESignetLoginPage extends BasePage { } public OtpVerificationPage setEnterIdTextBox(String uinOrVid) { + if ("iOS".equalsIgnoreCase(driver.getCapabilities().getCapability("platformName").toString())) { + click(enterIdTextBox, "Click on Enter ID textbox to enter UIN or VID"); // Needed for iOS before typing + } + enterText(enterIdTextBox, uinOrVid, "Enter UIN or VID in Enter ID textbox"); return new OtpVerificationPage(driver); } @@ -201,6 +208,6 @@ public class ESignetLoginPage extends BasePage { } public void clickOnCredentialTypeHeadingMOSIPVerifiableCredential() { - click(credentialTypeHeadingMOSIPVerifiableCredential, "Click on Credential Type heading - MOSIP Verifiable Credential"); + scrollAndClickByAccessibilityId(mosipIssuerCredentialType, "Click on 'MOSIP Verifiable Credential' option"); } } \ No newline at end of file diff --git a/injitest/src/main/java/inji/pages/MockCertifyLoginPage.java b/injitest/src/main/java/inji/pages/MockCertifyLoginPage.java index 032c8b46..817ff4c6 100644 --- a/injitest/src/main/java/inji/pages/MockCertifyLoginPage.java +++ b/injitest/src/main/java/inji/pages/MockCertifyLoginPage.java @@ -25,7 +25,7 @@ public class MockCertifyLoginPage extends BasePage { @iOSXCUITFindBy(xpath = "//*[contains(@text,'Login with e-Signet')]") private WebElement esignetLoginHeader; - @AndroidFindBy(xpath = "//*[contains(@text,'Please enter your UIN/VID')]") + @AndroidFindBy(xpath = "//android.widget.EditText[@resource-id=\"Otp_vid\"]") @iOSXCUITFindBy(xpath = "//*[contains(@text,'Please enter your UIN/VID'')]") private WebElement enterYourVidTextHeader; @@ -38,12 +38,12 @@ public class MockCertifyLoginPage extends BasePage { private WebElement getOtpButton; - @AndroidFindBy(uiAutomator = "new UiSelector().className(\"android.widget.Button\").instance(1)") + @AndroidFindBy(xpath = "//android.widget.Button[@resource-id=\"verify_otp\"]") @iOSXCUITFindBy(accessibility = "Verify") private WebElement verifyButton; - @AndroidFindBy(xpath = "//*[contains(@text,'OTP has been sent to your registered Mobile Number')]") - @iOSXCUITFindBy(xpath = "//*[contains(@text,'OTP has been sent to your registered Mobile Number')]") + @AndroidFindBy(xpath = "//*[contains(@text,'Please enter the 6-digit OTP sent to')]") + @iOSXCUITFindBy(xpath = "//*[contains(@text,'Please enter the 6-digit OTP sent to')]") private WebElement otpSendMessage; @AndroidFindBy(className = "android.view.ViewGroup") @@ -140,6 +140,7 @@ public class MockCertifyLoginPage extends BasePage { } public void clickOnGetOtpButton() { + ((HidesKeyboard) driver).hideKeyboard(); click(getOtpButton, "Clicking on Get OTP button"); } diff --git a/injitest/src/main/java/inji/pages/SetPasscode.java b/injitest/src/main/java/inji/pages/SetPasscode.java index 7ffe14ec..a930eed1 100644 --- a/injitest/src/main/java/inji/pages/SetPasscode.java +++ b/injitest/src/main/java/inji/pages/SetPasscode.java @@ -6,6 +6,7 @@ import io.appium.java_client.pagefactory.AndroidFindBy; import io.appium.java_client.pagefactory.iOSXCUITFindBy; import org.openqa.selenium.By; import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.ui.ExpectedConditions; import java.util.List; @@ -18,6 +19,9 @@ public class SetPasscode extends BasePage { @iOSXCUITFindBy(accessibility = "Done") private WebElement doneButton; + @iOSXCUITFindBy(accessibility = "Enter OTP") + private WebElement enterOtpHeader; + @AndroidFindBy(xpath = "//android.view.View[contains(@resource-id, \"otp_verify_input\")]//android.widget.EditText[1]") @iOSXCUITFindBy(xpath = "//XCUIElementTypeOther[@name=\"eSignet\"]/XCUIElementTypeOther[6]/XCUIElementTypeTextField[1]") private WebElement inputOtp; @@ -106,21 +110,23 @@ public class SetPasscode extends BasePage { } private void enterOtpIosForeSignet(char[] arr) { - String baseXpath = isElementVisible(inputOtp) - ? "//XCUIElementTypeOther[@name=\"eSignet\"]/XCUIElementTypeOther[6]/XCUIElementTypeTextField" - : "//XCUIElementTypeOther[@name=\"eSignet\"]/XCUIElementTypeOther[7]/XCUIElementTypeTextField"; + if (isElementVisible(enterOtpHeader)) { + String baseXpath = "//*[@type='XCUIElementTypeTextField' or @type='XCUIElementTypeSecureTextField']"; - List fields = driver.findElements(By.xpath(baseXpath)); + for (int i = 0; i < arr.length; i++) { + WebElement passcodeInput = driver.findElement(By.xpath("(" + baseXpath + ")[" + (i + 1) + "]")); - if (fields.size() < arr.length) { - throw new IllegalStateException("Not enough input fields to enter OTP on iOS eSignet."); - } - - for (int i = 0; i < arr.length; i++) { - fields.get(i).sendKeys(String.valueOf(arr[i])); + if (i==0) { + click(passcodeInput, "Click on the passcode field"); + } + enterText(passcodeInput, String.valueOf(arr[i]), "Entering passcode digit in field " + (i + 1)); + } + } else { + throw new IllegalStateException("Enter OTP header is not visible on iOS Esignet."); } } + private void enterOtpAndroidForeSignet(char[] arr) { String baseXpath = isElementVisible(inputOtp) ? "//android.view.View[contains(@resource-id, \"otp_verify_input\")]//android.widget.EditText" diff --git a/injitest/src/main/java/inji/pages/SharePage.java b/injitest/src/main/java/inji/pages/SharePage.java index e68100df..afbc3586 100644 --- a/injitest/src/main/java/inji/pages/SharePage.java +++ b/injitest/src/main/java/inji/pages/SharePage.java @@ -116,7 +116,7 @@ public class SharePage extends BasePage { public SharePage acceptPermissionPopupBluetoothIos() { click(okButtonIos, "Click on OK Button (iOS)"); - click(AllowButtonIos, "Click on Allow Button (iOS)"); +// click(AllowButtonIos, "Click on Allow Button (iOS)"); return this; } diff --git a/injitest/src/main/java/inji/pages/SunbirdLoginPage.java b/injitest/src/main/java/inji/pages/SunbirdLoginPage.java index 8bce1b4c..3ca4e5c5 100644 --- a/injitest/src/main/java/inji/pages/SunbirdLoginPage.java +++ b/injitest/src/main/java/inji/pages/SunbirdLoginPage.java @@ -23,15 +23,15 @@ public class SunbirdLoginPage extends BasePage { private WebElement loginWithKBA; @AndroidFindBy(xpath = "//*[@resource-id=\"_form_policyNumber\"]") - @iOSXCUITFindBy(xpath = "//XCUIElementTypeTextField[@name=\"Please fill in this field\" and @value=\"Policy Number\"]") + @iOSXCUITFindBy(xpath = "//XCUIElementTypeTextField[@value=\"Policy Number\"]") private WebElement enterPolicyTextBox; @AndroidFindBy(xpath = "//android.widget.EditText[@resource-id=\"_form_fullName\"]") - @iOSXCUITFindBy(iOSClassChain = "**/XCUIElementTypeTextField[`name == \"Please fill in this field\"`][2]") + @iOSXCUITFindBy(xpath = "//XCUIElementTypeTextField[@value=\"Full Name\"]") private WebElement enterFullNameTextBox; @AndroidFindBy(uiAutomator = "UiSelector().className(\"android.widget.Spinner\")") - @iOSXCUITFindBy(iOSClassChain = "**/XCUIElementTypeOther[`name == \"Please fill in this field\"`]") + @iOSXCUITFindBy(iOSClassChain = "**/XCUIElementTypeOther[`name == \"eSignet\"`]/XCUIElementTypeOther[10]") private WebElement enterDateOfBirthTextBox; @iOSXCUITFindBy(xpath = "//XCUIElementTypePickerWheel[@value=\"2025\"]") @@ -189,7 +189,7 @@ public class SunbirdLoginPage extends BasePage { private WebElement setButton; @AndroidFindBy(xpath = "//*[contains(@text,'CONTINUE')]") - @iOSXCUITFindBy(xpath = "//*[contains(@text,'CONTINUE')]") + @iOSXCUITFindBy(accessibility = "Continue") private WebElement continuePopupButton; public void clickOnLoginWithKbaButton() { diff --git a/injitest/src/main/java/inji/testcases/BaseTest/BaseTest.java b/injitest/src/main/java/inji/testcases/BaseTest/BaseTest.java index 93fc9485..502440be 100644 --- a/injitest/src/main/java/inji/testcases/BaseTest/BaseTest.java +++ b/injitest/src/main/java/inji/testcases/BaseTest/BaseTest.java @@ -12,6 +12,7 @@ import inji.driver.DriverManager; import inji.models.Policy; import inji.models.Uin; import inji.models.Vid; +import inji.utils.BrowserStackLocalManager; import inji.utils.ExtentReportManager; import inji.utils.InjiWalletConfigManager; import inji.utils.testdatamanager.MockUINManager; @@ -47,6 +48,7 @@ import java.util.Map; public abstract class BaseTest { protected Local bsLocal; + private static final ThreadLocal threadUin = new ThreadLocal<>(); private static final ThreadLocal threadVid = new ThreadLocal<>(); private static final ThreadLocal threadMockUin = new ThreadLocal<>(); @@ -62,15 +64,7 @@ public abstract class BaseTest { @BeforeSuite(alwaysRun = true) public void beforeSuite() { ExtentReportManager.initReport(); - bsLocal = new Local(); - Map options = new HashMap<>(); - options.put("key", InjiWalletConfigManager.getproperty("browserstack.accesskey")); - options.put("forcelocal", "true"); - try { - bsLocal.start(options); - } catch (Exception e) { - throw new RuntimeException("Failed to start BrowserStack Local", e); - } + BrowserStackLocalManager.startLocal(); } @BeforeMethod(alwaysRun = true) @@ -205,6 +199,7 @@ public abstract class BaseTest { @AfterSuite(alwaysRun = true) public void afterSuite() { ExtentReportManager.flushReport(); + BrowserStackLocalManager.stopLocal(); // Generate final report file name String timestamp = new SimpleDateFormat("yyyy-MM-dd-HH-mm").format(new Date()); @@ -243,15 +238,6 @@ public abstract class BaseTest { LOGGER.error("S3 upload failed: {}", e.getMessage(), e); } } - - // Stop BrowserStack Local - if (bsLocal != null && bsLocal.isRunning()) { - try { - bsLocal.stop(); - } catch (Exception e) { - throw new RuntimeException("Failed to stop BrowserStack Local", e); - } - } } // Getters for tests diff --git a/injitest/src/main/java/inji/testcases/androidTestCases/ChangeLanguageTest.java b/injitest/src/main/java/inji/testcases/androidTestCases/ChangeLanguageTest.java index c4c4e544..8f64e26f 100644 --- a/injitest/src/main/java/inji/testcases/androidTestCases/ChangeLanguageTest.java +++ b/injitest/src/main/java/inji/testcases/androidTestCases/ChangeLanguageTest.java @@ -524,7 +524,7 @@ public class ChangeLanguageTest extends AndroidBaseTest { // assertEquals(sunbirdLoginPage.getFullNameForSunbirdCard(),TestDataReader.readData("fullNameSunbird")); sunbirdLoginPage.openDetailedSunbirdVcView(); - assertEquals(sunbirdLoginPage.getFullNameForSunbirdCard(), TestDataReader.readData("fullNameSunbird")); + assertEquals(sunbirdLoginPage.getFullNameForSunbirdCard(), getPolicyName()); assertEquals(sunbirdLoginPage.getPolicyNameForSunbirdCard(), TestDataReader.readData("policyNameSunbird")); assertEquals(sunbirdLoginPage.getPhoneNumberForSunbirdCard(), TestDataReader.readData("phoneNumberSunbird")); assertTrue(sunbirdLoginPage.isDateOfBirthValueForSunbirdCardDisplayed()); diff --git a/injitest/src/main/java/inji/testcases/androidTestCases/DeletingVcTest.java b/injitest/src/main/java/inji/testcases/androidTestCases/DeletingVcTest.java index 47001f94..3cd1c734 100644 --- a/injitest/src/main/java/inji/testcases/androidTestCases/DeletingVcTest.java +++ b/injitest/src/main/java/inji/testcases/androidTestCases/DeletingVcTest.java @@ -297,7 +297,7 @@ public class DeletingVcTest extends AndroidBaseTest { // assertTrue(sunbirdLoginPage.isSunbirdCardActive(), "Verify if download sunbird displayed active"); // assertTrue(sunbirdLoginPage.isSunbirdCardLogoDisplayed(), "Verify if download sunbird logo displayed"); // assertEquals(sunbirdLoginPage.getFullNameForSunbirdCard(),TestDataReader.readData("fullNameSunbird")); - + addNewCardPage.clickOnDoneButton(); MoreOptionsPage moreOptionsPage = homePage.clickOnMoreOptionsButton(); // assertTrue(moreOptionsPage.isMoreOptionsPageLoaded(), "Verify if more options page is displayed"); diff --git a/injitest/src/main/java/inji/testcases/androidTestCases/MosipOtpAlternativeFlow.java b/injitest/src/main/java/inji/testcases/androidTestCases/MosipOtpAlternativeFlow.java index 905233eb..45793a47 100644 --- a/injitest/src/main/java/inji/testcases/androidTestCases/MosipOtpAlternativeFlow.java +++ b/injitest/src/main/java/inji/testcases/androidTestCases/MosipOtpAlternativeFlow.java @@ -229,7 +229,6 @@ public class MosipOtpAlternativeFlow extends AndroidBaseTest { // assertTrue(moreOptionsPage.isMoreOptionsPageLoaded(), "Verify if more options page is displayed"); // moreOptionsPage.clickOnCloseButton(); - addNewCardPage.clickOnDoneButton(); assertTrue(homePage.isCredentialTypeValueDisplayed(), "Verify if credential type value is displayed"); } @@ -300,7 +299,7 @@ public class MosipOtpAlternativeFlow extends AndroidBaseTest { otpVerification.enterOtpForeSignet(getOtp(), PlatformType.ANDROID); esignetLoginPage.clickOnVerifyButton(); - addNewCardPage.clickOnDoneButton(); +// addNewCardPage.clickOnDoneButton(); // assertTrue(homePage.isCredentialTypeValueDisplayed(), "Verify if credential type value is displayed"); HistoryPage historyPage = homePage.clickOnHistoryButton(); diff --git a/injitest/src/main/java/inji/testcases/androidTestCases/MosipOtpAlternativeFlowForHistoryAndPin.java b/injitest/src/main/java/inji/testcases/androidTestCases/MosipOtpAlternativeFlowForHistoryAndPin.java index e57d85fe..b85e5dfc 100644 --- a/injitest/src/main/java/inji/testcases/androidTestCases/MosipOtpAlternativeFlowForHistoryAndPin.java +++ b/injitest/src/main/java/inji/testcases/androidTestCases/MosipOtpAlternativeFlowForHistoryAndPin.java @@ -63,7 +63,7 @@ public class MosipOtpAlternativeFlowForHistoryAndPin extends AndroidBaseTest { moreOptionsPage.clickOnPinOrUnPinCard(); detailedVcViewPage.clickOnBackArrow(); - addNewCardPage.clickOnDoneButton(); +// addNewCardPage.clickOnDoneButton(); assertTrue(homePage.isCredentialTypeValueDisplayed(), "Verify if credential type value is displayed"); assertTrue(homePage.isPinIconDisplayed(), "Verify if pin icon on vc is displayed"); @@ -134,7 +134,7 @@ public class MosipOtpAlternativeFlowForHistoryAndPin extends AndroidBaseTest { otpVerification.enterOtpForeSignet(getOtp(), PlatformType.ANDROID); esignetLoginPage.clickOnVerifyButton(); - addNewCardPage.clickOnDoneButton(); +// addNewCardPage.clickOnDoneButton(); // assertTrue(homePage.isCredentialTypeValueDisplayed(), "Verify if credential type value is displayed"); MoreOptionsPage moreOptionsPage = homePage.clickOnMoreOptionsButton(); @@ -215,7 +215,7 @@ public class MosipOtpAlternativeFlowForHistoryAndPin extends AndroidBaseTest { otpVerification.enterOtpForeSignet(getOtp(), PlatformType.ANDROID); esignetLoginPage.clickOnVerifyButton(); - addNewCardPage.clickOnDoneButton(); +// addNewCardPage.clickOnDoneButton(); // assertTrue(homePage.isCredentialTypeValueDisplayed(), "Verify if credential type value is displayed"); MoreOptionsPage moreOptionsPage = new MoreOptionsPage(getDriver()); diff --git a/injitest/src/main/java/inji/testcases/androidTestCases/NoNetworkAndroidTest.java b/injitest/src/main/java/inji/testcases/androidTestCases/NoNetworkAndroidTest.java index 1b000a07..5c958ef9 100644 --- a/injitest/src/main/java/inji/testcases/androidTestCases/NoNetworkAndroidTest.java +++ b/injitest/src/main/java/inji/testcases/androidTestCases/NoNetworkAndroidTest.java @@ -211,7 +211,7 @@ public class NoNetworkAndroidTest extends AndroidBaseTest { assertTrue(helpPage.isHelpPageLoaded(), "Verify if help page is displayed"); helpPage.exitHelpPage(); - homePage.clickOnNextButtonForInjiTour(); +// homePage.clickOnNextButtonForInjiTour(); assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); } diff --git a/injitest/src/main/java/inji/testcases/androidTestCases/PinVcTest.java b/injitest/src/main/java/inji/testcases/androidTestCases/PinVcTest.java index a8cd08bb..5e699bf4 100644 --- a/injitest/src/main/java/inji/testcases/androidTestCases/PinVcTest.java +++ b/injitest/src/main/java/inji/testcases/androidTestCases/PinVcTest.java @@ -164,7 +164,7 @@ public class PinVcTest extends AndroidBaseTest { // assertTrue(moreOptionsPage.isMoreOptionsPageLoaded(), "Verify if more options page is displayed"); moreOptionsPage.clickOnPinOrUnPinCard(); - homePage.clickOnNextButtonForInjiTour(); +// homePage.clickOnNextButtonForInjiTour(); // assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); homePage.downloadCard(); @@ -183,7 +183,7 @@ public class PinVcTest extends AndroidBaseTest { esignetLoginPage.clickOnVerifyButton(); assertTrue(homePage.isPinIconDisplayed(), "Verify if pin icon on vc is displayed"); - addNewCardPage.clickOnDoneButton(); +// addNewCardPage.clickOnDoneButton(); assertTrue(homePage.isCredentialTypeValueDisplayed(), "Verify if credential type value is displayed"); homePage.clickOnMoreOptionsButton(); diff --git a/injitest/src/main/java/inji/testcases/androidTestCases/UnlockWithPasscodeTest.java b/injitest/src/main/java/inji/testcases/androidTestCases/UnlockWithPasscodeTest.java index 8c31ca39..f3fc46b8 100644 --- a/injitest/src/main/java/inji/testcases/androidTestCases/UnlockWithPasscodeTest.java +++ b/injitest/src/main/java/inji/testcases/androidTestCases/UnlockWithPasscodeTest.java @@ -48,7 +48,7 @@ public class UnlockWithPasscodeTest extends AndroidBaseTest { // assertTrue(enterYourPasscodePage.isEnterYourPasscodePageLoaded(), "Verify if enter your passcode page is displayed"); enterYourPasscodePage.enterPasscodeOnPasscodePage(TestDataReader.readData("passcode"), PlatformType.ANDROID); - homePage.clickOnNextButtonForInjiTour(); +// homePage.clickOnNextButtonForInjiTour(); assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); } diff --git a/injitest/src/main/java/inji/testcases/androidTestCases/VerifyHelpPageTest.java b/injitest/src/main/java/inji/testcases/androidTestCases/VerifyHelpPageTest.java index 61165e00..deaecee8 100644 --- a/injitest/src/main/java/inji/testcases/androidTestCases/VerifyHelpPageTest.java +++ b/injitest/src/main/java/inji/testcases/androidTestCases/VerifyHelpPageTest.java @@ -44,7 +44,7 @@ public class VerifyHelpPageTest extends AndroidBaseTest { assertTrue(helpPage.isWhatIsShareWithSelfieTextdHeader(), "verify if share with selfie text displayed"); helpPage.exitHelpPage(); - homePage.clickOnNextButtonForInjiTour(); +// homePage.clickOnNextButtonForInjiTour(); assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); } diff --git a/injitest/src/main/java/inji/testcases/androidTestCases/VerifyHistoryTest.java b/injitest/src/main/java/inji/testcases/androidTestCases/VerifyHistoryTest.java index 95302c70..b6edf978 100644 --- a/injitest/src/main/java/inji/testcases/androidTestCases/VerifyHistoryTest.java +++ b/injitest/src/main/java/inji/testcases/androidTestCases/VerifyHistoryTest.java @@ -409,6 +409,7 @@ public class VerifyHistoryTest extends AndroidBaseTest { sunbirdLoginPage.clickOnLoginButton(); // assertTrue(sunbirdLoginPage.isSunbirdCardActive(), "Verify if download sunbird displayed active"); + addNewCardPage.clickOnDoneButton(); assertTrue(sunbirdLoginPage.isSunbirdCardLogoDisplayed(), "Verify if download sunbird logo displayed"); // assertEquals(sunbirdLoginPage.getFullNameForSunbirdCard(),TestDataReader.readData("fullNameSunbird")); diff --git a/injitest/src/main/java/inji/testcases/iosTestCases/ActivateVcTest.java b/injitest/src/main/java/inji/testcases/iosTestCases/ActivateVcTest.java index 6755dbf9..05a6a8fe 100644 --- a/injitest/src/main/java/inji/testcases/iosTestCases/ActivateVcTest.java +++ b/injitest/src/main/java/inji/testcases/iosTestCases/ActivateVcTest.java @@ -265,7 +265,7 @@ public class ActivateVcTest extends IosBaseTest { ESignetLoginPage esignetLoginPage = addNewCardPage.clickOnDownloadViaEsignet(); addNewCardPage.clickOnContinueButtonInSigninPopupIos(); - esignetLoginPage.clickOnEsignetLoginWithOtpButton(); +// esignetLoginPage.clickOnEsignetLoginWithOtpButton(); // assertTrue(esignetLoginPage.isEnterYourVidTextDisplayed(), "Verify if Esignet Login page is landed"); // String uin=TestDataReader.readData("uin"); diff --git a/injitest/src/main/java/inji/testcases/iosTestCases/ChangeLanguageTest.java b/injitest/src/main/java/inji/testcases/iosTestCases/ChangeLanguageTest.java index 4d549e02..92cd96f6 100644 --- a/injitest/src/main/java/inji/testcases/iosTestCases/ChangeLanguageTest.java +++ b/injitest/src/main/java/inji/testcases/iosTestCases/ChangeLanguageTest.java @@ -606,14 +606,13 @@ public class ChangeLanguageTest extends IosBaseTest { assertTrue(addNewCardPage.isDownloadViaSunbirdDisplayed(), "Verify if download sunbird displayed"); SunbirdLoginPage sunbirdLoginPage = addNewCardPage.clickOnDownloadViaSunbird(); addNewCardPage.clickOnCredentialTypeHeadingInsuranceCredential(); - addNewCardPage.clickOnContinueButtonInSigninPopupIos(); +// addNewCardPage.clickOnContinueButtonInSigninPopupIos(); sunbirdLoginPage.enterPolicyNumber(getPolicyNumber()); sunbirdLoginPage.enterFullName(getPolicyName()); sunbirdLoginPage.enterDateOfBirth(); IosUtil.scrollToElement(getDriver(), 100, 800, 100, 200); sunbirdLoginPage.clickOnLoginButton(); - addNewCardPage.clickOnDoneButton(); assertTrue(sunbirdLoginPage.isSunbirdCardActive(), "Verify if download sunbird displayed active"); SettingsPage settingsPage = homePage.clickOnSettingIcon(); @@ -628,7 +627,7 @@ public class ChangeLanguageTest extends IosBaseTest { sunbirdLoginPage.openDetailedSunbirdVcView(); - assertEquals(sunbirdLoginPage.getFullNameForSunbirdCard(), TestDataReader.readData("fullNameSunbird")); + assertEquals(sunbirdLoginPage.getFullNameForSunbirdCard(), getPolicyName()); assertEquals(sunbirdLoginPage.getPolicyNameForSunbirdCard(), TestDataReader.readData("policyNameSunbird")); assertEquals(sunbirdLoginPage.getPhoneNumberForSunbirdCard(), TestDataReader.readData("phoneNumberSunbird")); assertTrue(sunbirdLoginPage.isDateOfBirthValueForSunbirdCardDisplayed()); @@ -966,7 +965,7 @@ public class ChangeLanguageTest extends IosBaseTest { assertTrue(homePage.verifyAppSettingsHeader("English"), "Verify if app settings header text displayed"); assertTrue(homePage.verifyAppSettingDescription("English"), "Verify if app settings description displayed"); homePage.clickOnNextButton(); - homePage.clickOnNextButtonForInjiTour(); +// homePage.clickOnNextButtonForInjiTour(); assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); } @@ -1016,7 +1015,7 @@ public class ChangeLanguageTest extends IosBaseTest { assertTrue(homePage.verifyAppSettingsHeader("Hindi"), "Verify if app settings header text displayed"); assertTrue(homePage.verifyAppSettingDescription("Hindi"), "Verify if app settings description displayed"); homePage.clickOnNextButton(); - homePage.clickOnNextButtonForInjiTour(); +// homePage.clickOnNextButtonForInjiTour(); assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); } @@ -1066,7 +1065,7 @@ public class ChangeLanguageTest extends IosBaseTest { assertTrue(homePage.verifyAppSettingsHeader("Kannada"), "Verify if app settings header text displayed"); assertTrue(homePage.verifyAppSettingDescription("Kannada"), "Verify if app settings description displayed"); homePage.clickOnNextButton(); - homePage.clickOnNextButtonForInjiTour(); +// homePage.clickOnNextButtonForInjiTour(); assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); } @@ -1116,7 +1115,7 @@ public class ChangeLanguageTest extends IosBaseTest { assertTrue(homePage.verifyAppSettingsHeader("Tamil"), "Verify if app settings header text displayed"); assertTrue(homePage.verifyAppSettingDescription("Tamil"), "Verify if app settings description displayed"); homePage.clickOnNextButton(); - homePage.clickOnNextButtonForInjiTour(); +// homePage.clickOnNextButtonForInjiTour(); assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); } @@ -1166,7 +1165,7 @@ public class ChangeLanguageTest extends IosBaseTest { assertTrue(homePage.verifyAppSettingsHeader("Filipino"), "Verify if app settings header text displayed"); assertTrue(homePage.verifyAppSettingDescription("Filipino"), "Verify if app settings description displayed"); homePage.clickOnNextButton(); - homePage.clickOnNextButtonForInjiTour(); +// homePage.clickOnNextButtonForInjiTour(); assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); } diff --git a/injitest/src/main/java/inji/testcases/iosTestCases/DeletingVcTest.java b/injitest/src/main/java/inji/testcases/iosTestCases/DeletingVcTest.java index 10587c84..2f6bd517 100644 --- a/injitest/src/main/java/inji/testcases/iosTestCases/DeletingVcTest.java +++ b/injitest/src/main/java/inji/testcases/iosTestCases/DeletingVcTest.java @@ -210,10 +210,10 @@ public class DeletingVcTest extends IosBaseTest { AddNewCardPage addNewCardPage = homePage.downloadCard(); ESignetLoginPage esignetLoginPage = addNewCardPage.clickOnDownloadViaEsignet(); - esignetLoginPage.clickOnCredentialTypeHeadingMOSIPVerifiableCredential(); +// esignetLoginPage.clickOnCredentialTypeHeadingMOSIPVerifiableCredential(); addNewCardPage.clickOnContinueButtonInSigninPopupIos(); - esignetLoginPage.clickOnEsignetLoginWithOtpButton(); +// esignetLoginPage.clickOnEsignetLoginWithOtpButton(); // String uin = TestDataReader.readData("uin"); OtpVerificationPage otpVerification = esignetLoginPage.setEnterIdTextBox(getUIN()); @@ -274,7 +274,7 @@ public class DeletingVcTest extends IosBaseTest { // assertTrue(addNewCardPage.isAddNewCardPageLoaded(), "Verify if add new card page is displayed"); SunbirdLoginPage sunbirdLoginPage = addNewCardPage.clickOnDownloadViaSunbird(); addNewCardPage.clickOnCredentialTypeHeadingInsuranceCredential(); - addNewCardPage.clickOnContinueButtonInSigninPopupIos(); +// addNewCardPage.clickOnContinueButtonInSigninPopupIos(); sunbirdLoginPage.enterPolicyNumber(getPolicyNumber()); sunbirdLoginPage.enterFullName(getPolicyName()); @@ -284,7 +284,7 @@ public class DeletingVcTest extends IosBaseTest { // assertTrue(sunbirdLoginPage.isSunbirdCardActive(), "Verify if download sunbird displayed active"); // assertTrue(sunbirdLoginPage.isSunbirdCardLogoDisplayed(), "Verify if download sunbird logo displayed"); // assertEquals(sunbirdLoginPage.getFullNameForSunbirdCard(), getPolicyName()); - + addNewCardPage.clickOnDoneButton(); MoreOptionsPage moreOptionsPage = homePage.clickOnMoreOptionsButton(); // assertTrue(moreOptionsPage.isMoreOptionsPageLoaded(), "Verify if more options page is displayed"); diff --git a/injitest/src/main/java/inji/testcases/iosTestCases/KeyManagmentTest.java b/injitest/src/main/java/inji/testcases/iosTestCases/KeyManagmentTest.java index 7dbc6334..b95306f9 100644 --- a/injitest/src/main/java/inji/testcases/iosTestCases/KeyManagmentTest.java +++ b/injitest/src/main/java/inji/testcases/iosTestCases/KeyManagmentTest.java @@ -53,7 +53,7 @@ public class KeyManagmentTest extends IosBaseTest { ESignetLoginPage esignetLoginPage = addNewCardPage.clickOnDownloadViaEsignet(); addNewCardPage.clickOnContinueButtonInSigninPopupIos(); - esignetLoginPage.clickOnEsignetLoginWithOtpButton(); +// esignetLoginPage.clickOnEsignetLoginWithOtpButton(); // String uin = TestDataReader.readData("uin"); OtpVerificationPage otpVerification = esignetLoginPage.setEnterIdTextBox(getUIN()); @@ -114,8 +114,8 @@ public class KeyManagmentTest extends IosBaseTest { MockCertifyLoginPage mockCertifyLoginPage = addNewCardPage.clickOnDownloadViaMockCertify(); addNewCardPage.clickOnContinueButtonInSigninPopupIos(); - ESignetLoginPage esignetLoginPage = new ESignetLoginPage(getDriver()); - esignetLoginPage.clickOnEsignetLoginWithOtpButton(); +// ESignetLoginPage esignetLoginPage = new ESignetLoginPage(getDriver()); +// esignetLoginPage.clickOnEsignetLoginWithOtpButton(); OtpVerificationPage otpVerification = mockCertifyLoginPage.setEnterIdTextBox(getMockUIN()); @@ -171,7 +171,7 @@ public class KeyManagmentTest extends IosBaseTest { AddNewCardPage addNewCardPage = homePage.downloadCard(); SunbirdLoginPage sunbirdLoginPage = addNewCardPage.clickOnDownloadViaSunbird(); addNewCardPage.clickOnCredentialTypeHeadingInsuranceCredential(); - addNewCardPage.clickOnContinueButtonInSigninPopupIos(); +// addNewCardPage.clickOnContinueButtonInSigninPopupIos(); sunbirdLoginPage.enterPolicyNumber(getPolicyNumber()); sunbirdLoginPage.enterFullName(getPolicyName()); sunbirdLoginPage.enterDateOfBirth(); diff --git a/injitest/src/main/java/inji/testcases/iosTestCases/MosipOtpAlternativeFlow.java b/injitest/src/main/java/inji/testcases/iosTestCases/MosipOtpAlternativeFlow.java index cf13b689..c194d953 100644 --- a/injitest/src/main/java/inji/testcases/iosTestCases/MosipOtpAlternativeFlow.java +++ b/injitest/src/main/java/inji/testcases/iosTestCases/MosipOtpAlternativeFlow.java @@ -41,7 +41,7 @@ public class MosipOtpAlternativeFlow extends IosBaseTest { ESignetLoginPage esignetLoginPage = addNewCardPage.clickOnDownloadViaEsignet(); addNewCardPage.clickOnContinueButtonInSigninPopupIos(); - esignetLoginPage.clickOnEsignetLoginWithOtpButton(); +// esignetLoginPage.clickOnEsignetLoginWithOtpButton(); OtpVerificationPage otpVerification = esignetLoginPage.setEnterIdTextBox(getUIN()); esignetLoginPage.clickOnGetOtpButton(); @@ -79,7 +79,7 @@ public class MosipOtpAlternativeFlow extends IosBaseTest { ESignetLoginPage esignetLoginPage = addNewCardPage.clickOnDownloadViaEsignet(); addNewCardPage.clickOnContinueButtonInSigninPopupIos(); - esignetLoginPage.clickOnEsignetLoginWithOtpButton(); +// esignetLoginPage.clickOnEsignetLoginWithOtpButton(); OtpVerificationPage otpVerification = esignetLoginPage.setEnterIdTextBox(getUIN()); esignetLoginPage.clickOnGetOtpButton(); @@ -131,7 +131,7 @@ public class MosipOtpAlternativeFlow extends IosBaseTest { ESignetLoginPage esignetLoginPage = addNewCardPage.clickOnDownloadViaEsignet(); addNewCardPage.clickOnContinueButtonInSigninPopupIos(); - esignetLoginPage.clickOnEsignetLoginWithOtpButton(); +// esignetLoginPage.clickOnEsignetLoginWithOtpButton(); OtpVerificationPage otpVerification = esignetLoginPage.setEnterIdTextBox(getUIN()); esignetLoginPage.clickOnGetOtpButton(); @@ -184,7 +184,7 @@ public class MosipOtpAlternativeFlow extends IosBaseTest { ESignetLoginPage esignetLoginPage = addNewCardPage.clickOnDownloadViaEsignet(); addNewCardPage.clickOnContinueButtonInSigninPopupIos(); - esignetLoginPage.clickOnEsignetLoginWithOtpButton(); +// esignetLoginPage.clickOnEsignetLoginWithOtpButton(); OtpVerificationPage otpVerification = esignetLoginPage.setEnterIdTextBox(getUIN()); esignetLoginPage.clickOnGetOtpButton(); @@ -204,7 +204,7 @@ public class MosipOtpAlternativeFlow extends IosBaseTest { // assertTrue(moreOptionsPage.isMoreOptionsPageLoaded(), "Verify if more options page is displayed"); // moreOptionsPage.clickOnCloseButton(); - addNewCardPage.clickOnDoneButton(); +// addNewCardPage.clickOnDoneButton(); assertTrue(homePage.isCredentialTypeValueDisplayed(), "Verify if credential type value is displayed"); } @@ -235,7 +235,7 @@ public class MosipOtpAlternativeFlow extends IosBaseTest { ESignetLoginPage esignetLoginPage = addNewCardPage.clickOnDownloadViaEsignet(); addNewCardPage.clickOnContinueButtonInSigninPopupIos(); - esignetLoginPage.clickOnEsignetLoginWithOtpButton(); +// esignetLoginPage.clickOnEsignetLoginWithOtpButton(); OtpVerificationPage otpVerification = esignetLoginPage.setEnterIdTextBox(getUIN()); esignetLoginPage.clickOnGetOtpButton(); @@ -252,7 +252,7 @@ public class MosipOtpAlternativeFlow extends IosBaseTest { //assertTrue(pleaseConfirmPopupPage.isPleaseConfirmPopupPageLoaded(), "Verify if pop up page is displayed"); pleaseConfirmPopupPage.clickOnConfirmButton(); - addNewCardPage.clickOnDoneButton(); +// addNewCardPage.clickOnDoneButton(); // assertTrue(homePage.isCredentialTypeValueDisplayed(), "Verify if credential type value is displayed"); homePage.downloadCard(); @@ -260,14 +260,14 @@ public class MosipOtpAlternativeFlow extends IosBaseTest { addNewCardPage.clickOnDownloadViaEsignet(); addNewCardPage.clickOnContinueButtonInSigninPopupIos(); - esignetLoginPage.clickOnEsignetLoginWithOtpButton(); +// esignetLoginPage.clickOnEsignetLoginWithOtpButton(); esignetLoginPage.setEnterIdTextBox(getUIN()); esignetLoginPage.clickOnGetOtpButton(); otpVerification.enterOtpForeSignet(InjiWalletUtil.getOtp(), PlatformType.IOS); esignetLoginPage.clickOnVerifyButtonIos(); - addNewCardPage.clickOnDoneButton(); +// addNewCardPage.clickOnDoneButton(); //assertTrue(homePage.isCredentialTypeValueDisplayed(), "Verify if credential type value is displayed"); HistoryPage historyPage = homePage.clickOnHistoryButton(); @@ -306,7 +306,7 @@ public class MosipOtpAlternativeFlow extends IosBaseTest { ESignetLoginPage esignetLoginPage = addNewCardPage.clickOnDownloadViaEsignet(); addNewCardPage.clickOnContinueButtonInSigninPopupIos(); - esignetLoginPage.clickOnEsignetLoginWithOtpButton(); +// esignetLoginPage.clickOnEsignetLoginWithOtpButton(); OtpVerificationPage otpVerification = esignetLoginPage.setEnterIdTextBox(getUIN()); esignetLoginPage.clickOnGetOtpButton(); @@ -357,7 +357,7 @@ public class MosipOtpAlternativeFlow extends IosBaseTest { ESignetLoginPage esignetLoginPage = addNewCardPage.clickOnDownloadViaEsignet(); addNewCardPage.clickOnContinueButtonInSigninPopupIos(); - esignetLoginPage.clickOnEsignetLoginWithOtpButton(); +// esignetLoginPage.clickOnEsignetLoginWithOtpButton(); OtpVerificationPage otpVerification = esignetLoginPage.setEnterIdTextBox(getUIN()); esignetLoginPage.clickOnGetOtpButton(); @@ -441,7 +441,7 @@ public class MosipOtpAlternativeFlow extends IosBaseTest { ESignetLoginPage esignetLoginPage = addNewCardPage.clickOnDownloadViaEsignet(); addNewCardPage.clickOnContinueButtonInSigninPopupIos(); - esignetLoginPage.clickOnEsignetLoginWithOtpButton(); +// esignetLoginPage.clickOnEsignetLoginWithOtpButton(); OtpVerificationPage otpVerification = esignetLoginPage.setEnterIdTextBox(getUIN()); esignetLoginPage.clickOnGetOtpButton(); diff --git a/injitest/src/main/java/inji/testcases/iosTestCases/MosipOtpAlternativeFlowForHistoryAndPin.java b/injitest/src/main/java/inji/testcases/iosTestCases/MosipOtpAlternativeFlowForHistoryAndPin.java index a93ef62b..e982546f 100644 --- a/injitest/src/main/java/inji/testcases/iosTestCases/MosipOtpAlternativeFlowForHistoryAndPin.java +++ b/injitest/src/main/java/inji/testcases/iosTestCases/MosipOtpAlternativeFlowForHistoryAndPin.java @@ -39,7 +39,7 @@ public class MosipOtpAlternativeFlowForHistoryAndPin extends IosBaseTest { ESignetLoginPage esignetLoginPage = addNewCardPage.clickOnDownloadViaEsignet(); addNewCardPage.clickOnContinueButtonInSigninPopupIos(); - esignetLoginPage.clickOnEsignetLoginWithOtpButton(); +// esignetLoginPage.clickOnEsignetLoginWithOtpButton(); OtpVerificationPage otpVerification = esignetLoginPage.setEnterIdTextBox(getUIN()); esignetLoginPage.clickOnGetOtpButton(); @@ -59,7 +59,7 @@ public class MosipOtpAlternativeFlowForHistoryAndPin extends IosBaseTest { moreOptionsPage.clickOnPinOrUnPinCard(); detailedVcViewPage.clickOnBackArrow(); - addNewCardPage.clickOnDoneButton(); +// addNewCardPage.clickOnDoneButton(); assertTrue(homePage.isCredentialTypeValueDisplayed(), "Verify if credential type value is displayed"); assertTrue(homePage.isPinIconDisplayed(), "Verify if pin icon on vc is displayed"); @@ -99,7 +99,7 @@ public class MosipOtpAlternativeFlowForHistoryAndPin extends IosBaseTest { ESignetLoginPage esignetLoginPage = addNewCardPage.clickOnDownloadViaEsignet(); addNewCardPage.clickOnContinueButtonInSigninPopupIos(); - esignetLoginPage.clickOnEsignetLoginWithOtpButton(); +// esignetLoginPage.clickOnEsignetLoginWithOtpButton(); OtpVerificationPage otpVerification = esignetLoginPage.setEnterIdTextBox(getUIN()); esignetLoginPage.clickOnGetOtpButton(); @@ -155,10 +155,10 @@ public class MosipOtpAlternativeFlowForHistoryAndPin extends IosBaseTest { AddNewCardPage addNewCardPage = homePage.downloadCard(); ESignetLoginPage esignetLoginPage = addNewCardPage.clickOnDownloadViaEsignet(); - esignetLoginPage.clickOnCredentialTypeHeadingMOSIPVerifiableCredential(); +// esignetLoginPage.clickOnCredentialTypeHeadingMOSIPVerifiableCredential(); addNewCardPage.clickOnContinueButtonInSigninPopupIos(); - esignetLoginPage.clickOnEsignetLoginWithOtpButton(); +// esignetLoginPage.clickOnEsignetLoginWithOtpButton(); OtpVerificationPage otpVerification = esignetLoginPage.setEnterIdTextBox(getUIN()); esignetLoginPage.clickOnGetOtpButton(); diff --git a/injitest/src/main/java/inji/testcases/iosTestCases/NoNetworkIosTest.java b/injitest/src/main/java/inji/testcases/iosTestCases/NoNetworkIosTest.java index 67165f46..b4335062 100644 --- a/injitest/src/main/java/inji/testcases/iosTestCases/NoNetworkIosTest.java +++ b/injitest/src/main/java/inji/testcases/iosTestCases/NoNetworkIosTest.java @@ -203,7 +203,7 @@ public class NoNetworkIosTest extends IosBaseTest { assertTrue(helpPage.isHelpPageLoaded(), "Verify if help page is displayed"); helpPage.exitHelpPage(); - homePage.clickOnNextButtonForInjiTour(); +// homePage.clickOnNextButtonForInjiTour(); assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); } diff --git a/injitest/src/main/java/inji/testcases/iosTestCases/ShareVcTest.java b/injitest/src/main/java/inji/testcases/iosTestCases/ShareVcTest.java index 18e68fce..09aec998 100644 --- a/injitest/src/main/java/inji/testcases/iosTestCases/ShareVcTest.java +++ b/injitest/src/main/java/inji/testcases/iosTestCases/ShareVcTest.java @@ -35,7 +35,7 @@ public class ShareVcTest extends IosBaseTest { assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); SharePage scanPage = homePage.clickOnShareButton(); scanPage.acceptPermissionPopupBluetoothIos(); - scanPage.acceptPermissionPopupCameraIos(); +// scanPage.acceptPermissionPopupCameraIos(); assertTrue(scanPage.isNoShareableCardsMessageDisplayed(), "Verify if no shareable cards are available message is displayed"); } diff --git a/injitest/src/main/java/inji/testcases/iosTestCases/UnlockWithPasscodeTest.java b/injitest/src/main/java/inji/testcases/iosTestCases/UnlockWithPasscodeTest.java index 429901c0..cdbbf22c 100644 --- a/injitest/src/main/java/inji/testcases/iosTestCases/UnlockWithPasscodeTest.java +++ b/injitest/src/main/java/inji/testcases/iosTestCases/UnlockWithPasscodeTest.java @@ -47,7 +47,7 @@ public class UnlockWithPasscodeTest extends IosBaseTest { assertTrue(enterYourPasscodePage.isEnterYourPasscodePageLoaded(), "Verify if enter your passcode page is displayed"); enterYourPasscodePage.enterPasscodeOnPasscodePage(TestDataReader.readData("passcode"), PlatformType.IOS); - homePage.clickOnNextButtonForInjiTour(); +// homePage.clickOnNextButtonForInjiTour(); assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); } diff --git a/injitest/src/main/java/inji/testcases/iosTestCases/VcDownloadAndVerifyUsingEsignetTest.java b/injitest/src/main/java/inji/testcases/iosTestCases/VcDownloadAndVerifyUsingEsignetTest.java index c3cd4e5e..2b9cb67a 100644 --- a/injitest/src/main/java/inji/testcases/iosTestCases/VcDownloadAndVerifyUsingEsignetTest.java +++ b/injitest/src/main/java/inji/testcases/iosTestCases/VcDownloadAndVerifyUsingEsignetTest.java @@ -40,7 +40,7 @@ public class VcDownloadAndVerifyUsingEsignetTest extends IosBaseTest { ESignetLoginPage esignetLoginPage = addNewCardPage.clickOnDownloadViaEsignet(); addNewCardPage.clickOnContinueButtonInSigninPopupIos(); - esignetLoginPage.clickOnEsignetLoginWithOtpButton(); +// esignetLoginPage.clickOnEsignetLoginWithOtpButton(); // String uin = TestDataReader.readData("uin"); OtpVerificationPage otpVerification = esignetLoginPage.setEnterIdTextBox(getUIN()); @@ -108,10 +108,10 @@ public class VcDownloadAndVerifyUsingEsignetTest extends IosBaseTest { AddNewCardPage addNewCardPage = homePage.downloadCard(); ESignetLoginPage esignetLoginPage = addNewCardPage.clickOnDownloadViaEsignet(); - esignetLoginPage.clickOnCredentialTypeHeadingMOSIPVerifiableCredential(); +// esignetLoginPage.clickOnCredentialTypeHeadingMOSIPVerifiableCredential(); addNewCardPage.clickOnContinueButtonInSigninPopupIos(); - esignetLoginPage.clickOnEsignetLoginWithOtpButton(); +// esignetLoginPage.clickOnEsignetLoginWithOtpButton(); // String vid = TestDataReader.readData("vid"); OtpVerificationPage otpVerification = esignetLoginPage.setEnterIdTextBox(getVID()); diff --git a/injitest/src/main/java/inji/testcases/iosTestCases/VcDownloadAndVerifyUsingSunbirdTest.java b/injitest/src/main/java/inji/testcases/iosTestCases/VcDownloadAndVerifyUsingSunbirdTest.java index ad91c9e5..021dddcf 100644 --- a/injitest/src/main/java/inji/testcases/iosTestCases/VcDownloadAndVerifyUsingSunbirdTest.java +++ b/injitest/src/main/java/inji/testcases/iosTestCases/VcDownloadAndVerifyUsingSunbirdTest.java @@ -40,7 +40,7 @@ public class VcDownloadAndVerifyUsingSunbirdTest extends IosBaseTest { assertTrue(addNewCardPage.isDownloadViaSunbirdDisplayed(), "Verify if download sunbird displayed"); SunbirdLoginPage sunbirdLoginPage = addNewCardPage.clickOnDownloadViaSunbird(); addNewCardPage.clickOnCredentialTypeHeadingInsuranceCredential(); - addNewCardPage.clickOnContinueButtonInSigninPopupIos(); +// addNewCardPage.clickOnContinueButtonInSigninPopupIos(); sunbirdLoginPage.enterPolicyNumber(getPolicyNumber()); sunbirdLoginPage.enterFullName(getPolicyName()); sunbirdLoginPage.enterDateOfBirth(); @@ -52,7 +52,7 @@ public class VcDownloadAndVerifyUsingSunbirdTest extends IosBaseTest { // assertEquals(sunbirdLoginPage.getFullNameForSunbirdCard(),TestDataReader.readData("fullNameSunbird")); sunbirdLoginPage.openDetailedSunbirdVcView(); - assertEquals(sunbirdLoginPage.getFullNameForSunbirdCard(), TestDataReader.readData("fullNameSunbird")); + assertEquals(sunbirdLoginPage.getFullNameForSunbirdCard(), getPolicyName()); assertEquals(sunbirdLoginPage.getPolicyNameForSunbirdCard(), TestDataReader.readData("policyNameSunbird")); // assertEquals(sunbirdLoginPage.getPhoneNumberForSunbirdCard(), TestDataReader.readData("phoneNumberSunbird")); // assertEquals(sunbirdLoginPage.getDateofBirthValueForSunbirdCard(), TestDataReader.readData("dateOfBirthSunbird")); diff --git a/injitest/src/main/java/inji/testcases/iosTestCases/VerifyHelpPageTest.java b/injitest/src/main/java/inji/testcases/iosTestCases/VerifyHelpPageTest.java index fcb92942..a9db7c0b 100644 --- a/injitest/src/main/java/inji/testcases/iosTestCases/VerifyHelpPageTest.java +++ b/injitest/src/main/java/inji/testcases/iosTestCases/VerifyHelpPageTest.java @@ -40,7 +40,7 @@ public class VerifyHelpPageTest extends IosBaseTest { assertFalse(helpPage.isHelpPageContentEmpty(), "verifying if help page is not empty"); helpPage.exitHelpPage(); - homePage.clickOnNextButtonForInjiTour(); +// homePage.clickOnNextButtonForInjiTour(); assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); } diff --git a/injitest/src/main/java/inji/testcases/iosTestCases/VerifyHistoryTest.java b/injitest/src/main/java/inji/testcases/iosTestCases/VerifyHistoryTest.java index d7ce860f..a4504b3f 100644 --- a/injitest/src/main/java/inji/testcases/iosTestCases/VerifyHistoryTest.java +++ b/injitest/src/main/java/inji/testcases/iosTestCases/VerifyHistoryTest.java @@ -258,10 +258,10 @@ public class VerifyHistoryTest extends IosBaseTest { // assertTrue(addNewCardPage.isAddNewCardPageLoaded(), "Verify if add new card page is displayed"); ESignetLoginPage esignetLoginPage = addNewCardPage.clickOnDownloadViaEsignet(); - esignetLoginPage.clickOnEsignetLoginWithOtpButton(); +// esignetLoginPage.clickOnEsignetLoginWithOtpButton(); addNewCardPage.clickOnContinueButtonInSigninPopupIos(); - esignetLoginPage.clickOnEsignetLoginWithOtpButton(); +// esignetLoginPage.clickOnEsignetLoginWithOtpButton(); // String uin = TestDataReader.readData("uin"); OtpVerificationPage otpVerification = esignetLoginPage.setEnterIdTextBox(getUIN()); @@ -328,10 +328,10 @@ public class VerifyHistoryTest extends IosBaseTest { // assertTrue(addNewCardPage.isAddNewCardPageLoaded(), "Verify if add new card page is displayed"); ESignetLoginPage esignetLoginPage = addNewCardPage.clickOnDownloadViaEsignet(); - esignetLoginPage.clickOnEsignetLoginWithOtpButton(); +// esignetLoginPage.clickOnEsignetLoginWithOtpButton(); addNewCardPage.clickOnContinueButtonInSigninPopupIos(); - esignetLoginPage.clickOnEsignetLoginWithOtpButton(); +// esignetLoginPage.clickOnEsignetLoginWithOtpButton(); //String vid = TestDataReader.readData("vid"); OtpVerificationPage otpVerification = esignetLoginPage.setEnterIdTextBox(getVID()); @@ -399,7 +399,7 @@ public class VerifyHistoryTest extends IosBaseTest { assertTrue(addNewCardPage.isDownloadViaSunbirdDisplayed(), "Verify if download sunbird displayed"); SunbirdLoginPage sunbirdLoginPage = addNewCardPage.clickOnDownloadViaSunbird(); addNewCardPage.clickOnCredentialTypeHeadingInsuranceCredential(); - addNewCardPage.clickOnContinueButtonInSigninPopupIos(); +// addNewCardPage.clickOnContinueButtonInSigninPopupIos(); sunbirdLoginPage.enterPolicyNumber(getPolicyNumber()); sunbirdLoginPage.enterFullName(getPolicyName()); sunbirdLoginPage.enterDateOfBirth(); @@ -412,7 +412,7 @@ public class VerifyHistoryTest extends IosBaseTest { sunbirdLoginPage.openDetailedSunbirdVcView(); - assertEquals(sunbirdLoginPage.getFullNameForSunbirdCardForDetailView(), TestDataReader.readData("fullNameSunbird")); + assertEquals(sunbirdLoginPage.getFullNameForSunbirdCardForDetailView(), getPolicyName()); assertEquals(sunbirdLoginPage.getPolicyNameForSunbirdCard(), TestDataReader.readData("policyNameSunbird")); assertEquals(sunbirdLoginPage.getPhoneNumberForSunbirdCard(), TestDataReader.readData("phoneNumberSunbird")); assertTrue(sunbirdLoginPage.isDateOfBirthValueForSunbirdCardDisplayed()); @@ -455,7 +455,7 @@ public class VerifyHistoryTest extends IosBaseTest { ESignetLoginPage esignetLoginPage = addNewCardPage.clickOnDownloadViaEsignet(); addNewCardPage.clickOnContinueButtonInSigninPopupIos(); - esignetLoginPage.clickOnEsignetLoginWithOtpButton(); +// esignetLoginPage.clickOnEsignetLoginWithOtpButton(); // String uin = TestDataReader.readData("uin"); OtpVerificationPage otpVerification = esignetLoginPage.setEnterIdTextBox(getUIN()); @@ -509,7 +509,7 @@ public class VerifyHistoryTest extends IosBaseTest { addNewCardPage.clickOnContinueButtonInSigninPopupIos(); ESignetLoginPage esignetLoginPage = new ESignetLoginPage(getDriver()); - esignetLoginPage.clickOnEsignetLoginWithOtpButton(); +// esignetLoginPage.clickOnEsignetLoginWithOtpButton(); OtpVerificationPage otpVerification = mockCertifyLoginPage.setEnterIdTextBox(getMockUIN()); @@ -564,7 +564,7 @@ public class VerifyHistoryTest extends IosBaseTest { addNewCardPage.clickOnContinueButtonInSigninPopupIos(); ESignetLoginPage esignetLoginPage = new ESignetLoginPage(getDriver()); - esignetLoginPage.clickOnEsignetLoginWithOtpButton(); +// esignetLoginPage.clickOnEsignetLoginWithOtpButton(); OtpVerificationPage otpVerification = mockCertifyLoginPage.setEnterIdTextBox(getMockUIN()); diff --git a/injitest/src/main/java/inji/testcases/iosTestCases/VerifyWelcomePagesTest.java b/injitest/src/main/java/inji/testcases/iosTestCases/VerifyWelcomePagesTest.java index 16052b48..f671c324 100644 --- a/injitest/src/main/java/inji/testcases/iosTestCases/VerifyWelcomePagesTest.java +++ b/injitest/src/main/java/inji/testcases/iosTestCases/VerifyWelcomePagesTest.java @@ -89,7 +89,7 @@ public class VerifyWelcomePagesTest extends IosBaseTest { assertTrue(homePage.verifyAppSettingsHeader("English"), "Verify if app settings header text displayed"); assertTrue(homePage.verifyAppSettingDescription("English"), "Verify if app settings description displayed"); homePage.clickOnNextButton(); - homePage.clickOnNextButtonForInjiTour(); +// homePage.clickOnNextButtonForInjiTour(); assertTrue(homePage.isHomePageLoaded(), "Verify if home page is displayed"); } @@ -217,7 +217,7 @@ public class VerifyWelcomePagesTest extends IosBaseTest { addNewCardPage.clickOnContinueButtonInSigninPopupIos(); - esignetLoginPage.clickOnEsignetLoginWithOtpButton(); +// esignetLoginPage.clickOnEsignetLoginWithOtpButton(); // String uin=TestDataReader.readData("uin"); OtpVerificationPage otpVerification = esignetLoginPage.setEnterIdTextBox(getUIN()); @@ -265,7 +265,7 @@ public class VerifyWelcomePagesTest extends IosBaseTest { addNewCardPage.clickOnDownloadViaEsignet(); addNewCardPage.clickOnContinueButtonInSigninPopupIos(); - esignetLoginPage.clickOnEsignetLoginWithOtpButton(); +// esignetLoginPage.clickOnEsignetLoginWithOtpButton(); esignetLoginPage.setEnterIdTextBox(getUIN()); esignetLoginPage.clickOnGetOtpButton(); @@ -273,7 +273,7 @@ public class VerifyWelcomePagesTest extends IosBaseTest { otpVerification.enterOtpForeSignet(InjiWalletUtil.getOtp(), PlatformType.IOS); esignetLoginPage.clickOnVerifyButtonIos(); - addNewCardPage.clickOnDoneButton(); +// addNewCardPage.clickOnDoneButton(); assertTrue(homePage.isCredentialTypeValueDisplayed(), "Verify if credential type value is displayed"); homePage.clickOnSettingIcon(); @@ -338,7 +338,7 @@ public class VerifyWelcomePagesTest extends IosBaseTest { addNewCardPage.clickOnContinueButtonInSigninPopupIos(); - esignetLoginPage.clickOnEsignetLoginWithOtpButton(); +// esignetLoginPage.clickOnEsignetLoginWithOtpButton(); // String uin=TestDataReader.readData("uin"); OtpVerificationPage otpVerification = esignetLoginPage.setEnterIdTextBox(getUIN()); diff --git a/injitest/src/main/java/inji/utils/BrowserStackCapabilitiesLoader.java b/injitest/src/main/java/inji/utils/BrowserStackCapabilitiesLoader.java index dd3e0689..75434de9 100644 --- a/injitest/src/main/java/inji/utils/BrowserStackCapabilitiesLoader.java +++ b/injitest/src/main/java/inji/utils/BrowserStackCapabilitiesLoader.java @@ -29,6 +29,7 @@ public class BrowserStackCapabilitiesLoader { bStackOptions.put("networkLogs", true); // network logs bStackOptions.put("interactiveDebugging", true); // optional bStackOptions.put("local", true); // set to true only if testing local resources + bStackOptions.put("localIdentifier", BrowserStackLocalManager.getLocalIdentifier());// set localIdentifier for browserstack local // passing credentials here instead of setting via -D bStackOptions.put("userName", InjiWalletConfigManager.getproperty("browserstack.username")); diff --git a/injitest/src/main/java/inji/utils/BrowserStackLocalManager.java b/injitest/src/main/java/inji/utils/BrowserStackLocalManager.java new file mode 100644 index 00000000..0f7789f1 --- /dev/null +++ b/injitest/src/main/java/inji/utils/BrowserStackLocalManager.java @@ -0,0 +1,56 @@ +package inji.utils; + +import com.browserstack.local.Local; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.HashMap; +import java.util.Map; + +public class BrowserStackLocalManager { + private static Local bsLocal; + protected static String localIdentifier; + private static boolean started = false; + private static final Logger LOGGER = LoggerFactory.getLogger(BrowserStackLocalManager.class); + + public static synchronized void startLocal() { + if (!started) { + try { + bsLocal = new Local(); + localIdentifier = "injiwallet-" + System.currentTimeMillis(); + Map options = new HashMap<>(); + options.put("key", InjiWalletConfigManager.getproperty("browserstack.accesskey")); + options.put("forcelocal", "true"); + + options.put("localIdentifier", localIdentifier); + + bsLocal.start(options); + + if (!bsLocal.isRunning()) { + throw new RuntimeException("BrowserStack Local tunnel did not start!"); + } + + started = true; + LOGGER.info("BrowserStack Local started successfully."); + } catch (Exception e) { + throw new RuntimeException("Failed to start BrowserStack Local", e); + } + } + } + + public static synchronized void stopLocal() { + if (started && bsLocal != null && bsLocal.isRunning()) { + try { + bsLocal.stop(); + started = false; + LOGGER.info("BrowserStack Local stopped."); + } catch (Exception e) { + throw new RuntimeException("Failed to stop BrowserStack Local", e); + } + } + } + + public static String getLocalIdentifier() { + return localIdentifier; + } +} diff --git a/injitest/src/main/java/inji/utils/InjiWalletUtil.java b/injitest/src/main/java/inji/utils/InjiWalletUtil.java index 9fd974a1..6e11c71e 100644 --- a/injitest/src/main/java/inji/utils/InjiWalletUtil.java +++ b/injitest/src/main/java/inji/utils/InjiWalletUtil.java @@ -19,10 +19,10 @@ public class InjiWalletUtil extends AdminTestUtil { private static final Logger logger = Logger.getLogger(InjiWalletUtil.class); private static final AdminTestUtil adminTestUtil = new AdminTestUtil(); private static final Faker faker = new Faker(); - private static final String fullNameForSunBirdR = generateFullNameForSunBirdR(); - // private static final String dobForSunBirdR = generateDobForSunBirdR(); +// private static final String fullNameForSunBirdR = generateFullNameForSunBirdR(); +// private static final String dobForSunBirdR = generateDobForSunBirdR(); private static final String dobForSunBirdR = String.valueOf(LocalDate.now()); - private static final String policyNumberForSunBirdR = generateRandomNumberString(9); +// private static final String policyNumberForSunBirdR = generateRandomNumberString(9); public static void setLogLevel() { if (InjiWalletConfigManager.IsDebugEnabled()) @@ -57,11 +57,13 @@ public class InjiWalletUtil extends AdminTestUtil { } if (jsonString.contains("$POLICYNUMBERFORSUNBIRDRC$")) { + String policyNumberForSunBirdR = generateRandomNumberString(9); jsonString = replaceKeywordWithValue(jsonString, "$POLICYNUMBERFORSUNBIRDRC$", policyNumberForSunBirdR); adminTestUtil.writeAutoGeneratedId(testCaseName, "POLICY", policyNumberForSunBirdR); } if (jsonString.contains("$FULLNAMEFORSUNBIRDRC$")) { + String fullNameForSunBirdR = generateFullNameForSunBirdR(); jsonString = replaceKeywordWithValue(jsonString, "$FULLNAMEFORSUNBIRDRC$", fullNameForSunBirdR); adminTestUtil.writeAutoGeneratedId(testCaseName, "NAME", fullNameForSunBirdR); } diff --git a/injitest/src/main/resources/injiWallet/SunBirdR/CreatePolicySunBirdR/CreatePolicySunBirdR.yml b/injitest/src/main/resources/injiWallet/SunBirdR/CreatePolicySunBirdR/CreatePolicySunBirdR.yml index 4f65267c..5a0dc69f 100644 --- a/injitest/src/main/resources/injiWallet/SunBirdR/CreatePolicySunBirdR/CreatePolicySunBirdR.yml +++ b/injitest/src/main/resources/injiWallet/SunBirdR/CreatePolicySunBirdR/CreatePolicySunBirdR.yml @@ -19,7 +19,7 @@ CreatePolicySunBirdR: "benefits": [{"benefits": "Critical Surgery"}, {"benefits": "Full body checkup"}], "gender": "Male", "mobile": "0123456789", - "email": "abhishek@gmail.com" + "email": "automation@gmail.com" }' output: '{ "status": "SUCCESSFUL" @@ -28,7 +28,7 @@ CreatePolicySunBirdR: InjiWallet_SunBirdR_CreatePolicy_NOAUTH_Valid_Smoke_POLICY2_Sid: endPoint: $SUNBIRDBASEURL$/api/v1/Insurance description: Creating new sunbird policy with valid parameters - uniqueIdentifier: TC_InjiWallet_CreatePolicySunBirdR_01 + uniqueIdentifier: TC_InjiWallet_CreatePolicySunBirdR_02 role: resident restMethod: post checkErrorsOnlyInResponse: true @@ -45,7 +45,7 @@ CreatePolicySunBirdR: "benefits": [{"benefits": "Critical Surgery"}, {"benefits": "Full body checkup"}], "gender": "Male", "mobile": "0123456789", - "email": "abhishek@gmail.com" + "email": "automation@gmail.com" }' output: '{ "status": "SUCCESSFUL" @@ -54,7 +54,7 @@ CreatePolicySunBirdR: InjiWallet_SunBirdR_CreatePolicy_NOAUTH_Valid_Smoke_POLICY3_Sid: endPoint: $SUNBIRDBASEURL$/api/v1/Insurance description: Creating new sunbird policy with valid parameters - uniqueIdentifier: TC_InjiWallet_CreatePolicySunBirdR_01 + uniqueIdentifier: TC_InjiWallet_CreatePolicySunBirdR_03 role: resident restMethod: post checkErrorsOnlyInResponse: true @@ -71,7 +71,7 @@ CreatePolicySunBirdR: "benefits": [{"benefits": "Critical Surgery"}, {"benefits": "Full body checkup"}], "gender": "Male", "mobile": "0123456789", - "email": "abhishek@gmail.com" + "email": "automation@gmail.com" }' output: '{ "status": "SUCCESSFUL" diff --git a/injitest/src/main/resources/injiWallet/SunBirdR/DeletePolicySunBirdR/DeletePolicySunBirdR.yml b/injitest/src/main/resources/injiWallet/SunBirdR/DeletePolicySunBirdR/DeletePolicySunBirdR.yml index b278b924..1f63fcff 100644 --- a/injitest/src/main/resources/injiWallet/SunBirdR/DeletePolicySunBirdR/DeletePolicySunBirdR.yml +++ b/injitest/src/main/resources/injiWallet/SunBirdR/DeletePolicySunBirdR/DeletePolicySunBirdR.yml @@ -19,7 +19,7 @@ DeletePolicySunBirdR: InjiWallet_SunBirdR_DeletePolicy_NOAUTH_Valid_Smoke_POLICY2: endPoint: $SUNBIRDBASEURL$/api/v1/Insurance/{insuranceid} description: Deleting Sunbird policy with valid parameters - uniqueIdentifier: TC_InjiWallet_DeletePolicySunBirdR_01 + uniqueIdentifier: TC_InjiWallet_DeletePolicySunBirdR_02 role: resident restMethod: delete checkErrorsOnlyInResponse: true @@ -36,7 +36,7 @@ DeletePolicySunBirdR: InjiWallet_SunBirdR_DeletePolicy_NOAUTH_Valid_Smoke_POLICY3: endPoint: $SUNBIRDBASEURL$/api/v1/Insurance/{insuranceid} description: Deleting Sunbird policy with valid parameters - uniqueIdentifier: TC_InjiWallet_DeletePolicySunBirdR_01 + uniqueIdentifier: TC_InjiWallet_DeletePolicySunBirdR_03 role: resident restMethod: delete checkErrorsOnlyInResponse: true diff --git a/injitest/testNgXmlFiles/androidTestSuite.xml b/injitest/testNgXmlFiles/androidTestSuite.xml index a30be119..0c454b36 100644 --- a/injitest/testNgXmlFiles/androidTestSuite.xml +++ b/injitest/testNgXmlFiles/androidTestSuite.xml @@ -181,7 +181,7 @@ - +