Commit 7ef1f265 authored by Maxim Kolosovskiy's avatar Maxim Kolosovskiy Committed by Commit Bot

[Autofill] Fix regex for UPI VPA

- Adds additional formats of UPI VPA based.
- Allows more symbols in UPI name.
Changes are made based on the specification
(https://www.mpf.org.in/docs/08/NPCI%20Unified%20Payment%20Interface%20UPI%20Specifications,%20October%202015.pdf)

Bug: 977377
Change-Id: I8f805e99e530e463717525e991c8d4f22680398e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1672067
Commit-Queue: Maxim Kolosovskiy <kolos@chromium.org>
Reviewed-by: default avatarTommy Martino <tmartino@chromium.org>
Auto-Submit: Maxim Kolosovskiy <kolos@chromium.org>
Cr-Commit-Position: refs/heads/master@{#672204}
parent 2741cf05
......@@ -451,11 +451,13 @@ INSTANTIATE_TEST_SUITE_P(
class AutofillIsUPIVirtualPaymentAddress
: public testing::TestWithParam<std::string> {};
TEST_P(AutofillIsUPIVirtualPaymentAddress, IsUPIVirtualPaymentAddress) {
TEST_P(AutofillIsUPIVirtualPaymentAddress, IsUPIVirtualPaymentAddress_Banks) {
// Expected format is user@bank
EXPECT_TRUE(IsUPIVirtualPaymentAddress(ASCIIToUTF16("user@" + GetParam())));
EXPECT_TRUE(
IsUPIVirtualPaymentAddress(ASCIIToUTF16("user.name-1@" + GetParam())));
// Deviations should not match: bank, @bank, user@prefixbank, user@banksuffix.
// Deviations should not match: bank, @bank, user@prefixbank, user@banksuffix,
// disallowed symbols.
EXPECT_FALSE(IsUPIVirtualPaymentAddress(ASCIIToUTF16(GetParam())));
EXPECT_FALSE(IsUPIVirtualPaymentAddress(ASCIIToUTF16(GetParam() + "@")));
EXPECT_FALSE(IsUPIVirtualPaymentAddress(ASCIIToUTF16("@" + GetParam())));
......@@ -463,6 +465,7 @@ TEST_P(AutofillIsUPIVirtualPaymentAddress, IsUPIVirtualPaymentAddress) {
IsUPIVirtualPaymentAddress(ASCIIToUTF16("user@invalid" + GetParam())));
EXPECT_FALSE(
IsUPIVirtualPaymentAddress(ASCIIToUTF16("user@" + GetParam() + ".com")));
EXPECT_FALSE(IsUPIVirtualPaymentAddress(ASCIIToUTF16("~user@" + GetParam())));
}
INSTANTIATE_TEST_SUITE_P(UPIVirtualPaymentAddress,
......@@ -494,4 +497,15 @@ INSTANTIATE_TEST_SUITE_P(UPIVirtualPaymentAddress,
"vijb",
"ybl"));
TEST_P(AutofillIsUPIVirtualPaymentAddress, IsUPIVirtualPaymentAddress_Others) {
EXPECT_TRUE(
IsUPIVirtualPaymentAddress(ASCIIToUTF16("12345@HDFC0000001.ifsc.npci")));
EXPECT_TRUE(
IsUPIVirtualPaymentAddress(ASCIIToUTF16("234567890123@aadhaar.npci")));
EXPECT_TRUE(
IsUPIVirtualPaymentAddress(ASCIIToUTF16("9800011111@mobile.npci")));
EXPECT_TRUE(
IsUPIVirtualPaymentAddress(ASCIIToUTF16("1234123412341234@rupay.npci")));
}
} // namespace autofill
......@@ -384,63 +384,118 @@ const char kFlightRe[] =
// validation.cc
/////////////////////////////////////////////////////////////////////////////
const char kUPIVirtualPaymentAddressRe[] =
"^\\w+@("
"airtel|" // My Airtel-Recharge, Bill, Bank
"allbank|" // Allahabad Bank UPI
"andb|" // Andhra Bank ONE
"axisbank|" // Axis Pay
"axisgo|" // Ola
"barodampay|" // Baroda MPay
"boi|" // BHIM BOI UPI
"centralbank|" // Cent UPI
"cnrb|" // Canara Bank UPI - Empower
"csbpay|" // CSB UPI
"dbs|" // digibank by DBS
"dcb|" // DCB Bank
"denabank|" // Dena Bank E-UPI
"fbl|" // Cointab
"federal|" // Lotza
"hdfcbank|" // HDFC Bank MobileBanking
"hsbc|" // HSBC Simply Pay
"icici|" // Pockets- ICICI Bank
"idbi|" // PayWiz
"idfcbank|" // IDFC Bank UPI App
"indianbank|" // Indian Bank UPI
"indus|" // Indus Pay
"iob|" // IOB UPI
"jkb|" // BHIM JK Bank UPI
"jsb|" // JetPay UPI
"kaypay|" // KayPay
"kbl|" // KBL Smartz
"kotak|" // kotak Mahindra Bank
"kvb|" // KVB Upay
"lvb|" // LVB UPay
"mahb|" // MAHAUPI
"obc|" // Oriental BHIM UPI
"okicici|" // Tez
"okhdfcbank|" // Tez
"okaxis|" // Tez
"paytm|" // Paytm
"pingpay|" // Samsung Pay
"pnb|" // PNB UPI
"pockets|" // Pockets- ICICI Bank
"psb|" // PSB UPI App
"rbl|" // RBL Pay
"sbi|" // SBI Pay
"scb|" // Standard Chartered
"sib|" // SIB M-Pay (UPI Pay)
"syndicate|" // Synd UPI
"tjsb|" // TranZapp
"ubi|" // United UPI
"uboi|" // Union Bank UPI
"uco|" // UCO UPI
"unionbank|" // Union Bank UPI
"united|" // United UPI
"upi|" // BHIM Bharat Interface for Money
"utbi|" // United UPI
"vijb|" // Vijaya UPI App
"ybl|" // Yes Pay
"yesbank" // NuPay
"^[\\w.+-_]+@(" // eg user@
"\\w+\\.ifsc\\.npci|" // IFSC code
"aadhaar\\.npci|" // Aadhaar number
"mobile\\.npci|" // Mobile number
"rupay\\.npci|" // RuPay card number
"airtel|" // List of banks https://www.npci.org.in/upi-live-members
"airtelpaymentsbank|"
"albk|"
"allahabadbank|"
"allbank|"
"andb|"
"apb|"
"apl|"
"axis|"
"axisbank|"
"axisgo|"
"bandhan|"
"barodampay|"
"birla|"
"boi|"
"cbin|"
"cboi|"
"centralbank|"
"cmsidfc|"
"cnrb|"
"csbcash|"
"csbpay|"
"cub|"
"dbs|"
"dcb|"
"dcbbank|"
"denabank|"
"dlb|"
"eazypay|"
"equitas|"
"ezeepay|"
"fbl|"
"federal|"
"finobank|"
"hdfcbank|"
"hsbc|"
"icici|"
"idbi|"
"idbibank|"
"idfc|"
"idfcbank|"
"idfcnetc|"
"ikwik|"
"imobile|"
"indbank|"
"indianbank|"
"indianbk|"
"indus|"
"iob|"
"jkb|"
"jsb|"
"jsbp|"
"karb|"
"karurvysyabank|"
"kaypay|"
"kbl|"
"kbl052|"
"kmb|"
"kmbl|"
"kotak|"
"kvb|"
"kvbank|"
"lime|"
"lvb|"
"lvbank|"
"mahb|"
"obc|"
"okaxis|"
"okbizaxis|"
"okhdfcbank|"
"okicici|"
"oksbi|"
"paytm|"
"payzapp|"
"pingpay|"
"pnb|"
"pockets|"
"psb|"
"purz|"
"rajgovhdfcbank|"
"rbl|"
"sbi|"
"sc|"
"scb|"
"scbl|"
"scmobile|"
"sib|"
"srcb|"
"synd|"
"syndbank|"
"syndicate|"
"tjsb|"
"tjsp|"
"ubi|"
"uboi|"
"uco|"
"unionbank|"
"unionbankofindia|"
"united|"
"upi|"
"utbi|"
"vijayabank|"
"vijb|"
"vjb|"
"ybl|"
"yesbank|"
"yesbankltd"
")$";
/////////////////////////////////////////////////////////////////////////////
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment