(0, _jquery2['default'])('body').append('<input type="email" data-parsley-pattern="[A-F][0-9]{5}" data-parsley-required id="element" />');
var parsleyField = (0, _jquery2['default'])('#element').parsley({ foo: 'bar' });
expect(parsleyField.options.pattern).to.eql('[A-F][0-9]{5}');
expect(parsleyField.options.required).to.eql('');
(0, _jquery2['default'])('#element').removeAttr('data-parsley-pattern');
parsleyField.actualizeOptions();
expect(parsleyField.options.pattern).to.be(undefined);
expect(parsleyField.options.required).to.eql('');
(0, _jquery2['default'])('body').append('<input type="email" data-parsley-pattern="[A-F][0-9]{5}" data-parsley-required id="element" />');
var parsleyField = (0, _jquery2['default'])('#element').parsley();
parsleyField.validate();
expect((0, _jquery2['default'])('#parsley-id-' + parsleyField.__id__ + ' li').length).to.be(1);
parsleyField.reset();
expect((0, _jquery2['default'])('#parsley-id-' + parsleyField.__id__ + ' li').length).to.be(0);
(0, _jquery2['default'])('body').append('<form id="element">' + '<input id="field1" type="text" required />' + '<div id="field2"></div>' + '<textarea id="field2"></textarea>' + '</form>');
var parsleyForm = (0, _jquery2['default'])('#element').parsley();
parsleyForm.validate();
expect((0, _jquery2['default'])('#parsley-id-' + (0, _jquery2['default'])('#field1').psly().__id__ + ' li').length).to.be(1);
(0, _jquery2['default'])('#element').parsley().on('form:reset', function () {
done();
});
parsleyForm.reset();
expect((0, _jquery2['default'])('#parsley-id-' + (0, _jquery2['default'])('#field1').psly().__id__ + ' li').length).to.be(0);
(0, _jquery2['default'])('body').append('<input type="email" data-parsley-pattern="[A-F][0-9]{5}" data-parsley-required id="element" />');
var parsleyField = (0, _jquery2['default'])('#element').parsley();
(0, _jquery2['default'])('#element').parsley().on('field:destroy', function () {
done();
});
expect((0, _jquery2['default'])('#element').data('Parsley')).to.have.key('__class__');
expect((0, _jquery2['default'])('#element').data('Parsley').__class__).to.be('ParsleyField');
parsleyField.destroy();
expect((0, _jquery2['default'])('#element').data('Parsley')).to.be(undefined);
var triggered = 0;
(0, _jquery2['default'])('body').append('<form id="element">' + '<input id="field1" type="text"/>' + '<div id="field2"></div>' + '<textarea id="field2"></textarea>' + '</form>');
var parsleyForm = (0, _jquery2['default'])('#element').parsley();
var fieldEventsCount = 0;
var formEventsCount = 0;
// Test that a subscribed field event on parent form would be triggered by fields too
// Here we only have field1 and field2 as valid parsley fields
(0, _jquery2['default'])('#element').parsley().on('field:destroy', function () {
fieldEventsCount++;
});
(0, _jquery2['default'])('#element').parsley().on('form:destroy', function () {
formEventsCount++;
});
expect((0, _jquery2['default'])('#element').data('Parsley')).to.have.key('__class__');
expect((0, _jquery2['default'])('#element').data('Parsley').__class__).to.be('ParsleyForm');
expect((0, _jquery2['default'])('#field1').data('Parsley')).to.have.key('__class__');
expect((0, _jquery2['default'])('#field1').data('Parsley').__class__).to.be('ParsleyField');
parsleyForm.destroy();
expect(fieldEventsCount).to.be(2);
expect(formEventsCount).to.be(1);
// we should never enter here since parsley form instance is destroyed
_srcParsley2['default'].on('form:validate', function () {
expect(true).to.be(false);
});
// test that a submit event does not trigger parsley validation anymore
(0, _jquery2['default'])('#element').on('submit', function (e) {
e.preventDefault();
expect((0, _jquery2['default'])('#element').data('Parsley')).to.be(undefined);
expect((0, _jquery2['default'])('#field1').data('Parsley')).to.be(undefined);
_srcParsley2['default'].off('form:validate');
done();
});
(0, _jquery2['default'])('#element').submit();
(0, _jquery2['default'])('body').append('<form id="element" >' + '<input type="text" name="name" />' + '<input type="text" name="email" id="email" />' + '<input type="checkbox" name="sexe" id="sexe" value="male" />' + '<input type="checkbox" name="sexe" value="female" />' + '</form>');
var parsleyInstance = (0, _jquery2['default'])('#element').parsley({
fields: {
'[name="name"]': {
required: true,
length: [4, 20]
},
'#email': {
type: 'email'
},
'#sexe': {
required: true
}
}
});
expect((0, _jquery2['default'])('[name="name"]').parsley().constraints.length).to.be(2);
expect((0, _jquery2['default'])('#email').parsley().constraints.length).to.be(1);
expect((0, _jquery2['default'])('#sexe').parsley().constraints.length).to.be(1);
expect((0, _jquery2['default'])('#sexe').parsley().constraints[0].name).to.be('required');
var number = 5;
// Check with a selector
(0, _jquery2['default'])('body').append('<input type="text" id="element" data-parsley-gt="#gt" required /><input type="text" id="gt" value="' + number + '" />');
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(false);
(0, _jquery2['default'])('#element').val(number + 1);
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(true);
(0, _jquery2['default'])('#element').val(number);
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(false);
(0, _jquery2['default'])('#element').val(number - 1);
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(false);
// Check with a (different) number
number = 42;
(0, _jquery2['default'])('#element').attr('data-parsley-gt', number);
(0, _jquery2['default'])('#element').val(number + 1);
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(true);
(0, _jquery2['default'])('#element').val(number);
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(false);
(0, _jquery2['default'])('#element').val(number - 1);
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(false);
(0, _jquery2['default'])('#gt').remove();
var number = 5;
// Check with a selector
(0, _jquery2['default'])('body').append('<input type="text" id="element" data-parsley-gte="#gte" required /><input type="text" id="gte" value="' + number + '" />');
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(false);
(0, _jquery2['default'])('#element').val(number + 1);
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(true);
(0, _jquery2['default'])('#element').val(number);
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(true);
(0, _jquery2['default'])('#element').val(number - 1);
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(false);
// Check with a (different) number
number = 42;
(0, _jquery2['default'])('#element').attr('data-parsley-gte', number);
(0, _jquery2['default'])('#element').val(number + 1);
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(true);
(0, _jquery2['default'])('#element').val(number);
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(true);
(0, _jquery2['default'])('#element').val(number - 1);
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(false);
(0, _jquery2['default'])('#gte').remove();
var number = 5;
// Check with a selector
(0, _jquery2['default'])('body').append('<input type="text" id="element" data-parsley-lt="#lt" required /><input type="text" id="lt" value="' + number + '" />');
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(false);
(0, _jquery2['default'])('#element').val(number + 1);
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(false);
(0, _jquery2['default'])('#element').val(number);
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(false);
(0, _jquery2['default'])('#element').val(number - 1);
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(true);
// Check with a (different) number
number = 42;
(0, _jquery2['default'])('#element').attr('data-parsley-lt', number);
(0, _jquery2['default'])('#element').val(number + 1);
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(false);
(0, _jquery2['default'])('#element').val(number);
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(false);
(0, _jquery2['default'])('#element').val(number - 1);
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(true);
(0, _jquery2['default'])('#lt').remove();
var number = 5;
// Check with a selector
(0, _jquery2['default'])('body').append('<input type="text" id="element" data-parsley-lte="#lte" required /><input type="text" id="lte" value="' + number + '" />');
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(false);
(0, _jquery2['default'])('#element').val(number + 1);
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(false);
(0, _jquery2['default'])('#element').val(number);
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(true);
(0, _jquery2['default'])('#element').val(number - 1);
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(true);
// Check with a (different) number
number = 42;
(0, _jquery2['default'])('#element').attr('data-parsley-lte', number);
(0, _jquery2['default'])('#element').val(number + 1);
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(false);
(0, _jquery2['default'])('#element').val(number);
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(true);
(0, _jquery2['default'])('#element').val(number - 1);
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(true);
(0, _jquery2['default'])('#lte').remove();
var expectValidation = function expectValidation(value, name, requirements) {
var field = (0, _jquery2['default'])('<input>').parsley();
field.options[name] = requirements;
return expect(field.isValid(true, value));
};
expectValidation('', 'dateiso').not.to.be(true);
expectValidation('foo', 'dateiso').not.to.be(true);
expectValidation('1986-30-01', 'dateiso').not.to.be(true);
expectValidation('1986-12-45', 'dateiso').not.to.be(true);
expectValidation('1986-12-01', 'dateiso').to.be(true);
(0, _jquery2['default'])('body').append('<input type="text" id="element" data-parsley-minwords="2" required />');
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(false);
(0, _jquery2['default'])('#element').val('foo');
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(false);
(0, _jquery2['default'])('#element').val('foo bar');
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(true);
(0, _jquery2['default'])('body').append('<input type="text" id="element" data-parsley-maxwords="2" required />');
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(false);
(0, _jquery2['default'])('#element').val('foo bar');
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(true);
(0, _jquery2['default'])('#element').val('foo bar baz');
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(false);
(0, _jquery2['default'])('body').append('<input type="text" id="element" data-parsley-words="[2, 4]" required />');
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(false);
(0, _jquery2['default'])('#element').val('foo');
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(false);
(0, _jquery2['default'])('#element').val('foo bar baz');
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(true);
(0, _jquery2['default'])('#element').val('foo bar baz qux bux');
expect((0, _jquery2['default'])('#element').psly().isValid()).to.be(false);
expect(_srcParsleyField2['default']).to.be.a('function');
expect(_srcParsleyField2['default']).to.throwException();
(0, _jquery2['default'])('body').append('<input type="text" id="element" data-parsley-required />');
var parsleyField = (0, _jquery2['default'])('#element').parsley();
expect(parsleyField.constraints.length).to.be(1);
expect(parsleyField.constraints[0].name).to.be('required');
expect(parsleyField.constraints[0].isDomConstraint).to.be(true);
(0, _jquery2['default'])('body').append('<input type="email" id="element" />');
var parsleyField = (0, _jquery2['default'])('#element').parsley();
expect(parsleyField.constraints.length).to.be(1);
expect(parsleyField.constraints[0].name).to.be('type');
expect(parsleyField.constraints[0].isDomConstraint).to.be(true);
(0, _jquery2['default'])('body').append('<input type="" id="element" />');
var parsleyField = (0, _jquery2['default'])('#element').parsley();
expect(parsleyField.constraints.length).to.be(0);
(0, _jquery2['default'])('body').append('<input type=" email" id="element" />');
var parsleyField = (0, _jquery2['default'])('#element').parsley();
expect(parsleyField.constraints.length).to.be(0);
(0, _jquery2['default'])('body').append('<input type="text" id="element" />');
var parsleyField = (0, _jquery2['default'])('#element').parsley().addConstraint('required', true);
expect(parsleyField.constraints.length).to.be(1);
expect(parsleyField.constraints[0].name).to.be('required');
expect(parsleyField.constraints[0].requirements).to.be(true);
expect(parsleyField.constraints[0].priority).to.be(512);
expect(parsleyField.constraints[0].isDomConstraint).to.be(false);
// trying to add an existing constraint result in an update
parsleyField.addConstraint('required', false, 64);
expect(parsleyField.constraints.length).to.be(1);
expect(parsleyField.constraints[0].name).to.be('required');
expect(parsleyField.constraints[0].requirements).to.be(false);
expect(parsleyField.constraints[0].priority).to.be(64);
(0, _jquery2['default'])('body').append('<input type="text" id="element" />');
var parsleyField = (0, _jquery2['default'])('#element').parsley().addConstraint('required', true);
// same as above test where addConstraint resulted in an updateConstraint
parsleyField.updateConstraint('required', false, 64);
expect(parsleyField.constraints.length).to.be(1);
expect(parsleyField.constraints[0].name).to.be('required');
expect(parsleyField.constraints[0].requirements).to.be(false);
expect(parsleyField.constraints[0].priority).to.be(64);
(0, _jquery2['default'])('body').append('<input type="text" id="element" />');
var parsleyField = (0, _jquery2['default'])('#element').parsley().addConstraint('required', true).addConstraint('notblank', true).removeConstraint('required');
expect(parsleyField.constraints.length).to.be(1);
expect(parsleyField.constraints[0].name).to.be('notblank');
expect(parsleyField._isRequired()).to.be(false);
(0, _jquery2['default'])('body').append('<input type="text" id="element" value="hola" data-parsley-minlength="5" />');
var parsleyField = (0, _jquery2['default'])('#element').parsley();
// Start with some validation errors:
expect(parsleyField.isValid()).to.eql(false);
// The remove constraint and check result:
(0, _jquery2['default'])('#element').removeAttr('data-parsley-minlength');
expect(parsleyField.isValid()).to.be(true);
(0, _jquery2['default'])('body').append('<input type="email" pattern="\\w+" id="element" required min="5" max="100" minlength="1" maxlength="3" />');
var parsleyField = (0, _jquery2['default'])('#element').parsley();
// 5 validators: type=email, pattern, required, (min+max => range) and (minlength+maxlength => length)
expect(parsleyField.constraints.length).to.be(5);
(0, _jquery2['default'])('#element').removeAttr('min');
// still 5 validators, with max instead of range now
expect(parsleyField.actualizeOptions().constraints.length).to.be(5);
(0, _jquery2['default'])('#element').removeAttr('minlength');
// still 5 validators, with maxlength instead of length now
expect(parsleyField.actualizeOptions().constraints.length).to.be(5);
(0, _jquery2['default'])('body').append('<input type="number" id="element" />');
var parsleyField = (0, _jquery2['default'])('#element').parsley();
expect(parsleyField.constraints[0].requirements).to.be('integer');
(0, _jquery2['default'])('body').append('<input type="number" id="element" step="3" />');
var parsleyField = (0, _jquery2['default'])('#element').parsley();
expect(parsleyField.constraints[0].requirements).to.be('integer');
(0, _jquery2['default'])('body').append('<input type="number" id="element" step="0.3" />');
var parsleyField = (0, _jquery2['default'])('#element').parsley();
expect(parsleyField.constraints[0].requirements).to.be('number');
(0, _jquery2['default'])('body').append('<input type="number" id="element" step="any" />');
var parsleyField = (0, _jquery2['default'])('#element').parsley();
expect(parsleyField.constraints[0].requirements).to.be('number');
(0, _jquery2['default'])('body').append('<input type="text" id="element" value="" />');
var parsleyField = (0, _jquery2['default'])('#element').parsley().addConstraint('required', true);
expect(parsleyField.isValid()).to.be(false);
(0, _jquery2['default'])('#element').val('foo');
expect(parsleyField.isValid()).to.be(true);
(0, _jquery2['default'])('body').append('<input type="text" id="element" value="foo" />');
var parsleyField = (0, _jquery2['default'])('#element').parsley().addConstraint('type', 'email');
expect(parsleyField.isValid()).to.be(false);
(0, _jquery2['default'])('#element').val('foo');
expect(parsleyField.isValid()).to.be(false);
(0, _jquery2['default'])('#element').val('foo@bar.baz');
expect(parsleyField.isValid()).to.be(true);
© Guillaume Potier 2014 - @Wisembly