jquery.maskedinput2
Version:
jQuery Masked Input Plugin
123 lines (98 loc) • 3.23 kB
JavaScript
feature("Completed callback", function() {
scenario('Completing mask by typing last character',function(){
var completed=false;
given("an input with a completed callback", function(){
input.mask("99",{completed:function(){completed=true;}});
});
when("typing left to right",function(){
input.mashKeys("12");
});
then("completed callback should be called",function(){
expect(completed).toBeTruthy();
});
then("value should be correct",function(){
expect(input).toHaveValue('12');
});
});
scenario('Completing mask by typing first character',function(){
var completed=false;
given("an input with a completed callback", function(){
input.val("12").mask("99",{completed:function(){completed=true;}});
});
when("replacing first character value",function(){
input
.caret(1)
.mashKeys(function(keys){keys.type(keys.backspace)})
.mashKeys("3");
});
then("completed callback should be called",function(){
expect(completed).toBeTruthy();
});
then("value should be correct",function(){
expect(input).toHaveValue('32');
});
});
scenario('Typing last character of incomplete mask',function(){
var completed=false;
given("an input with a completed callback", function(){
input
.mask("99",{completed:function(){completed=true;}})
.mashKeys("1")
.mashKeys(function(keys){keys.type(keys.backspace)});
});
when("moving cursor to last position and typing",function(){
input.caret(1).mashKeys("5");
});
then("completed callback should not be called",function(){
expect(completed).toBeFalsy();
});
then("value should be correct",function(){
expect(input).toHaveValue('_5');
});
});
scenario('Typing last character of required portion of mask containing optional',function(){
var completed=false;
given("an input with a completed callback", function(){
input.mask("99?99",{completed:function(){completed=true;}});
});
when("typing left to right",function(){
input.mashKeys("12");
});
then("completed callback should be called",function(){
expect(completed).toBeTruthy();
});
then("value should be correct",function(){
expect(input).toHaveValue('12__');
});
});
scenario('Typing all characters of required portion of mask containing optional',function(){
var completedCount=0;
given("an input with a completed callback", function(){
input.mask("99?99",{completed:function(){completedCount++;}});
});
when("typing left to right",function(){
input.mashKeys("1234");
});
then("completed callback should be called",function(){
expect(completedCount).toEqual(1);
});
then("value should be correct",function(){
expect(input).toHaveValue('1234');
});
});
scenario('Completing mask by typing last character with literal to right',function(){
var completed=false;
given("an input with a completed callback", function(){
input.mask("99!",{completed:function(){completed=true;}});
});
when("typing left to right",function(){
input.mashKeys("12");
});
then("completed callback should be called",function(){
expect(completed).toBeTruthy();
});
then("value should be correct",function(){
expect(input).toHaveValue('12!');
});
});
});