verbose.js 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. describe('verbose option', function() {
  2. beforeEach(function() {
  3. $([
  4. '<form class="form-horizontal" id="verboseForm">',
  5. '<div class="form-group">',
  6. '<input type="text" name="fullName" class="form-control" ',
  7. 'required data-bv-notempty-message="The full name is required and cannot be empty" ',
  8. 'data-bv-regexp="true" data-bv-regexp-regexp="^[a-zA-Z\\s]+$" data-bv-regexp-message="The full name can only consist of alphabetical, number, and space" ',
  9. 'data-bv-stringlength="true" data-bv-stringlength-min="8" data-bv-stringlength-max="40" data-bv-stringlength-message="The full name must be more than 8 and less than 40 characters long" ',
  10. '/>',
  11. '</div>',
  12. '</form>'
  13. ].join('\n')).appendTo('body');
  14. // The order of validators are alphabetical:
  15. // - notEmpty
  16. // - regexp
  17. // - stringLength
  18. });
  19. afterEach(function() {
  20. $('#verboseForm').bootstrapValidator('destroy').remove();
  21. });
  22. it('set data-bv-verbose="false" for form', function() {
  23. var bv = $('#verboseForm')
  24. .attr('data-bv-verbose', 'false')
  25. .bootstrapValidator('destroy')
  26. .bootstrapValidator()
  27. .data('bootstrapValidator'),
  28. $fullName = bv.getFieldElements('fullName'),
  29. messages;
  30. $fullName.val('');
  31. bv.validate();
  32. messages = bv.getMessages('fullName');
  33. expect(messages.length).toEqual(1);
  34. expect(messages[0]).toEqual($fullName.attr('data-bv-notempty-message'));
  35. bv.resetForm();
  36. $fullName.val('Spe@#$');
  37. bv.validate();
  38. messages = bv.getMessages('fullName');
  39. expect(messages.length).toEqual(1);
  40. expect(messages[0]).toEqual($fullName.attr('data-bv-regexp-message'));
  41. bv.resetForm();
  42. $fullName.val('Full');
  43. bv.validate();
  44. messages = bv.getMessages('fullName');
  45. expect(messages.length).toEqual(1);
  46. expect(messages[0]).toEqual($fullName.attr('data-bv-stringlength-message'));
  47. });
  48. it('set data-bv-verbose="false" for field', function() {
  49. var bv = $('#verboseForm')
  50. .attr('data-bv-verbose', 'true')
  51. .find('[name="fullName"]')
  52. .attr('data-bv-verbose', 'false')
  53. .end()
  54. .bootstrapValidator('destroy')
  55. .bootstrapValidator()
  56. .data('bootstrapValidator'),
  57. $fullName = bv.getFieldElements('fullName'),
  58. messages;
  59. $fullName.val('');
  60. bv.validate();
  61. messages = bv.getMessages('fullName');
  62. expect(messages.length).toEqual(1);
  63. expect(messages[0]).toEqual($fullName.attr('data-bv-notempty-message'));
  64. bv.resetForm();
  65. $fullName.val('Spe@#$');
  66. bv.validate();
  67. messages = bv.getMessages('fullName');
  68. expect(messages.length).toEqual(1);
  69. expect(messages[0]).toEqual($fullName.attr('data-bv-regexp-message'));
  70. bv.resetForm();
  71. $fullName.val('Full');
  72. bv.validate();
  73. messages = bv.getMessages('fullName');
  74. expect(messages.length).toEqual(1);
  75. expect(messages[0]).toEqual($fullName.attr('data-bv-stringlength-message'));
  76. });
  77. it('set verbose: "false" for form', function() {
  78. var bv = $('#verboseForm')
  79. .bootstrapValidator('destroy')
  80. .bootstrapValidator({ verbose: false })
  81. .data('bootstrapValidator'),
  82. $fullName = bv.getFieldElements('fullName'),
  83. messages;
  84. $fullName.val('');
  85. bv.validate();
  86. messages = bv.getMessages('fullName');
  87. expect(messages.length).toEqual(1);
  88. expect(messages[0]).toEqual($fullName.attr('data-bv-notempty-message'));
  89. bv.resetForm();
  90. $fullName.val('Spe@#$');
  91. bv.validate();
  92. messages = bv.getMessages('fullName');
  93. expect(messages.length).toEqual(1);
  94. expect(messages[0]).toEqual($fullName.attr('data-bv-regexp-message'));
  95. bv.resetForm();
  96. $fullName.val('Full');
  97. bv.validate();
  98. messages = bv.getMessages('fullName');
  99. expect(messages.length).toEqual(1);
  100. expect(messages[0]).toEqual($fullName.attr('data-bv-stringlength-message'));
  101. });
  102. // #1057
  103. it('set verbose: "false" for field', function() {
  104. var bv = $('#verboseForm')
  105. .attr('data-bv-verbose', 'true')
  106. .bootstrapValidator('destroy')
  107. .bootstrapValidator({
  108. verbose: true,
  109. fields: {
  110. fullName: {
  111. verbose: false
  112. }
  113. }
  114. })
  115. .data('bootstrapValidator'),
  116. $fullName = bv.getFieldElements('fullName'),
  117. messages;
  118. $fullName.val('');
  119. bv.validate();
  120. messages = bv.getMessages('fullName');
  121. expect(messages.length).toEqual(1);
  122. expect(messages[0]).toEqual($fullName.attr('data-bv-notempty-message'));
  123. bv.resetForm();
  124. $fullName.val('Spe@#$');
  125. bv.validate();
  126. messages = bv.getMessages('fullName');
  127. expect(messages.length).toEqual(1);
  128. expect(messages[0]).toEqual($fullName.attr('data-bv-regexp-message'));
  129. bv.resetForm();
  130. $fullName.val('Full');
  131. bv.validate();
  132. messages = bv.getMessages('fullName');
  133. expect(messages.length).toEqual(1);
  134. expect(messages[0]).toEqual($fullName.attr('data-bv-stringlength-message'));
  135. });
  136. // #1055
  137. it('trigger "error.field.bv" event', function() {
  138. var validators = [], // Array of not passed validators
  139. bv = $('#verboseForm')
  140. .attr('data-bv-verbose', 'true')
  141. .bootstrapValidator('destroy')
  142. .bootstrapValidator({
  143. verbose: true,
  144. fields: {
  145. fullName: {
  146. verbose: false
  147. }
  148. }
  149. })
  150. .on('error.field.bv', function(e, data) {
  151. validators.push(data.validator);
  152. })
  153. .data('bootstrapValidator'),
  154. $fullName = bv.getFieldElements('fullName');
  155. $fullName.val('');
  156. bv.validate();
  157. expect(validators.length).toEqual(1);
  158. expect(validators[0]).toEqual('notEmpty');
  159. validators = [];
  160. bv.resetForm();
  161. $fullName.val('Spe@#$');
  162. bv.validate();
  163. expect(validators.length).toEqual(1);
  164. expect(validators[0]).toEqual('regexp');
  165. validators = [];
  166. bv.resetForm();
  167. $fullName.val('Full');
  168. bv.validate();
  169. expect(validators.length).toEqual(1);
  170. expect(validators[0]).toEqual('stringLength');
  171. });
  172. });