| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834 |
- function getDate(value, validator, $field) {
- return validator.getFieldElements('date').val();
- };
- TestSuite = $.extend({}, TestSuite, {
- Date: {
- getDate: function(value, validator, $field) {
- return validator.getFieldElements('date').val();
- }
- }
- });
- describe('date', function() {
- beforeEach(function() {
- $([
- '<form class="form-horizontal" id="dateForm">',
- '<div id="msg"></div>',
- '<div class="form-group">',
- '<input type="text" name="date" data-bv-date />',
- '</div>',
- '<div class="form-group">',
- '<input type="text" name="minDate" data-bv-date data-bv-date-min="" />',
- '</div>',
- '<div class="form-group">',
- '<input type="text" name="maxDate" data-bv-date data-bv-date-max="" />',
- '</div>',
- '<div class="form-group">',
- '<input type="text" name="range" data-bv-date data-bv-date-min="" data-bv-date-max="" />',
- '</div>',
- '</form>'
- ].join('\n')).appendTo('body');
- $('#dateForm').bootstrapValidator();
- this.bv = $('#dateForm').data('bootstrapValidator');
- this.$date = this.bv.getFieldElements('date');
- this.$minDate = this.bv.getFieldElements('minDate');
- this.$maxDate = this.bv.getFieldElements('maxDate');
- this.$range = this.bv.getFieldElements('range');
- });
- afterEach(function() {
- $('#dateForm').bootstrapValidator('destroy').remove();
- });
- it('YYYY/MM/DD', function() {
- this.bv.updateOption('date', 'date', 'format', 'YYYY/MM/DD');
- this.$date.val('2000/01/30');
- this.bv.validate();
- expect(this.bv.isValid()).toBeTruthy();
- // Invalid year
- this.bv.resetForm();
- this.$date.val('100/10/20');
- this.bv.validate();
- expect(this.bv.isValid()).toEqual(false);
- // Invalid month
- this.bv.resetForm();
- this.$date.val('2000/00/10');
- this.bv.validate();
- expect(this.bv.isValid()).toEqual(false);
- this.bv.resetForm();
- this.$date.val('2000/15/10');
- this.bv.validate();
- expect(this.bv.isValid()).toEqual(false);
- // Invalid day
- this.bv.resetForm();
- this.$date.val('2000/03/00');
- this.bv.validate();
- expect(this.bv.isValid()).toEqual(false);
- this.bv.resetForm();
- this.$date.val('2000/10/32');
- this.bv.validate();
- expect(this.bv.isValid()).toEqual(false);
- // Negative number
- this.bv.resetForm();
- this.$date.val('-2000/10/20');
- this.bv.validate();
- expect(this.bv.isValid()).toEqual(false);
- this.bv.resetForm();
- this.$date.val('2000/-10/20');
- this.bv.validate();
- expect(this.bv.isValid()).toEqual(false);
- this.bv.resetForm();
- this.$date.val('2000/10/-20');
- this.bv.validate();
- expect(this.bv.isValid()).toEqual(false);
- // Consist invalid characters
- // Issue #310
- this.bv.resetForm();
- this.$date.val('aaaa/');
- this.bv.validate();
- expect(this.bv.isValid()).toEqual(false);
- this.bv.resetForm();
- this.$date.val('2004df/1dd1/5ffg');
- this.bv.validate();
- expect(this.bv.isValid()).toEqual(false);
- // Issue #475
- this.bv.resetForm();
- this.$date.val('2014/09');
- this.bv.validate();
- expect(this.bv.isValid()).toEqual(false);
- this.bv.resetForm();
- this.$date.val('2014/09/');
- this.bv.validate();
- expect(this.bv.isValid()).toEqual(false);
- this.bv.resetForm();
- this.$date.val('2014//15');
- this.bv.validate();
- expect(this.bv.isValid()).toEqual(false);
- this.bv.resetForm();
- this.$date.val('/09/15');
- this.bv.validate();
- expect(this.bv.isValid()).toEqual(false);
- });
- it('MM/DD/YYYY', function() {
- this.bv.updateOption('date', 'date', 'format', 'MM/DD/YYYY');
- this.$date.val('09/15/2020');
- this.bv.validate();
- expect(this.bv.isValid()).toBeTruthy();
- this.bv.resetForm();
- this.$date.val('09/15');
- this.bv.validate();
- expect(this.bv.isValid()).toEqual(false);
- this.bv.resetForm();
- this.$date.val('09/15/');
- this.bv.validate();
- expect(this.bv.isValid()).toEqual(false);
- });
- it('number of days in February', function() {
- this.bv.updateOption('date', 'date', 'format', 'YYYY/MM/DD');
- this.$date.val('2000/02/28');
- this.bv.validate();
- expect(this.bv.isValid()).toBeTruthy();
- this.bv.resetForm();
- this.$date.val('2000/02/29');
- this.bv.validate();
- expect(this.bv.isValid()).toBeTruthy();
- this.bv.resetForm();
- this.$date.val('2001/02/29');
- this.bv.validate();
- expect(this.bv.isValid()).toEqual(false);
- });
- // Issue #681
- it('date, month, year are prefixed by zero', function() {
- this.bv.updateOption('date', 'date', 'format', 'MM/DD/YYYY');
- this.$date.val('0012/08/2014');
- this.bv.validate();
- expect(this.bv.isValid()).toEqual(false);
- this.bv.resetForm();
- this.$date.val('12/0008/2014');
- this.bv.validate();
- expect(this.bv.isValid()).toEqual(false);
- this.bv.resetForm();
- this.$date.val('12/08/002014');
- this.bv.validate();
- expect(this.bv.isValid()).toEqual(false);
- this.bv.resetForm();
- this.$date.val('12/08/2014');
- this.bv.validate();
- expect(this.bv.isValid()).toBeTruthy();
- });
- it('hours, minutes, seconds are prefixed by zero', function() {
- this.bv.updateOption('date', 'date', 'format', 'YYYY/MM/DD h:m:s');
- this.$date.val('2014/08/17 0007:30:00');
- this.bv.validate();
- expect(this.bv.isValid()).toEqual(false);
- this.bv.resetForm();
- this.$date.val('2014/08/17 07:030:00');
- this.bv.validate();
- expect(this.bv.isValid()).toEqual(false);
- this.bv.resetForm();
- this.$date.val('2014/08/17 07:30:0000');
- this.bv.validate();
- expect(this.bv.isValid()).toEqual(false);
- this.bv.resetForm();
- this.$date.val('2014/08/17 07:30:00');
- this.bv.validate();
- expect(this.bv.isValid()).toBeTruthy();
- });
- // min test suite
- it('min date format YYYY/MM/DD', function() {
- this.bv.updateOption('minDate', 'date', 'format', 'YYYY/MM/DD');
- this.bv.updateOption('minDate', 'date', 'min', '2010/01/01');
- this.$minDate.val('2010/01/02');
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toBeTruthy();
- this.bv.resetForm();
- this.$minDate.val('2010/01/002'); // day prefexid by 0 not allowed
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toEqual(false);
- this.bv.resetForm();
- this.$minDate.val('2014/08/17');
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toBeTruthy();
- this.bv.resetForm();
- this.$minDate.val('2009/12/31');
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toEqual(false);
- this.bv.resetForm();
- this.$minDate.val('2000/01/01');
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toEqual(false);
- });
- it('min date format YYYY-MM-DD', function() {
- this.bv.updateOption('minDate', 'date', 'format', 'YYYY-MM-DD');
- this.bv.updateOption('minDate', 'date', 'min', '2010-01-01');
- this.$minDate.val('2010-01-02');
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toBeTruthy();
- this.bv.resetForm();
- this.$minDate.val('2010-001-02'); // month prefexid by 0 not allowed
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toEqual(false);
- this.bv.resetForm();
- this.$minDate.val('2014-08-17');
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toBeTruthy();
- this.bv.resetForm();
- this.$minDate.val('2009-12-31');
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toEqual(false);
- this.bv.resetForm();
- this.$minDate.val('2000-01-01');
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toEqual(false);
- });
- it('min date format DD/MM/YYYY', function() {
- this.bv.updateOption('minDate', 'date', 'format', 'DD/MM/YYYY');
- this.bv.updateOption('minDate', 'date', 'min', '01/01/2010');
- this.$minDate.val('02/01/2010');
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toBeTruthy();
- this.bv.resetForm();
- this.$minDate.val('17/08/2014');
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toBeTruthy();
- this.bv.resetForm();
- this.$minDate.val('02/01/02010'); // year prefixed by 0 not allowed
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toEqual(false);
- this.bv.resetForm();
- this.$minDate.val('31/12/2009');
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toEqual(false);
- this.bv.resetForm();
- this.$minDate.val('01/01/2000');
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toEqual(false);
- });
- it('min date format YYYY-MM-DD h:m:s', function() {
- this.bv.updateOption('minDate', 'date', 'format', 'YYYY-MM-DD h:m:s');
- this.bv.updateOption('minDate', 'date', 'min', '2010-01-01 01:00:00');
- this.bv.resetForm();
- this.$minDate.val('2010-01-01 01:00:01');
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toBeTruthy();
- this.$minDate.val('2010-01-02 01:00:01');
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toBeTruthy();
- this.bv.resetForm();
- this.$minDate.val('2014-08-17 12:00:00');
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toBeTruthy();
- this.bv.resetForm();
- this.$minDate.val('2009-12-31 00:00:00');
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toEqual(false);
- this.bv.resetForm();
- this.$minDate.val('2009-12-31 010:00:00'); // hours prefixed by 0 not allowed
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toEqual(false);
- this.bv.resetForm();
- this.$minDate.val('2009-12-31 10:001:00'); // minutes prefixed by 0 not allowed
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toEqual(false);
- this.bv.resetForm();
- this.$minDate.val('2009-12-31 10:01:012'); // seconds prefixed by 0 not allowed
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toEqual(false);
- this.bv.resetForm();
- this.$minDate.val('2009-12-31 00:00:00');
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toEqual(false);
- this.bv.resetForm();
- this.$minDate.val('2000-01-01 23:00:12');
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toEqual(false);
- });
- // max test suite
- it('max date format YYYY/MM/DD', function() {
- this.bv.updateOption('maxDate', 'date', 'format', 'YYYY/MM/DD');
- this.bv.updateOption('maxDate', 'date', 'max', '2014/09/10');
- this.$maxDate.val('2014/09/09');
- this.bv.validate();
- expect(this.bv.isValidField('maxDate')).toBeTruthy();
- this.bv.resetForm();
- this.$maxDate.val('2014/08/17');
- this.bv.validate();
- expect(this.bv.isValidField('maxDate')).toBeTruthy();
- this.bv.resetForm();
- this.$maxDate.val('02014/012/031'); // year, month or day prefixed by 0 not allowed
- this.bv.validate();
- expect(this.bv.isValidField('maxDate')).toEqual(false);
- this.bv.resetForm();
- this.$maxDate.val('2014/12/31');
- this.bv.validate();
- expect(this.bv.isValidField('maxDate')).toEqual(false);
- this.bv.resetForm();
- this.$maxDate.val('2015/01/01');
- this.bv.validate();
- expect(this.bv.isValidField('maxDate')).toEqual(false);
- });
- it('max date format YYYY-MM-DD', function() {
- this.bv.updateOption('maxDate', 'date', 'format', 'YYYY-MM-DD');
- this.bv.updateOption('maxDate', 'date', 'max', '2014-09-10');
- this.$maxDate.val('2014-09-09');
- this.bv.validate();
- expect(this.bv.isValidField('maxDate')).toBeTruthy();
- this.bv.resetForm();
- this.$maxDate.val('2014-08-17');
- this.bv.validate();
- expect(this.bv.isValidField('maxDate')).toBeTruthy();
- this.bv.resetForm();
- this.$maxDate.val('02014-012-031'); // year, month or day prefixed by 0 not allowed
- this.bv.validate();
- expect(this.bv.isValidField('maxDate')).toEqual(false);
- this.bv.resetForm();
- this.$maxDate.val('2014-12-31');
- this.bv.validate();
- expect(this.bv.isValidField('maxDate')).toEqual(false);
- this.bv.resetForm();
- this.$maxDate.val('2015-01-01');
- this.bv.validate();
- expect(this.bv.isValidField('maxDate')).toEqual(false);
- });
- it('max date format DD/MM/YYYY', function() {
- this.bv.updateOption('maxDate', 'date', 'format', 'DD/MM/YYYY');
- this.bv.updateOption('maxDate', 'date', 'max', '10/09/2014');
- this.$maxDate.val('09/09/2014');
- this.bv.validate();
- expect(this.bv.isValidField('maxDate')).toBeTruthy();
- this.bv.resetForm();
- this.$maxDate.val('17/08/2014');
- this.bv.validate();
- expect(this.bv.isValidField('maxDate')).toBeTruthy();
- this.bv.resetForm();
- this.$maxDate.val('031/012/02014'); // year, month or day prefixed by 0 not allowed
- this.bv.validate();
- expect(this.bv.isValidField('maxDate')).toEqual(false);
- this.bv.resetForm();
- this.$maxDate.val('31/12/2014');
- this.bv.validate();
- expect(this.bv.isValidField('maxDate')).toEqual(false);
- this.bv.resetForm();
- this.$maxDate.val('01/01/2015');
- this.bv.validate();
- expect(this.bv.isValidField('maxDate')).toEqual(false);
- });
- it('max date format YYYY-MM-DD h:m:s', function() {
- this.bv.updateOption('maxDate', 'date', 'format', 'YYYY-MM-DD h:m:s');
- this.bv.updateOption('maxDate', 'date', 'max', '2014-09-10 01:00:00');
- this.$maxDate.val('2014-09-09 01:00:01');
- this.bv.validate();
- expect(this.bv.isValidField('maxDate')).toBeTruthy();
- this.bv.resetForm();
- this.$maxDate.val('2014-08-17 12:00:00');
- this.bv.validate();
- expect(this.bv.isValidField('maxDate')).toBeTruthy();
- this.bv.resetForm();
- this.$maxDate.val('2014-09-09 001:001:001'); // hours, minutes or seconds prefixed by 0 not allowed
- this.bv.validate();
- expect(this.bv.isValidField('maxDate')).toEqual(false);
- this.bv.resetForm();
- this.$maxDate.val('2014-12-31 00:00:00');
- this.bv.validate();
- expect(this.bv.isValidField('maxDate')).toEqual(false);
- this.bv.resetForm();
- this.$maxDate.val('2015-01-01 23:00:12');
- this.bv.validate();
- expect(this.bv.isValidField('maxDate')).toEqual(false);
- });
- // range test suite
- it('range format YYYY/MM/DD', function() {
- this.bv.updateOption('range', 'date', 'format', 'YYYY/MM/DD');
- this.bv.updateOption('range', 'date', 'min', '2010/09/10');
- this.bv.updateOption('range', 'date', 'max', '2014/09/10');
- this.$range.val('2011/01/01');
- this.bv.validate();
- expect(this.bv.isValidField('range')).toBeTruthy();
- this.bv.resetForm();
- this.$range.val('2014/09/09');
- this.bv.validate();
- expect(this.bv.isValidField('range')).toBeTruthy();
- this.bv.resetForm();
- this.$range.val('02014/001/031'); // year, month or day prefixed by 0 not allowed
- this.bv.validate();
- expect(this.bv.isValidField('range')).toEqual(false);
- this.bv.resetForm();
- this.$range.val('2010/09/09');
- this.bv.validate();
- expect(this.bv.isValidField('range')).toEqual(false);
- this.bv.resetForm();
- this.$range.val('2014/09/11');
- this.bv.validate();
- expect(this.bv.isValidField('range')).toEqual(false);
- });
- it('range format YYYY-MM-DD', function() {
- this.bv.updateOption('range', 'date', 'format', 'YYYY-MM-DD');
- this.bv.updateOption('range', 'date', 'min', '2010-09-10');
- this.bv.updateOption('range', 'date', 'max', '2014-09-10');
- this.$range.val('2012-01-12');
- this.bv.validate();
- expect(this.bv.isValidField('range')).toBeTruthy();
- this.bv.resetForm();
- this.$range.val('2014-09-09');
- this.bv.validate();
- expect(this.bv.isValidField('range')).toBeTruthy();
- this.bv.resetForm();
- this.$range.val('02014-003-031'); // year, month or day prefixed by 0 not allowed
- this.bv.validate();
- expect(this.bv.isValidField('range')).toEqual(false);
- this.bv.resetForm();
- this.$range.val('2009-12-31');
- this.bv.validate();
- expect(this.bv.isValidField('range')).toEqual(false);
- this.bv.resetForm();
- this.$range.val('2015-01-01');
- this.bv.validate();
- expect(this.bv.isValidField('range')).toEqual(false);
- });
- it('range format DD/MM/YYYY', function() {
- this.bv.updateOption('range', 'date', 'format', 'DD/MM/YYYY');
- this.bv.updateOption('range', 'date', 'min', '10/09/2010');
- this.bv.updateOption('range', 'date', 'max', '10/09/2014');
- this.$range.val('11/11/2011');
- this.bv.validate();
- expect(this.bv.isValidField('range')).toBeTruthy();
- this.bv.resetForm();
- this.$range.val('17/08/2014');
- this.bv.validate();
- expect(this.bv.isValidField('range')).toBeTruthy();
- this.bv.resetForm();
- this.$range.val('031/012/02013'); // year, month or day prefixed by 0 not allowed
- this.bv.validate();
- expect(this.bv.isValidField('range')).toEqual(false);
- this.bv.resetForm();
- this.$range.val('31/01/2010');
- this.bv.validate();
- expect(this.bv.isValidField('range')).toEqual(false);
- this.bv.resetForm();
- this.$range.val('25/03/2015');
- this.bv.validate();
- expect(this.bv.isValidField('range')).toEqual(false);
- });
- it('range format YYYY-MM-DD h:m:s', function() {
- this.bv.updateOption('range', 'date', 'format', 'YYYY-MM-DD h:m:s');
- this.bv.updateOption('range', 'date', 'min', '2010-05-15 22:00:00');
- this.bv.updateOption('range', 'date', 'max', '2015-05-15 22:00:00');
- this.$range.val('2012-07-17 01:00:01');
- this.bv.validate();
- expect(this.bv.isValidField('range')).toBeTruthy();
- this.bv.resetForm();
- this.$range.val('2013-08-17 12:00:00');
- this.bv.validate();
- expect(this.bv.isValidField('range')).toBeTruthy();
- this.bv.resetForm();
- this.$range.val('2011-06-19 001:001:001'); // hours, minutes or seconds prefixed by 0 not allowed
- this.bv.validate();
- expect(this.bv.isValidField('range')).toEqual(false);
- this.bv.resetForm();
- this.$range.val('2008-11-27 23:15:00');
- this.bv.validate();
- expect(this.bv.isValidField('range')).toEqual(false);
- this.bv.resetForm();
- this.$range.val('2015-05-15 22:00:01');
- this.bv.validate();
- expect(this.bv.isValidField('range')).toEqual(false);
- });
- // dynamic min option
- it('dynamic min: name of field', function() {
- this.$minDate.attr('data-bv-date-min', 'date');
- this.bv.destroy();
- this.bv = $('#dateForm').bootstrapValidator().data('bootstrapValidator');
- this.bv.updateOption('minDate', 'date', 'format', 'YYYY/MM/DD');
- this.$date.val('2014/09/08');
- this.$minDate.val('2014/09/09');
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toBeTruthy();
- this.bv.resetForm();
- this.$date.val('2014/09/08');
- this.$minDate.val('2014/08/17');
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toBeFalsy();
- });
- it('dynamic min: callback declarative function', function() {
- this.$minDate.attr('data-bv-date-min', 'getDate');
- this.bv.destroy();
- this.bv = $('#dateForm').bootstrapValidator().data('bootstrapValidator');
- this.bv.updateOption('minDate', 'date', 'format', 'YYYY/MM/DD');
- this.$date.val('2014/09/08');
- this.$minDate.val('2014/09/09');
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toBeTruthy();
- this.bv.resetForm();
- this.$date.val('2014/10/01');
- this.$minDate.val('2014/08/17');
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toBeFalsy();
- });
- it('dynamic min: callback declarative function()', function() {
- this.$minDate.attr('data-bv-date-min', 'getDate()');
- this.bv.destroy();
- this.bv = $('#dateForm').bootstrapValidator().data('bootstrapValidator');
- this.bv.updateOption('minDate', 'date', 'format', 'YYYY/MM/DD');
- this.$date.val('2014/09/08');
- this.$minDate.val('2014/09/09');
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toBeTruthy();
- this.bv.resetForm();
- this.$date.val('2014/10/01');
- this.$minDate.val('2014/08/17');
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toBeFalsy();
- });
- it('dynamic min: callback declarative A.B.C', function() {
- this.$minDate.attr('data-bv-date-min', 'TestSuite.Date.getDate');
- this.bv.destroy();
- this.bv = $('#dateForm').bootstrapValidator().data('bootstrapValidator');
- this.bv.updateOption('minDate', 'date', 'format', 'YYYY/MM/DD');
- this.$date.val('2014/09/08');
- this.$minDate.val('2014/09/09');
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toBeTruthy();
- this.bv.resetForm();
- this.$date.val('2014/10/01');
- this.$minDate.val('2014/08/17');
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toBeFalsy();
- });
- it('dynamic min: callback declarative A.B.C()', function() {
- this.$minDate.attr('data-bv-date-min', 'TestSuite.Date.getDate()');
- this.bv.destroy();
- this.bv = $('#dateForm').bootstrapValidator().data('bootstrapValidator');
- this.bv.updateOption('minDate', 'date', 'format', 'YYYY/MM/DD');
- this.$date.val('2014/09/08');
- this.$minDate.val('2014/09/09');
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toBeTruthy();
- this.bv.resetForm();
- this.$date.val('2014/10/01');
- this.$minDate.val('2014/08/17');
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toBeFalsy();
- });
- it('dynamic min: callback programmatically', function() {
- this.$minDate.removeAttr('data-bv-date-min');
- this.bv.destroy();
- this.bv = $('#dateForm')
- .bootstrapValidator({
- fields: {
- minDate: {
- validators: {
- date: {
- min: function(value, validator, $field) {
- return getDate(value, validator, $field);
- }
- }
- }
- }
- }
- })
- .data('bootstrapValidator');
- this.bv.updateOption('minDate', 'date', 'format', 'YYYY/MM/DD');
- this.$date.val('2014/09/08');
- this.$minDate.val('2014/09/09');
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toBeTruthy();
- this.bv.resetForm();
- this.$date.val('2014/10/01');
- this.$minDate.val('2014/08/17');
- this.bv.validate();
- expect(this.bv.isValidField('minDate')).toBeFalsy();
- });
- // dynamic max option
- it('dynamic max: name of field', function() {
- this.$maxDate.attr('data-bv-date-max', 'date');
- this.bv.destroy();
- this.bv = $('#dateForm').bootstrapValidator().data('bootstrapValidator');
- this.bv.updateOption('maxDate', 'date', 'format', 'YYYY/MM/DD');
- this.$date.val('2015/01/01');
- this.$maxDate.val('2014/09/09');
- this.bv.validate();
- expect(this.bv.isValidField('maxDate')).toBeTruthy();
- this.bv.resetForm();
- this.$date.val('2014/01/01');
- this.$maxDate.val('2014/08/17');
- this.bv.validate();
- expect(this.bv.isValidField('maxDate')).toBeFalsy();
- });
- it('dynamic max: callback declarative function', function() {
- this.$maxDate.attr('data-bv-date-max', 'getDate');
- this.bv.destroy();
- this.bv = $('#dateForm').bootstrapValidator().data('bootstrapValidator');
- this.bv.updateOption('maxDate', 'date', 'format', 'YYYY/MM/DD');
- this.$date.val('2015/01/01');
- this.$maxDate.val('2014/09/09');
- this.bv.validate();
- expect(this.bv.isValidField('maxDate')).toBeTruthy();
- this.bv.resetForm();
- this.$date.val('2014/01/01');
- this.$maxDate.val('2014/08/17');
- this.bv.validate();
- expect(this.bv.isValidField('maxDate')).toBeFalsy();
- });
- it('dynamic max: callback declarative function()', function() {
- this.$maxDate.attr('data-bv-date-max', 'getDate()');
- this.bv.destroy();
- this.bv = $('#dateForm').bootstrapValidator().data('bootstrapValidator');
- this.bv.updateOption('maxDate', 'date', 'format', 'YYYY/MM/DD');
- this.$date.val('2015/01/01');
- this.$maxDate.val('2014/09/09');
- this.bv.validate();
- expect(this.bv.isValidField('maxDate')).toBeTruthy();
- this.bv.resetForm();
- this.$date.val('2014/01/01');
- this.$maxDate.val('2014/08/17');
- this.bv.validate();
- expect(this.bv.isValidField('maxDate')).toBeFalsy();
- });
- it('dynamic max: callback declarative A.B.C', function() {
- this.$maxDate.attr('data-bv-date-max', 'TestSuite.Date.getDate');
- this.bv.destroy();
- this.bv = $('#dateForm').bootstrapValidator().data('bootstrapValidator');
- this.bv.updateOption('maxDate', 'date', 'format', 'YYYY/MM/DD');
- this.$date.val('2015/01/01');
- this.$maxDate.val('2014/09/09');
- this.bv.validate();
- expect(this.bv.isValidField('maxDate')).toBeTruthy();
- this.bv.resetForm();
- this.$date.val('2014/01/01');
- this.$maxDate.val('2014/08/17');
- this.bv.validate();
- expect(this.bv.isValidField('maxDate')).toBeFalsy();
- });
- it('dynamic max: callback declarative A.B.C()', function() {
- this.$maxDate.attr('data-bv-date-max', 'TestSuite.Date.getDate()');
- this.bv.destroy();
- this.bv = $('#dateForm').bootstrapValidator().data('bootstrapValidator');
- this.bv.updateOption('maxDate', 'date', 'format', 'YYYY/MM/DD');
- this.$date.val('2015/01/01');
- this.$maxDate.val('2014/09/09');
- this.bv.validate();
- expect(this.bv.isValidField('maxDate')).toBeTruthy();
- this.bv.resetForm();
- this.$date.val('2014/01/01');
- this.$maxDate.val('2014/08/17');
- this.bv.validate();
- expect(this.bv.isValidField('maxDate')).toBeFalsy();
- });
- it('dynamic max: callback programmatically', function() {
- this.$maxDate.removeAttr('data-bv-date-max');
- this.bv.destroy();
- this.bv = $('#dateForm')
- .bootstrapValidator({
- fields: {
- maxDate: {
- validators: {
- date: {
- max: function(value, validator, $field) {
- return getDate(value, validator, $field);
- }
- }
- }
- }
- }
- })
- .data('bootstrapValidator');
- this.bv.updateOption('maxDate', 'date', 'format', 'YYYY/MM/DD');
- this.$date.val('2015/01/01');
- this.$maxDate.val('2014/09/09');
- this.bv.validate();
- expect(this.bv.isValidField('maxDate')).toBeTruthy();
- this.bv.resetForm();
- this.$date.val('2014/01/01');
- this.$maxDate.val('2014/08/17');
- this.bv.validate();
- expect(this.bv.isValidField('maxDate')).toBeFalsy();
- });
- });
|