diff options
author | Stephen Vance <steve@vance.com> | 2013-07-06 17:55:56 -0400 |
---|---|---|
committer | Stephen Vance <steve@vance.com> | 2013-07-06 22:20:01 -0400 |
commit | d7e61753a39ffcb19d1c73df5fdfb3ec4c458e5e (patch) | |
tree | 1f3b6d0654c5d4b74348e57ea5d1444174c842fe | |
parent | e7bf03fa1a46db16c67d9696510f39ee109b4625 (diff) | |
download | jQuery-Timepicker-Addon-d7e61753a39ffcb19d1c73df5fdfb3ec4c458e5e.zip jQuery-Timepicker-Addon-d7e61753a39ffcb19d1c73df5fdfb3ec4c458e5e.tar.gz jQuery-Timepicker-Addon-d7e61753a39ffcb19d1c73df5fdfb3ec4c458e5e.tar.bz2 |
Wrote tests for detectSupport, fixed a bug in AM/PM detection, simplified isIn() function, and eliminated unnecessary escapes in regular expression.
-rw-r--r-- | jquery-ui-timepicker-addon.js | 11 | ||||
-rw-r--r-- | test/jquery-ui-timepicker-addon_spec.js | 63 |
2 files changed, 69 insertions, 5 deletions
diff --git a/jquery-ui-timepicker-addon.js b/jquery-ui-timepicker-addon.js index 6925a3f..9cf5cf3 100644 --- a/jquery-ui-timepicker-addon.js +++ b/jquery-ui-timepicker-addon.js @@ -1768,7 +1768,7 @@ var isEmptyObject = function(obj) { var prop; for (prop in obj) { - if (obj.hasOwnProperty(obj)) { + if (obj.hasOwnProperty(prop)) { return false; } } @@ -1793,9 +1793,9 @@ * Returns an object of booleans for each unit */ var detectSupport = function(timeFormat){ - var tf = timeFormat.replace(/\'.*?\'/g,'').toLowerCase(), // removes literals + var tf = timeFormat.replace(/'.*?'/g,'').toLowerCase(), // removes literals isIn = function(f, t){ // does the format contain the token? - return f.indexOf(t) !== -1? true:false; + return !!(f.indexOf(t) !== -1); }; return { hour: isIn(tf,'h'), @@ -1804,7 +1804,7 @@ millisec: isIn(tf,'l'), microsec: isIn(tf,'c'), timezone: isIn(tf,'z'), - ampm: isIn('t') && isIn(timeFormat,'h'), + ampm: isIn(tf, 't') && isIn(timeFormat,'h'), iso8601: isIn(timeFormat, 'Z') }; }; @@ -2111,7 +2111,8 @@ $.timepicker.util = { _extendRemove: extendRemove, _isEmptyObject: isEmptyObject, - _convert24to12: convert24to12 + _convert24to12: convert24to12, + _detectSupport: detectSupport }; /* diff --git a/test/jquery-ui-timepicker-addon_spec.js b/test/jquery-ui-timepicker-addon_spec.js index 29f8648..4f257a0 100644 --- a/test/jquery-ui-timepicker-addon_spec.js +++ b/test/jquery-ui-timepicker-addon_spec.js @@ -89,5 +89,68 @@ describe('datetimepicker', function() { expect(util._convert24to12(expectedValue + 12 * 3)).toBe("" + expectedValue); }) }); + + describe('detectSupport', function() { + it('should detect support for hours', function() { + expect(util._detectSupport('H').hour).toBe(true); + expect(util._detectSupport('HH').hour).toBe(true); + expect(util._detectSupport('h').hour).toBe(true); + expect(util._detectSupport('hh').hour).toBe(true); + + expect(util._detectSupport('asdf').hour).toBe(false); + }); + + it('should detect support for minutes', function() { + expect(util._detectSupport('m').minute).toBe(true); + expect(util._detectSupport('mm').minute).toBe(true); + + expect(util._detectSupport('asdf').minute).toBe(false); + }); + + it('should detect support for seconds', function() { + expect(util._detectSupport('s').second).toBe(true); + expect(util._detectSupport('ss').second).toBe(true); + + expect(util._detectSupport('acdf').second).toBe(false); + }); + + it('should detect support for milliseconds', function() { + expect(util._detectSupport('l').millisec).toBe(true); + + expect(util._detectSupport('acdf').millisec).toBe(false); + }); + + it('should detect support for microseconds', function() { + expect(util._detectSupport('c').microsec).toBe(true); + + expect(util._detectSupport('asdf').microsec).toBe(false); + }); + + it('should detect support for AM/PM', function() { + expect(util._detectSupport('h t').ampm).toBe(true); + expect(util._detectSupport('h tt').ampm).toBe(true); + expect(util._detectSupport('h T').ampm).toBe(true); + expect(util._detectSupport('h TT').ampm).toBe(true); + + expect(util._detectSupport('t').ampm).toBe(false); + expect(util._detectSupport('h').ampm).toBe(false); + expect(util._detectSupport('H t').ampm).toBe(false); + expect(util._detectSupport('acdf').ampm).toBe(false); + }); + + it('should detect support for timezone', function() { + expect(util._detectSupport('z').timezone).toBe(true); + expect(util._detectSupport('Z').timezone).toBe(true); + + expect(util._detectSupport('acdf').timezone).toBe(false); + }); + + it('should detect support for iso8601', function() { + expect(util._detectSupport('Z').iso8601).toBe(true); + + expect(util._detectSupport('z').iso8601).toBe(false); + expect(util._detectSupport('acdf').iso8601).toBe(false); + }); + }); }); });
\ No newline at end of file |