|
@@ -2140,6 +2140,413 @@ describe('iban', function() {
|
|
|
});
|
|
});
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
|
|
+describe('id', function() {
|
|
|
|
|
+ beforeEach(function () {
|
|
|
|
|
+ var html = [
|
|
|
|
|
+ '<form class="form-horizontal" id="idForm">',
|
|
|
|
|
+ '<div class="form-group">',
|
|
|
|
|
+ '<input type="text" name="id" data-bv-id />',
|
|
|
|
|
+ '</div>',
|
|
|
|
|
+ '</form>',
|
|
|
|
|
+ ].join('\n');
|
|
|
|
|
+
|
|
|
|
|
+ $(html).appendTo('body');
|
|
|
|
|
+ $('#idForm').bootstrapValidator();
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @type {BootstrapValidator}
|
|
|
|
|
+ */
|
|
|
|
|
+ this.bv = $('#idForm').data('bootstrapValidator');
|
|
|
|
|
+ this.$id = this.bv.getFieldElements('id');
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ afterEach(function () {
|
|
|
|
|
+ $('#idForm').bootstrapValidator('destroy').remove();
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ it('Bulgarian national identification number (EGN)', function() {
|
|
|
|
|
+ this.bv.updateOption('id', 'id', 'country', 'BG');
|
|
|
|
|
+
|
|
|
|
|
+ // Valid samples
|
|
|
|
|
+ var validSamples = ['7523169263', '8032056031', '803205 603 1', '8001010008', '7501020018', '7552010005', '7542011030'];
|
|
|
|
|
+ for (var i in validSamples) {
|
|
|
|
|
+ this.bv.resetForm();
|
|
|
|
|
+ this.$id.val(validSamples[i]);
|
|
|
|
|
+ this.bv.validate();
|
|
|
|
|
+ expect(this.bv.isValid()).toBeTruthy();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Invalid samples
|
|
|
|
|
+ var invalidSamples = ['8019010008'];
|
|
|
|
|
+ for (i in invalidSamples) {
|
|
|
|
|
+ this.bv.resetForm();
|
|
|
|
|
+ this.$id.val(invalidSamples[i]);
|
|
|
|
|
+ this.bv.validate();
|
|
|
|
|
+ expect(this.bv.isValid()).toEqual(false);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ it('Brazilian national identification number (CPF)', function() {
|
|
|
|
|
+ this.bv.updateOption('id', 'id', 'country', 'BR');
|
|
|
|
|
+
|
|
|
|
|
+ // Valid samples
|
|
|
|
|
+ var validSamples = ['39053344705', '390.533.447-05', '111.444.777-35'];
|
|
|
|
|
+ for (var i in validSamples) {
|
|
|
|
|
+ this.bv.resetForm();
|
|
|
|
|
+ this.$id.val(validSamples[i]);
|
|
|
|
|
+ this.bv.validate();
|
|
|
|
|
+ expect(this.bv.isValid()).toBeTruthy();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Invalid samples
|
|
|
|
|
+ var invalidSamples = ['231.002.999-00'];
|
|
|
|
|
+ for (i in invalidSamples) {
|
|
|
|
|
+ this.bv.resetForm();
|
|
|
|
|
+ this.$id.val(invalidSamples[i]);
|
|
|
|
|
+ this.bv.validate();
|
|
|
|
|
+ expect(this.bv.isValid()).toEqual(false);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ it('Swiss Social Security Number (AHV-Nr/No AVS)', function() {
|
|
|
|
|
+ this.bv.updateOption('id', 'id', 'country', 'CH');
|
|
|
|
|
+
|
|
|
|
|
+ // Valid samples
|
|
|
|
|
+ var validSamples = ['756.1234.5678.95', '7561234567895'];
|
|
|
|
|
+ for (var i in validSamples) {
|
|
|
|
|
+ this.bv.resetForm();
|
|
|
|
|
+ this.$id.val(validSamples[i]);
|
|
|
|
|
+ this.bv.validate();
|
|
|
|
|
+ expect(this.bv.isValid()).toBeTruthy();
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ it('Chilean national identification number (RUN/RUT)', function() {
|
|
|
|
|
+ this.bv.updateOption('id', 'id', 'country', 'CL');
|
|
|
|
|
+
|
|
|
|
|
+ // Valid samples
|
|
|
|
|
+ var validSamples = ['76086428-5', '22060449-7', '12531909-2'];
|
|
|
|
|
+ for (var i in validSamples) {
|
|
|
|
|
+ this.bv.resetForm();
|
|
|
|
|
+ this.$id.val(validSamples[i]);
|
|
|
|
|
+ this.bv.validate();
|
|
|
|
|
+ expect(this.bv.isValid()).toBeTruthy();
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ it('Czech national identification number (RC)', function() {
|
|
|
|
|
+ this.bv.updateOption('id', 'id', 'country', 'CZ');
|
|
|
|
|
+
|
|
|
|
|
+ // Valid samples
|
|
|
|
|
+ var validSamples = ['7103192745', '991231123'];
|
|
|
|
|
+ for (var i in validSamples) {
|
|
|
|
|
+ this.bv.resetForm();
|
|
|
|
|
+ this.$id.val(validSamples[i]);
|
|
|
|
|
+ this.bv.validate();
|
|
|
|
|
+ expect(this.bv.isValid()).toBeTruthy();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Invalid samples
|
|
|
|
|
+ var invalidSamples = ['1103492745', '590312123'];
|
|
|
|
|
+ for (i in invalidSamples) {
|
|
|
|
|
+ this.bv.resetForm();
|
|
|
|
|
+ this.$id.val(invalidSamples[i]);
|
|
|
|
|
+ this.bv.validate();
|
|
|
|
|
+ expect(this.bv.isValid()).toEqual(false);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ it('Danish Personal Identification number (CPR)', function() {
|
|
|
|
|
+ this.bv.updateOption('id', 'id', 'country', 'DK');
|
|
|
|
|
+
|
|
|
|
|
+ // Valid samples
|
|
|
|
|
+ var validSamples = ['2110625629', '211062-5629'];
|
|
|
|
|
+ for (var i in validSamples) {
|
|
|
|
|
+ this.bv.resetForm();
|
|
|
|
|
+ this.$id.val(validSamples[i]);
|
|
|
|
|
+ this.bv.validate();
|
|
|
|
|
+ expect(this.bv.isValid()).toBeTruthy();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Invalid samples
|
|
|
|
|
+ var invalidSamples = ['511062-5629'];
|
|
|
|
|
+ for (i in invalidSamples) {
|
|
|
|
|
+ this.bv.resetForm();
|
|
|
|
|
+ this.$id.val(invalidSamples[i]);
|
|
|
|
|
+ this.bv.validate();
|
|
|
|
|
+ expect(this.bv.isValid()).toEqual(false);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ it('Estonian Personal Identification Code (isikukood)', function() {
|
|
|
|
|
+ this.bv.updateOption('id', 'id', 'country', 'EE');
|
|
|
|
|
+
|
|
|
|
|
+ // Valid samples
|
|
|
|
|
+ var validSamples = ['37605030299'];
|
|
|
|
|
+ for (var i in validSamples) {
|
|
|
|
|
+ this.bv.resetForm();
|
|
|
|
|
+ this.$id.val(validSamples[i]);
|
|
|
|
|
+ this.bv.validate();
|
|
|
|
|
+ expect(this.bv.isValid()).toBeTruthy();
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ it('Spanish personal identity code (DNI/NIE)', function() {
|
|
|
|
|
+ this.bv.updateOption('id', 'id', 'country', 'ES');
|
|
|
|
|
+
|
|
|
|
|
+ // Valid samples
|
|
|
|
|
+ var validSamples = ['54362315K', '54362315-K', 'X2482300W', 'X-2482300W', 'X-2482300-W'];
|
|
|
|
|
+ for (var i in validSamples) {
|
|
|
|
|
+ this.bv.resetForm();
|
|
|
|
|
+ this.$id.val(validSamples[i]);
|
|
|
|
|
+ this.bv.validate();
|
|
|
|
|
+ expect(this.bv.isValid()).toBeTruthy();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Invalid samples
|
|
|
|
|
+ var invalidSamples = ['54362315Z', 'X-2482300A'];
|
|
|
|
|
+ for (i in invalidSamples) {
|
|
|
|
|
+ this.bv.resetForm();
|
|
|
|
|
+ this.$id.val(invalidSamples[i]);
|
|
|
|
|
+ this.bv.validate();
|
|
|
|
|
+ expect(this.bv.isValid()).toEqual(false);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ it('Finnish Personal Identity Code (HETU)', function() {
|
|
|
|
|
+ this.bv.updateOption('id', 'id', 'country', 'FI');
|
|
|
|
|
+
|
|
|
|
|
+ // Valid samples
|
|
|
|
|
+ var validSamples = ['311280-888Y', '131052-308T'];
|
|
|
|
|
+ for (var i in validSamples) {
|
|
|
|
|
+ this.bv.resetForm();
|
|
|
|
|
+ this.$id.val(validSamples[i]);
|
|
|
|
|
+ this.bv.validate();
|
|
|
|
|
+ expect(this.bv.isValid()).toBeTruthy();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Invalid samples
|
|
|
|
|
+ var invalidSamples = ['131052-308U', '310252-308Y'];
|
|
|
|
|
+ for (i in invalidSamples) {
|
|
|
|
|
+ this.bv.resetForm();
|
|
|
|
|
+ this.$id.val(invalidSamples[i]);
|
|
|
|
|
+ this.bv.validate();
|
|
|
|
|
+ expect(this.bv.isValid()).toEqual(false);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ it('Croatian personal identification number (OIB)', function() {
|
|
|
|
|
+ this.bv.updateOption('id', 'id', 'country', 'HR');
|
|
|
|
|
+
|
|
|
|
|
+ // Valid samples
|
|
|
|
|
+ var validSamples = ['33392005961'];
|
|
|
|
|
+ for (var i in validSamples) {
|
|
|
|
|
+ this.bv.resetForm();
|
|
|
|
|
+ this.$id.val(validSamples[i]);
|
|
|
|
|
+ this.bv.validate();
|
|
|
|
|
+ expect(this.bv.isValid()).toBeTruthy();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Invalid samples
|
|
|
|
|
+ var invalidSamples = ['33392005962'];
|
|
|
|
|
+ for (i in invalidSamples) {
|
|
|
|
|
+ this.bv.resetForm();
|
|
|
|
|
+ this.$id.val(invalidSamples[i]);
|
|
|
|
|
+ this.bv.validate();
|
|
|
|
|
+ expect(this.bv.isValid()).toEqual(false);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ it('Irish Personal Public Service Number (PPS)', function() {
|
|
|
|
|
+ this.bv.updateOption('id', 'id', 'country', 'IE');
|
|
|
|
|
+
|
|
|
|
|
+ // Valid samples
|
|
|
|
|
+ var validSamples = ['6433435F', '6433435FT', '6433435FW', '6433435OA', '6433435IH', '1234567TW', '1234567FA'];
|
|
|
|
|
+ for (var i in validSamples) {
|
|
|
|
|
+ this.bv.resetForm();
|
|
|
|
|
+ this.$id.val(validSamples[i]);
|
|
|
|
|
+ this.bv.validate();
|
|
|
|
|
+ expect(this.bv.isValid()).toBeTruthy();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Invalid samples
|
|
|
|
|
+ var invalidSamples = ['6433435E', '6433435VH'];
|
|
|
|
|
+ for (i in invalidSamples) {
|
|
|
|
|
+ this.bv.resetForm();
|
|
|
|
|
+ this.$id.val(invalidSamples[i]);
|
|
|
|
|
+ this.bv.validate();
|
|
|
|
|
+ expect(this.bv.isValid()).toEqual(false);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ it('Iceland national identification number (Kennitala)', function() {
|
|
|
|
|
+ this.bv.updateOption('id', 'id', 'country', 'IS');
|
|
|
|
|
+
|
|
|
|
|
+ // Valid samples
|
|
|
|
|
+ var validSamples = ['120174-3399', '1201743399', '0902862349'];
|
|
|
|
|
+ for (var i in validSamples) {
|
|
|
|
|
+ this.bv.resetForm();
|
|
|
|
|
+ this.$id.val(validSamples[i]);
|
|
|
|
|
+ this.bv.validate();
|
|
|
|
|
+ expect(this.bv.isValid()).toBeTruthy();
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ it('Lithuanian Personal Code (Asmens kodas)', function() {
|
|
|
|
|
+ this.bv.updateOption('id', 'id', 'country', 'LT');
|
|
|
|
|
+
|
|
|
|
|
+ // Valid samples
|
|
|
|
|
+ var validSamples = ['38703181745'];
|
|
|
|
|
+ for (var i in validSamples) {
|
|
|
|
|
+ this.bv.resetForm();
|
|
|
|
|
+ this.$id.val(validSamples[i]);
|
|
|
|
|
+ this.bv.validate();
|
|
|
|
|
+ expect(this.bv.isValid()).toBeTruthy();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Invalid samples
|
|
|
|
|
+ var invalidSamples = ['38703181746', '78703181745', '38703421745'];
|
|
|
|
|
+ for (i in invalidSamples) {
|
|
|
|
|
+ this.bv.resetForm();
|
|
|
|
|
+ this.$id.val(invalidSamples[i]);
|
|
|
|
|
+ this.bv.validate();
|
|
|
|
|
+ expect(this.bv.isValid()).toEqual(false);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ it('Latvian Personal Code (Personas kods)', function() {
|
|
|
|
|
+ this.bv.updateOption('id', 'id', 'country', 'LV');
|
|
|
|
|
+
|
|
|
|
|
+ // Valid samples
|
|
|
|
|
+ var validSamples = ['161175-19997', '16117519997'];
|
|
|
|
|
+ for (var i in validSamples) {
|
|
|
|
|
+ this.bv.resetForm();
|
|
|
|
|
+ this.$id.val(validSamples[i]);
|
|
|
|
|
+ this.bv.validate();
|
|
|
|
|
+ expect(this.bv.isValid()).toBeTruthy();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Invalid samples
|
|
|
|
|
+ var invalidSamples = ['161375-19997'];
|
|
|
|
|
+ for (i in invalidSamples) {
|
|
|
|
|
+ this.bv.resetForm();
|
|
|
|
|
+ this.$id.val(invalidSamples[i]);
|
|
|
|
|
+ this.bv.validate();
|
|
|
|
|
+ expect(this.bv.isValid()).toEqual(false);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ it('Dutch national identification number (BSN)', function() {
|
|
|
|
|
+ this.bv.updateOption('id', 'id', 'country', 'NL');
|
|
|
|
|
+
|
|
|
|
|
+ // Valid samples
|
|
|
|
|
+ var validSamples = ['111222333', '941331490', '9413.31.490'];
|
|
|
|
|
+ for (var i in validSamples) {
|
|
|
|
|
+ this.bv.resetForm();
|
|
|
|
|
+ this.$id.val(validSamples[i]);
|
|
|
|
|
+ this.bv.validate();
|
|
|
|
|
+ expect(this.bv.isValid()).toBeTruthy();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Invalid samples
|
|
|
|
|
+ var invalidSamples = ['111252333'];
|
|
|
|
|
+ for (i in invalidSamples) {
|
|
|
|
|
+ this.bv.resetForm();
|
|
|
|
|
+ this.$id.val(invalidSamples[i]);
|
|
|
|
|
+ this.bv.validate();
|
|
|
|
|
+ expect(this.bv.isValid()).toEqual(false);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ it('Romanian numerical personal code (CNP)', function() {
|
|
|
|
|
+ this.bv.updateOption('id', 'id', 'country', 'RO');
|
|
|
|
|
+
|
|
|
|
|
+ // Valid samples
|
|
|
|
|
+ var validSamples = ['1630615123457', '1800101221144'];
|
|
|
|
|
+ for (var i in validSamples) {
|
|
|
|
|
+ this.bv.resetForm();
|
|
|
|
|
+ this.$id.val(validSamples[i]);
|
|
|
|
|
+ this.bv.validate();
|
|
|
|
|
+ expect(this.bv.isValid()).toBeTruthy();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Invalid samples
|
|
|
|
|
+ var invalidSamples = ['8800101221144', '1632215123457', '1630615123458'];
|
|
|
|
|
+ for (i in invalidSamples) {
|
|
|
|
|
+ this.bv.resetForm();
|
|
|
|
|
+ this.$id.val(invalidSamples[i]);
|
|
|
|
|
+ this.bv.validate();
|
|
|
|
|
+ expect(this.bv.isValid()).toEqual(false);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ it('Swedish personal identity number (personnummer)', function() {
|
|
|
|
|
+ this.bv.updateOption('id', 'id', 'country', 'SE');
|
|
|
|
|
+
|
|
|
|
|
+ // Valid samples
|
|
|
|
|
+ var validSamples = ['8112289874', '811228-9874', '811228+9874'];
|
|
|
|
|
+ for (var i in validSamples) {
|
|
|
|
|
+ this.bv.resetForm();
|
|
|
|
|
+ this.$id.val(validSamples[i]);
|
|
|
|
|
+ this.bv.validate();
|
|
|
|
|
+ expect(this.bv.isValid()).toBeTruthy();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Invalid samples
|
|
|
|
|
+ var invalidSamples = ['811228-9873'];
|
|
|
|
|
+ for (i in invalidSamples) {
|
|
|
|
|
+ this.bv.resetForm();
|
|
|
|
|
+ this.$id.val(invalidSamples[i]);
|
|
|
|
|
+ this.bv.validate();
|
|
|
|
|
+ expect(this.bv.isValid()).toEqual(false);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ it('Slovak national identifier number (RC)', function() {
|
|
|
|
|
+ this.bv.updateOption('id', 'id', 'country', 'SK');
|
|
|
|
|
+
|
|
|
|
|
+ // Valid samples
|
|
|
|
|
+ var validSamples = ['7103192745', '991231123'];
|
|
|
|
|
+ for (var i in validSamples) {
|
|
|
|
|
+ this.bv.resetForm();
|
|
|
|
|
+ this.$id.val(validSamples[i]);
|
|
|
|
|
+ this.bv.validate();
|
|
|
|
|
+ expect(this.bv.isValid()).toBeTruthy();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Invalid samples
|
|
|
|
|
+ var invalidSamples = ['7103192746', '1103492745'];
|
|
|
|
|
+ for (i in invalidSamples) {
|
|
|
|
|
+ this.bv.resetForm();
|
|
|
|
|
+ this.$id.val(invalidSamples[i]);
|
|
|
|
|
+ this.bv.validate();
|
|
|
|
|
+ expect(this.bv.isValid()).toEqual(false);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ it('South African ID', function() {
|
|
|
|
|
+ this.bv.updateOption('id', 'id', 'country', 'ZA');
|
|
|
|
|
+
|
|
|
|
|
+ // Valid samples
|
|
|
|
|
+ var validSamples = ['8001015009087'];
|
|
|
|
|
+ for (var i in validSamples) {
|
|
|
|
|
+ this.bv.resetForm();
|
|
|
|
|
+ this.$id.val(validSamples[i]);
|
|
|
|
|
+ this.bv.validate();
|
|
|
|
|
+ expect(this.bv.isValid()).toBeTruthy();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Invalid samples
|
|
|
|
|
+ var invalidSamples = ['8001015009287', '8001015009086'];
|
|
|
|
|
+ for (i in invalidSamples) {
|
|
|
|
|
+ this.bv.resetForm();
|
|
|
|
|
+ this.$id.val(invalidSamples[i]);
|
|
|
|
|
+ this.bv.validate();
|
|
|
|
|
+ expect(this.bv.isValid()).toEqual(false);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+});
|
|
|
|
|
+
|
|
|
describe('isbn', function() {
|
|
describe('isbn', function() {
|
|
|
beforeEach(function() {
|
|
beforeEach(function() {
|
|
|
var html = [
|
|
var html = [
|