diff options
-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 |