Recovered injitest folder (#2168)

Signed-off-by: Lenovo <Lenovo@MacBook-Air.local>
Co-authored-by: Lenovo <Lenovo@MacBook-Air.local>
This commit is contained in:
ckesiraju
2025-12-09 11:03:29 +05:30
committed by GitHub
parent 703e03057d
commit 920517bdb2
285 changed files with 28968 additions and 0 deletions

42
injitest/.gitignore vendored Normal file
View File

@@ -0,0 +1,42 @@
*.class
.mtj.tmp/
*.war
*.ear
hs_err_pid*
#ignored files
.springBeans
.metadata
.factorypath
.classpath
.project
.settings/
bin/
tmp/
logs/
*.tmp
*.bak
*.swp
*~.nib
local.properties
.loadpath
.DS_Store
test.txt
.idea/
.settings/
.sonarlint/
.recommenders/
/.recommenders/
**/*.iml
*.log
src/logs/mosip-api-test.log
/target/
target/
test-output/
testng-report/
/reg
./reg
reports
screenshots/

View File

@@ -0,0 +1,17 @@
{
"deviceId":"3",
"deviceStatus":"Ready",
"certification":"L0",
"serviceVersion":"0.9.5",
"deviceSubId":[
"0"
],
"callbackId":"",
"digitalId":"",
"deviceCode": "b692b595-3523-face-99fc-bd76e35f190f",
"specVersion":[
"0.9.5"
],
"purpose":"",
"error":null
}

View File

@@ -0,0 +1,18 @@
{
"deviceStatus": "Ready",
"deviceId": "3",
"firmware": "MOSIP.FACE.1.0.0.0",
"certification": "L0",
"serviceVersion": "0.9.5",
"deviceSubId":[
"0"
],
"callbackId":"",
"digitalId": "",
"deviceCode": "b692b595-3523-face-99fc-bd76e35f190f",
"env": "Staging",
"purpose": "",
"specVersion": [
"0.9.5"
]
}

View File

@@ -0,0 +1,10 @@
{
"serialNo":"2345678901",
"make":"MOSIP",
"model":"FACE01",
"type":"Face",
"deviceSubType":"Full face",
"deviceProvider":"MOSIP",
"deviceProviderId":"MOSIP.PROXY.SBI",
"dateTime":""
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

View File

@@ -0,0 +1,17 @@
{
"deviceId":"4",
"deviceStatus":"Ready",
"certification":"L0",
"serviceVersion":"0.9.5",
"deviceSubId":[
"0"
],
"callbackId":"",
"digitalId":"",
"deviceCode": "b692b595-3523-slap-99fc-bd76e35f290f",
"specVersion":[
"0.9.5"
],
"purpose":"",
"error":null
}

View File

@@ -0,0 +1,18 @@
{
"deviceStatus": "Ready",
"deviceId": "4",
"firmware": "MOSIP.SINGLE.1.0.0.0",
"certification": "L0",
"serviceVersion": "0.9.5",
"deviceSubId":[
"0"
],
"callbackId":"",
"digitalId": "",
"deviceCode": "b692b595-3523-slap-99fc-bd76e35f290f",
"env": "Staging",
"purpose": "",
"specVersion": [
"0.9.5"
]
}

View File

@@ -0,0 +1,10 @@
{
"serialNo":"1234567990",
"make":"MOSIP",
"model":"SINGLE01",
"type":"Finger",
"deviceSubType":"Single",
"deviceProvider":"MOSIP",
"deviceProviderId":"MOSIP.PROXY.SBI",
"dateTime":""
}

View File

@@ -0,0 +1,17 @@
{
"deviceId":"2",
"deviceStatus":"Ready",
"certification":"L0",
"serviceVersion":"0.9.5",
"deviceSubId":[
"1", "2", "3"
],
"callbackId":"",
"digitalId":"",
"deviceCode": "b692b595-3523-slap-99fc-bd76e35f190f",
"specVersion":[
"0.9.5"
],
"purpose":"",
"error":null
}

View File

@@ -0,0 +1,18 @@
{
"deviceStatus": "Ready",
"deviceId": "2",
"firmware": "MOSIP.SLAP.1.0.0.0",
"certification": "L0",
"serviceVersion": "0.9.5",
"deviceSubId":[
"1", "2", "3"
],
"callbackId":"",
"digitalId": "",
"deviceCode": "b692b595-3523-slap-99fc-bd76e35f190f",
"env": "Staging",
"purpose": "",
"specVersion": [
"0.9.5"
]
}

View File

@@ -0,0 +1,10 @@
{
"serialNo":"1234567890",
"make":"MOSIP",
"model":"SLAP01",
"type":"Finger",
"deviceSubType":"Slap",
"deviceProvider":"MOSIP",
"deviceProviderId":"MOSIP.PROXY.SBI",
"dateTime":""
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -0,0 +1,17 @@
{
"deviceId":"1",
"deviceStatus":"Ready",
"certification":"L0",
"serviceVersion":"0.9.5",
"deviceSubId":[
"1", "2", "3"
],
"callbackId":"",
"digitalId":"",
"deviceCode": "b692b595-3523-iris-99fc-bd76e35f190f",
"specVersion":[
"0.9.5"
],
"purpose":"",
"error":null
}

View File

@@ -0,0 +1,18 @@
{
"deviceStatus": "Ready",
"deviceId": "1",
"firmware": "MOSIP.IRIS.1.0.0.0",
"certification": "L0",
"serviceVersion": "0.9.5",
"deviceSubId":[
"1", "2", "3"
],
"callbackId":"",
"digitalId": "",
"deviceCode": "b692b595-3523-iris-99fc-bd76e35f190f",
"env": "Staging",
"purpose": "",
"specVersion": [
"0.9.5"
]
}

View File

@@ -0,0 +1,10 @@
{
"serialNo":"3456789012",
"make":"MOSIP",
"model":"IRIS01",
"type":"Iris",
"deviceSubType":"Double",
"deviceProvider":"MOSIP",
"deviceProviderId":"MOSIP.PROXY.SBI",
"dateTime":""
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

View File

@@ -0,0 +1,17 @@
{
"deviceId":"5",
"deviceStatus":"Ready",
"certification":"L0",
"serviceVersion":"0.9.5",
"deviceSubId":[
"0"
],
"callbackId":"",
"digitalId":"",
"deviceCode": "b692b595-3523-iris-99fc-bd76e35fff8",
"specVersion":[
"0.9.5"
],
"purpose":"",
"error":null
}

View File

@@ -0,0 +1,18 @@
{
"deviceStatus": "Ready",
"deviceId": "5",
"firmware": "MOSIP.IRIS.2.0.0.0",
"certification": "L0",
"serviceVersion": "0.9.5",
"deviceSubId":[
"0"
],
"callbackId":"",
"digitalId": "",
"deviceCode": "b692b595-3523-iris-99fc-bd76e35fff8",
"env": "Staging",
"purpose": "",
"specVersion": [
"0.9.5"
]
}

View File

@@ -0,0 +1,10 @@
{
"serialNo":"3456789099",
"make":"MOSIP",
"model":"IRIS02",
"type":"Iris",
"deviceSubType":"Single",
"deviceProvider":"MOSIP",
"deviceProviderId":"MOSIP.PROXY.SBI",
"dateTime":""
}

View File

@@ -0,0 +1,20 @@
-----BEGIN CERTIFICATE-----
MIIDPzCCAiegAwIBAgIEYCFEgjANBgkqhkiG9w0BAQsFADBSMQswCQYDVQQGEwJJ
TjESMBAGA1UECAwJS2FybmF0YWthMQ4wDAYDVQQKDAVNb3NpcDEOMAwGA1UECwwF
TW9zaXAxDzANBgNVBAMMBlJvb3RDQTAeFw0yMTAyMDgxNDAyNDJaFw0zMTAyMDgx
NDAyNDJaMFIxCzAJBgNVBAYTAklOMRIwEAYDVQQIDAlLYXJuYXRha2ExDjAMBgNV
BAoMBU1vc2lwMQ4wDAYDVQQLDAVNb3NpcDEPMA0GA1UEAwwGUm9vdENBMIIBIjAN
BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz9kaCs4Yrh2mMFx/wGV42Tn7vM9d
t2au3JOWu/fbeaNk8/TgNEA1GrVerqagcRDDo+6jBDbX7XO9iRHX1wmIcVkH7osa
cMKGfYzZbvkWjGFRCam10xLGyczSeDiIIj+H3eLXzTP0iZBcVyw40EMLWk7BHld+
eFY1XS+EDPIv6snjIxWDEd+wND1tOvWgPsS7mYy8Mn9QRYZXH9KW8/nW0bf/Z74U
d89PtXl3WSSrrRZSQofGDwM5RPOEzrYcurZowwWLWmgAmvcsATxhOAiKe6e6tvbD
yXTC8+9CRv22zGTcasI5QOYzGaj6wMKr9h2WgAY1LJFBIkEjf1ykWGlTbQIDAQAB
ox0wGzAMBgNVHRMEBTADAQH/MAsGA1UdDwQEAwIBBjANBgkqhkiG9w0BAQsFAAOC
AQEAzWge0dKje1/opIyiho0e6p6a/M/UD05bNLg7XD6uMqJAT9C1YTwq77OD0nrc
ZpMQoQ4zCFEbGoPvHWzW0Isc7Y3F40YI8bQdmEQtJuiqsCUQ8XW3b4YDTH6VM5go
+VZgoRucIRBwCAss1tMrxjT3lMWwuyA9DaOkryRW/m9QmlLoTWLQabi/pO+FS+oy
WYYxJOzvqC3xUTYHi+DzlLSWR08NE7gdHrD4aAHYLPIyzgVuToztB7PYmbuOnKmS
M9sHlKqgpN7/AgvTOFOEX5mi5BcPGKagryTfipwLVyWaQBDCcVNkAtoLTYPCTEAj
UhONf7GpbeehitYjHQoknr21EA==
-----END CERTIFICATE-----

View File

@@ -0,0 +1,21 @@
-----BEGIN CERTIFICATE-----
MIIDeTCCAmGgAwIBAgIEYMHynDANBgkqhkiG9w0BAQsFADBvMQswCQYDVQQGEwJJ
TjESMBAGA1UECAwJS2FybmF0YWthMRIwEAYDVQQHDAlCYW5nYWxvcmUxETAPBgNV
BAoMCG1vc2lwLmlvMREwDwYDVQQLDAhtb3NpcC5pbzESMBAGA1UEAwwJUm9vdENB
RlRNMB4XDTIxMDYxMDExMDgxMloXDTIyMDYxMDExMDgxMlowbzELMAkGA1UEBhMC
SU4xEjAQBgNVBAgMCUthcm5hdGFrYTESMBAGA1UEBwwJQmFuZ2Fsb3JlMREwDwYD
VQQKDAhtb3NpcC5pbzERMA8GA1UECwwIbW9zaXAuaW8xEjAQBgNVBAMMCVJvb3RD
QUZUTTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3FfxvirIiPH6YF
X4GR1z7LOI8tiwvfqjAFba6p4vMHs0xNu0TWJ9GS3qlDglmWczm3hgHndWD3rIUQ
V4fMsQDapA0giFVMxushm8u9JYl2HXwtVgrXUeKEdVS3zpWf2qQCXK9vQAOHvhhu
UMWVzL4yxd1RwUGjuSjM/pZqa/Tq0aDfqFVZ/MckxSvieEKEYODtcxXA708SQ07I
aFDZ2gKTD4aYUlCed9fAois+ko06tzqS1kerMiORzZExtUY/hwx2UrLVUBFYTBqW
Wuw0N2VjsaifQAti0JJGYPCBqM2Q7OctIvccAjghHYxCXj+yNRtOm8ooNZTefMJr
fCY9OucCAwEAAaMdMBswCwYDVR0PBAQDAgEGMAwGA1UdEwQFMAMBAf8wDQYJKoZI
hvcNAQELBQADggEBAEQJMIT958jm1e5sCctUcOoHLQVdM9f3NLKicCUCjVMNCDjg
DbkoL72rlktTDbzi4AizaBXwxQdB951SG4Vjbc5tSC3WzB7d8QMiLRwG14Q165Gw
VGuMMOpJn4jlMzJMhhP67vJ4hYI2Op4eDAPH3HCods/Ew4JJ/edwpJ80tLKiB0f6
fnyPXxPUSMtkLCCpp2/zf1OkXmUT8dIgU27R9+/8x/ZphDVJcc00XrgM4VI1dX+W
8W8Ua6GlQSL83HIqVudnFAmCDF0dRX//ghUOeJwWEMgcm/cUNTZv6hZjmDpVeout
E1o6hXGXWRnaDU9/QGpi2BuiSgREOarAQf62sPI=
-----END CERTIFICATE-----

66
injitest/Dockerfile Normal file
View File

@@ -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 --proto '=https' --proto-redir '=https' -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"]

34
injitest/README.md Normal file
View File

@@ -0,0 +1,34 @@
# Inji Automation - Mobile Automation Framework using Appium
## Overview
Inji Automation is a mobile automation framework designed for iOS and Android platforms. It automates both positive and negative scenarios to ensure comprehensive testing of mobile applications.
## Installation
To set up Appium for use with this framework, please follow the installation instructions provided in the [Appium documentation](https://appium.io/docs/en/2.2/quickstart/install/).
## Pre-requisites
Ensure the following software is installed on the machine from where the automation tests will be executed:
1. The project requires JDK 21
## Configurations
1. update `resourec/uin.json`,`resourec/Vid.json`,`resourec/aid.json` file as per the uin and vids being used.
2. Update utils/TestDataReader to include updates for FullName, uin, idType, gender, phoneNumber, dateOfBirth, and externalEmail as they are used during creation.
## BrowserStack
1. singup to browserStack & get the userName and accessKey from home page on browserStack.
2. Upload app on browserStack it will return 'bs://<app-id>', update the same appid in iosConfig.yml/androidconfig.yml.
2. update the userName and accessKey from iosConfig.yml/androidconfig.yml.
3. update the device from tag platforms from https://www.browserstack.com/list-of-browsers-and-platforms/automate (Windows, Mac).
4. Open command prompt and change directory by using command 'cd ../injitest'.
5. Hit the command mvn clean test -DtestngXmlFile=androidSanity.xml -Dbrowserstack.config="androidConfig.yml", for running the sanity for android.
6. Hit the command mvn clean test -DtestngXmlFile=iosSanity.xml -Dbrowserstack.config="iosConfig.yml", for running the sanity for ios.
7. Hit the command mvn clean test -DtestngXmlFile=iosRegression.xml -Dbrowserstack.config="iosConfig.yml", for running the regression for ios.
8. Hit the command mvn clean test -DtestngXmlFile=androidRegression.xml -Dbrowserstack.config="androidConfig.yml", for running the Regression for android.
## Reports
Test reports will be available in the `test-output>>emailableReports` directory after test execution.

View File

@@ -0,0 +1,80 @@
# =============================
# Set BrowserStack Credentials
# =============================
# Add your BrowserStack userName and accessKey here or set BROWSERSTACK_USERNAME and
# BROWSERSTACK_ACCESS_KEY as env variables
userName:
accessKey:
# ======================
# BrowserStack Reporting
# ======================
# The following capabilities are used to set up reporting on BrowserStack:
# Set 'projectName' to the name of your project. Example, Marketing Website
projectName: InjiTests
# Set `buildName` as the name of the job / testsuite being run
buildName: Mohan Android Build
# `buildIdentifier` is a unique id to differentiate every execution that gets appended to
# buildName. Choose your buildIdentifier format from the available expressions:
# ${BUILD_NUMBER} (Default): Generates an incremental counter with every execution
# ${DATE_TIME}: Generates a Timestamp with every execution. Eg. 05-Nov-19:30
# Read more about buildIdentifiers here -> https://www.browserstack.com/docs/automate/selenium/organize-tests
buildIdentifier: '#${BUILD_NUMBER}' # Supports strings along with either/both ${expression}
# =======================================
# App
# =======================================
# Set `app` to use the application under test for Appium sessions.
# Available options:
# app: '/path/to/local/app.apk'
# OR
# app: 'bs://<app-id>' # App URL returned when uploading the app to BrowserStack manually
# Visit https://www.browserstack.com/docs/app-automate/appium/set-up-tests/specify-app for more options
app: bs://06eb550d8b2b490bd55f35508ff66383e3ab2f33 # BrowserStack Sample App
# =======================================
# Platforms (Browsers / Devices to test)
# =======================================
# Platforms object contains all the browser / device combinations you want to test on.
# Entire list available here -> (https://www.browserstack.com/list-of-browsers-and-platforms/automate)
platforms:
- platformName: android
deviceName: Google Pixel 7 Pro
platformVersion: 13.0
# =======================
# Parallels per Platform
# =======================
# The number of parallel threads to be used for each platform set.
# BrowserStack's SDK runner will select the best strategy based on the configured value
#
# Example 1 - If you have configured 3 platforms and set `parallelsPerPlatform` as 2, a total of 6 (2 * 3) parallel threads will be used on BrowserStack
#
# Example 2 - If you have configured 1 platform and set `parallelsPerPlatform` as 5, a total of 5 (1 * 5) parallel threads will be used on BrowserStack
parallelsPerPlatform: 5
source: java:appium-intellij:v1.1.4
# ==========================================
# BrowserStack Local
# (For localhost, staging/private websites)
# ==========================================
# Set browserStackLocal to true if your website under test is not accessible publicly over the internet
# Learn more about how BrowserStack Local works here -> https://www.browserstack.com/docs/automate/selenium/local-testing-introduction
browserstackLocal: true # <boolean> (Default false)
# Options to be passed to BrowserStack local in-case of advanced configurations
# browserStackLocalOptions:
# localIdentifier: # <string> (Default: null) Needed if you need to run multiple instances of local.
# forceLocal: true # <boolean> (Default: false) Set to true if you need to resolve all your traffic via BrowserStack Local tunnel.
# Entire list of arguments available here -> https://www.browserstack.com/docs/automate/selenium/manage-incoming-connections
# ===================
# Debugging features
# ===================
debug: true # <boolean> # Set to true if you need screenshots for every selenium command ran
networkLogs: false # <boolean> Set to true to enable HAR logs capturing
consoleLogs: errors # <string> Remote browser's console debug levels to be printed (Default: errors)
# Available options are `disable`, `errors`, `warnings`, `info`, `verbose` (Default: errors)
interactiveDebugging: true

View File

@@ -0,0 +1,90 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="androidSanity">
<listeners>
<listener class-name="inji.utils.SuiteListener"/>
</listeners>
<test verbose="2" preserve-order="true" name="android">
<classes>
<class name="inji.testcases.androidTestCases.UnlockWithPasscodeTest">
<methods>
<include name="logoutAndLoginWithPasscode" />
<include name="loginWithInvalidPasscode" />
</methods>
</class>
<class name="inji.testcases.androidTestCases.ActivateVcTest">
<methods>
<include name="downloadAndActiveVcUsingUinViaEsignet" />
</methods>
</class>
<class name="inji.testcases.androidTestCases.ChangeLanguageTest">
<methods>
<include name="changeLanguageToArabic" />
</methods>
</class>
<class name="inji.testcases.androidTestCases.PinVcTest">
<methods>
<include name="downloadVcViaEsignetAndPinUnpin" />
<include name="downloadVcViaEsignetAndPinUnpin" />
</methods>
</class>
<class name="inji.testcases.androidTestCases.AboutInjiTest">
<methods>
<include name="verifyAppId"/>
</methods>
</class>
</classes>
</test>
</suite>
<!--<suite name="All Test Suite">
<listeners>
<listener class-name="inji.utils.SuiteListener" />
</listeners>
<test verbose="2" preserve-order="true" name="android">
<classes>
<class name="inji.testcases.androidTestCases.UnlockWithPasscodeTest">
<methods>
<include name="logoutAndLoginWithPasscode" />
<include name="loginWithInvalidPasscode" />
</methods>
</class>
<class name="inji.testcases.androidTestCases.VcDownloadAndVerifyUsingUinTest">
<methods>
<include name="downloadAndVerifyVcUsingUin" />
<include name="downloadMultipleVcUsingDifferentUin" />
</methods>
</class>
<class name="inji.testcases.androidTestCases.VcDownloadAndVerifyUsingVidTest">
<methods>
<include name="downloadAndVerifyVcUsingVid" />
</methods>
</class>
<class name="inji.testcases.androidTestCases.GenerateUinOrVidTest">
<methods>
<include name="generateUinOrVidUsingAid" />
</methods>
</class>
<class name="inji.testcases.androidTestCases.ActivateVcTest">
<methods>
<include name="activateVc" />
</methods>
</class>
<class name="inji.testcases.androidTestCases.ChangeLanguageTest">
<methods>
<include name="changeLanguageToArabic" />
</methods>
</class>
<class name="inji.testcases.androidTestCases.PinVcTest">
<methods>
<include name="pinVc" />
<include name="VerifyCameraOpenAfterPinVc" />
<include name="downloadVcViaEsignetAndPinUnpin" />
</methods>
</class>
</classes>
</test>
</suite>-->

View File

@@ -0,0 +1,143 @@
server.minport=4501
server.maxport=4600
server.serveripaddress=127.0.0.1
cors.headers.allowed.methods="OPTIONS, RCAPTURE, CAPTURE, MOSIPDINFO, MOSIPDISC, STREAM, GET, POST"
cors.headers.allowed.origin="*"
mosip.mock.sbi.allowed.admin.apis="admin/score, admin/delay, admin/status, admin/profile"
mosip.mock.sbi.quality.score=94
mosip.mock.sbi.device.purpose.registration=Registration
mosip.mock.sbi.device.purpose.auth=Auth
mosip.mock.sbi.biometric.type.biometricdevice=Biometric Device
mosip.mock.sbi.biometric.type.finger=Finger
mosip.mock.sbi.biometric.type.face=Face
mosip.mock.sbi.biometric.type.iris=Iris
mosip.mock.sbi.biometric.subtype.finger.slap=Slap
mosip.mock.sbi.biometric.subtype.finger.single=Single
mosip.mock.sbi.biometric.subtype.finger.touchless=Touchless
mosip.mock.sbi.biometric.subtype.face=Full face
mosip.mock.sbi.biometric.subtype.iris.single=Single
mosip.mock.sbi.biometric.subtype.iris.double=Double
mosip.mock.sbi.biometric.seed.finger=99
mosip.mock.sbi.biometric.seed.face=3
mosip.mock.sbi.biometric.seed.iris=999
mosip.mock.sbi.file.face.digitalid.json=/Biometric Devices/Face/DigitalId.json
mosip.mock.sbi.file.face.deviceinfo.json=/Biometric Devices/Face/DeviceInfo.json
mosip.mock.sbi.file.face.devicediscovery.json=/Biometric Devices/Face/DeviceDiscovery.json
mosip.mock.sbi.file.face.streamimage=/Biometric Devices/Face/Stream Image/0.jpeg
mosip.mock.sbi.file.face.keys.keystorefilename=/device-dsk-partner.p12
mosip.mock.sbi.file.face.keys.keyalias=keyalias
mosip.mock.sbi.file.face.keys.keystorepwd=qwerty@123
mosip.mock.sbi.file.face.keys.keystorefilename.ftm=/Biometric Devices/Face/Keys/mosipfaceftm.p12
mosip.mock.sbi.file.face.keys.keyalias.ftm=mosipfaceftm
mosip.mock.sbi.file.face.keys.keystorepwd.ftm=mosipfaceftm
mosip.mock.sbi.file.face.keys.encryption=/Biometric Devices/Face/Keys/mosip-ida.cer
mosip.mock.sbi.file.finger.slap.digitalid.json=/Biometric Devices/Finger/Slap/DigitalId.json
mosip.mock.sbi.file.finger.slap.deviceinfo.json=/Biometric Devices/Finger/Slap/DeviceInfo.json
mosip.mock.sbi.file.finger.slap.devicediscovery.json=/Biometric Devices/Finger/Slap/DeviceDiscovery.json
mosip.mock.sbi.file.finger.slap.streamimage.left=/Biometric Devices/Finger/Slap/Stream Image/1.jpeg
mosip.mock.sbi.file.finger.slap.streamimage.right=/Biometric Devices/Finger/Slap/Stream Image/2.jpeg
mosip.mock.sbi.file.finger.slap.streamimage.thumb=/Biometric Devices/Finger/Slap/Stream Image/3.jpeg
mosip.mock.sbi.file.finger.slap.keys.keystorefilename=/device-dsk-partner.p12
mosip.mock.sbi.file.finger.slap.keys.keyalias=keyalias
mosip.mock.sbi.file.finger.slap.keys.keystorepwd=qwerty@123
mosip.mock.sbi.file.finger.slap.keys.keystorefilename.ftm=/Biometric Devices/Finger/Slap/Keys/mosipfingerslapftm.p12
mosip.mock.sbi.file.finger.slap.keys.keyalias.ftm=mosipfingerslapftm
mosip.mock.sbi.file.finger.slap.keys.keystorepwd.ftm=mosipfingerslapftm
mosip.mock.sbi.file.finger.slap.keys.encryption=/Biometric Devices/Finger/Slap/Keys/mosip-ida.cer
mosip.mock.sbi.file.iris.double.digitalid.json=/Biometric Devices/Iris/Double/DigitalId.json
mosip.mock.sbi.file.iris.double.deviceinfo.json=/Biometric Devices/Iris/Double/DeviceInfo.json
mosip.mock.sbi.file.iris.double.devicediscovery.json=/Biometric Devices/Iris/Double/DeviceDiscovery.json
#mosip.mock.sbi.file.iris.double.streamimage.both=/Biometric Devices/Iris/Double/Stream Image/1.jpeg
#mosip.mock.sbi.file.iris.double.streamimage.left=/Biometric Devices/Iris/Double/Stream Image/2.jpeg
#mosip.mock.sbi.file.iris.double.streamimage.right=/Biometric Devices/Iris/Double/Stream Image/3.jpeg
mosip.mock.sbi.file.iris.double.keys.keystorefilename=/device-dsk-partner.p12
mosip.mock.sbi.file.iris.double.keys.keyalias=keyalias
mosip.mock.sbi.file.iris.double.keys.keystorepwd=qwerty@123
mosip.mock.sbi.file.iris.double.keys.keystorefilename.ftm=/Biometric Devices/Iris/Double/Keys/mosipirisdoubleftm.p12
mosip.mock.sbi.file.iris.double.keys.keyalias.ftm=mosipirisdoubleftm
mosip.mock.sbi.file.iris.double.keys.keystorepwd.ftm=mosipirisdoubleftm
mosip.mock.sbi.file.iris.double.keys.encryption=/Biometric Devices/Iris/Double/Keys/mosip-ida.cer
mosip.mock.sbi.folder.profile=/resource/Profile
mosip.mock.sbi.file.folder.default=/resource/Profile/Default
mosip.kernel.crypto.sign-algorithm-name=RS256
mosip.auth.server.url=https://dev.mosip.net/v1/authmanager/authenticate/clientidsecretkey
mosip.auth.appid=regproc
mosip.auth.clientid=mosip-regproc-client
mosip.auth.secretkey=abc123
mosip.ida.server.url=https://extint1.mosip.net/idauthentication/v1/internal/getCertificate?applicationId=IDA&referenceId=IDA-FIR
mds_ERROR_0_msg_en=Success
mds_ERROR_100_msg_en=Device not registered
mds_ERROR_101_msg_en=Unable to detect a biometric object
mds_ERROR_102_msg_en=Technical error during extraction
mds_ERROR_103_msg_en=Device tamper detected
mds_ERROR_104_msg_en=Unable to connect to management server
mds_ERROR_105_msg_en=Image orientation error
mds_ERROR_106_msg_en=Device not found
mds_ERROR_107_msg_en=Device public key expired
mds_ERROR_108_msg_en=Domain public key missing
mds_ERROR_109_msg_en=Requested number of biometric (Finger/IRIS) not supported
mds_ERROR_110_msg_en=Device is not ready
mds_ERROR_111_msg_en=Device is busy
mds_ERROR_112_msg_en=Device Type MisMatch for given deviceId
mds_ERROR_113_msg_en=Count MisMatch for given deviceType
mds_ERROR_114_msg_en=Device Type can be only (Finger/Iris/Face)
mds_ERROR_500_msg_en=Invalid URL
mds_ERROR_501_msg_en=Invalid Type Value in Device Discovery Request
mds_ERROR_502_msg_en=Biometric Type values must be Biometric Device, Finger, Face, Iris
mds_ERROR_503_msg_en=Devices are not Connected, please connect devices
mds_ERROR_504_msg_en=Device Status values must be Ready, Busy, Not Ready, Not Registered
mds_ERROR_505_msg_en=Quality Score can not be empty and greater than 100 or lesser than 0
mds_ERROR_506_msg_en=Delay can not empty and lesser than 0 milliseconds
mds_ERROR_507_msg_en=Method array can contain values only MOSIPDISC, MOSIPDINFO, CAPTURE, STREAM, RCAPTURE
mds_ERROR_551_msg_en=Profile Not Set, please check the profile value
mds_ERROR_601_msg_en=Livestream request can not be done for Auth Devices
mds_ERROR_604_msg_en=Device Id value not present in Livestream request object
mds_ERROR_605_msg_en=Device is not connected or not Registered for the deviceId given in Livestream request object
mds_ERROR_606_msg_en=Device connected purpose should be for Registration only for Livestream
mds_ERROR_607_msg_en=Device Status is Not Ready or Busy
mds_ERROR_608_msg_en=Live Stream Image not present
mds_ERROR_609_msg_en=Live Stream timeout
mds_ERROR_610_msg_en=Live streaming unknown error
mds_ERROR_700_msg_en=RCapture Failed because Live streaming was stopped
mds_ERROR_701_msg_en=RCapture Failed because Capture Timeout has happened
mds_ERROR_702_msg_en=RCapture Failed because Live streaming DeviceId and DeviceSubId different
mds_ERROR_703_msg_en=RCapture process already in progress, try after sometime
mds_ERROR_704_msg_en=Device Id value not present in RCapture request object
mds_ERROR_705_msg_en=Device is not connected or not Registered for the deviceId given in RCapture request object
mds_ERROR_706_msg_en=Device connected purpose should be for Registration only for RCapture
mds_ERROR_707_msg_en=BioMetric not present for the given bio subtype
mds_ERROR_708_msg_en=No BioMetric information present for the given Biotype and BioSubType Id
mds_ERROR_709_msg_en=RCapture request can not be done for Auth Devices
mds_ERROR_710_msg_en=RCapture unknown error
mds_ERROR_800_msg_en=Auth Capture Failed
mds_ERROR_801_msg_en=Auth Capture Failed because Capture Timeout has happened
mds_ERROR_803_msg_en=Auth Capture process already in progress, try after sometime
mds_ERROR_804_msg_en=Device Id value not present in Auth Capture request object
mds_ERROR_805_msg_en=Device is not connected or not Registered for the deviceId given in Auth Capture request object
mds_ERROR_806_msg_en=Device connected purpose should be for Auth only for Auth Capture
mds_ERROR_809_msg_en=Auth Capture request can not be done for Registration Devices
mds_ERROR_810_msg_en=Auth Capture unknown error
mds_ERROR_999_msg_en=Unknown Error
mosip.mock.sbi.file.iris.double.streamimage.left=/Biometric Devices/Iris/Double/Stream Image/1.jpeg
mosip.mock.sbi.file.iris.double.streamimage.right=/Biometric Devices/Iris/Double/Stream Image/2.jpeg
mosip.mock.sbi.file.iris.double.streamimage.both=/Biometric Devices/Iris/Double/Stream Image/3.jpeg

BIN
injitest/apps/ios/Inji.zip Normal file

Binary file not shown.

116
injitest/automation_trigger.sh Executable file
View File

@@ -0,0 +1,116 @@
#!/bin/bash
# Function for generic error handling
handle_error() {
local error_message="$1"
echo "Error: $error_message"
exit 1
}
# Function to upload APK to BrowserStack and extract app_url
upload_apk_and_get_url() {
local username="$1"
local access_key="$2"
local project_path=$(pwd)
local apk_path="$project_path/android/app/build/outputs/apk/residentapp/release/Inji_universal.apk"
if [[ -f "$apk_path" ]]; then
response=$(curl -u "$username:$access_key" \
-X POST "https://api-cloud.browserstack.com/app-automate/upload" \
-F "file=@$apk_path")
# Add sleep for 5 seconds to allow the response to be processed
sleep 60
app_url=$(echo "$response" | jq -r '.app_url')
if [[ ! -z "$app_url" ]]; then
echo "$app_url"
else
handle_error "Failed to extract app_url from the response"
fi
else
handle_error "APK file not found at $apk_path"
fi
}
# Function to upload IPA to BrowserStack and extract app_url
upload_ipa_and_get_url() {
local username="$1"
local access_key="$2"
local project_path=$(pwd)
local ipa_path="$project_path/ios/Inji.ipa"
if [[ -f "$ipa_path" ]]; then
response=$(curl -u "$username:$access_key" \
-X POST "https://api-cloud.browserstack.com/app-automate/upload" \
-F "file=@$ipa_path")
# Add sleep for 5 seconds to allow the response to be processed
sleep 60
app_url=$(echo "$response" | jq -r '.app_url')
if [[ ! -z "$app_url" ]]; then
echo "$app_url"
else
handle_error "Failed to extract app_url from the response"
fi
else
handle_error "IPA file not found at $ipa_path"
fi
}
# Function to execute Android tests
execute_android_tests() {
local app_url="$1"
local username="$2"
local access_key="$3"
local test_type="$4"
cd injitest
# Update androidConfig.yml with the app_url obtained from BrowserStack
sed -i "s|app:.*|app: $app_url|" androidConfig.yml
sed -i "s|userName:.*|userName: $username|" androidConfig.yml
sed -i "s|accessKey:.*|accessKey: $access_key|" androidConfig.yml
# Run UI tests using Maven with the updated androidConfig.yml file and TestNG XML file based on the test type
mvn clean test -DtestngXmlFile="android${test_type}.xml" -Dbrowserstack.config="androidConfig.yml"
}
# Function to execute iOS tests
execute_ios_tests() {
local app_url="$1"
local username="$2"
local access_key="$3"
local test_type="$4"
cd injitest
#Use the macOS-compatible commands with '' for sed commands
sed -i '' "s|app:.*|app: $app_url|" "iosConfig.yml"
sed -i '' "s|userName:.*|userName: $username|" "iosConfig.yml"
sed -i '' "s|accessKey:.*|accessKey: $access_key|" "iosConfig.yml"
# Run UI tests using Maven with the updated iosConfig.yml file and TestNG XML file based on the test type
mvn clean test -DtestngXmlFile="ios${test_type}.xml" -Dbrowserstack.config="iosConfig.yml"
}
# Check if the correct number of arguments are passed
if [ "$#" -ne 4 ]; then
echo "Expected arguments: $@"
handle_error "Usage: $0 <username> <access_key> <test_type> <platform>"
fi
# Assigning parameters to variables
username=$1
access_key=$2
test_type=$3
platform=$4
# Upload APK/IPA to BrowserStack and get app_url based on platform
if [ "$platform" = "Android" ]; then
app_url=$(upload_apk_and_get_url "$username" "$access_key")
execute_android_tests "$app_url" "$username" "$access_key" "$test_type"
elif [ "$platform" = "IOS" ]; then
app_url=$(upload_ipa_and_get_url "$username" "$access_key")
execute_ios_tests "$app_url" "$username" "$access_key" "$test_type"
else
handle_error "Invalid platform. Please use 'Android', 'IOS'."
fi

24
injitest/browserstack.err Normal file
View File

@@ -0,0 +1,24 @@
[object Object][Tue, 12 Aug 2025 11:39:41 GMT] Error from server Error: listen EADDRINUSE: address already in use \\.\pipe\browserstack\daemonInstance - \\.\pipe\browserstack\daemonInstance
[Tue, 12 Aug 2025 11:45:02 GMT] Error from server Error: listen EADDRINUSE: address already in use \\.\pipe\browserstack\daemonInstance - \\.\pipe\browserstack\daemonInstance
[Tue, 12 Aug 2025 12:16:27 GMT] Error from server Error: listen EADDRINUSE: address already in use \\.\pipe\browserstack\daemonInstance - \\.\pipe\browserstack\daemonInstance
[Tue, 12 Aug 2025 12:37:27 GMT] Error from server Error: listen EADDRINUSE: address already in use \\.\pipe\browserstack\daemonInstance - \\.\pipe\browserstack\daemonInstance
[Tue, 12 Aug 2025 12:52:56 GMT] Error from server Error: listen EADDRINUSE: address already in use \\.\pipe\browserstack\daemonInstance - \\.\pipe\browserstack\daemonInstance
[Tue, 12 Aug 2025 12:59:12 GMT] Error from server Error: listen EADDRINUSE: address already in use \\.\pipe\browserstack\daemonInstance - \\.\pipe\browserstack\daemonInstance
[Tue, 12 Aug 2025 13:24:33 GMT] Error from server Error: listen EADDRINUSE: address already in use \\.\pipe\browserstack\daemonInstance - \\.\pipe\browserstack\daemonInstance
[Wed, 13 Aug 2025 07:24:53 GMT] Error from server Error: listen EADDRINUSE: address already in use \\.\pipe\browserstack\daemonInstance - \\.\pipe\browserstack\daemonInstance
[Wed, 13 Aug 2025 08:51:31 GMT] Error from server Error: listen EADDRINUSE: address already in use \\.\pipe\browserstack\daemonInstance - \\.\pipe\browserstack\daemonInstance
[Wed, 13 Aug 2025 08:57:53 GMT] Error from server Error: listen EADDRINUSE: address already in use \\.\pipe\browserstack\daemonInstance - \\.\pipe\browserstack\daemonInstance
[Wed, 13 Aug 2025 09:09:16 GMT] Error from server Error: listen EADDRINUSE: address already in use \\.\pipe\browserstack\daemonInstance - \\.\pipe\browserstack\daemonInstance
[Wed, 13 Aug 2025 09:19:56 GMT] Error from server Error: listen EADDRINUSE: address already in use \\.\pipe\browserstack\daemonInstance - \\.\pipe\browserstack\daemonInstance
[Wed, 13 Aug 2025 12:36:37 GMT] Error from server Error: listen EADDRINUSE: address already in use \\.\pipe\browserstack\daemonInstance - \\.\pipe\browserstack\daemonInstance
[Wed, 13 Aug 2025 13:21:29 GMT] Error from server Error: listen EADDRINUSE: address already in use \\.\pipe\browserstack\daemonInstance - \\.\pipe\browserstack\daemonInstance
[Thu, 14 Aug 2025 04:23:50 GMT] Error from server Error: listen EADDRINUSE: address already in use \\.\pipe\browserstack\daemonInstance - \\.\pipe\browserstack\daemonInstance
[Thu, 14 Aug 2025 04:58:35 GMT] Error from server Error: listen EADDRINUSE: address already in use \\.\pipe\browserstack\daemonInstance - \\.\pipe\browserstack\daemonInstance
[Thu, 14 Aug 2025 05:19:59 GMT] Error from server Error: listen EADDRINUSE: address already in use \\.\pipe\browserstack\daemonInstance - \\.\pipe\browserstack\daemonInstance
[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

10
injitest/entrypoint.sh Normal file
View File

@@ -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

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="esignet">
<test verbose="2" preserve-order="true" name="android">
<classes>
<class name="inji.testcases.androidTestCases.ChangeLanguageTest">
<methods>
<include name="changeLanguageToHindiAndVerifyEsignetPage"/>
<include name="changeLanguageToTamilAndVerifyEsignetPage"/>
<include name="changeLanguageToKannadaAndVerifyEsignetPage"/>
<include name="changeLanguageToArabicAndVerifyEsignetPage"/>
<include name="changeLanguageToFillipineAndVerifyEsignetPage"/>
</methods>
</class>
</classes>
</test>
</suite>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="esignet">
<suite-files>
<suite-file path="iosSanity.xml"/>
</suite-files>
<test verbose="2" preserve-order="true" name="ios">
<classes>
<class name="inji.testcases.iosTestCases.ChangeLanguageTest">
<methods>
<include name="changeLanguageToHindiAndVerifyEsignetPage"/>
<include name="changeLanguageToTamilAndVerifyEsignetPage"/>
<include name="changeLanguageToKannadaAndVerifyEsignetPage"/>
<include name="changeLanguageToArabicAndVerifyEsignetPage"/>
<include name="changeLanguageToFillpinoAndVerifyEsignetPage"/>
<include name="changeLanguageToKannadaToEnglishAndVerifyEsignetPage"/>
</methods>
</class>
</classes>
</test>
</suite>

79
injitest/iosConfig.yml Normal file
View File

@@ -0,0 +1,79 @@
# =============================
# Set BrowserStack Credentials
# =============================
# Add your BrowserStack userName and accessKey here or set BROWSERSTACK_USERNAME and
# BROWSERSTACK_ACCESS_KEY as env variables
userName:
accessKey:
# ======================
# BrowserStack Reporting
# ======================
# The following capabilities are used to set up reporting on BrowserStack:
# Set 'projectName' to the name of your project. Example, Marketing Website
projectName: InjiTests
# Set `buildName` as the name of the job / testsuite being run
buildName: iOS Build
# `buildIdentifier` is a unique id to differentiate every execution that gets appended to
# buildName. Choose your buildIdentifier format from the available expressions:
# ${BUILD_NUMBER} (Default): Generates an incremental counter with every execution
# ${DATE_TIME}: Generates a Timestamp with every execution. Eg. 05-Nov-19:30
# Read more about buildIdentifiers here -> https://www.browserstack.com/docs/automate/selenium/organize-tests
buildIdentifier: '#${BUILD_NUMBER}' # Supports strings along with either/both ${expression}
# =======================================
# App
# =======================================
# Set `app` to use the application under test for Appium sessions.
# Available options:
# app: '/path/to/local/app.apk'
# OR
# app: 'bs://<app-id>' # App URL returned when uploading the app to BrowserStack manually
# Visit https://www.browserstack.com/docs/app-automate/appium/set-up-tests/specify-app for more options
app: bs://ae452a9b5f63f2244ba48b6b9553a7c12d6405e7 # BrowserStack Sample App
# =======================================
# Platforms (Browsers / Devices to test)
# =======================================
# Platforms object contains all the browser / device combinations you want to test on.
# Entire list available here -> (https://www.browserstack.com/list-of-browsers-and-platforms/automate)
platforms:
- platformName: ios
deviceName: iPhone 13 Pro
platformVersion: 15
# =======================
# Parallels per Platform
# =======================
# The number of parallel threads to be used for each platform set.
# BrowserStack's SDK runner will select the best strategy based on the configured value
#
# Example 1 - If you have configured 3 platforms and set `parallelsPerPlatform` as 2, a total of 6 (2 * 3) parallel threads will be used on BrowserStack
#
# Example 2 - If you have configured 1 platform and set `parallelsPerPlatform` as 5, a total of 5 (1 * 5) parallel threads will be used on BrowserStack
parallelsPerPlatform: 2
source: java:appium-intellij:v1.1.4
# ==========================================
# BrowserStack Local
# (For localhost, staging/private websites)
# ==========================================
# Set browserStackLocal to true if your website under test is not accessible publicly over the internet
# Learn more about how BrowserStack Local works here -> https://www.browserstack.com/docs/automate/selenium/local-testing-introduction
browserstackLocal: true # <boolean> (Default false)
# Options to be passed to BrowserStack local in-case of advanced configurations
# browserStackLocalOptions:
# localIdentifier: # <string> (Default: null) Needed if you need to run multiple instances of local.
# forceLocal: true # <boolean> (Default: false) Set to true if you need to resolve all your traffic via BrowserStack Local tunnel.
# Entire list of arguments available here -> https://www.browserstack.com/docs/automate/selenium/manage-incoming-connections
# ===================
# Debugging features
# ===================
debug: false # <boolean> # Set to true if you need screenshots for every selenium command ran
networkLogs: false # <boolean> Set to true to enable HAR logs capturing
consoleLogs: errors # <string> Remote browser's console debug levels to be printed (Default: errors)
# Available options are `disable`, `errors`, `warnings`, `info`, `verbose` (Default: errors)
interactiveDebugging: true

86
injitest/iosSanity.xml Normal file
View File

@@ -0,0 +1,86 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="iosSanity">
<listeners>
<listener class-name="inji.utils.SuiteListener"/>
</listeners>
<test verbose="2" preserve-order="true" name="ios">
<classes>
<class name="inji.testcases.iosTestCases.UnlockWithPasscodeTest">
<methods>
<include name="logoutAndLoginWithPasscode" />
<include name="loginWithInvalidPasscode" />
</methods>
</class>
<class name="inji.testcases.iosTestCases.ActivateVcTest">
<methods>
<include name="downloadAndActiveVcUsingUinViaEsignet" />
</methods>
</class>
<class name="inji.testcases.iosTestCases.ChangeLanguageTest">
<methods>
<include name="changeLanguageToArabic" />
</methods>
</class>
<class name="inji.testcases.iosTestCases.PinVcTest">
<methods>
<include name="downloadVcViaEsignetAndPinUnpin" />
</methods>
</class>
<class name="inji.testcases.iosTestCases.AboutInjiTest">
<methods>
<include name="verifyAppId"/>
</methods>
</class>
</classes>
</test>
</suite>
<!--<suite name="All Test Suite">-->
<!--<listeners>-->
<!-- <listener class-name="inji.utils.SuiteListener" />-->
<!--</listeners>-->
<!--<test verbose="2" preserve-order="true" name="ios">-->
<!-- <classes>-->
<!-- <class name="inji.testcases.iosTestCases.UnlockWithPasscodeTest">-->
<!-- <methods>-->
<!-- <include name="logoutAndLoginWithPasscode" />-->
<!-- <include name="loginWithInvalidPasscode" />-->
<!-- </methods>-->
<!-- </class>-->
<!-- <class name="iosTestCases.VcDownloadAndVerifyUsingUinTest">-->
<!-- <methods>-->
<!-- <include name="downloadAndVerifyVcUsingUin" />-->
<!-- <include name="downloadMultipleVcUsingDifferentUin" />-->
<!-- </methods>-->
<!-- </class>-->
<!-- <class name="inji.testcases.iosTestCases.VcDownloadAndVerifyUsingVidTest">-->
<!-- <methods>-->
<!-- <include name="downloadAndVerifyVcUsingVid" />-->
<!-- </methods>-->
<!-- </class>-->
<!-- <class name="inji.testcases.iosTestCases.GenerateUinOrVidTest">-->
<!-- <methods>-->
<!-- <include name="generateUinOrVidUsingAid" />-->
<!-- </methods>-->
<!-- </class>-->
<!-- <class name="inji.testcases.iosTestCases.ActivateVcTest">-->
<!-- <methods>-->
<!-- <include name="activateVc" />-->
<!-- </methods>-->
<!-- </class>-->
<!-- <class name="inji.testcases.iosTestCases.ChangeLanguageTest">-->
<!-- <methods>-->
<!-- <include name="changeLanguageToArabic" />-->
<!-- </methods>-->
<!-- </class>-->
<!-- <class name="inji.testcases.iosTestCases.PinVcTest">-->
<!-- <methods>-->
<!-- <include name="pinVc" />-->
<!-- <include name="downloadVcViaEsignetAndPinUnpin" />-->
<!-- </methods>-->
<!-- </class>-->
<!-- </classes>-->
<!--</test>-->
<!--</suite>-->

View File

@@ -0,0 +1,15 @@
[ {
"duration" : 0.050499990582466125,
"eventName" : "sdk:pre-test",
"startTime" : 1.093080793003E8,
"success" : true,
"worker" : 1,
"failure" : null,
"details" : null,
"entryType" : "measure",
"platform" : 0,
"command" : null,
"testName" : null,
"hookType" : "",
"cli" : false
} ]

View File

@@ -0,0 +1,327 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>io.mosip.inji</groupId>
<artifactId>inji-wallet</artifactId>
<version>0.21.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>uitest-inji-wallet</name>
<description>Project for Inji Mobile UI Automation</description>
<url>https://github.com/mosip/inji-wallet</url>
<licenses>
<license>
<name>MPL 2.0</name>
<url>https://www.mozilla.org/en-US/MPL/2.0/</url>
</license>
</licenses>
<scm>
<connection>scm:git:git://github.com/mosip/inji-wallet.git</connection>
<developerConnection>scm:git:ssh://github.com/mosip/inji-wallet.git</developerConnection>
<url>https://github.com/mosip/inji-wallet</url>
<tag>HEAD</tag>
</scm>
<developers>
<developer>
<name>Mosip</name>
<email>mosip.emailnotifier@gmail.com</email>
<organization>io.mosip</organization>
<organizationUrl>https://github.com/mosip/inji-wallet</organizationUrl>
</developer>
</developers>
<repositories>
<repository>
<id>ossrh-central</id>
<name>MavenCentralRepository</name>
<url>https://central.sonatype.com/repository/maven-snapshots/</url>
<layout>default</layout>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<surefire.plugin.version>3.5.3</surefire.plugin.version>
<log4j.version>2.25.1</log4j.version>
<jackson.version>2.14.3</jackson.version>
<maven.gpg.plugin.version>1.5</maven.gpg.plugin.version>
<maven.shade.plugin.version>3.6.1</maven.shade.plugin.version>
<central.publishing.maven.plugin.version>0.7.0</central.publishing.maven.plugin.version>
<jarName>uitest-inji-wallet-0.21.0-SNAPSHOT-jar-with-dependencies</jarName>
</properties>
<dependencies>
<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
<version>8.6.0</version>
</dependency>
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>${log4j.version}</version>
<scope>compile</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.testng/testng -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.11.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.11.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-yaml</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>3.15.0.Final</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20230227</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.13.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.aventstack/extentreports -->
<dependency>
<groupId>com.aventstack</groupId>
<artifactId>extentreports</artifactId>
<version>5.1.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>rest-assured</artifactId>
<version>5.3.0</version>
</dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-admin-client</artifactId>
<version>17.0.1</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.2</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.3</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-s3 -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
<version>1.12.597</version>
</dependency>
<dependency>
<groupId>io.mosip.testrig.apitest.commons</groupId>
<artifactId>apitest-commons</artifactId>
<version>1.3.3</version>
</dependency>
<dependency>
<groupId>com.browserstack</groupId>
<artifactId>browserstack-java-sdk</artifactId>
<version>1.38.4</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>33.4.8-jre</version>
</dependency>
<dependency>
<groupId>com.browserstack</groupId>
<artifactId>browserstack-local-java</artifactId>
<version>1.1.6</version>
</dependency>
<dependency>
<groupId>com.aventstack</groupId>
<artifactId>extentreports</artifactId>
<version>5.1.2</version>
</dependency>
</dependencies>
<distributionManagement>
<snapshotRepository>
<id>ossrh</id>
<url>https://central.sonatype.com/repository/maven-snapshots/</url>
</snapshotRepository>
<repository>
<id>ossrh</id>
<url>https://central.sonatype.com/api/v1/publisher</url>
</repository>
</distributionManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${surefire.plugin.version}</version>
<configuration>
</configuration>
</plugin>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.6.1</version>
<executions>
<execution>
<id>getClasspathFilenames</id>
<goals>
<goal>properties</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.1</version>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
<version>4.9.10</version>
<executions>
<execution>
<goals>
<goal>revision</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>${central.publishing.maven.plugin.version}</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>ossrh</publishingServerId>
<autoPublish>false</autoPublish>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>${maven.shade.plugin.version}</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<finalName>${jarName}}</finalName>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>inji.runner.MosipTestRunner</mainClass>
</transformer>
</transformers>
<!-- add this to prevent some security issues when
merging everything together -->
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>${maven.gpg.plugin.version}</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
<configuration>
<gpgArguments>
<arg>--pinentry-mode</arg>
<arg>loopback</arg>
</gpgArguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More