Showing with 33 additions and 3 deletions.
  1. +30 −0 tests/unit/mask/mask_events.js
  2. +3 −3 ui/jquery.ui.timepicker.js
@@ -149,6 +149,36 @@ test( "keypress: Typing with multi-byte fields", function() {
deepEqual( mask._caret(), { begin: 3, end: 5 }, "Caret position correct");
});

test( "keypress: Typing with multi-byte only accepts valid values", function() {
expect( 7 );
var input = $( "#mask1" ).val("").mask({
mask: "aa-aa-aa",
definitions: {
aa: function( value ) {
if ( value.length < 0 ) return;
if ( value.length == 1 ) return value+value;
if ( value.charAt( 0 ) == value.charAt( 1 ) ) return value;
}
}
}),
mask = input.data( "mask" );

input.focus();
equal( input.val(), "__-__-__", "Initial Value Expected" );

mask._caret( 0 );
type( input, "0" );
equal( input.val(), "0_-__-__", "typed a 0" );
deepEqual( mask._caret(), { begin: 1, end: 1 }, "Caret position correct");
type( input, "z" );
equal( input.val(), "0_-__-__", "typed a z, wasn't allowed" );
deepEqual( mask._caret(), { begin: 1, end: 1 }, "Caret position correct");
type( input, "0" );
equal( input.val(), "00-__-__", "typed a 0, was allowed" );
deepEqual( mask._caret(), { begin: 3, end: 5 }, "Caret position correct");
});


test( "keydown: Delete pulling values", function() {
expect( 18 );
var input = $( "#mask1" ).val("123").mask({ mask: "9-99" }),
@@ -19,21 +19,21 @@

function sixty( value ) {
value = parseInt( value, 10 );
if ( value >= 0 || value <= 59 ) {
if ( value >= 0 && value <= 59 ) {
return ( value < 10 ? "0" : "" ) + value;
}
}

var maskDefinitions = {
hh: function( value ) {
value = parseInt( value, 10 );
if ( value >= 1 || value <= 12 ) {
if ( value >= 1 && value <= 12 ) {
return ( value < 10 ? "0" : "" ) + value;
}
},
HH: function( value ) {
value = parseInt( value, 10 );
if ( value >= 0 || value <= 23 ) {
if ( value >= 0 && value <= 23 ) {
return ( value < 10 ? "0" : "" ) + value;
}
},