isbn.js 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. describe('isbn', function() {
  2. beforeEach(function() {
  3. var html = [
  4. '<div class="container">',
  5. '<form class="form-horizontal" id="isbnForm">',
  6. '<div class="form-group">',
  7. '<input type="text" name="isbn" data-bv-isbn />',
  8. '</div>',
  9. '</form>',
  10. '</div>'
  11. ].join('\n');
  12. $(html).appendTo('body');
  13. $('#isbnForm').bootstrapValidator();
  14. this.bv = $('#isbnForm').data('bootstrapValidator');
  15. this.$isbn = this.bv.getFieldElements('isbn');
  16. });
  17. afterEach(function() {
  18. $('#isbnForm').bootstrapValidator('destroy').parent().remove();
  19. });
  20. it('isbn10 hyphen', function() {
  21. var samples = ['99921-58-10-7', '9971-5-0210-0', '960-425-059-0', '80-902734-1-6'];
  22. for (var i in samples) {
  23. this.$isbn.val(samples[i]);
  24. this.bv.validate();
  25. expect(this.bv.isValidField('isbn')).toBeTruthy();
  26. }
  27. });
  28. it('isbn10 space', function() {
  29. var samples = ['85 359 0277 5', '1 84356 028 3', '0 684 84328 5', '0 85131 041 9', '0 943396 04 2'];
  30. for (var i in samples) {
  31. this.$isbn.val(samples[i]);
  32. this.bv.validate();
  33. expect(this.bv.isValidField('isbn')).toBeTruthy();
  34. }
  35. });
  36. it('isbn10 hyphen with X', function() {
  37. var samples = ['0-8044-2957-X', '0-9752298-0-X'];
  38. for (var i in samples) {
  39. this.$isbn.val(samples[i]);
  40. this.bv.validate();
  41. expect(this.bv.isValidField('isbn')).toBeTruthy();
  42. }
  43. });
  44. it('isbn10 invalid check digit', function() {
  45. this.$isbn.val('99921-58-10-6');
  46. this.bv.validate();
  47. expect(this.bv.isValidField('isbn')).toEqual(false);
  48. });
  49. it('isbn13', function() {
  50. this.$isbn.val('978-0-306-40615-7');
  51. this.bv.validate();
  52. expect(this.bv.isValidField('isbn')).toBeTruthy();
  53. });
  54. it('isbn13 invalid check digit', function() {
  55. this.$isbn.val('978-0-306-40615-6');
  56. this.bv.validate();
  57. expect(this.bv.isValidField('isbn')).toEqual(false);
  58. });
  59. });