source: Dev/trunk/src/client/dojox/validate/tests/creditcard.js

Last change on this file was 483, checked in by hendrikvanantwerpen, 11 years ago

Added Dojo 1.9.3 release.

File size: 6.7 KB
Line 
1define(["doh", "../creditCard"], function(doh, validate){
2
3doh.register("dojox.validate.tests.creditcard",
4        [{
5                name:"isValidLuhn",
6                runTest: function(tests) {
7                        tests.t(validate.isValidLuhn('5105105105105100')); //test string input
8                        tests.t(validate.isValidLuhn('5105-1051 0510-5100')); //test string input with dashes and spaces (commonly used when entering card #'s)
9                        tests.t(validate.isValidLuhn(38520000023237)); //test numerical input as well
10                        tests.f(validate.isValidLuhn(3852000002323)); //testing failures
11                        tests.t(validate.isValidLuhn(18)); //length doesnt matter
12                        tests.f(validate.isValidLuhn(818181)); //short length failure
13                }
14        },
15        {
16                name:"isValidCvv",
17                runTest: function(tests) {
18                        tests.t(validate.isValidCvv('123','mc')); //string is ok
19                        tests.f(validate.isValidCvv('5AA','ec')); //invalid characters are not ok
20                        tests.t(validate.isValidCvv(723,'mc')); //numbers are ok too
21                        tests.f(validate.isValidCvv(7234,'mc')); //too long
22                        tests.t(validate.isValidCvv(612,'ec'));
23                        tests.t(validate.isValidCvv(421,'vi'));
24                        tests.t(validate.isValidCvv(543,'di'));
25                        tests.t(validate.isValidCvv('1234','ax'));
26                        tests.t(validate.isValidCvv(4321,'ax'));
27                        tests.f(validate.isValidCvv(43215,'ax')); //too long
28                        tests.f(validate.isValidCvv(215,'ax')); //too short
29                }
30        },
31        {
32                name:"isValidCreditCard",
33                runTest: function(tests) {
34                        //misc checks
35                        tests.t(validate.isValidCreditCard('5105105105105100','mc')); //test string input
36                        tests.t(validate.isValidCreditCard('5105-1051 0510-5100','mc')); //test string input with dashes and spaces (commonly used when entering card #'s)
37                        tests.t(validate.isValidCreditCard(5105105105105100,'mc')); //test numerical input as well
38                        tests.f(validate.isValidCreditCard('5105105105105100','vi')); //fails, wrong card type
39                        //Mastercard/Eurocard checks
40                        tests.t(validate.isValidCreditCard('5105105105105100','mc'));
41                        tests.t(validate.isValidCreditCard('5204105105105100','ec'));
42                        tests.t(validate.isValidCreditCard('5303105105105100','mc'));
43                        tests.t(validate.isValidCreditCard('5402105105105100','ec'));
44                        tests.t(validate.isValidCreditCard('5501105105105100','mc'));
45                        //Visa card checks
46                        tests.t(validate.isValidCreditCard('4111111111111111','vi'));
47                        tests.t(validate.isValidCreditCard('4111111111010','vi'));
48                        //American Express card checks
49                        tests.t(validate.isValidCreditCard('378 2822 4631 0005','ax'));
50                        tests.t(validate.isValidCreditCard('341-1111-1111-1111','ax'));
51                        //Diners Club/Carte Blanch card checks
52                        tests.t(validate.isValidCreditCard('36400000000000','dc'));
53                        tests.t(validate.isValidCreditCard('38520000023237','bl'));
54                        tests.t(validate.isValidCreditCard('30009009025904','dc'));
55                        tests.t(validate.isValidCreditCard('30108009025904','bl'));
56                        tests.t(validate.isValidCreditCard('30207009025904','dc'));
57                        tests.t(validate.isValidCreditCard('30306009025904','bl'));
58                        tests.t(validate.isValidCreditCard('30405009025904','dc'));
59                        tests.t(validate.isValidCreditCard('30504009025904','bl'));
60                        //Discover card checks
61                        tests.t(validate.isValidCreditCard('6011111111111117','di'));
62                        //JCB card checks
63                        tests.t(validate.isValidCreditCard('3530111333300000','jcb'));
64                        tests.t(validate.isValidCreditCard('213100000000001','jcb'));
65                        tests.t(validate.isValidCreditCard('180000000000002','jcb'));
66                        tests.f(validate.isValidCreditCard('1800000000000002','jcb')); //should fail, good checksum, good prefix, but wrong length'
67                        //Enroute card checks
68                        tests.t(validate.isValidCreditCard('201400000000000','er'));
69                        tests.t(validate.isValidCreditCard('214900000000000','er'));
70                }
71        },
72        {
73                name:"isValidCreditCardNumber",
74                runTest: function(tests) {
75                        //misc checks
76                        tests.f(validate.isValidCreditCardNumber('a4111111111111', 'vi')); //fails, alphas are not allowed
77                        tests.t(validate.isValidCreditCardNumber('5105105105105100','mc')); //test string input
78                        tests.t(validate.isValidCreditCardNumber('5105-1051 0510-5100','mc')); //test string input with dashes and spaces (commonly used when entering card #'s)
79                        tests.t(validate.isValidCreditCardNumber(5105105105105100,'mc')); //test numerical input as well
80                        tests.f(validate.isValidCreditCardNumber('5105105105105100','vi')); //fails, wrong card type
81                        //Mastercard/Eurocard checks
82                        tests.is("mc|ec", validate.isValidCreditCardNumber('5100000000000000')); //should match 'mc|ec'
83                        tests.is("mc|ec", validate.isValidCreditCardNumber('5200000000000000')); //should match 'mc|ec'
84                        tests.is("mc|ec", validate.isValidCreditCardNumber('5300000000000000')); //should match 'mc|ec'
85                        tests.is("mc|ec", validate.isValidCreditCardNumber('5400000000000000')); //should match 'mc|ec'
86                        tests.is("mc|ec", validate.isValidCreditCardNumber('5500000000000000')); //should match 'mc|ec'
87                        tests.f(validate.isValidCreditCardNumber('55000000000000000')); //should fail, too long
88                        //Visa card checks
89                        tests.is("vi", validate.isValidCreditCardNumber('4111111111111111')); //should match 'vi'
90                        tests.is("vi", validate.isValidCreditCardNumber('4111111111010')); //should match 'vi'
91                        //American Express card checks
92                        tests.is("ax", validate.isValidCreditCardNumber('378 2822 4631 0005')); //should match 'ax'
93                        tests.is("ax", validate.isValidCreditCardNumber('341-1111-1111-1111')); //should match 'ax'
94                        //Diners Club/Carte Blanch card checks
95                        tests.is("dc|bl", validate.isValidCreditCardNumber('36400000000000')); //should match 'dc|bl'
96                        tests.is("dc|bl", validate.isValidCreditCardNumber('38520000023237')); //should match 'dc|bl'
97                        tests.is("dc|bl", validate.isValidCreditCardNumber('30009009025904')); //should match 'di|bl'
98                        tests.is("dc|bl", validate.isValidCreditCardNumber('30108009025904')); //should match 'di|bl'
99                        tests.is("dc|bl", validate.isValidCreditCardNumber('30207009025904')); //should match 'di|bl'
100                        tests.is("dc|bl", validate.isValidCreditCardNumber('30306009025904')); //should match 'di|bl'
101                        tests.is("dc|bl", validate.isValidCreditCardNumber('30405009025904')); //should match 'di|bl'
102                        tests.is("dc|bl", validate.isValidCreditCardNumber('30504009025904')); //should match 'di|bl'
103                        //Discover card checks
104                        tests.is("di", validate.isValidCreditCardNumber('6011111111111117')); //should match 'di'
105                        //JCB card checks
106                        tests.is("jcb", validate.isValidCreditCardNumber('3530111333300000')); //should match 'jcb'
107                        tests.is("jcb", validate.isValidCreditCardNumber('213100000000001')); //should match 'jcb'
108                        tests.is("jcb", validate.isValidCreditCardNumber('180000000000002')); //should match 'jcb'
109                        tests.f(validate.isValidCreditCardNumber('1800000000000002')); //should fail, good checksum, good prefix, but wrong length'
110                        //Enroute card checks
111                        tests.is("er", validate.isValidCreditCardNumber('201400000000000')); //should match 'er'
112                        tests.is("er", validate.isValidCreditCardNumber('214900000000000')); //should match 'er'
113                }
114        }
115]);
116
117});
Note: See TracBrowser for help on using the repository browser.