summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--jquery-ui-timepicker-addon.js11
-rw-r--r--test/jquery-ui-timepicker-addon_spec.js63
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