api.js 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. describe('api', function() {
  2. // Override the options
  3. $.extend($.fn.bootstrapValidator.DEFAULT_OPTIONS, {
  4. feedbackIcons: {
  5. valid: 'glyphicon glyphicon-ok',
  6. invalid: 'glyphicon glyphicon-remove',
  7. validating: 'glyphicon glyphicon-refresh'
  8. }
  9. });
  10. beforeEach(function() {
  11. $([
  12. '<form class="form-horizontal" id="apiForm">',
  13. '<div class="form-group">',
  14. '<input type="text" name="username" data-bv-notempty data-bv-stringlength data-bv-stringlength-min="8" />',
  15. '</div>',
  16. '<div class="form-group">',
  17. '<input type="text" name="email" data-bv-notempty data-bv-emailaddress />',
  18. '</div>',
  19. '<div class="form-group">',
  20. '<input type="text" name="note"/>',
  21. '</div>',
  22. '</form>'
  23. ].join('\n')).appendTo('body');
  24. $('#apiForm').bootstrapValidator();
  25. this.bv = $('#apiForm').data('bootstrapValidator');
  26. this.$email = this.bv.getFieldElements('email');
  27. this.$note = $('#apiForm').find('input[name="note"]');
  28. });
  29. afterEach(function() {
  30. $('#apiForm').bootstrapValidator('destroy').remove();
  31. });
  32. it('revalidateField()', function() {
  33. this.$email.val('email@domain.com');
  34. this.bv.validate();
  35. expect(this.bv.isValidField('email')).toBeTruthy();
  36. this.$email.val('invalid#email.address');
  37. this.bv.revalidateField('email');
  38. expect(this.bv.isValidField(this.$email)).toEqual(false);
  39. });
  40. it('destroy()', function() {
  41. this.bv.destroy();
  42. expect($('#apiForm').data('bootstrapValidator')).toBeUndefined();
  43. expect($('#apiForm').find('i[data-bv-icon-for]').length).toEqual(0);
  44. expect($('#apiForm').find('.help-block[data-bv-for]').length).toEqual(0);
  45. expect($('#apiForm').find('.has-feedback').length).toEqual(0);
  46. expect($('#apiForm').find('.has-success').length).toEqual(0);
  47. expect($('#apiForm').find('.has-error').length).toEqual(0);
  48. expect($('#apiForm').find('[data-bv-field]').length).toEqual(0);
  49. });
  50. it('getOptions()', function() {
  51. // Form options
  52. expect(this.bv.getOptions().feedbackIcons.valid).toEqual('glyphicon glyphicon-ok');
  53. // Field options
  54. expect(this.bv.getOptions('username', 'stringlength')).toBeNull();
  55. expect(this.bv.getOptions('username', 'stringlength', 'min')).toBeNull();
  56. expect(this.bv.getOptions('username', 'stringLength')).toBeDefined();
  57. expect(this.bv.getOptions('username', 'stringLength', 'min')).toEqual('8');
  58. expect(this.bv.getOptions('username', 'stringlength', 'max')).toBeNull();
  59. });
  60. it('isValidField()', function() {
  61. this.$email.val('email@domain.com');
  62. this.bv.validate();
  63. expect(this.bv.isValidField(this.$note)).toBeTruthy();
  64. expect(this.bv.isValidField(this.$email)).toBeTruthy();
  65. });
  66. it('validateField()', function() {
  67. this.$email.val('email@domain.com');
  68. this.bv.validateField(this.$email);
  69. this.bv.validateField(this.$note);
  70. expect(this.bv.isValidField(this.$email)).toBeTruthy();
  71. expect(this.bv.isValidField(this.$note)).toBeTruthy();
  72. });
  73. });