Subversion Repositories Applications.papyrus

Rev

Details | Last modification | View Log | RSS feed

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