Repository: wicket Updated Branches: refs/heads/master 24e9db6c8 -> 2d9ebf9af
WICKET-5891 Parsing of ChinUnionPay credit card should use the first 6 characters (cherry picked from commit d02ad24424d72fa944066c2b7e47c86b1d3e6480) Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/2d9ebf9a Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/2d9ebf9a Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/2d9ebf9a Branch: refs/heads/master Commit: 2d9ebf9af8f9efb9cc195959b7e925d70a97a533 Parents: 24e9db6 Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Thu Apr 23 10:24:41 2015 +0300 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Thu Apr 23 10:27:24 2015 +0300 ---------------------------------------------------------------------- .../wicket/validation/validator/CreditCardValidator.java | 2 +- .../validation/validator/CreditCardValidatorTest.java | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/2d9ebf9a/wicket-core/src/main/java/org/apache/wicket/validation/validator/CreditCardValidator.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/validation/validator/CreditCardValidator.java b/wicket-core/src/main/java/org/apache/wicket/validation/validator/CreditCardValidator.java index 28225c2..eeff47b 100644 --- a/wicket-core/src/main/java/org/apache/wicket/validation/validator/CreditCardValidator.java +++ b/wicket-core/src/main/java/org/apache/wicket/validation/validator/CreditCardValidator.java @@ -322,7 +322,7 @@ public class CreditCardValidator implements IValidator<String> if ((creditCardNumber.length() >= 16 && creditCardNumber.length() <= 19) && (creditCardNumber.startsWith("622"))) { - int firstDigits = Integer.parseInt(creditCardNumber.substring(0, 5)); + int firstDigits = Integer.parseInt(creditCardNumber.substring(0, 6)); if (firstDigits >= 622126 && firstDigits <= 622925) { return CreditCard.CHINA_UNIONPAY; http://git-wip-us.apache.org/repos/asf/wicket/blob/2d9ebf9a/wicket-core/src/test/java/org/apache/wicket/validation/validator/CreditCardValidatorTest.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/validation/validator/CreditCardValidatorTest.java b/wicket-core/src/test/java/org/apache/wicket/validation/validator/CreditCardValidatorTest.java index 04cb6c6..3407e49 100644 --- a/wicket-core/src/test/java/org/apache/wicket/validation/validator/CreditCardValidatorTest.java +++ b/wicket-core/src/test/java/org/apache/wicket/validation/validator/CreditCardValidatorTest.java @@ -156,4 +156,15 @@ public class CreditCardValidatorTest extends Assert CreditCardValidator validator = new CreditCardValidator(); assertEquals(CreditCard.VISA, validator.determineCardId("4111111111111111")); } + + /** + * https://issues.apache.org/jira/browse/WICKET-5891 + */ + @Test + public void isChinaUnionPay() + { + CreditCardValidator validator = new CreditCardValidator(); + CreditCard creditCard = validator.determineCardId("6222601010012578692"); + assertEquals(CreditCard.CHINA_UNIONPAY, creditCard); + } }
