id.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406
  1. describe('id', function() {
  2. beforeEach(function () {
  3. var html = [
  4. '<form class="form-horizontal" id="idForm">',
  5. '<div class="form-group">',
  6. '<input type="text" name="id" data-bv-id />',
  7. '</div>',
  8. '</form>',
  9. ].join('\n');
  10. $(html).appendTo('body');
  11. $('#idForm').bootstrapValidator();
  12. /**
  13. * @type {BootstrapValidator}
  14. */
  15. this.bv = $('#idForm').data('bootstrapValidator');
  16. this.$id = this.bv.getFieldElements('id');
  17. });
  18. afterEach(function () {
  19. $('#idForm').bootstrapValidator('destroy').remove();
  20. });
  21. it('Bulgarian national identification number (EGN)', function() {
  22. this.bv.updateOption('id', 'id', 'country', 'BG');
  23. // Valid samples
  24. var validSamples = ['7523169263', '8032056031', '803205 603 1', '8001010008', '7501020018', '7552010005', '7542011030'];
  25. for (var i in validSamples) {
  26. this.bv.resetForm();
  27. this.$id.val(validSamples[i]);
  28. this.bv.validate();
  29. expect(this.bv.isValid()).toBeTruthy();
  30. }
  31. // Invalid samples
  32. var invalidSamples = ['8019010008'];
  33. for (i in invalidSamples) {
  34. this.bv.resetForm();
  35. this.$id.val(invalidSamples[i]);
  36. this.bv.validate();
  37. expect(this.bv.isValid()).toEqual(false);
  38. }
  39. });
  40. it('Brazilian national identification number (CPF)', function() {
  41. this.bv.updateOption('id', 'id', 'country', 'BR');
  42. // Valid samples
  43. var validSamples = ['39053344705', '390.533.447-05', '111.444.777-35'];
  44. for (var i in validSamples) {
  45. this.bv.resetForm();
  46. this.$id.val(validSamples[i]);
  47. this.bv.validate();
  48. expect(this.bv.isValid()).toBeTruthy();
  49. }
  50. // Invalid samples
  51. var invalidSamples = ['231.002.999-00'];
  52. for (i in invalidSamples) {
  53. this.bv.resetForm();
  54. this.$id.val(invalidSamples[i]);
  55. this.bv.validate();
  56. expect(this.bv.isValid()).toEqual(false);
  57. }
  58. });
  59. it('Swiss Social Security Number (AHV-Nr/No AVS)', function() {
  60. this.bv.updateOption('id', 'id', 'country', 'CH');
  61. // Valid samples
  62. var validSamples = ['756.1234.5678.95', '7561234567895'];
  63. for (var i in validSamples) {
  64. this.bv.resetForm();
  65. this.$id.val(validSamples[i]);
  66. this.bv.validate();
  67. expect(this.bv.isValid()).toBeTruthy();
  68. }
  69. });
  70. it('Chilean national identification number (RUN/RUT)', function() {
  71. this.bv.updateOption('id', 'id', 'country', 'CL');
  72. // Valid samples
  73. var validSamples = ['76086428-5', '22060449-7', '12531909-2'];
  74. for (var i in validSamples) {
  75. this.bv.resetForm();
  76. this.$id.val(validSamples[i]);
  77. this.bv.validate();
  78. expect(this.bv.isValid()).toBeTruthy();
  79. }
  80. });
  81. it('Czech national identification number (RC)', function() {
  82. this.bv.updateOption('id', 'id', 'country', 'CZ');
  83. // Valid samples
  84. var validSamples = ['7103192745', '991231123'];
  85. for (var i in validSamples) {
  86. this.bv.resetForm();
  87. this.$id.val(validSamples[i]);
  88. this.bv.validate();
  89. expect(this.bv.isValid()).toBeTruthy();
  90. }
  91. // Invalid samples
  92. var invalidSamples = ['1103492745', '590312123'];
  93. for (i in invalidSamples) {
  94. this.bv.resetForm();
  95. this.$id.val(invalidSamples[i]);
  96. this.bv.validate();
  97. expect(this.bv.isValid()).toEqual(false);
  98. }
  99. });
  100. it('Danish Personal Identification number (CPR)', function() {
  101. this.bv.updateOption('id', 'id', 'country', 'DK');
  102. // Valid samples
  103. var validSamples = ['2110625629', '211062-5629'];
  104. for (var i in validSamples) {
  105. this.bv.resetForm();
  106. this.$id.val(validSamples[i]);
  107. this.bv.validate();
  108. expect(this.bv.isValid()).toBeTruthy();
  109. }
  110. // Invalid samples
  111. var invalidSamples = ['511062-5629'];
  112. for (i in invalidSamples) {
  113. this.bv.resetForm();
  114. this.$id.val(invalidSamples[i]);
  115. this.bv.validate();
  116. expect(this.bv.isValid()).toEqual(false);
  117. }
  118. });
  119. it('Estonian Personal Identification Code (isikukood)', function() {
  120. this.bv.updateOption('id', 'id', 'country', 'EE');
  121. // Valid samples
  122. var validSamples = ['37605030299'];
  123. for (var i in validSamples) {
  124. this.bv.resetForm();
  125. this.$id.val(validSamples[i]);
  126. this.bv.validate();
  127. expect(this.bv.isValid()).toBeTruthy();
  128. }
  129. });
  130. it('Spanish personal identity code (DNI/NIE)', function() {
  131. this.bv.updateOption('id', 'id', 'country', 'ES');
  132. // Valid samples
  133. var validSamples = ['54362315K', '54362315-K', 'X2482300W', 'X-2482300W', 'X-2482300-W'];
  134. for (var i in validSamples) {
  135. this.bv.resetForm();
  136. this.$id.val(validSamples[i]);
  137. this.bv.validate();
  138. expect(this.bv.isValid()).toBeTruthy();
  139. }
  140. // Invalid samples
  141. var invalidSamples = ['54362315Z', 'X-2482300A'];
  142. for (i in invalidSamples) {
  143. this.bv.resetForm();
  144. this.$id.val(invalidSamples[i]);
  145. this.bv.validate();
  146. expect(this.bv.isValid()).toEqual(false);
  147. }
  148. });
  149. it('Finnish Personal Identity Code (HETU)', function() {
  150. this.bv.updateOption('id', 'id', 'country', 'FI');
  151. // Valid samples
  152. var validSamples = ['311280-888Y', '131052-308T'];
  153. for (var i in validSamples) {
  154. this.bv.resetForm();
  155. this.$id.val(validSamples[i]);
  156. this.bv.validate();
  157. expect(this.bv.isValid()).toBeTruthy();
  158. }
  159. // Invalid samples
  160. var invalidSamples = ['131052-308U', '310252-308Y'];
  161. for (i in invalidSamples) {
  162. this.bv.resetForm();
  163. this.$id.val(invalidSamples[i]);
  164. this.bv.validate();
  165. expect(this.bv.isValid()).toEqual(false);
  166. }
  167. });
  168. it('Croatian personal identification number (OIB)', function() {
  169. this.bv.updateOption('id', 'id', 'country', 'HR');
  170. // Valid samples
  171. var validSamples = ['33392005961'];
  172. for (var i in validSamples) {
  173. this.bv.resetForm();
  174. this.$id.val(validSamples[i]);
  175. this.bv.validate();
  176. expect(this.bv.isValid()).toBeTruthy();
  177. }
  178. // Invalid samples
  179. var invalidSamples = ['33392005962'];
  180. for (i in invalidSamples) {
  181. this.bv.resetForm();
  182. this.$id.val(invalidSamples[i]);
  183. this.bv.validate();
  184. expect(this.bv.isValid()).toEqual(false);
  185. }
  186. });
  187. it('Irish Personal Public Service Number (PPS)', function() {
  188. this.bv.updateOption('id', 'id', 'country', 'IE');
  189. // Valid samples
  190. var validSamples = ['6433435F', '6433435FT', '6433435FW', '6433435OA', '6433435IH', '1234567TW', '1234567FA'];
  191. for (var i in validSamples) {
  192. this.bv.resetForm();
  193. this.$id.val(validSamples[i]);
  194. this.bv.validate();
  195. expect(this.bv.isValid()).toBeTruthy();
  196. }
  197. // Invalid samples
  198. var invalidSamples = ['6433435E', '6433435VH'];
  199. for (i in invalidSamples) {
  200. this.bv.resetForm();
  201. this.$id.val(invalidSamples[i]);
  202. this.bv.validate();
  203. expect(this.bv.isValid()).toEqual(false);
  204. }
  205. });
  206. it('Iceland national identification number (Kennitala)', function() {
  207. this.bv.updateOption('id', 'id', 'country', 'IS');
  208. // Valid samples
  209. var validSamples = ['120174-3399', '1201743399', '0902862349'];
  210. for (var i in validSamples) {
  211. this.bv.resetForm();
  212. this.$id.val(validSamples[i]);
  213. this.bv.validate();
  214. expect(this.bv.isValid()).toBeTruthy();
  215. }
  216. });
  217. it('Lithuanian Personal Code (Asmens kodas)', function() {
  218. this.bv.updateOption('id', 'id', 'country', 'LT');
  219. // Valid samples
  220. var validSamples = ['38703181745'];
  221. for (var i in validSamples) {
  222. this.bv.resetForm();
  223. this.$id.val(validSamples[i]);
  224. this.bv.validate();
  225. expect(this.bv.isValid()).toBeTruthy();
  226. }
  227. // Invalid samples
  228. var invalidSamples = ['38703181746', '78703181745', '38703421745'];
  229. for (i in invalidSamples) {
  230. this.bv.resetForm();
  231. this.$id.val(invalidSamples[i]);
  232. this.bv.validate();
  233. expect(this.bv.isValid()).toEqual(false);
  234. }
  235. });
  236. it('Latvian Personal Code (Personas kods)', function() {
  237. this.bv.updateOption('id', 'id', 'country', 'LV');
  238. // Valid samples
  239. var validSamples = ['161175-19997', '16117519997'];
  240. for (var i in validSamples) {
  241. this.bv.resetForm();
  242. this.$id.val(validSamples[i]);
  243. this.bv.validate();
  244. expect(this.bv.isValid()).toBeTruthy();
  245. }
  246. // Invalid samples
  247. var invalidSamples = ['161375-19997'];
  248. for (i in invalidSamples) {
  249. this.bv.resetForm();
  250. this.$id.val(invalidSamples[i]);
  251. this.bv.validate();
  252. expect(this.bv.isValid()).toEqual(false);
  253. }
  254. });
  255. it('Dutch national identification number (BSN)', function() {
  256. this.bv.updateOption('id', 'id', 'country', 'NL');
  257. // Valid samples
  258. var validSamples = ['111222333', '941331490', '9413.31.490'];
  259. for (var i in validSamples) {
  260. this.bv.resetForm();
  261. this.$id.val(validSamples[i]);
  262. this.bv.validate();
  263. expect(this.bv.isValid()).toBeTruthy();
  264. }
  265. // Invalid samples
  266. var invalidSamples = ['111252333'];
  267. for (i in invalidSamples) {
  268. this.bv.resetForm();
  269. this.$id.val(invalidSamples[i]);
  270. this.bv.validate();
  271. expect(this.bv.isValid()).toEqual(false);
  272. }
  273. });
  274. it('Romanian numerical personal code (CNP)', function() {
  275. this.bv.updateOption('id', 'id', 'country', 'RO');
  276. // Valid samples
  277. var validSamples = ['1630615123457', '1800101221144'];
  278. for (var i in validSamples) {
  279. this.bv.resetForm();
  280. this.$id.val(validSamples[i]);
  281. this.bv.validate();
  282. expect(this.bv.isValid()).toBeTruthy();
  283. }
  284. // Invalid samples
  285. var invalidSamples = ['8800101221144', '1632215123457', '1630615123458'];
  286. for (i in invalidSamples) {
  287. this.bv.resetForm();
  288. this.$id.val(invalidSamples[i]);
  289. this.bv.validate();
  290. expect(this.bv.isValid()).toEqual(false);
  291. }
  292. });
  293. it('Swedish personal identity number (personnummer)', function() {
  294. this.bv.updateOption('id', 'id', 'country', 'SE');
  295. // Valid samples
  296. var validSamples = ['8112289874', '811228-9874', '811228+9874'];
  297. for (var i in validSamples) {
  298. this.bv.resetForm();
  299. this.$id.val(validSamples[i]);
  300. this.bv.validate();
  301. expect(this.bv.isValid()).toBeTruthy();
  302. }
  303. // Invalid samples
  304. var invalidSamples = ['811228-9873'];
  305. for (i in invalidSamples) {
  306. this.bv.resetForm();
  307. this.$id.val(invalidSamples[i]);
  308. this.bv.validate();
  309. expect(this.bv.isValid()).toEqual(false);
  310. }
  311. });
  312. it('Slovak national identifier number (RC)', function() {
  313. this.bv.updateOption('id', 'id', 'country', 'SK');
  314. // Valid samples
  315. var validSamples = ['7103192745', '991231123'];
  316. for (var i in validSamples) {
  317. this.bv.resetForm();
  318. this.$id.val(validSamples[i]);
  319. this.bv.validate();
  320. expect(this.bv.isValid()).toBeTruthy();
  321. }
  322. // Invalid samples
  323. var invalidSamples = ['7103192746', '1103492745'];
  324. for (i in invalidSamples) {
  325. this.bv.resetForm();
  326. this.$id.val(invalidSamples[i]);
  327. this.bv.validate();
  328. expect(this.bv.isValid()).toEqual(false);
  329. }
  330. });
  331. it('South African ID', function() {
  332. this.bv.updateOption('id', 'id', 'country', 'ZA');
  333. // Valid samples
  334. var validSamples = ['8001015009087'];
  335. for (var i in validSamples) {
  336. this.bv.resetForm();
  337. this.$id.val(validSamples[i]);
  338. this.bv.validate();
  339. expect(this.bv.isValid()).toBeTruthy();
  340. }
  341. // Invalid samples
  342. var invalidSamples = ['8001015009287', '8001015009086'];
  343. for (i in invalidSamples) {
  344. this.bv.resetForm();
  345. this.$id.val(invalidSamples[i]);
  346. this.bv.validate();
  347. expect(this.bv.isValid()).toEqual(false);
  348. }
  349. });
  350. });